diff options
author | tapted <tapted@chromium.org> | 2015-06-24 18:28:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-25 01:28:53 +0000 |
commit | 91f299c14448905eaeaf635c86d3d527241d02e7 (patch) | |
tree | fc74e3dd9f4e81a76c0ac26827252edc71d18f71 /chrome/chrome_tests.gypi | |
parent | c08decbd80f568e4177a4f82942e2ed04c97735e (diff) | |
download | chromium_src-91f299c14448905eaeaf635c86d3d527241d02e7.zip chromium_src-91f299c14448905eaeaf635c86d3d527241d02e7.tar.gz chromium_src-91f299c14448905eaeaf635c86d3d527241d02e7.tar.bz2 |
Mac: Give packaged app windows their own window cycle list.
For now it's behind chrome://flags#app-window-cycling.
This is to hopefully give a better UX for App Shims. It also solves a
tricky problem with Chrome Remote Desktop: Since CRD swallows Cmd+`, it
breaks browser window cycling since the cycling will stop as soon as a
CRD window is encountered.
This works by hooking in to the same mechanism that changes the menu
bar. Switching to or away from a packaged app window will now also update
the window cycle list. The CL intentionally does *not*:
- try to distinguish between the same app running in different profiles,
- update the `Window` menu, nor
- try to do anything for Cmd+Tab switching.
The hard part: AppKit does not immediately apply changes to
NSWindowCollectionBehaviorIgnoresCycle after a window is already shown.
An effective workaround seems to be call to [[NSApp keyWindow]
makeKeyAndOrderFront:nil]. However, this may have other consequences.
Lots of other things were tried (see code comments).
Adds an interactive UI test. Tests on mac using
ui_test_utils::ShowAndFocusNativeWindow(..) have a history of flakiness,
so this CL attempts to address that by combining with a notification
observer. This approach has successfully addressed flakiness around
key-window transitions elsewhere. It would commonly occur when multiple
windows are in the process -- a single RunLoop().RunUntilIdle() couldn't
guarantee that the window server had completed the switch.
BUG=484737, 278408
Review URL: https://codereview.chromium.org/1186803003
Cr-Commit-Position: refs/heads/master@{#336063}
Diffstat (limited to 'chrome/chrome_tests.gypi')
-rw-r--r-- | chrome/chrome_tests.gypi | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index 1f4f81d..d3b6477 100644 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -967,6 +967,7 @@ 'browser/task_manager/task_manager_browsertest_util.cc', 'browser/ui/autofill/autofill_popup_controller_interactive_uitest.cc', 'browser/ui/browser_focus_uitest.cc', + 'browser/ui/cocoa/apps/app_shim_menu_controller_mac_interactive_uitest.mm', 'browser/ui/cocoa/apps/quit_with_apps_controller_mac_interactive_uitest.mm', 'browser/ui/cocoa/extensions/browser_action_button_interactive_uitest.mm', 'browser/ui/cocoa/panels/panel_cocoa_browsertest.mm', |