diff options
author | polina@google.com <polina@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-27 04:24:30 +0000 |
---|---|---|
committer | polina@google.com <polina@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-27 04:24:30 +0000 |
commit | 06e0a34ae11c97e35ae67f6a006dc4a45cda58af (patch) | |
tree | a6766fa80232f512030a7c68726c5c6137e5a52d /ppapi/api | |
parent | 325e9d2d3e52b4402c82c9b3c0c2163ef0f09020 (diff) | |
download | chromium_src-06e0a34ae11c97e35ae67f6a006dc4a45cda58af.zip chromium_src-06e0a34ae11c97e35ae67f6a006dc4a45cda58af.tar.gz chromium_src-06e0a34ae11c97e35ae67f6a006dc4a45cda58af.tar.bz2 |
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
Review URL: http://codereview.chromium.org/7826017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102888 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/api')
-rw-r--r-- | ppapi/api/dev/ppb_fullscreen_dev.idl | 27 | ||||
-rw-r--r-- | ppapi/api/private/ppb_flash_fullscreen.idl | 11 |
2 files changed, 21 insertions, 17 deletions
diff --git a/ppapi/api/dev/ppb_fullscreen_dev.idl b/ppapi/api/dev/ppb_fullscreen_dev.idl index 6aeecff..028cda6 100644 --- a/ppapi/api/dev/ppb_fullscreen_dev.idl +++ b/ppapi/api/dev/ppb_fullscreen_dev.idl @@ -5,11 +5,11 @@ /** - * This file defines the <code>PPB_Fullscreen</code> interface. + * This file defines the <code>PPB_Fullscreen_Dev</code> interface. */ label Chrome { - M14 = 0.4 + M16 = 0.5 }; interface PPB_Fullscreen_Dev { @@ -23,23 +23,26 @@ interface PPB_Fullscreen_Dev { * Switches the plugin instance to/from fullscreen mode. Returns PP_TRUE on * success, PP_FALSE on failure. * - * This unbinds the current Graphics2D or Surface3D. Pending flushes and - * swapbuffers will execute as if the resource was off-screen. The transition - * is asynchronous. During the transition, IsFullscreen will return PP_False, - * and no Graphics2D or Surface3D can be bound. The transition ends at the - * next DidChangeView. + * This unbinds the current 2D or 3D devices. Pending flushes and swapbuffers + * will execute as if the resource was off-screen. The transition to and from + * fullscreen is asynchronous. During the transition, IsFullscreen will + * return the original value, and no 2D or 3D device can be bound. + * The transition ends at the next DidChangeView. * - * Note: when switching to and from fullscreen, Context3D and Surface3D - * resources need to be re-created. This is a current limitation that will be - * lifted in a later revision. + * The transition to fullscreen can only occur while the browser is + * processing a user gesture, even if PP_TRUE is returned. Note that two + * DidChangeView calls will happen when switching to fullscreen: + * one for moving the plugin to the middle of the window and one for + * stretching the window placing the plugin in the middle of the screen. + * Plugin size will not be affected. */ PP_Bool SetFullscreen( [in] PP_Instance instance, [in] PP_Bool fullscreen); /** - * Gets the size of the screen. When going fullscreen, the instance will be - * resized to that size. + * Gets the size of the screen in pixels. When going fullscreen, the instance + * will be resized to that size. */ PP_Bool GetScreenSize( [in] PP_Instance instance, diff --git a/ppapi/api/private/ppb_flash_fullscreen.idl b/ppapi/api/private/ppb_flash_fullscreen.idl index 9019366..59cfb93 100644 --- a/ppapi/api/private/ppb_flash_fullscreen.idl +++ b/ppapi/api/private/ppb_flash_fullscreen.idl @@ -24,10 +24,11 @@ interface PPB_FlashFullscreen { * success, PP_FALSE on failure. * * This unbinds the current Graphics2D or Surface3D. Pending flushes and - * swapbuffers will execute as if the resource was off-screen. The transition - * is asynchronous. During the transition, IsFullscreen will return PP_False, + * swapbuffers will execute as if the resource was off-screen. The transition + * is asynchronous. During the transition, IsFullscreen will return PP_FALSE, * and no Graphics2D or Surface3D can be bound. The transition ends at the - * next DidChangeView. + * next DidChangeView when going into fullscreen mode. The transition out of + * fullscreen mode is synchronous. * * Note: when switching to and from fullscreen, Context3D and Surface3D * resources need to be re-created. This is a current limitation that will be @@ -38,8 +39,8 @@ interface PPB_FlashFullscreen { [in] PP_Bool fullscreen); /** - * Gets the size of the screen. When going fullscreen, the instance will be - * resized to that size. + * Gets the size of the screen in pixels. When going fullscreen, the instance + * will be resized to that size. */ PP_Bool GetScreenSize( [in] PP_Instance instance, |