Changeset 187047 in webkit
- Timestamp:
- Jul 20, 2015 4:45:41 PM (9 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r187045 r187047 1 2015-07-20 Gordon Sheridan <gordon_sheridan@apple.com> 2 3 Support blocking a plug-in for non-security reasons 4 https://bugs.webkit.org/show_bug.cgi?id=145009 5 6 Reviewed by Anders Carlsson. 7 8 * Shared/Plugins/PluginModuleInfo.h: 9 Replace PluginModuleBlocked with separate enum values for blocking for security and compatibility. 10 11 * UIProcess/API/C/WKAPICast.h: 12 (WebKit::toWKPluginLoadPolicy): 13 Modify to handle change to PluginModuleBlocked enum. 14 15 (WebKit::toPluginModuleLoadPolicy): 16 Ditto. 17 18 * UIProcess/API/C/WKPluginLoadPolicy.h: 19 Added enum value for blocking a plugin for compatibility reasons. 20 21 * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: 22 (WebKit::shouldBlockPlugin): 23 Check load policy for both reasons a plugin may be blocked. 24 25 (WebKit::WKPlugInModuleLoadPolicyToPluginModuleLoadPolicy): 26 Added function to convert between load policy enum types. 27 28 (WebKit::PluginInfoStore::defaultLoadPolicyForPlugin): 29 Modified to call WKLoadPolicyForPluginVersion() which can distinguish between blocked for security or compatibility. 30 31 * UIProcess/WebPageProxy.cpp: 32 (WebKit::WebPageProxy::findPlugin): 33 Updated to recognize both PluginModuleBlocked enum values that indicate a plugin is blocked. 34 35 * WebProcess/WebPage/WebPage.cpp: 36 (WebKit::WebPage::createPlugin): 37 Ditto. 38 39 (WebKit::WebPage::canPluginHandleResponse): 40 Ditto. 41 1 42 2015-07-20 Antti Koivisto <antti@apple.com> 2 43 -
trunk/Source/WebKit2/Shared/Plugins/PluginModuleInfo.h
r169457 r187047 44 44 // The plug-in should be blocked from being instantiated. 45 45 // Note that the plug-in will still be seen by e.g. navigator.plugins 46 PluginModuleBlocked, 46 PluginModuleBlockedForSecurity, 47 PluginModuleBlockedForCompatibility, 47 48 }; 48 49 -
trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h
r186484 r187047 470 470 case PluginModuleLoadUnsandboxed: 471 471 return kWKPluginLoadPolicyLoadUnsandboxed; 472 case PluginModuleBlocked :472 case PluginModuleBlockedForSecurity: 473 473 return kWKPluginLoadPolicyBlocked; 474 case PluginModuleBlockedForCompatibility: 475 return kWKPluginLoadPolicyBlockedForCompatibility; 474 476 } 475 477 … … 503 505 return PluginModuleLoadNormally; 504 506 case kWKPluginLoadPolicyBlocked: 505 return PluginModuleBlocked; 507 return PluginModuleBlockedForSecurity; 508 case kWKPluginLoadPolicyBlockedForCompatibility: 509 return PluginModuleBlockedForCompatibility; 506 510 case kWKPluginLoadPolicyLoadUnsandboxed: 507 511 return PluginModuleLoadUnsandboxed; … … 509 513 510 514 ASSERT_NOT_REACHED(); 511 return PluginModuleBlocked ;515 return PluginModuleBlockedForSecurity; 512 516 } 513 517 -
trunk/Source/WebKit2/UIProcess/API/C/WKPluginLoadPolicy.h
r182097 r187047 38 38 kWKPluginLoadPolicyInactive, 39 39 kWKPluginLoadPolicyLoadUnsandboxed, 40 kWKPluginLoadPolicyBlockedForCompatibility, 40 41 }; 41 42 typedef uint32_t WKPluginLoadPolicy; -
trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginInfoStoreMac.mm
r169457 r187047 76 76 static bool shouldBlockPlugin(const PluginModuleInfo& plugin) 77 77 { 78 return PluginInfoStore::defaultLoadPolicyForPlugin(plugin) == PluginModuleBlocked; 78 PluginModuleLoadPolicy loadPolicy = PluginInfoStore::defaultLoadPolicyForPlugin(plugin); 79 return (loadPolicy == PluginModuleBlockedForSecurity) || (loadPolicy == PluginModuleBlockedForCompatibility); 79 80 } 80 81 … … 108 109 } 109 110 111 inline PluginModuleLoadPolicy WKPlugInModuleLoadPolicyToPluginModuleLoadPolicy(WKPlugInModuleLoadPolicy wksiPolicy) 112 { 113 114 switch (wksiPolicy) { 115 case WKPlugInModuleLoadPolicyLoadNormally: 116 return PluginModuleLoadNormally; 117 case WKPlugInModuleLoadPolicyLoadUnsandboxed: 118 return PluginModuleLoadUnsandboxed; 119 case WKPlugInModuleLoadPolicyBlockedForSecurity: 120 return PluginModuleBlockedForSecurity; 121 case WKPlugInModuleLoadPolicyBlockedForCompatibility: 122 return PluginModuleBlockedForCompatibility; 123 } 124 125 ASSERT_NOT_REACHED(); 126 return PluginModuleBlockedForSecurity; 127 } 128 110 129 PluginModuleLoadPolicy PluginInfoStore::defaultLoadPolicyForPlugin(const PluginModuleInfo& plugin) 111 130 { 112 if (WKShouldBlockPlugin(plugin.bundleIdentifier, plugin.versionString)) 113 return PluginModuleBlocked; 114 115 return PluginModuleLoadNormally; 131 return WKPlugInModuleLoadPolicyToPluginModuleLoadPolicy(WKLoadPolicyForPluginVersion(plugin.bundleIdentifier, plugin.versionString)); 116 132 } 117 133 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r186969 r187047 1888 1888 break; 1889 1889 1890 case PluginModuleBlocked: 1890 case PluginModuleBlockedForSecurity: 1891 case PluginModuleBlockedForCompatibility: 1891 1892 pluginProcessToken = 0; 1892 1893 return; -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r187039 r187047 711 711 return nullptr; 712 712 713 bool isBlockedPlugin = static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy) == PluginModuleBlocked; 713 PluginModuleLoadPolicy loadPolicy = static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy); 714 bool isBlockedPlugin = (loadPolicy == PluginModuleBlockedForSecurity) || (loadPolicy == PluginModuleBlockedForCompatibility); 714 715 715 716 if (isBlockedPlugin || !pluginProcessToken) { … … 4245 4246 return false; 4246 4247 4247 return pluginLoadPolicy != PluginModuleBlocked && pluginProcessToken; 4248 bool isBlockedPlugin = (pluginLoadPolicy == PluginModuleBlockedForSecurity) || (pluginLoadPolicy == PluginModuleBlockedForCompatibility); 4249 return !isBlockedPlugin && pluginProcessToken; 4248 4250 #else 4249 4251 UNUSED_PARAM(response);
Note: See TracChangeset
for help on using the changeset viewer.