Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(108)

Issue 1612: Implement "iframe shim" behavior for windowed plugins.... (Closed)

Created:
12 years, 3 months ago by Thatcher Ulrich
Modified:
9 years, 7 months ago
CC:
chromium-reviews_googlegroups.com
Visibility:
Public.

Description

Implement "iframe shim" behavior for windowed plugins. In FF and IE on windows, iframes are implemented as native HWNDs. This has the side effect that iframes display on top of windowed plugins, regardless of z-order. This side effect has long been known as a workaround for allowing HTML elements to appear above plugin content. BUG=1788

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Patch Set 4 : '' #

Patch Set 5 : '' #

Patch Set 6 : '' #

Patch Set 7 : '' #

Patch Set 8 : '' #

Patch Set 9 : '' #

Patch Set 10 : '' #

Patch Set 11 : '' #

Patch Set 12 : '' #

Patch Set 13 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+845 lines, -171 lines) Patch
M base/base.xcodeproj/project.pbxproj View 9 10 11 12 2 chunks +0 lines, -4 lines 0 comments Download
M base/build/base_gfx.vcproj View 8 9 10 11 12 2 chunks +8 lines, -8 lines 0 comments Download
D base/gfx/bitmap_header.h View 8 9 10 11 12 1 chunk +0 lines, -32 lines 0 comments Download
D base/gfx/bitmap_header.cc View 8 9 10 11 12 1 chunk +0 lines, -64 lines 0 comments Download
M base/gfx/bitmap_platform_device_win.cc View 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
A + base/gfx/gdi_util.h View 2 chunks +8 lines, -3 lines 0 comments Download
A + base/gfx/gdi_util.cc View 2 chunks +17 lines, -1 line 0 comments Download
M base/gfx/native_theme.cc View 1 chunk +1 line, -1 line 0 comments Download
M base/gfx/vector_canvas_unittest.cc View 1 chunk +1 line, -1 line 0 comments Download
M base/gfx/vector_device.cc View 1 chunk +1 line, -1 line 0 comments Download
M base/tuple.h View 8 9 10 11 12 12 chunks +121 lines, -2 lines 0 comments Download
M base/tuple_unittest.cc View 8 9 10 11 12 4 chunks +18 lines, -1 line 0 comments Download
M chrome/browser/drag_utils.cc View 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/printing/printing_layout_uitest.cc View 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/render_widget_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +2 lines, -1 line 0 comments Download
M chrome/browser/render_widget_host_hwnd.cc View 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M chrome/common/ipc_message_macros.h View 8 9 10 11 12 4 chunks +22 lines, -0 lines 0 comments Download
M chrome/common/ipc_message_utils.h View 8 9 10 11 12 1 chunk +34 lines, -0 lines 0 comments Download
M chrome/common/plugin_messages_internal.h View 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -1 line 0 comments Download
M chrome/common/render_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +4 lines, -0 lines 0 comments Download
M chrome/common/win_util.cc View 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M chrome/plugin/webplugin_delegate_stub.h View 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -1 line 0 comments Download
M chrome/plugin/webplugin_delegate_stub.cc View 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -1 line 0 comments Download
M chrome/plugin/webplugin_proxy.h View 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M chrome/plugin/webplugin_proxy.cc View 8 9 10 11 12 2 chunks +3 lines, -2 lines 0 comments Download
M chrome/renderer/render_view.cc View 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M chrome/renderer/webplugin_delegate_proxy.h View 4 5 6 7 8 9 10 11 12 2 chunks +4 lines, -1 line 0 comments Download
M chrome/renderer/webplugin_delegate_proxy.cc View 4 5 6 7 8 9 10 11 12 3 chunks +9 lines, -5 lines 0 comments Download
A chrome/test/data/npapi/iframe_shims.html View 4 5 1 chunk +68 lines, -0 lines 0 comments Download
chrome/test/data/npapi/simple_blank.swf View 0 chunks +-1 lines, --1 lines 0 comments Download
M webkit/build/glue/glue.vcproj View 8 9 10 11 12 1 chunk +8 lines, -0 lines 0 comments Download
A webkit/data/layout_tests/pending/plugins/iframe-shims.html View 6 1 chunk +145 lines, -0 lines 0 comments Download
A webkit/data/layout_tests/pending/plugins/iframe-shims-expected.txt View 6 1 chunk +6 lines, -0 lines 0 comments Download
webkit/data/layout_tests/pending/plugins/simple_blank.swf View 0 chunks +-1 lines, --1 lines 0 comments Download
M webkit/glue/plugins/webplugin_delegate_impl.h View 4 5 6 7 8 9 10 11 12 5 chunks +11 lines, -3 lines 0 comments Download
M webkit/glue/plugins/webplugin_delegate_impl.cc View 4 5 6 7 8 9 10 11 12 7 chunks +29 lines, -16 lines 0 comments Download
A webkit/glue/stacking_order_iterator.h View 1 chunk +73 lines, -0 lines 0 comments Download
A webkit/glue/stacking_order_iterator.cc View 1 chunk +137 lines, -0 lines 0 comments Download
M webkit/glue/webcursor.cc View 8 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M webkit/glue/webplugin.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M webkit/glue/webplugin_delegate.h View 4 5 6 7 8 9 10 11 12 2 chunks +11 lines, -5 lines 0 comments Download
M webkit/glue/webplugin_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +17 lines, -1 line 0 comments Download
M webkit/glue/webplugin_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 10 chunks +59 lines, -6 lines 0 comments Download
M webkit/port/platform/graphics/ImageSkia.cpp View 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M webkit/port/platform/graphics/SkiaUtils.cpp View 1 chunk +1 line, -1 line 0 comments Download
M webkit/tools/test_shell/test_webview_delegate.cc View 6 7 8 9 10 11 12 1 chunk +2 lines, -1 line 0 comments Download
M webkit/webkit.xcodeproj/project.pbxproj View 9 10 11 12 6 chunks +8 lines, -2 lines 0 comments Download

Messages

Total messages: 16 (0 generated)
Thatcher Ulrich
12 years, 3 months ago (2008-09-08 01:24:28 UTC) #1
ojan
Drive-by review: http://codereview.chromium.org/1612/diff/1/6 File webkit/glue/webplugin_impl.cc (right): http://codereview.chromium.org/1612/diff/1/6#newcode545 Line 545: if (n && n->hasTagName(WebCore::HTMLNames::iframeTag)) { I ...
12 years, 3 months ago (2008-09-08 05:39:11 UTC) #2
Thatcher Ulrich
On 2008/09/08 05:39:11, ojan wrote: > Drive-by review: > > http://codereview.chromium.org/1612/diff/1/6 > File webkit/glue/webplugin_impl.cc (right): ...
12 years, 3 months ago (2008-09-08 22:06:11 UTC) #3
Thatcher Ulrich
On 2008/09/08 22:06:11, Thatcher Ulrich wrote: > > Here's a test page: http://tulrich.com/iframe_shims/ FYI I ...
12 years, 3 months ago (2008-09-08 22:07:45 UTC) #4
Thatcher Ulrich
[reitveld doesn't seem to be following the email thread so I'm quoting manually] On Mon, ...
12 years, 3 months ago (2008-09-09 13:36:38 UTC) #5
Thatcher Ulrich
On 2008/09/09 13:36:38, Thatcher Ulrich wrote: > [reitveld doesn't seem to be following the email ...
12 years, 3 months ago (2008-09-09 13:39:47 UTC) #6
ojan
OK. Talked to Hyatt and he's fine with making a change like this to WebKit. ...
12 years, 3 months ago (2008-09-10 01:17:54 UTC) #7
Thatcher Ulrich
Hi Ojan, I updated the iframe test page at http://tulrich.com/iframe_shims/ to test z-index scenarios and ...
12 years, 3 months ago (2008-09-11 20:49:32 UTC) #8
jam
some nits http://codereview.chromium.org/1612/diff/601/810 File chrome/common/plugin_messages_internal.h (right): http://codereview.chromium.org/1612/diff/601/810#newcode121 Line 121: std::vector<gfx::Rect>, put the variable name in ...
12 years, 3 months ago (2008-09-15 18:37:44 UTC) #9
Thatcher Ulrich
http://codereview.chromium.org/1612/diff/601/810 File chrome/common/plugin_messages_internal.h (right): http://codereview.chromium.org/1612/diff/601/810#newcode121 Line 121: std::vector<gfx::Rect>, On 2008/09/15 18:37:48, jam wrote: > put ...
12 years, 3 months ago (2008-09-15 19:30:58 UTC) #10
ojan
Couple nits about the test. I'd really like to see if there is more we ...
12 years, 3 months ago (2008-09-16 01:34:18 UTC) #11
Thatcher Ulrich
http://codereview.chromium.org/1612/diff/604/851 File chrome/test/data/npapi/iframe_shims.html (right): http://codereview.chromium.org/1612/diff/604/851#newcode1 Line 1: <html><head> (I figured out how to run this ...
12 years, 3 months ago (2008-09-16 20:56:16 UTC) #12
Thatcher Ulrich
Ping? On 2008/09/16 20:56:16, Thatcher Ulrich wrote: > http://codereview.chromium.org/1612/diff/604/851 > File chrome/test/data/npapi/iframe_shims.html (right): > > ...
12 years, 3 months ago (2008-09-23 18:27:24 UTC) #13
darin (slow to review)
LGTM I'm fine with this landing initially in our code, but please do work with ...
12 years, 3 months ago (2008-09-23 23:20:00 UTC) #14
ojan
LGTM pending addressing darin's comments. Thanks for getting the layout test version working. That looks ...
12 years, 3 months ago (2008-09-24 02:37:52 UTC) #15
Thatcher Ulrich
12 years, 3 months ago (2008-09-25 14:56:22 UTC) #16
Comments addressed, see notes below.  I'm going to submit ASAP, once I'm
confident that the build is OK.

http://codereview.chromium.org/1612/diff/624/899
File webkit/glue/plugins/webplugin_delegate_impl.cc (right):

http://codereview.chromium.org/1612/diff/624/899#newcode612
Line 612: if (cutout_rects.size()) {
On 2008/09/23 23:20:01, Darin Fisher (Google) wrote:
> nit: it seems like it would be nifty to make this a helper function into
> base/gfx/gdi_util.{h,cc} so that it doesn't have to be duplicated.  my
> recommendation is to just "svn mv" bitmap_header.h to become gdi_util.h (same
> for bitmap_header.cc).

Done.

http://codereview.chromium.org/1612/diff/624/897
File webkit/glue/webplugin_impl.cc (right):

http://codereview.chromium.org/1612/diff/624/897#newcode590
Line 590: class StackingOrderIterator {
On 2008/09/23 23:20:01, Darin Fisher (Google) wrote:
> nit: please move these classes into webkit/glue/stacking_order_iterator.{h,cc}
> (or some other file name if you prefer).

Done.

http://codereview.chromium.org/1612/diff/624/896
File webkit/glue/webplugin_impl.h (right):

http://codereview.chromium.org/1612/diff/624/896#newcode72
Line 72: virtual void windowCutoutRects(WTF::Vector<WebCore::IntRect>* cutouts)
const;
On 2008/09/23 23:20:01, Darin Fisher (Google) wrote:
> why is this virtual?

The idea is that it should become a virtual method of WebCore::Widget (hyatt
suggested this in one of the chats), so this would be the overload.

http://codereview.chromium.org/1612/diff/624/896#newcode183
Line 183: virtual void windowCutoutRects(WTF::Vector<WebCore::IntRect>* rects)
const;
On 2008/09/23 23:20:01, Darin Fisher (Google) wrote:
> why is this virtual?
> 
> i don't see this method on WebCore::Widget, so it probably shouldn't be in the
> section for "Widget implementation"

Moving to WebCore::Widget is a TODO, so I added a comment here.

Powered by Google App Engine
This is Rietveld 408576698