Chromium Code Reviews| Index: chrome/browser/ui/ash/chrome_new_window_client.cc |
| diff --git a/chrome/browser/ui/ash/chrome_new_window_client.cc b/chrome/browser/ui/ash/chrome_new_window_client.cc |
| index e954d1acc142e69d60b4be9358373b8411028294..1b8efe60d5396eec440ce1d2a004e67ab4545698 100644 |
| --- a/chrome/browser/ui/ash/chrome_new_window_client.cc |
| +++ b/chrome/browser/ui/ash/chrome_new_window_client.cc |
| @@ -12,6 +12,7 @@ |
| #include "chrome/browser/extensions/extension_util.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/browser/sessions/tab_restore_service_factory.h" |
| +#include "chrome/browser/ui/ash/ash_util.h" |
| #include "chrome/browser/ui/ash/chrome_shell_delegate.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_commands.h" |
| @@ -27,8 +28,11 @@ |
| #include "components/sessions/core/tab_restore_service.h" |
| #include "components/sessions/core/tab_restore_service_observer.h" |
| #include "content/public/browser/web_contents.h" |
| +#include "content/public/common/service_manager_connection.h" |
| +#include "content/public/common/service_names.mojom.h" |
| #include "extensions/browser/extension_system.h" |
| #include "extensions/common/constants.h" |
| +#include "services/service_manager/public/cpp/connector.h" |
| #include "ui/base/window_open_disposition.h" |
| namespace { |
| @@ -41,7 +45,23 @@ void RestoreTabUsingProfile(Profile* profile) { |
| } // namespace |
| -ChromeNewWindowClient::ChromeNewWindowClient() {} |
| +ChromeNewWindowClient::ChromeNewWindowClient() : binding_(this) { |
| + service_manager::Connector* connector = |
| + content::ServiceManagerConnection::GetForProcess()->GetConnector(); |
| + |
| + if (chrome::IsRunningInMash()) { |
| + connector->ConnectToInterface("ash", &new_window_controller_); |
|
James Cook
2016/12/06 22:57:29
FYI - I just landed a patch that provides an ash_u
Elliot Glaysher
2016/12/07 00:22:30
Done.
|
| + } else { |
| + connector->ConnectToInterface(content::mojom::kBrowserServiceName, |
| + &new_window_controller_); |
| + } |
| + |
| + // Register this object as the client interface implementation. |
| + ash::mojom::NewWindowClientAssociatedPtrInfo ptr_info; |
| + binding_.Bind(&ptr_info, new_window_controller_.associated_group()); |
| + new_window_controller_->SetClient(std::move(ptr_info)); |
| +} |
| + |
| ChromeNewWindowClient::~ChromeNewWindowClient() {} |
| // TabRestoreHelper is used to restore a tab. In particular when the user |