Instead of ash connecting to chrome have chrome set the client interface on ash on startup (which it can then use at any point). This enforces the proper layering. See https://codereview.chromium.org/2525813004/ for a similar change.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/609759b085649f1aa62bb211bba6ad0255f3ce1d commit 609759b085649f1aa62bb211bba6ad0255f3ce1d Author: erg <erg@chromium.org> Date: Wed Dec 07 18:26:47 2016 mash: Reverse the responsibilities of the NewWindowClient. ash now has a NewWindowController which chrome connects to and hands a NewWindowClient, instead of ash connecting to chrome to access its NewWindowClient. BUG= 670805 TBR=elijahtaylor@chromium.org Review-Url: https://codereview.chromium.org/2549903002 Cr-Commit-Position: refs/heads/master@{#437011} [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/BUILD.gn [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/common/accelerators/accelerator_controller.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/common/mojo_interface_factory.cc [delete] https://crrev.com/9bf7c586548ab8b4616553b9fbe1d75f0f96b652/ash/common/new_window_client_proxy.cc [delete] https://crrev.com/9bf7c586548ab8b4616553b9fbe1d75f0f96b652/ash/common/new_window_client_proxy.h [add] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/common/new_window_controller.cc [add] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/common/new_window_controller.h [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/common/test/BUILD.gn [delete] https://crrev.com/9bf7c586548ab8b4616553b9fbe1d75f0f96b652/ash/common/test/test_new_window_client.cc [delete] https://crrev.com/9bf7c586548ab8b4616553b9fbe1d75f0f96b652/ash/common/test/test_new_window_client.h [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/common/test/wm_shell_test_api.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/common/test/wm_shell_test_api.h [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/common/wm_shell.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/common/wm_shell.h [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/display/display_util.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/mus/manifest.json [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/mus/test/wm_test_helper.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/public/interfaces/new_window.mojom [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/ash/test/ash_test_helper.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/chrome/browser/chrome_content_browser_manifest_overlay.json [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/chrome/browser/chromeos/accessibility/sticky_keys_browsertest.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/chrome/browser/chromeos/chrome_interface_factory.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/chrome/browser/ui/ash/chrome_new_window_client.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/chrome/browser/ui/ash/chrome_new_window_client.h [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/chrome/browser/ui/ash/chrome_new_window_client_browsertest.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/chrome/browser/ui/views/ash/chrome_browser_main_extra_parts_ash.h [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/chrome/browser/ui/webui/options/chromeos/keyboard_handler.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.cc [modify] https://crrev.com/609759b085649f1aa62bb211bba6ad0255f3ce1d/components/arc/intent_helper/arc_intent_helper_bridge.cc
Comment 1 by jamescook@chromium.org
, Dec 2 2016