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

Issue 7826017: Add PPB_Fullscreen;0.5. (Closed)

Created:
9 years, 3 months ago by polina
Modified:
9 years, 2 months ago
Reviewers:
jeremya, brettw, piman
CC:
chromium-reviews, piman+watch_chromium.org, darin-cc_chromium.org, yzshen1, scheib
Visibility:
Public.

Description

Add PPB_Fullscreen_Dev;0.5. Keep 0.4 for backwards compatiblity and point it to PPB_FlashFullscreen. The new implementation is based on http://codereview.chromium.org/7714017/ with some bug fixes. Update header comments. Main API differences between the old and the new implementation: - transition from fullscreen is now asynchronous and ends at DidChangeView just like transition to fullscreen; graphics devices cannot be bound during the transition. - when switching to/from fullscreen 3D resources no longer need to be re-created. - transitions to fullscreen are only possible when processing user user gestures. - transition to fullscreen results in 2 DidChangeViews, one for moving the plugin to the middle of the window and one for stretching the window and placing the plugin in the middle of the screen. - the size of the plugin is not changed when going to/from fullscreen. Testing: - Mapped ppapi_tests:test_fullscreen to ppapi_tests:test_flash_fullscreen. - Updated test_fullscreen to work with the new implementation. To be testable automatically this needs enhancements to the testing infrastructure for generating user gestures. For now marked the test as DISABLED. - Disabled NaCl's ppapi_ppb_fullscreen_browser_test for the same reasons as above. - To re-enable both tests, we will first need to add user gesture capabilites to PPB_Testing. - Build 0.4 ppapi_test:test_fullscreen and ran this out of process and in process with the newly build revision of chrome to verify backwards compatability. - In a separate CL, will update NaCl's ppapi_ppb_fullscreen_browser_test to work with the new implementation, for now only manually. BUG=41780 TEST=see above Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=102888

Patch Set 1 : '' #

Total comments: 9

Patch Set 2 : '' #

Patch Set 3 : '' #

Patch Set 4 : '' #

Total comments: 12

Patch Set 5 : '' #

Patch Set 6 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+462 lines, -157 lines) Patch
M chrome/test/ui/ppapi_uitest.cc View 1 2 3 4 5 1 chunk +15 lines, -2 lines 0 comments Download
M content/renderer/pepper_plugin_delegate_impl.cc View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M ppapi/api/dev/ppb_fullscreen_dev.idl View 1 2 3 4 5 2 chunks +15 lines, -12 lines 0 comments Download
M ppapi/api/private/ppb_flash_fullscreen.idl View 1 2 3 4 5 2 chunks +6 lines, -5 lines 0 comments Download
M ppapi/c/dev/ppb_fullscreen_dev.h View 1 2 3 4 5 3 chunks +17 lines, -14 lines 0 comments Download
M ppapi/c/private/ppb_flash_fullscreen.h View 1 2 3 4 5 3 chunks +10 lines, -4 lines 0 comments Download
M ppapi/native_client/tests/ppapi_browser/ppb_fullscreen/nacl.scons View 1 2 3 4 5 1 chunk +11 lines, -5 lines 0 comments Download
M ppapi/ppapi_tests.gypi View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download
M ppapi/proxy/plugin_dispatcher.h View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M ppapi/proxy/plugin_dispatcher.cc View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M ppapi/proxy/ppapi_messages.h View 1 2 3 4 5 2 chunks +11 lines, -2 lines 0 comments Download
M ppapi/proxy/ppb_instance_proxy.h View 1 2 3 4 5 2 chunks +14 lines, -3 lines 0 comments Download
M ppapi/proxy/ppb_instance_proxy.cc View 1 2 3 4 5 5 chunks +48 lines, -3 lines 0 comments Download
M ppapi/proxy/ppp_instance_proxy.h View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M ppapi/proxy/ppp_instance_proxy.cc View 1 2 3 4 5 3 chunks +11 lines, -2 lines 0 comments Download
M ppapi/proxy/ppp_instance_proxy_unittest.cc View 1 2 3 4 5 4 chunks +5 lines, -2 lines 0 comments Download
M ppapi/tests/test_case.html View 1 2 3 4 5 1 chunk +4 lines, -0 lines 0 comments Download
A + ppapi/tests/test_flash_fullscreen.h View 1 4 chunks +7 lines, -7 lines 0 comments Download
A + ppapi/tests/test_flash_fullscreen.cc View 1 2 5 chunks +10 lines, -10 lines 0 comments Download
M ppapi/tests/test_fullscreen.h View 1 2 3 4 5 2 chunks +16 lines, -1 line 0 comments Download
M ppapi/tests/test_fullscreen.cc View 1 2 3 4 5 6 chunks +106 lines, -48 lines 0 comments Download
M ppapi/thunk/interfaces_ppb_private.h View 1 2 3 4 5 1 chunk +4 lines, -0 lines 0 comments Download
M ppapi/thunk/ppb_fullscreen_thunk.cc View 1 2 3 4 5 1 chunk +3 lines, -3 lines 0 comments Download
M ppapi/thunk/ppb_instance_api.h View 1 2 3 4 5 1 chunk +6 lines, -0 lines 0 comments Download
M webkit/plugins/ppapi/plugin_module.cc View 1 2 3 4 5 1 chunk +2 lines, -0 lines 0 comments Download
M webkit/plugins/ppapi/ppapi_plugin_instance.h View 1 2 3 4 5 5 chunks +59 lines, -12 lines 0 comments Download
M webkit/plugins/ppapi/ppapi_plugin_instance.cc View 1 2 3 4 5 10 chunks +69 lines, -15 lines 0 comments Download
M webkit/plugins/ppapi/ppapi_webplugin_impl.cc View 1 2 3 4 5 3 chunks +3 lines, -3 lines 0 comments Download

Messages

Total messages: 12 (0 generated)
polina
This is a draft. It is passing with a NaCl-based test for PPB_Fullscreen_Dev, so I ...
9 years, 3 months ago (2011-09-09 00:38:16 UTC) #1
piman
http://codereview.chromium.org/7826017/diff/19001/ppapi/api/dev/ppb_fullscreen_dev.idl File ppapi/api/dev/ppb_fullscreen_dev.idl (right): http://codereview.chromium.org/7826017/diff/19001/ppapi/api/dev/ppb_fullscreen_dev.idl#newcode44 ppapi/api/dev/ppb_fullscreen_dev.idl:44: PP_Bool GetScreenSize( Maybe we can remove this function from ...
9 years, 3 months ago (2011-09-09 01:33:44 UTC) #2
jeremya
http://codereview.chromium.org/7826017/diff/19001/webkit/plugins/ppapi/ppapi_plugin_instance.cc File webkit/plugins/ppapi/ppapi_plugin_instance.cc (right): http://codereview.chromium.org/7826017/diff/19001/webkit/plugins/ppapi/ppapi_plugin_instance.cc#newcode919 webkit/plugins/ppapi/ppapi_plugin_instance.cc:919: BindGraphics(pp_instance(), 0); Is it necessary to unbind the graphics ...
9 years, 3 months ago (2011-09-09 17:45:35 UTC) #3
jeremya
I just tried to patch this in to a local client, and it doesn't apply: ...
9 years, 3 months ago (2011-09-23 20:04:28 UTC) #4
polina
New version uploaded. Please take a look. The approach and the surrounding code have changed ...
9 years, 2 months ago (2011-09-26 21:57:00 UTC) #5
polina
http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl File ppapi/api/dev/ppb_fullscreen_dev.idl (right): http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl#newcode37 ppapi/api/dev/ppb_fullscreen_dev.idl:37: * Plugin size will not be affected. I am ...
9 years, 2 months ago (2011-09-26 22:12:36 UTC) #6
polina
http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl File ppapi/api/dev/ppb_fullscreen_dev.idl (right): http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl#newcode37 ppapi/api/dev/ppb_fullscreen_dev.idl:37: * Plugin size will not be affected. Also, please ...
9 years, 2 months ago (2011-09-26 22:24:10 UTC) #7
piman
http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl File ppapi/api/dev/ppb_fullscreen_dev.idl (right): http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl#newcode37 ppapi/api/dev/ppb_fullscreen_dev.idl:37: * Plugin size will not be affected. On 2011/09/26 ...
9 years, 2 months ago (2011-09-26 23:01:03 UTC) #8
brettw
I'm OK with the double interface for now. LGTM http://codereview.chromium.org/7826017/diff/50041/ppapi/tests/test_fullscreen.cc File ppapi/tests/test_fullscreen.cc (right): http://codereview.chromium.org/7826017/diff/50041/ppapi/tests/test_fullscreen.cc#newcode34 ppapi/tests/test_fullscreen.cc:34: ...
9 years, 2 months ago (2011-09-27 00:04:20 UTC) #9
polina
http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl File ppapi/api/dev/ppb_fullscreen_dev.idl (right): http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl#newcode37 ppapi/api/dev/ppb_fullscreen_dev.idl:37: * Plugin size will not be affected. On 2011/09/26 ...
9 years, 2 months ago (2011-09-27 00:49:08 UTC) #10
piman
On Mon, Sep 26, 2011 at 5:49 PM, <polina@google.com> wrote: > > http://codereview.chromium.**org/7826017/diff/50041/ppapi/** > api/dev/ppb_fullscreen_dev.idl<http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl> ...
9 years, 2 months ago (2011-09-27 00:52:39 UTC) #11
polina
9 years, 2 months ago (2011-09-27 01:06:13 UTC) #12
That's useful to know. Since Flash has a back-up implementation, my plan is to
get this CL as-is and address all the concerns we have for Flash and otherwise
in later CLs.

Thanks,
P.

On 2011/09/27 00:52:39, piman wrote:
> On Mon, Sep 26, 2011 at 5:49 PM, <mailto:polina@google.com> wrote:
> 
> >
> > http://codereview.chromium.**org/7826017/diff/50041/ppapi/**
> >
>
api/dev/ppb_fullscreen_dev.idl<http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl>
> > File ppapi/api/dev/ppb_fullscreen_**dev.idl (right):
> >
> > http://codereview.chromium.**org/7826017/diff/50041/ppapi/**
> >
>
api/dev/ppb_fullscreen_dev.**idl#newcode37<http://codereview.chromium.org/7826017/diff/50041/ppapi/api/dev/ppb_fullscreen_dev.idl#newcode37>
> > ppapi/api/dev/ppb_fullscreen_**dev.idl:37: * Plugin size will not be
> > affected.
> > On 2011/09/26 23:01:03, piman wrote:
> >
> >> On 2011/09/26 22:24:10, polina wrote:
> >> > Also, please not that the plugin is not resized to occupy the entire
> >>
> > screen.
> >
> >> > What approach do we recommend developers use to address that?
> >>
> >
> >  I don't understand this... How can a plugin deal with full-screen if
> >>
> > the
> >
> >> instance isn't at the size of the full screen?
> >>
> >
> > I was surprised by this behavior myself. In his JS demo here:
> >
>
http://www.corp.google.com/%7E**jeremya/fullscreen.html%3Chttp://www.corp.goo...>,
> > Jeremy used
> >
> > <style>
> >    <...>
> >    :-webkit-full-screen {
> >        width: 100%; height: 100%;
> >    }
> > </style>
> >
> > I am not aware of a way to resize the plugin to larger dimensions from
> > Pepper C/C++. And I would prefer it if developers did not have to worry
> > about this in either JS or C/C++. I think we should do it for them.
> > Jeremy can comment on why he implemented things this way, and if he is
> > planning on changing this behavior. If not, we should consider
> > addressing it in the Pepper layer although it is undesirable for us not
> > to match JS behavior.
> 
> 
> FYI Flash needs this. Behind-the-scenes "transparent" scaling is not enough.
> 
> Antoine
> 
> 
> >
> >
> > http://codereview.chromium.**org/7826017/diff/50041/ppapi/**
> >
>
tests/test_fullscreen.cc<http://codereview.chromium.org/7826017/diff/50041/ppapi/tests/test_fullscreen.cc>
> > File ppapi/tests/test_fullscreen.cc (right):
> >
> > http://codereview.chromium.**org/7826017/diff/50041/ppapi/**
> >
>
tests/test_fullscreen.cc#**newcode34<http://codereview.chromium.org/7826017/diff/50041/ppapi/tests/test_fullscreen.cc#newcode34>
> > ppapi/tests/test_fullscreen.**cc:34: error_(""),
> > On 2011/09/27 00:04:20, brettw wrote:
> >
> >> Just use error_() (the "" version requires more work for no benefit).
> >>
> >
> > Done.
> >
> >
> > http://codereview.chromium.**org/7826017/diff/50041/ppapi/**
> >
>
tests/test_fullscreen.cc#**newcode64<http://codereview.chromium.org/7826017/diff/50041/ppapi/tests/test_fullscreen.cc#newcode64>
> > ppapi/tests/test_fullscreen.**cc:64: error_ = "";
> > On 2011/09/27 00:04:20, brettw wrote:
> >
> >> error_.clear()?
> >>
> >
> > Done.
> >
> >
> > http://codereview.chromium.**org/7826017/diff/50041/ppapi/**
> >
>
thunk/ppb_instance_api.h<http://codereview.chromium.org/7826017/diff/50041/ppapi/thunk/ppb_instance_api.h>
> > File ppapi/thunk/ppb_instance_api.h (right):
> >
> > http://codereview.chromium.**org/7826017/diff/50041/ppapi/**
> >
>
thunk/ppb_instance_api.h#**newcode60<http://codereview.chromium.org/7826017/diff/50041/ppapi/thunk/ppb_instance_api.h#newcode60>
> > ppapi/thunk/ppb_instance_api.**h:60:
> > On 2011/09/27 00:04:20, brettw wrote:
> >
> >> Extra blank?
> >>
> >
> > Done.
> >
> >
> > http://codereview.chromium.**org/7826017/diff/50041/webkit/**
> >
>
plugins/ppapi/ppapi_plugin_**instance.cc<http://codereview.chromium.org/7826017/diff/50041/webkit/plugins/ppapi/ppapi_plugin_instance.cc>
> > File webkit/plugins/ppapi/ppapi_**plugin_instance.cc (right):
> >
> > http://codereview.chromium.**org/7826017/diff/50041/webkit/**
> >
>
plugins/ppapi/ppapi_plugin_**instance.cc#newcode940<http://codereview.chromium.org/7826017/diff/50041/webkit/plugins/ppapi/ppapi_plugin_instance.cc#newcode940>
> > webkit/plugins/ppapi/ppapi_**plugin_instance.cc:940:
> > BindGraphics(pp_instance(), 0);
> > On 2011/09/27 00:04:20, brettw wrote:
> >
> >> FYI I'm guessing we'll want to remove this and keep the old device
> >>
> > bound. We can
> >
> >> discuss this later. I think the "everything will be unbound" in the
> >>
> > spec was
> >
> >> driven by implementation details in the old code.
> >>
> >
> > Please see my response to question Jeremy had about this 1st patch set.
> > This is one of the issues that I wanted to have an API review for.
> >
> >
> >
>
http://codereview.chromium.**org/7826017/%3Chttp://codereview.chromium.org/78...>
> >

Powered by Google App Engine
This is Rietveld 408576698