Changeset 187084 in webkit
- Timestamp:
- Jul 20, 2015 9:38:11 PM (9 years ago)
- Location:
- branches/safari-601.1-branch/Source/WebKit2
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-601.1-branch/Source/WebKit2/ChangeLog
r187078 r187084 1 2015-07-20 Matthew Hanson <matthew_hanson@apple.com> 2 3 Merge r187047. rdar://problem/20860410 4 5 2015-07-20 Gordon Sheridan <gordon_sheridan@apple.com> 6 7 Support blocking a plug-in for non-security reasons 8 https://bugs.webkit.org/show_bug.cgi?id=145009 9 10 Reviewed by Anders Carlsson. 11 12 * Shared/Plugins/PluginModuleInfo.h: 13 Replace PluginModuleBlocked with separate enum values for blocking for security and compatibility. 14 15 * UIProcess/API/C/WKAPICast.h: 16 (WebKit::toWKPluginLoadPolicy): 17 Modify to handle change to PluginModuleBlocked enum. 18 19 (WebKit::toPluginModuleLoadPolicy): 20 Ditto. 21 22 * UIProcess/API/C/WKPluginLoadPolicy.h: 23 Added enum value for blocking a plugin for compatibility reasons. 24 25 * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: 26 (WebKit::shouldBlockPlugin): 27 Check load policy for both reasons a plugin may be blocked. 28 29 (WebKit::WKPlugInModuleLoadPolicyToPluginModuleLoadPolicy): 30 Added function to convert between load policy enum types. 31 32 (WebKit::PluginInfoStore::defaultLoadPolicyForPlugin): 33 Modified to call WKLoadPolicyForPluginVersion() which can distinguish between blocked for security or compatibility. 34 35 * UIProcess/WebPageProxy.cpp: 36 (WebKit::WebPageProxy::findPlugin): 37 Updated to recognize both PluginModuleBlocked enum values that indicate a plugin is blocked. 38 39 * WebProcess/WebPage/WebPage.cpp: 40 (WebKit::WebPage::createPlugin): 41 Ditto. 42 43 (WebKit::WebPage::canPluginHandleResponse): 44 Ditto. 45 1 46 2015-07-20 Matthew Hanson <matthew_hanson@apple.com> 2 47 -
branches/safari-601.1-branch/Source/WebKit2/Shared/Plugins/PluginModuleInfo.h
r169457 r187084 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 -
branches/safari-601.1-branch/Source/WebKit2/UIProcess/API/C/WKAPICast.h
r186484 r187084 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 -
branches/safari-601.1-branch/Source/WebKit2/UIProcess/API/C/WKPluginLoadPolicy.h
r182097 r187084 38 38 kWKPluginLoadPolicyInactive, 39 39 kWKPluginLoadPolicyLoadUnsandboxed, 40 kWKPluginLoadPolicyBlockedForCompatibility, 40 41 }; 41 42 typedef uint32_t WKPluginLoadPolicy; -
branches/safari-601.1-branch/Source/WebKit2/UIProcess/Plugins/mac/PluginInfoStoreMac.mm
r169457 r187084 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 -
branches/safari-601.1-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp
r187067 r187084 1888 1888 break; 1889 1889 1890 case PluginModuleBlocked: 1890 case PluginModuleBlockedForSecurity: 1891 case PluginModuleBlockedForCompatibility: 1891 1892 pluginProcessToken = 0; 1892 1893 return; -
branches/safari-601.1-branch/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r187073 r187084 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) { … … 4244 4245 return false; 4245 4246 4246 return pluginLoadPolicy != PluginModuleBlocked && pluginProcessToken; 4247 bool isBlockedPlugin = (pluginLoadPolicy == PluginModuleBlockedForSecurity) || (pluginLoadPolicy == PluginModuleBlockedForCompatibility); 4248 return !isBlockedPlugin && pluginProcessToken; 4247 4249 #else 4248 4250 UNUSED_PARAM(response);
Note: See TracChangeset
for help on using the changeset viewer.