This is a tracking issue for the pip in ChromeOS. It might includes some UI integration work between Android and ChromeOS, pip mode swap between chrome and android apps, etc. android pip tracking: b:69370942
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c0142849b6bc724da046351df256092fefe31d1e commit c0142849b6bc724da046351df256092fefe31d1e Author: Eliot Courtney <edcourtney@google.com> Date: Wed Jun 13 02:31:31 2018 Don't allow splitview for PIPed windows. BUG=b:109773984 BUG=841886 Change-Id: Ib04cd920450f7e63e779220b24a65956f3bc1e1f Reviewed-on: https://chromium-review.googlesource.com/1088342 Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Reviewed-by: Stefan Kuhne <skuhne@chromium.org> Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Cr-Commit-Position: refs/heads/master@{#566694} [modify] https://crrev.com/c0142849b6bc724da046351df256092fefe31d1e/ash/wm/tablet_mode/tablet_mode_backdrop_delegate_impl.cc [modify] https://crrev.com/c0142849b6bc724da046351df256092fefe31d1e/ash/wm/window_state.cc [modify] https://crrev.com/c0142849b6bc724da046351df256092fefe31d1e/ash/wm/window_state.h [modify] https://crrev.com/c0142849b6bc724da046351df256092fefe31d1e/ash/wm/window_state_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d7fe03e6d0e203410ea068047e77b1fc96a7cae5 commit d7fe03e6d0e203410ea068047e77b1fc96a7cae5 Author: Eliot Courtney <edcourtney@google.com> Date: Fri Jul 20 07:26:37 2018 [pip] Add ArcPipBridge. Currently this only contains some basic things for telling Chrome when Android PIP has started or finished, but later we may add more. Bug: 841886 Bug: b/69370942 Test: compiles and ARC runs. ArcPipBridge comes up as well. Change-Id: I14ac5b6d8628c4cc2f571f06690e6d3c228d943d Reviewed-on: https://chromium-review.googlesource.com/1120085 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mattias Nissler <mnissler@chromium.org> Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org> Cr-Commit-Position: refs/heads/master@{#576803} [modify] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/chrome/browser/chromeos/BUILD.gn [modify] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/chrome/browser/chromeos/arc/arc_service_launcher.cc [add] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/chrome/browser/chromeos/arc/pip/arc_pip_bridge.cc [add] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/chrome/browser/chromeos/arc/pip/arc_pip_bridge.h [modify] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/components/arc/arc_bridge_host_impl.cc [modify] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/components/arc/arc_bridge_host_impl.h [modify] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/components/arc/arc_bridge_service.h [modify] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/components/arc/common/BUILD.gn [modify] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/components/arc/common/arc_bridge.mojom [add] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/components/arc/common/pip.mojom [modify] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/components/arc/test/fake_arc_bridge_host.cc [modify] https://crrev.com/d7fe03e6d0e203410ea068047e77b1fc96a7cae5/components/arc/test/fake_arc_bridge_host.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/060c450bd625a0bb9a82bb28c16ec9ad3d75e26e commit 060c450bd625a0bb9a82bb28c16ec9ad3d75e26e Author: Eliot Courtney <edcourtney@google.com> Date: Thu Aug 09 09:43:36 2018 [pip] Let PictureInPictureWindowManager enter PIP without a WebContents. Bug: 841886 Bug: b/69370942 Test: browser_tests Change-Id: I2e054dfb2e78032cecceb55c8998f0ee64259cc8 Reviewed-on: https://chromium-review.googlesource.com/1156202 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#581846} [modify] https://crrev.com/060c450bd625a0bb9a82bb28c16ec9ad3d75e26e/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc [modify] https://crrev.com/060c450bd625a0bb9a82bb28c16ec9ad3d75e26e/chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc [modify] https://crrev.com/060c450bd625a0bb9a82bb28c16ec9ad3d75e26e/chrome/browser/picture_in_picture/picture_in_picture_window_manager.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a1cdb7ae54654709ab3679f2c11df440950d08a4 commit a1cdb7ae54654709ab3679f2c11df440950d08a4 Author: Eliot Courtney <edcourtney@google.com> Date: Tue Aug 21 08:39:46 2018 Only allow one PIP window between Chrome and Android. Bug: 841886 Bug: b/69370942 Test: unit test Test: manually tested Android PIP causing Chrome PIP to close and vice-versa Change-Id: Ic524db7d48b31d3351a3a669fc48b769a155d956 Reviewed-on: https://chromium-review.googlesource.com/1145148 Reviewed-by: Hidehiko Abe <hidehiko@chromium.org> Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org> Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Cr-Commit-Position: refs/heads/master@{#584689} [modify] https://crrev.com/a1cdb7ae54654709ab3679f2c11df440950d08a4/chrome/browser/chromeos/BUILD.gn [add] https://crrev.com/a1cdb7ae54654709ab3679f2c11df440950d08a4/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.cc [add] https://crrev.com/a1cdb7ae54654709ab3679f2c11df440950d08a4/chrome/browser/chromeos/arc/pip/arc_picture_in_picture_window_controller_impl.h [modify] https://crrev.com/a1cdb7ae54654709ab3679f2c11df440950d08a4/chrome/browser/chromeos/arc/pip/arc_pip_bridge.cc [modify] https://crrev.com/a1cdb7ae54654709ab3679f2c11df440950d08a4/chrome/browser/chromeos/arc/pip/arc_pip_bridge.h [add] https://crrev.com/a1cdb7ae54654709ab3679f2c11df440950d08a4/chrome/browser/chromeos/arc/pip/arc_pip_bridge_unittest.cc [modify] https://crrev.com/a1cdb7ae54654709ab3679f2c11df440950d08a4/components/arc/BUILD.gn [add] https://crrev.com/a1cdb7ae54654709ab3679f2c11df440950d08a4/components/arc/test/fake_pip_instance.cc [add] https://crrev.com/a1cdb7ae54654709ab3679f2c11df440950d08a4/components/arc/test/fake_pip_instance.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5ccc1e0311b53a7acc92d5e2f3c95a50ac39bb06 commit 5ccc1e0311b53a7acc92d5e2f3c95a50ac39bb06 Author: Eliot Courtney <edcourtney@google.com> Date: Fri Sep 28 02:36:28 2018 Apply rounded corners to the Picture-in-Picture window. stayed upon resizing the window. Bug: b/112668689 Bug: 841886 Test: Created a PIP window and it had rounded corners. Rounded corners Change-Id: Ie57223d8c5a2701a0013eee0bce2cf5333d2c304 Reviewed-on: https://chromium-review.googlesource.com/1219426 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Cr-Commit-Position: refs/heads/master@{#594962} [modify] https://crrev.com/5ccc1e0311b53a7acc92d5e2f3c95a50ac39bb06/ash/wm/base_state.cc [modify] https://crrev.com/5ccc1e0311b53a7acc92d5e2f3c95a50ac39bb06/ash/wm/window_state.cc [modify] https://crrev.com/5ccc1e0311b53a7acc92d5e2f3c95a50ac39bb06/ash/wm/window_state.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/68084907a40caccccb72dd14c0ad3139b97747f7 commit 68084907a40caccccb72dd14c0ad3139b97747f7 Author: Eliot Courtney <edcourtney@google.com> Date: Fri Oct 12 07:45:24 2018 Let ClientControlledState apply animation during bounds change. This CL introduces a new BoundsChangeAnimationType for ClientControlledState which will animate the window bounds for a specified duration. Bug: b/115291749 Bug: 841886 Test: Tested with local PIP prototype - applies animation. Change-Id: I8eda8b2131b8d3f679ade5cfbe64d7378efd6881 Reviewed-on: https://chromium-review.googlesource.com/c/1218385 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Cr-Commit-Position: refs/heads/master@{#599132} [modify] https://crrev.com/68084907a40caccccb72dd14c0ad3139b97747f7/ash/wm/client_controlled_state.cc [modify] https://crrev.com/68084907a40caccccb72dd14c0ad3139b97747f7/ash/wm/client_controlled_state.h [modify] https://crrev.com/68084907a40caccccb72dd14c0ad3139b97747f7/ash/wm/client_controlled_state_unittest.cc [modify] https://crrev.com/68084907a40caccccb72dd14c0ad3139b97747f7/ash/wm/default_state.cc [modify] https://crrev.com/68084907a40caccccb72dd14c0ad3139b97747f7/ash/wm/window_state.cc [modify] https://crrev.com/68084907a40caccccb72dd14c0ad3139b97747f7/ash/wm/window_state.h [modify] https://crrev.com/68084907a40caccccb72dd14c0ad3139b97747f7/ash/wm/wm_event.cc [modify] https://crrev.com/68084907a40caccccb72dd14c0ad3139b97747f7/ash/wm/wm_event.h [modify] https://crrev.com/68084907a40caccccb72dd14c0ad3139b97747f7/components/exo/client_controlled_shell_surface.cc [modify] https://crrev.com/68084907a40caccccb72dd14c0ad3139b97747f7/components/exo/client_controlled_shell_surface_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1454ad1f261d1089f2ac20cdc6e7e3d2562d731c commit 1454ad1f261d1089f2ac20cdc6e7e3d2562d731c Author: Eliot Courtney <edcourtney@google.com> Date: Fri Oct 12 11:38:12 2018 Add Picture-in-picture specific window resizer. Currently, this does essentially nothing apart from providing basic resizing and moving functionality. In a follow-up CL, we can add snap-to-edge, swipe-to-dismiss, and interaction with system ui regions like the virtual keyboard. Bug: 841886 Bug: b/115291749 Test: Able to move and resize an Android PIP window. Change-Id: Iaecc43154fd38dc5f9d3b83549e97dc44a89d749 Reviewed-on: https://chromium-review.googlesource.com/c/1219428 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Cr-Commit-Position: refs/heads/master@{#599172} [modify] https://crrev.com/1454ad1f261d1089f2ac20cdc6e7e3d2562d731c/ash/BUILD.gn [add] https://crrev.com/1454ad1f261d1089f2ac20cdc6e7e3d2562d731c/ash/wm/pip/pip_window_resizer.cc [add] https://crrev.com/1454ad1f261d1089f2ac20cdc6e7e3d2562d731c/ash/wm/pip/pip_window_resizer.h [add] https://crrev.com/1454ad1f261d1089f2ac20cdc6e7e3d2562d731c/ash/wm/pip/pip_window_resizer_unittest.cc [modify] https://crrev.com/1454ad1f261d1089f2ac20cdc6e7e3d2562d731c/ash/wm/workspace/workspace_window_resizer.cc [modify] https://crrev.com/1454ad1f261d1089f2ac20cdc6e7e3d2562d731c/components/exo/client_controlled_shell_surface.cc [modify] https://crrev.com/1454ad1f261d1089f2ac20cdc6e7e3d2562d731c/components/exo/client_controlled_shell_surface_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/68214399ee90f8be17244b060199bc1ff9e3877c commit 68214399ee90f8be17244b060199bc1ff9e3877c Author: Eliot Courtney <edcourtney@google.com> Date: Wed Oct 17 03:11:49 2018 Snap picture-in-picture window to the edges of the work area. the closest edge. Bug: 883098 Bug: 841886 Bug: b/115291749 Test: Drag PIP window to the middle of the screen - it animates back to Test: Added unittests Change-Id: Ibf19f50c4e4298ea126c1a1986f014076e4592f1 Reviewed-on: https://chromium-review.googlesource.com/c/1221010 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Cr-Commit-Position: refs/heads/master@{#600262} [modify] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/ash/BUILD.gn [add] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/ash/wm/pip/pip_positioner.cc [add] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/ash/wm/pip/pip_positioner.h [add] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/ash/wm/pip/pip_positioner_unittest.cc [modify] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/ash/wm/pip/pip_window_resizer.cc [modify] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/ash/wm/pip/pip_window_resizer_unittest.cc [modify] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/ash/wm/window_state.cc [modify] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/ash/wm/window_state.h [modify] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/ash/wm/workspace/workspace_window_resizer_unittest.cc [modify] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/components/exo/client_controlled_shell_surface_unittest.cc [modify] https://crrev.com/68214399ee90f8be17244b060199bc1ff9e3877c/testing/buildbot/filters/chromeos.single_process_mash.ash_unittests.filter
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e commit bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e Author: Eliot Courtney <edcourtney@google.com> Date: Tue Oct 23 02:47:20 2018 Add system ui area observer. This will be used in an upcoming CL. We want the Picture-in-Picture window to avoid system ui areas such as the message center and virtual keyboard. In order to support this, this CL adds a new WM event to fire when something changes about a 'system ui area,' which currently includes the virtual keyboard (floating or normal) and the message center. Bug: b/115291749 Bug: 841886 Bug: 874545 Bug: b/112668491 Test: Added unittest Change-Id: Ic3b0cde8800bfc98dd2ffbe0d17137a6e1a26809 Reviewed-on: https://chromium-review.googlesource.com/c/1219366 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Cr-Commit-Position: refs/heads/master@{#601832} [modify] https://crrev.com/bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e/ash/wm/default_state.cc [modify] https://crrev.com/bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e/ash/wm/lock_window_state.cc [modify] https://crrev.com/bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e/ash/wm/tablet_mode/tablet_mode_window_state.cc [modify] https://crrev.com/bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e/ash/wm/wm_event.cc [modify] https://crrev.com/bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e/ash/wm/wm_event.h [modify] https://crrev.com/bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e/ash/wm/workspace/workspace_layout_manager.cc [modify] https://crrev.com/bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e/ash/wm/workspace/workspace_layout_manager.h [modify] https://crrev.com/bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e/ash/wm/workspace/workspace_layout_manager_unittest.cc [modify] https://crrev.com/bd0c7f53fc00ed3fd85e556f7b5b8cbe7592666e/testing/buildbot/filters/chromeos.single_process_mash.ash_unittests.filter
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7344c4508be535ce6b33ef8c3caf3ba9480b02da commit 7344c4508be535ce6b33ef8c3caf3ba9480b02da Author: Eliot Courtney <edcourtney@google.com> Date: Thu Oct 25 05:49:09 2018 Add PIP dismiss animation on close. Bug: 883114 Bug: 841886 Bug: b/115291749 Test: PIP window dismisses off the screen when closed. Test: Added unittest. Change-Id: I66b2802c1c5bff1d59bcfa5cb1194742499a274f Reviewed-on: https://chromium-review.googlesource.com/c/1220350 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Cr-Commit-Position: refs/heads/master@{#602620} [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/public/cpp/window_animation_types.h [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/wm/base_state.cc [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/wm/client_controlled_state.cc [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/wm/default_state.cc [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/wm/pip/pip_positioner.cc [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/wm/pip/pip_positioner.h [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/wm/pip/pip_positioner_unittest.cc [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/wm/window_animations.cc [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/wm/window_animations_unittest.cc [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/wm/window_state.cc [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/ash/wm/window_state.h [modify] https://crrev.com/7344c4508be535ce6b33ef8c3caf3ba9480b02da/testing/buildbot/filters/chromeos.single_process_mash.ash_unittests.filter
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/69b5eaeecea7dc80ae947d8ddda20fab2af7e047 commit 69b5eaeecea7dc80ae947d8ddda20fab2af7e047 Author: Eliot Courtney <edcourtney@google.com> Date: Thu Oct 25 06:34:32 2018 Reposition the PIP window on work area change. window. Bug: 841886 Bug: 883118 Bug: b/115291749 Test: Changing shelf from auto-hide to show always repositions PIP Test: Added unittests. Change-Id: I20712f90dcf0cd6fc7291e1126cf7a449421ef10 Reviewed-on: https://chromium-review.googlesource.com/c/1220353 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Cr-Commit-Position: refs/heads/master@{#602623} [modify] https://crrev.com/69b5eaeecea7dc80ae947d8ddda20fab2af7e047/ash/wm/base_state.cc [modify] https://crrev.com/69b5eaeecea7dc80ae947d8ddda20fab2af7e047/ash/wm/pip/pip_positioner.cc [modify] https://crrev.com/69b5eaeecea7dc80ae947d8ddda20fab2af7e047/ash/wm/pip/pip_positioner.h [modify] https://crrev.com/69b5eaeecea7dc80ae947d8ddda20fab2af7e047/ash/wm/pip/pip_positioner_unittest.cc [modify] https://crrev.com/69b5eaeecea7dc80ae947d8ddda20fab2af7e047/ash/wm/window_state.cc [modify] https://crrev.com/69b5eaeecea7dc80ae947d8ddda20fab2af7e047/ash/wm/window_state.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3b3ec56acbbd297c668543de6ecbde27d07f8942 commit 3b3ec56acbbd297c668543de6ecbde27d07f8942 Author: Eliot Courtney <edcourtney@google.com> Date: Fri Oct 26 06:33:23 2018 Don't use ToString() for gfx::Rect in PipWindowResizerTest. Bug: 841886 Bug: b/115291749 Test: ash_unittests Change-Id: Ibfd54d17fa035d432fbb0570ab5eee922b1a8856 Reviewed-on: https://chromium-review.googlesource.com/c/1300819 Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Cr-Commit-Position: refs/heads/master@{#603006} [modify] https://crrev.com/3b3ec56acbbd297c668543de6ecbde27d07f8942/ash/wm/pip/pip_window_resizer_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/80a6ad7cfe2ad72ef02ef55796870a9bd6845c1f commit 80a6ad7cfe2ad72ef02ef55796870a9bd6845c1f Author: Eliot Courtney <edcourtney@google.com> Date: Tue Oct 30 03:03:30 2018 Clean up GetGravityToClosestEdge for PipPositioner. Bug: 883114 Bug: 841886 Bug: b/115291749 Test: ash_unittests Change-Id: I2e6cd712e9550d7d4ce4f971f5800dec18316078 Reviewed-on: https://chromium-review.googlesource.com/c/1298530 Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Cr-Commit-Position: refs/heads/master@{#603756} [modify] https://crrev.com/80a6ad7cfe2ad72ef02ef55796870a9bd6845c1f/ash/wm/pip/pip_positioner.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/05cec5c6fd7ee28f9917e788a9e0708fa1940a5b commit 05cec5c6fd7ee28f9917e788a9e0708fa1940a5b Author: Eliot Courtney <edcourtney@google.com> Date: Thu Nov 01 05:34:12 2018 Move the PIP window out of the way of the floating keyboard and tray. We are looking for the minimum displacement of the PIP window that makes it not intersect any system trays or the floating keyboard. There are four cases for how the PIP window could move. Case #1: Touches 0 obstacles. This corresponds to not moving. Case #2: Touches 1 obstacle. The PIP window will be touching one edge of the obstacle. Case #3: Touches 2 obstacles. The PIP window will be touching one horizontal and one vertical edge from two different obstacles. Case #4: Touches more than 2 obstacles. This is handled in case #3. To handle all these cases, we just need to check a few candidate points. If the PIP window is displaced by one obstacle, the shortest displacement is to move along the horizontal or vertical axis to be directly adjacent to one of the edges of that obstacle. If it is displaced by two obstacles, the shortest displacement is to move to be directly adjacent to a horizontal and vertical edge - one from each obstacle. keyboard and unified system tray update, and the PIP window moved out of the way of both the floating virtual keyboard and unified system tray. Bug: 883118 Bug: 841886 Bug: b/115291749 Test: Added unittest Test: Patched in code calling GetPositionAfterMovementAreaChange on Change-Id: I2b500d5ba4a67fe2e309b809ec667248a19518ca Reviewed-on: https://chromium-review.googlesource.com/c/1221427 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Cr-Commit-Position: refs/heads/master@{#604523} [modify] https://crrev.com/05cec5c6fd7ee28f9917e788a9e0708fa1940a5b/ash/wm/pip/pip_positioner.cc [modify] https://crrev.com/05cec5c6fd7ee28f9917e788a9e0708fa1940a5b/ash/wm/pip/pip_positioner.h [modify] https://crrev.com/05cec5c6fd7ee28f9917e788a9e0708fa1940a5b/ash/wm/pip/pip_positioner_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/59f09f7955cffb66488691307dabc3e5633bef68 commit 59f09f7955cffb66488691307dabc3e5633bef68 Author: Eliot Courtney <edcourtney@google.com> Date: Thu Nov 01 05:49:14 2018 Implement swipe-to-dismiss for PIP windows. in the direction of initial movement and then locked on the axis off-screen and didn't dismiss if not. off-screen. screen doesn't allow a swipe-to-dismiss to initiate. the screen correctly disables initiation of another swipe-to-dismiss for the rest of the drag-to-move. Bug: 883114 Bug: 841886 Bug: b/115291749 Test: Added unittests Test: tried swipe-to-dismiss from all four corners, it started swiping Test: Tried swiping on the edges of the screen Test: Tried swiping around 50% area - correctly dismissed if >50% area Test: Popped back after swiping out with less than 50% of the area Test: Starting drag-to-move while not on the edge or corner of the Test: Starting to swipe-to-dismiss but then dragging into the middle of Change-Id: I350a8824a0d21162f7356a01632cd4787bd0392c Reviewed-on: https://chromium-review.googlesource.com/c/1221646 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Cr-Commit-Position: refs/heads/master@{#604524} [modify] https://crrev.com/59f09f7955cffb66488691307dabc3e5633bef68/ash/wm/pip/pip_window_resizer.cc [modify] https://crrev.com/59f09f7955cffb66488691307dabc3e5633bef68/ash/wm/pip/pip_window_resizer.h [modify] https://crrev.com/59f09f7955cffb66488691307dabc3e5633bef68/ash/wm/pip/pip_window_resizer_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8dccc2d4dee681ba10ddc3d29c483f273648e8c5 commit 8dccc2d4dee681ba10ddc3d29c483f273648e8c5 Author: Eliot Courtney <edcourtney@google.com> Date: Thu Nov 01 09:29:00 2018 Track occluded region in WindowOcclusionTracker. We would like to automatically trigger Picture-in-Picture when a certain amount of the window is occluded. To do this, we need a way to know how much of a window is occluded by other windows. This occlusion could come from multiple windows, and an occlusion tracker for aura already exists. This CL extends the existing occlusion tracking functionality to also track an occluded region for tracked windows. Bug: 883157 Bug: 841886 Bug: b/112668686 Bug: b/110011377 Test: unit test Change-Id: I0d6618ab05109cc46af0cfd72ecc5cbca2f200d4 Reviewed-on: https://chromium-review.googlesource.com/c/1179433 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Reviewed-by: François Doray <fdoray@chromium.org> Cr-Commit-Position: refs/heads/master@{#604532} [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/content/browser/web_contents/web_contents_view_aura.cc [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/content/browser/web_contents/web_contents_view_aura.h [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/services/ws/window_delegate_impl.cc [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/services/ws/window_delegate_impl.h [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/ui/aura/mus/window_port_mus.cc [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/ui/aura/window.cc [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/ui/aura/window.h [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/ui/aura/window_delegate.h [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/ui/aura/window_occlusion_tracker.cc [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/ui/aura/window_occlusion_tracker.h [modify] https://crrev.com/8dccc2d4dee681ba10ddc3d29c483f273648e8c5/ui/aura/window_occlusion_tracker_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bbd09c3635870488fcee8a7b93fd945eb360c4a4 commit bbd09c3635870488fcee8a7b93fd945eb360c4a4 Author: Eliot Courtney <edcourtney@google.com> Date: Thu Nov 01 09:30:00 2018 Implement flinging logic for PIP windows. Bug: b/115291749 Bug: 841886 Bug: 883098 Test: Added unit test Test: manually tried flinging around and it went in the direction of fling. Change-Id: Ic1b999f4a6596302a584a37888b5edadf0bce342 Reviewed-on: https://chromium-review.googlesource.com/c/1224150 Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Cr-Commit-Position: refs/heads/master@{#604533} [modify] https://crrev.com/bbd09c3635870488fcee8a7b93fd945eb360c4a4/ash/wm/pip/pip_window_resizer.cc [modify] https://crrev.com/bbd09c3635870488fcee8a7b93fd945eb360c4a4/ash/wm/pip/pip_window_resizer.h [modify] https://crrev.com/bbd09c3635870488fcee8a7b93fd945eb360c4a4/ash/wm/pip/pip_window_resizer_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/06e357911c008ce9a247fa3cda8b010abb1e743e commit 06e357911c008ce9a247fa3cda8b010abb1e743e Author: Eliot Courtney <edcourtney@google.com> Date: Thu Nov 29 00:29:46 2018 Add RoundedCornerDecorator and apply it to Picture-in-Picture windows. I tested: 1. open pip window, 2. move around, 3. resize, 4. close, 5. re-open, 6. close tab destroying the window off. Bug: 841886 Test: Chrome PIP works with rounded corners flag both on and off. Test: Android PIP window works with rounded corners flag both on and Change-Id: Iec59abde476d56c58e197b9220ac6ba418801395 Reviewed-on: https://chromium-review.googlesource.com/c/1347969 Reviewed-by: Mitsuru Oshima <oshima@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Tommy Steimel <steimel@chromium.org> Commit-Queue: Eliot Courtney <edcourtney@chromium.org> Cr-Commit-Position: refs/heads/master@{#611957} [modify] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/ash/public/cpp/BUILD.gn [add] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/ash/public/cpp/rounded_corner_decorator.cc [add] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/ash/public/cpp/rounded_corner_decorator.h [add] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/ash/public/cpp/rounded_corner_decorator_unittest.cc [modify] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/ash/wm/base_state.cc [modify] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/ash/wm/window_state.cc [modify] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/ash/wm/window_state.h [modify] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/ash/wm/window_state_unittest.cc [modify] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/chrome/browser/ui/views/overlay/overlay_window_views.cc [modify] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/chrome/browser/ui/views/overlay/overlay_window_views.h [modify] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/components/exo/client_controlled_shell_surface.cc [modify] https://crrev.com/06e357911c008ce9a247fa3cda8b010abb1e743e/components/exo/client_controlled_shell_surface.h
Comment 1 by shihuis@google.com
, Jun 1 2018