Bug 132180

Summary: [GTK] Implement iframe shim technique for windowed plugins in WebKit2
Product: WebKit Reporter: Carlos Garcia Campos <cgarcia>
Component: WebKit2Assignee: Nobody <webkit-unassigned>
Status: RESOLVED CONFIGURATION CHANGED    
Severity: Normal CC: andersca, aperez, beidson, bugs-noreply, bunhere, cdumez, clopez, commit-queue, gustavo, gyuyoung.kim, jane.xia2009, mrobinson, sergio, webkit-bug-importer
Priority: P2 Keywords: Gtk, InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Try to fix mac and EFL builds
mrobinson: review-
Address review comments and try to fix mac build
bfulgham: review-
Rebased patch
none
Fox coding style
none
Try to fix mac build
none
Try to fix mac build
none
Updated patch to use Region for occlusions beidson: review-

Description Carlos Garcia Campos 2014-04-25 03:53:28 PDT
It allows to show iframes on top of a windowed plugin. This is covered by layout test plugins/iframe-shims.html that for some reason works when run with WTR. It seems than the fake mouse events used by WTR reach the buttons that are hidden. This doesn't happen when running the test manually.
Comment 1 Carlos Garcia Campos 2014-04-25 04:17:04 PDT
Created attachment 230162 [details]
Patch
Comment 2 Carlos Garcia Campos 2014-04-25 05:12:40 PDT
Created attachment 230170 [details]
Try to fix mac and EFL builds
Comment 3 Martin Robinson 2014-04-25 07:38:14 PDT
Comment on attachment 230170 [details]
Try to fix mac and EFL builds

View in context: https://bugs.webkit.org/attachment.cgi?id=230170&action=review

GTK+ bits look good to me.

> Source/WebKit2/WebProcess/Plugins/PluginView.cpp:1027
> +static bool iframeIsAbovePlugin(const Vector<const RenderObject*>& iframeZIndexStack, const Vector<const RenderObject*>& pluginZIndexStack)
> +{
> +    for (size_t i = 0; i < iframeZIndexStack.size() && i < pluginZIndexStack.size(); ++i) {
> +        // The root is at the end of these stacks. We want to iterate root-downwards so we index backwards from the end.
> +        const RenderObject* iframeStackRootObject = iframeZIndexStack[iframeZIndexStack.size() - 1 - i];
> +        const RenderObject* pluginStackRootObject = pluginZIndexStack[pluginZIndexStack.size() - 1 - i];

This requires preserving the original copyright, I think.
Comment 4 Carlos Garcia Campos 2014-04-28 01:37:10 PDT
Created attachment 230285 [details]
Address review comments and try to fix mac build
Comment 5 Martin Robinson 2015-05-07 18:06:57 PDT
*** Bug 68969 has been marked as a duplicate of this bug. ***
Comment 6 Brent Fulgham 2016-03-14 11:26:25 PDT
Comment on attachment 230285 [details]
Address review comments and try to fix mac build

Marking as r- due to the age of the patch. Could you please update your code against the current source tree and resubmit for review?
Comment 7 Carlos Garcia Campos 2016-03-18 04:11:50 PDT
Created attachment 274403 [details]
Rebased patch
Comment 8 WebKit Commit Bot 2016-03-18 04:13:04 PDT
Attachment 274403 [details] did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp:784:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
ERROR: Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp:786:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
ERROR: Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp:303:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
ERROR: Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp:305:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 4 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 9 Carlos Garcia Campos 2016-03-18 04:18:22 PDT
Created attachment 274405 [details]
Fox coding style
Comment 10 Carlos Garcia Campos 2016-03-18 04:41:29 PDT
Created attachment 274406 [details]
Try to fix mac build
Comment 11 Carlos Garcia Campos 2016-03-18 04:53:44 PDT
Created attachment 274407 [details]
Try to fix mac build
Comment 12 Anders Carlsson 2016-03-18 10:11:03 PDT
Can we use a region instead of a list of vectors for occlusions?
Comment 13 Carlos Garcia Campos 2016-03-21 01:09:25 PDT
(In reply to comment #12)
> Can we use a region instead of a list of vectors for occlusions?

Yes, indeed.
Comment 14 Carlos Garcia Campos 2016-03-21 01:10:07 PDT
Created attachment 274576 [details]
Updated patch to use Region for occlusions
Comment 15 Carlos Garcia Campos 2016-04-08 23:50:27 PDT
Any other concern about this?
Comment 16 Carlos Garcia Campos 2016-07-04 00:48:08 PDT
Ping reviewers? This is more than 2 years old now...
Comment 17 Brady Eidson 2017-08-19 16:01:10 PDT
Comment on attachment 274576 [details]
Updated patch to use Region for occlusions

r-, as this has been pending review for over a year now. It is near-impossible that this patch still applies to trunk and unlikely to still be relevant in its current form.
Comment 18 Martin Robinson 2022-06-28 03:48:49 PDT
Support for plugins was removed in https://trac.webkit.org/changeset/265753/webkit.
Comment 19 Radar WebKit Bug Importer 2022-06-28 03:49:25 PDT
<rdar://problem/96050650>