RESOLVED FIXED 195702
Block all plugins smaller than 5x5px
https://bugs.webkit.org/show_bug.cgi?id=195702
Summary Block all plugins smaller than 5x5px
Dean Jackson
Reported 2019-03-13 14:44:47 PDT
Block all plugins smaller than 5x5px
Attachments
Patch (30.81 KB, patch)
2019-03-13 14:53 PDT, Dean Jackson
sam: review+
ews-watchlist: commit-queue-
Archive of layout-test-results from ews103 for mac-highsierra (2.45 MB, application/zip)
2019-03-13 15:54 PDT, EWS Watchlist
no flags
Archive of layout-test-results from ews105 for mac-highsierra-wk2 (2.62 MB, application/zip)
2019-03-13 16:13 PDT, EWS Watchlist
no flags
Dean Jackson
Comment 1 2019-03-13 14:45:33 PDT
Dean Jackson
Comment 2 2019-03-13 14:53:27 PDT
Sam Weinig
Comment 3 2019-03-13 15:07:42 PDT
Comment on attachment 364578 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=364578&action=review > Source/WebCore/ChangeLog:10 > + 5x5px. Other browsers have implemented this for a while, and now s/5x5px/5pxx5px/ :) > Source/WebKitLegacy/mac/ChangeLog:25 > +2019-03-13 Dean Jackson <dino@apple.com> > + > + Block all plugins smaller than 5x5px > + https://bugs.webkit.org/show_bug.cgi?id=195702 > + <rdar://problem/28435204> > + > + Reviewed by NOBODY (OOPS!). > + > + Removed a function that was never being called. > + > + * WebCoreSupport/WebFrameLoaderClient.h: > + * WebCoreSupport/WebFrameLoaderClient.mm: > + (WebFrameLoaderClient::recreatePlugin): Deleted. > + > +2019-03-13 Dean Jackson <dino@apple.com> > + > + Block all plugins smaller than 5x5px > + https://bugs.webkit.org/show_bug.cgi?id=195702 > + > + Reviewed by NOBODY (OOPS!). > + > + * WebCoreSupport/WebFrameLoaderClient.h: > + * WebCoreSupport/WebFrameLoaderClient.mm: > + (WebFrameLoaderClient::recreatePlugin): Deleted. > + Double ChangeLog! > Source/WebCore/platform/LocalizedStrings.cpp:683 > + return WEB_UI_STRING_KEY("Plug-in too small", "Plug-In too small", "Label text to be used when a plug-in was blocked from loading because it was too small"); You have different capitalization of "plug-in" in the first two strings. Is that intentional? > LayoutTests/plugins/small-plugin-blocked.html:34 > +<embed id="plugin3" type="application/x-webkit-test-netscape" width="4" height="4"></embed> Probably want to do one on the boundary, 5px, as well. And maybe one that has a width too small, but a big height or vice versa.
Sam Weinig
Comment 4 2019-03-13 15:10:10 PDT
Comment on attachment 364578 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=364578&action=review > Source/WebKit/WebProcess/WebPage/WebPage.cpp:893 > +static bool pluginIsSmall(WebCore::HTMLPlugInElement* pluginElement) Can this take a reference?
Simon Fraser (smfr)
Comment 5 2019-03-13 15:12:07 PDT
Comment on attachment 364578 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=364578&action=review > Source/WebCore/html/HTMLPlugInElement.h:86 > + WEBCORE_EXPORT bool isTooSmall() const; "too small" sounds subjective. isBelowEnablingSizeThreshold or something? > Source/WebCore/page/Settings.yaml:814 > +blockSmallPluginsEnabled: "block" is a verb so this is a bit hard to read. "smallPluginBlockingEnabled"? blockingOfSmallPluginsEnabled? > Source/WebKit/Shared/WebPreferences.yaml:1250 > +BlockSmallPluginsEnabled: smallPluginBlockingEnabled > Source/WebKit/Shared/WebPreferences.yaml:1254 > + humanReadableDescription: "Stop plugins smaller than a certain threshold from loading." Maybe you can actually say what the threshold is here. > Source/WebKit/WebProcess/WebPage/WebPage.cpp:900 > + return box.contentWidth() <= smallPluginDimensionThreshold && box.contentHeight() <= smallPluginDimensionThreshold; Is this what other browsers do? Should we not block 1x6px plugins? > LayoutTests/plugins/small-plugin-blocked.html:35 > +<embed id="plugin4" type="application/x-webkit-test-netscape" width="6" height="6"></embed> Maybe test 1x6
EWS Watchlist
Comment 6 2019-03-13 15:54:46 PDT
Comment on attachment 364578 [details] Patch Attachment 364578 [details] did not pass mac-ews (mac): Output: https://webkit-queues.webkit.org/results/11494760 New failing tests: plugins/small-plugin-blocked.html
EWS Watchlist
Comment 7 2019-03-13 15:54:48 PDT
Created attachment 364586 [details] Archive of layout-test-results from ews103 for mac-highsierra The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews103 Port: mac-highsierra Platform: Mac OS X 10.13.6
EWS Watchlist
Comment 8 2019-03-13 16:13:06 PDT
Comment on attachment 364578 [details] Patch Attachment 364578 [details] did not pass mac-wk2-ews (mac-wk2): Output: https://webkit-queues.webkit.org/results/11494915 New failing tests: fast/frames/sandboxed-iframe-navigation-allowed.html fast/frames/sandboxed-iframe-about-blank.html compositing/plugins/small-to-large-composited-plugin.html
EWS Watchlist
Comment 9 2019-03-13 16:13:08 PDT
Created attachment 364589 [details] Archive of layout-test-results from ews105 for mac-highsierra-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews105 Port: mac-highsierra-wk2 Platform: Mac OS X 10.13.6
Dean Jackson
Comment 10 2019-03-13 16:38:03 PDT
Dean Jackson
Comment 11 2019-03-13 16:40:28 PDT
Comment on attachment 364578 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=364578&action=review >> Source/WebCore/ChangeLog:10 >> + 5x5px. Other browsers have implemented this for a while, and now > > s/5x5px/5pxx5px/ :) fixed. >> Source/WebKitLegacy/mac/ChangeLog:25 >> + > > Double ChangeLog! fixed. >> Source/WebCore/html/HTMLPlugInElement.h:86 >> + WEBCORE_EXPORT bool isTooSmall() const; > > "too small" sounds subjective. isBelowEnablingSizeThreshold or something? changed >> Source/WebCore/page/Settings.yaml:814 >> +blockSmallPluginsEnabled: > > "block" is a verb so this is a bit hard to read. "smallPluginBlockingEnabled"? blockingOfSmallPluginsEnabled? changed >> Source/WebCore/platform/LocalizedStrings.cpp:683 >> + return WEB_UI_STRING_KEY("Plug-in too small", "Plug-In too small", "Label text to be used when a plug-in was blocked from loading because it was too small"); > > You have different capitalization of "plug-in" in the first two strings. Is that intentional? fixed. >> Source/WebKit/Shared/WebPreferences.yaml:1250 >> +BlockSmallPluginsEnabled: > > smallPluginBlockingEnabled Changed. >> Source/WebKit/Shared/WebPreferences.yaml:1254 >> + humanReadableDescription: "Stop plugins smaller than a certain threshold from loading." > > Maybe you can actually say what the threshold is here. I didn't because this string is really only used for a tooltip in the internal debug menu. >> Source/WebKit/WebProcess/WebPage/WebPage.cpp:893 >> +static bool pluginIsSmall(WebCore::HTMLPlugInElement* pluginElement) > > Can this take a reference? fixed. >> Source/WebKit/WebProcess/WebPage/WebPage.cpp:900 >> + return box.contentWidth() <= smallPluginDimensionThreshold && box.contentHeight() <= smallPluginDimensionThreshold; > > Is this what other browsers do? Should we not block 1x6px plugins? Other browsers seem to check for any dimension. >> LayoutTests/plugins/small-plugin-blocked.html:35 >> +<embed id="plugin4" type="application/x-webkit-test-netscape" width="6" height="6"></embed> > > Maybe test 1x6 Added tests for 5x5 1x6 and 6x1
Ryan Haddad
Comment 12 2019-03-13 17:23:54 PDT
This change broke the windows build: win10-release\build\source\webkitlegacy\win\webcoresupport\webframeloaderclient.h(190): error C3668: 'WebFrameLoaderClient::recreatePlugin': method with override specifier 'override' did not override any base class methods https://build.webkit.org/builders/Apple%20Win%2010%20Release%20%28Build%29/builds/2851
Ryan Haddad
Comment 13 2019-03-13 17:45:24 PDT
(In reply to Ryan Haddad from comment #12) > This change broke the windows build: > win10- > release\build\source\webkitlegacy\win\webcoresupport\webframeloaderclient. > h(190): error C3668: 'WebFrameLoaderClient::recreatePlugin': method with > override specifier 'override' did not override any base class methods > https://build.webkit.org/builders/Apple%20Win%2010%20Release%20%28Build%29/ > builds/2851 Attempted a fix in https://trac.webkit.org/changeset/242925
Note You need to log in before you can comment on or make changes to this bug.