Changeset 147052 in webkit
- Timestamp:
- Mar 27, 2013 8:38:12 PM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r147049 r147052 1 2013-03-27 Sam Weinig <sam@webkit.org> 2 3 [WebKit2] Need SPI to determine whether a plug-in is blocked 4 https://bugs.webkit.org/show_bug.cgi?id=113463 5 6 Reviewed by Anders Carlsson. 7 8 Add new SPI, WKContextCopyPlugInInfoForBundleIdetifier, to get data about a plug-in, 9 including whether it is blocked by x-protect. 10 11 * UIProcess/WebLoaderClient.cpp: 12 * UIProcess/API/C/WKAPICast.h: 13 (WebKit::toWKPluginLoadPolicy): 14 (WebKit::toPluginModuleLoadPolicy): 15 Move to a shared location. 16 17 * UIProcess/API/C/mac/WKContextPrivateMac.h: 18 * UIProcess/API/C/mac/WKContextPrivateMac.mm: 19 (WKContextIsPlugInUpdateAvailable): 20 (WKPlugInInfoPathKey): 21 (WKPlugInInfoBundleIdentifierKey): 22 (WKPlugInInfoVersionKey): 23 (WKPlugInInfoLoadPolicyKey): 24 (WKPlugInInfoUpdatePastLastBlockedVersionIsKnownAvailableKey): 25 (WKContextCopyPlugInInfoForBundleIdetifier): 26 Add new SPI and dictionary keys. 27 28 * UIProcess/Plugins/PluginInfoStore.cpp: 29 (WebKit::PluginInfoStore::findPluginWithBundleIdentifer): 30 * UIProcess/Plugins/PluginInfoStore.h: 31 * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: 32 (WebKit::PluginInfoStore::findPluginWithBundleIdentifer): 33 Add function to lookup plug-ins by bundle identifier. 34 1 35 2013-03-27 Beth Dakin <bdakin@apple.com> 2 36 -
trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h
r141448 r147052 31 31 #include "FontSmoothingLevel.h" 32 32 #include "HTTPCookieAcceptPolicy.h" 33 #include "PluginModuleInfo.h" 33 34 #include "ProcessModel.h" 34 35 #include "ResourceCachesToClear.h" 35 #include "WebGrammarDetail.h"36 36 #include "WKContext.h" 37 37 #include "WKCookieManager.h" … … 43 43 #include "WKResourceCacheManager.h" 44 44 #include "WKSharedAPICast.h" 45 #include "WebGrammarDetail.h" 45 46 #include <WebCore/Credential.h> 46 47 #include <WebCore/FrameLoaderTypes.h> … … 403 404 } 404 405 406 inline WKPluginLoadPolicy toWKPluginLoadPolicy(PluginModuleLoadPolicy pluginModuleLoadPolicy) 407 { 408 switch (pluginModuleLoadPolicy) { 409 case PluginModuleLoadNormally: 410 return kWKPluginLoadPolicyLoadNormally; 411 case PluginModuleBlocked: 412 return kWKPluginLoadPolicyBlocked; 413 case PluginModuleInactive: 414 return kWKPluginLoadPolicyInactive; 415 } 416 417 ASSERT_NOT_REACHED(); 418 return kWKPluginLoadPolicyBlocked; 419 } 420 421 inline PluginModuleLoadPolicy toPluginModuleLoadPolicy(WKPluginLoadPolicy pluginLoadPolicy) 422 { 423 switch (pluginLoadPolicy) { 424 case kWKPluginLoadPolicyLoadNormally: 425 return PluginModuleLoadNormally; 426 case kWKPluginLoadPolicyBlocked: 427 return PluginModuleBlocked; 428 case kWKPluginLoadPolicyInactive: 429 return PluginModuleInactive; 430 } 431 432 ASSERT_NOT_REACHED(); 433 return PluginModuleBlocked; 434 } 435 405 436 inline ProxyingRefPtr<WebGrammarDetail> toAPI(const WebCore::GrammarDetail& grammarDetail) 406 437 { -
trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.h
r142919 r147052 38 38 WK_EXPORT bool WKContextIsPlugInUpdateAvailable(WKContextRef context, WKStringRef plugInBundleIdentifier); 39 39 40 41 /* Value type: WKStringRef */ 42 WK_EXPORT WKStringRef WKPlugInInfoPathKey(); 43 44 /* Value type: WKStringRef */ 45 WK_EXPORT WKStringRef WKPlugInInfoBundleIdentifierKey(); 46 47 /* Value type: WKStringRef */ 48 WK_EXPORT WKStringRef WKPlugInInfoVersionKey(); 49 50 /* Value type: WKUInt64Ref */ 51 WK_EXPORT WKStringRef WKPlugInInfoLoadPolicyKey(); 52 53 /* Value type: WKBooleanRef */ 54 WK_EXPORT WKStringRef WKPlugInInfoUpdatePastLastBlockedVersionIsKnownAvailableKey(); 55 56 WK_EXPORT WKDictionaryRef WKContextCopyPlugInInfoForBundleIdentifier(WKContextRef context, WKStringRef plugInBundleIdentifier); 57 40 58 #ifdef __cplusplus 41 59 } -
trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm
r142919 r147052 27 27 #import "WKContextPrivateMac.h" 28 28 29 #import "ImmutableDictionary.h" 30 #import "PluginInfoStore.h" 31 #import "StringUtilities.h" 29 32 #import "WKAPICast.h" 33 #import "WKSharedAPICast.h" 30 34 #import "WKStringCF.h" 31 35 #import "WebContext.h" 36 #import "WebNumber.h" 37 #import "WebString.h" 32 38 #import <WebKitSystemInterface.h> 33 39 #import <wtf/RetainPtr.h> … … 45 51 } 46 52 47 bool WKContextIsPlugInUpdateAvailable(WKContextRef context , WKStringRef plugInBundleIdentifier)53 bool WKContextIsPlugInUpdateAvailable(WKContextRef contextRef, WKStringRef plugInBundleIdentifierRef) 48 54 { 49 return WKIsPluginUpdateAvailable((NSString *)adoptCF(WKStringCopyCFString(kCFAllocatorDefault, plugInBundleIdentifier )).get());55 return WKIsPluginUpdateAvailable((NSString *)adoptCF(WKStringCopyCFString(kCFAllocatorDefault, plugInBundleIdentifierRef)).get()); 50 56 } 57 58 59 WKStringRef WKPlugInInfoPathKey() 60 { 61 static WebString* key = WebString::createFromUTF8String("WKPlugInInfoPath").leakRef(); 62 return toAPI(key); 63 } 64 65 WKStringRef WKPlugInInfoBundleIdentifierKey() 66 { 67 static WebString* key = WebString::createFromUTF8String("WKPlugInInfoBundleIdentifier").leakRef(); 68 return toAPI(key); 69 } 70 71 WKStringRef WKPlugInInfoVersionKey() 72 { 73 static WebString* key = WebString::createFromUTF8String("WKPlugInInfoVersion").leakRef(); 74 return toAPI(key); 75 } 76 77 WKStringRef WKPlugInInfoLoadPolicyKey() 78 { 79 static WebString* key = WebString::createFromUTF8String("WKPlugInInfoLoadPolicy").leakRef(); 80 return toAPI(key); 81 } 82 83 WKStringRef WKPlugInInfoUpdatePastLastBlockedVersionIsKnownAvailableKey() 84 { 85 static WebString* key = WebString::createFromUTF8String("WKPlugInInfoUpdatePastLastBlockedVersionIsKnownAvailable").leakRef(); 86 return toAPI(key); 87 } 88 89 WKDictionaryRef WKContextCopyPlugInInfoForBundleIdentifier(WKContextRef contextRef, WKStringRef plugInBundleIdentifierRef) 90 { 91 PluginModuleInfo info = toImpl(contextRef)->pluginInfoStore().findPluginWithBundleIdentifier(toWTFString(plugInBundleIdentifierRef)); 92 if (info.path.isNull()) 93 return 0; 94 95 ImmutableDictionary::MapType map; 96 map.set(toWTFString(WKPlugInInfoPathKey()), WebString::create(info.path)); 97 map.set(toWTFString(WKPlugInInfoBundleIdentifierKey()), WebString::create(info.bundleIdentifier)); 98 map.set(toWTFString(WKPlugInInfoVersionKey()), WebString::create(info.versionString)); 99 map.set(toWTFString(WKPlugInInfoLoadPolicyKey()), WebUInt64::create(toWKPluginLoadPolicy(PluginInfoStore::policyForPlugin(info)))); 100 map.set(toWTFString(WKPlugInInfoUpdatePastLastBlockedVersionIsKnownAvailableKey()), WebBoolean::create(WKIsPluginUpdateAvailable(nsStringFromWebCoreString(info.bundleIdentifier)))); 101 102 return toAPI(ImmutableDictionary::adopt(map).leakRef()); 103 } -
trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp
r144672 r147052 191 191 return MIMETypeRegistry::getMIMETypeForExtension(extension); 192 192 } 193 194 PluginModuleInfo PluginInfoStore::findPluginWithBundleIdentifier(const String&) 195 { 196 ASSERT_NOT_REACHED(); 197 return PluginModuleInfo(); 198 } 199 193 200 #endif 194 201 -
trunk/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.h
r144672 r147052 63 63 // plug-in type. In that case, mimeType will be filled in with the right MIME type. 64 64 PluginModuleInfo findPlugin(String& mimeType, const WebCore::KURL&); 65 65 66 // Returns the info for the plug-in with the given bundle identifier. 67 PluginModuleInfo findPluginWithBundleIdentifier(const String& bundleIdentifier); 68 66 69 // Returns the info for the plug-in with the given path. 67 70 PluginModuleInfo infoForPluginWithPath(const String& pluginPath) const; -
trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginInfoStoreMac.mm
r136620 r147052 172 172 } 173 173 174 PluginModuleInfo PluginInfoStore::findPluginWithBundleIdentifier(const String& bundleIdentifier) 175 { 176 loadPluginsIfNecessary(); 177 178 for (size_t i = 0; i < m_plugins.size(); ++i) { 179 if (m_plugins[i].bundleIdentifier == bundleIdentifier) 180 return m_plugins[i]; 181 } 182 183 return PluginModuleInfo(); 184 } 185 174 186 } // namespace WebKit 175 187 -
trunk/Source/WebKit2/UIProcess/WebLoaderClient.cpp
r144114 r147052 300 300 } 301 301 302 static inline WKPluginLoadPolicy toWKPluginLoadPolicy(PluginModuleLoadPolicy pluginModuleLoadPolicy)303 {304 switch (pluginModuleLoadPolicy) {305 case PluginModuleLoadNormally:306 return kWKPluginLoadPolicyLoadNormally;307 case PluginModuleBlocked:308 return kWKPluginLoadPolicyBlocked;309 case PluginModuleInactive:310 return kWKPluginLoadPolicyInactive;311 }312 313 ASSERT_NOT_REACHED();314 return kWKPluginLoadPolicyBlocked;315 }316 317 static inline PluginModuleLoadPolicy toPluginModuleLoadPolicy(WKPluginLoadPolicy pluginLoadPolicy)318 {319 switch (pluginLoadPolicy) {320 case kWKPluginLoadPolicyLoadNormally:321 return PluginModuleLoadNormally;322 case kWKPluginLoadPolicyBlocked:323 return PluginModuleBlocked;324 case kWKPluginLoadPolicyInactive:325 return PluginModuleInactive;326 }327 328 ASSERT_NOT_REACHED();329 return PluginModuleBlocked;330 }331 332 302 PluginModuleLoadPolicy WebLoaderClient::pluginLoadPolicy(WebPageProxy* page, const String& pluginBundleIdentifier, const String& pluginBundleVersion, const String& displayName, const String& frameURLString, const String& pageURLString, PluginModuleLoadPolicy currentPluginLoadPolicy) 333 303 {
Note: See TracChangeset
for help on using the changeset viewer.