Allow an web app to provide a hint that the navigation bar should be shown. Proposal: https://github.com/dtapuska/fullscreen
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3 commit c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3 Author: Dave Tapuska <dtapuska@chromium.org> Date: Fri Apr 13 19:24:18 2018 Add FullscreenOptions to requestFullscreen() method. Adjust ToggleFullscreen IPC to be two IPCs (Enter/Exit). Pass the options on the Enter IPC. This change is only plumbing necessary to get the options up to the content layer. A follow-on CL will be created that will modify the implementation of fullscreen on Android and plumbing at the WebContents layer. BUG= 829937 Change-Id: I76ff73b6435bc6ae2ead57f06a98557a4961258d Reviewed-on: https://chromium-review.googlesource.com/999831 Commit-Queue: Dave Tapuska <dtapuska@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Philip Jägenstedt <foolip@chromium.org> Cr-Commit-Position: refs/heads/master@{#550716} [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/content/browser/frame_host/render_frame_host_impl.h [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/content/browser/screen_orientation/screen_orientation_provider_unittest.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/content/browser/web_contents/web_contents_impl_unittest.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/content/common/DEPS [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/content/common/frame_messages.h [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/content/renderer/render_frame_impl.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/content/renderer/render_frame_impl.h [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/public/web/web_frame_client.h [add] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/public/web/web_fullscreen_options.h [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/core_idl_files.gni [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/exported/web_remote_frame_impl.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/exported/web_view_impl.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/exported/web_view_impl.h [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/frame/fullscreen_controller.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/frame/fullscreen_controller.h [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/fullscreen/element_fullscreen.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/fullscreen/element_fullscreen.h [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/fullscreen/element_fullscreen.idl [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/fullscreen/fullscreen.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/fullscreen/fullscreen.h [add] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/fullscreen/fullscreen_options.idl [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/html/media/html_video_element.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/html/media/html_video_element_persistent_test.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/page/chrome_client.h [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/page/chrome_client_impl.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/core/page/chrome_client_impl.h [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/modules/media_controls/media_controls_orientation_lock_delegate_test.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/modules/media_controls/media_controls_rotate_to_fullscreen_delegate_test.cc [modify] https://crrev.com/c06acc70ec3e935c5e2c7c757c0d6f57cd15eca3/third_party/blink/renderer/platform/runtime_enabled_features.json5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3ed44192c56b4639d4165624c8ce0e49ce18d8d6 commit 3ed44192c56b4639d4165624c8ce0e49ce18d8d6 Author: Dave Tapuska <dtapuska@chromium.org> Date: Tue May 01 18:53:30 2018 Add plumbing necessary to pass FullscreenOptions around. Created a java side mirror object to the class that can be parceled into an intent so that it works with the FullscreenActivity code. Change TabObserver from onToggleFullscreenMode to onEnterFullscreenMode/onExitFullscreenMode so that we could pass the FullscreenOptions around. This change does not have any behavior changes as of yet it is just plumbing passing options around. BUG= 829937 Change-Id: I8599df0e155de78704d70dd22f886cd94f68d6ff Reviewed-on: https://chromium-review.googlesource.com/1030837 Reviewed-by: Avi Drissman <avi@chromium.org> Reviewed-by: Bo <boliu@chromium.org> Reviewed-by: Reilly Grant <reillyg@chromium.org> Reviewed-by: Rick Byers <rbyers@chromium.org> Reviewed-by: Ted Choc <tedchoc@chromium.org> Commit-Queue: Dave Tapuska <dtapuska@chromium.org> Cr-Commit-Position: refs/heads/master@{#555125} [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/android_webview/browser/aw_web_contents_delegate.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/android_webview/browser/aw_web_contents_delegate.h [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/FullscreenActivity.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java [add] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenOptions.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPictureController.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/tab/EmptyTabObserver.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/tab/TabObserver.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappActivity.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/java_sources.gni [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/javatests/src/org/chromium/chrome/browser/FullscreenActivityTest.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/android/javatests/src/org/chromium/chrome/browser/video/FullscreenVideoTest.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/browser/DEPS [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/browser/extensions/api/tab_capture/offscreen_tab.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/browser/extensions/api/tab_capture/offscreen_tab.h [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/browser/ui/browser.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/browser/ui/browser.h [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/browser/ui/exclusive_access/fullscreen_controller_interactive_browsertest.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/browser/ui/exclusive_access/fullscreen_controller_test.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/browser/ui/views/fullscreen_control/fullscreen_control_view_interactive_uitest.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/chrome/test/android/javatests/src/org/chromium/chrome/test/util/FullscreenTestUtils.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/components/web_contents_delegate_android/java/src/org/chromium/components/web_contents_delegate_android/WebContentsDelegateAndroid.java [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/components/web_contents_delegate_android/web_contents_delegate_android.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/components/web_contents_delegate_android/web_contents_delegate_android.h [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/browser/DEPS [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/browser/accessibility/fullscreen_browsertest.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/browser/frame_host/render_frame_host_delegate.h [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/browser/keyboard_lock_browsertest.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/browser/screen_orientation/screen_orientation_provider_unittest.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/browser/web_contents/web_contents_impl.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/browser/web_contents/web_contents_impl.h [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/browser/web_contents/web_contents_impl_browsertest.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/browser/web_contents/web_contents_impl_unittest.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/public/browser/web_contents_delegate.h [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/shell/browser/shell.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/content/shell/browser/shell.h [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/extensions/browser/app_window/app_window.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/extensions/browser/app_window/app_window.h [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/extensions/browser/guest_view/web_view/web_view_guest.cc [modify] https://crrev.com/3ed44192c56b4639d4165624c8ce0e49ce18d8d6/extensions/browser/guest_view/web_view/web_view_guest.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cb0954ccecb91fa7be88d00f82d96ea0d17f23eb commit cb0954ccecb91fa7be88d00f82d96ea0d17f23eb Author: Dave Tapuska <dtapuska@chromium.org> Date: Thu May 03 20:26:12 2018 Add support for showing the navigation bar in fullscreen mode. Adjust the flags so that the FullscreenOptions object is read and the system ui visibility flags are set appropriately. BUG= 829937 Change-Id: I698f0dabd4ca9acfad27f1efc4ffb75361e7df69 Reviewed-on: https://chromium-review.googlesource.com/1034600 Commit-Queue: Dave Tapuska <dtapuska@chromium.org> Reviewed-by: Philip Jägenstedt <foolip@chromium.org> Reviewed-by: Ted Choc <tedchoc@chromium.org> Cr-Commit-Position: refs/heads/master@{#555856} [modify] https://crrev.com/cb0954ccecb91fa7be88d00f82d96ea0d17f23eb/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java [modify] https://crrev.com/cb0954ccecb91fa7be88d00f82d96ea0d17f23eb/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenOptions.java [modify] https://crrev.com/cb0954ccecb91fa7be88d00f82d96ea0d17f23eb/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java [modify] https://crrev.com/cb0954ccecb91fa7be88d00f82d96ea0d17f23eb/third_party/blink/public/web/web_fullscreen_options.h [modify] https://crrev.com/cb0954ccecb91fa7be88d00f82d96ea0d17f23eb/third_party/blink/renderer/core/frame/fullscreen_controller.cc [modify] https://crrev.com/cb0954ccecb91fa7be88d00f82d96ea0d17f23eb/third_party/blink/renderer/platform/runtime_enabled_features.json5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0ee361b608b0dc63491bbc3662299d51fbfbcafb commit 0ee361b608b0dc63491bbc3662299d51fbfbcafb Author: Dave Tapuska <dtapuska@chromium.org> Date: Mon Aug 27 18:56:00 2018 Adjust FullscreenOptions API to navigationUI from prefersNavigationBar The spec pull request has been updated provided feedback from others: https://github.com/whatwg/fullscreen/pull/129#issuecomment-415873900 This change brings our implementation to match the current pull request. BUG= 829937 Change-Id: I9374ddcb694e4322090da1cc8b4ce0c51628158a Reviewed-on: https://chromium-review.googlesource.com/1188885 Reviewed-by: Ted Choc <tedchoc@chromium.org> Commit-Queue: Dave Tapuska <dtapuska@chromium.org> Cr-Commit-Position: refs/heads/master@{#586348} [modify] https://crrev.com/0ee361b608b0dc63491bbc3662299d51fbfbcafb/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java [modify] https://crrev.com/0ee361b608b0dc63491bbc3662299d51fbfbcafb/third_party/blink/renderer/core/frame/fullscreen_controller.cc [modify] https://crrev.com/0ee361b608b0dc63491bbc3662299d51fbfbcafb/third_party/blink/renderer/core/fullscreen/fullscreen_options.idl
Comment 1 by bugdroid1@chromium.org
, Apr 13 2018