Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: chrome/browser/ui/ash/chrome_new_window_delegate.cc

Issue 2434463004: mash: Move directly linked NewWindowDelegate to mojom::NewWindowClient. (Closed)
Patch Set: Rebase to ToT Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/ash/chrome_new_window_delegate.cc
diff --git a/chrome/browser/ui/ash/chrome_new_window_delegate.cc b/chrome/browser/ui/ash/chrome_new_window_delegate.cc
deleted file mode 100644
index 57088d9d5dec5b8438ff3a758628ce5bea1399da..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/ash/chrome_new_window_delegate.cc
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/ash/chrome_new_window_delegate.h"
-
-#include "ash/content/keyboard_overlay/keyboard_overlay_view.h"
-#include "ash/wm/window_util.h"
-#include "base/macros.h"
-#include "chrome/browser/chromeos/file_manager/app_id.h"
-#include "chrome/browser/extensions/api/terminal/terminal_extension_helper.h"
-#include "chrome/browser/extensions/extension_service.h"
-#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/chrome_shell_delegate.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/chrome_pages.h"
-#include "chrome/browser/ui/extensions/app_launch_params.h"
-#include "chrome/browser/ui/extensions/application_launch.h"
-#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
-#include "chrome/browser/ui/webui/chrome_web_contents_handler.h"
-#include "chrome/common/url_constants.h"
-#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 "extensions/browser/extension_system.h"
-#include "extensions/common/constants.h"
-#include "ui/base/window_open_disposition.h"
-
-namespace {
-
-void RestoreTabUsingProfile(Profile* profile) {
- sessions::TabRestoreService* service =
- TabRestoreServiceFactory::GetForProfile(profile);
- service->RestoreMostRecentEntry(nullptr);
-}
-
-// Returns the browser for the active window, if any.
-Browser* GetBrowserForActiveWindow() {
- return chrome::FindBrowserWithWindow(ash::wm::GetActiveWindow());
-}
-
-} // namespace
-
-ChromeNewWindowDelegate::ChromeNewWindowDelegate() {}
-ChromeNewWindowDelegate::~ChromeNewWindowDelegate() {}
-
-// TabRestoreHelper is used to restore a tab. In particular when the user
-// attempts to a restore a tab if the TabRestoreService hasn't finished loading
-// this waits for it. Once the TabRestoreService finishes loading the tab is
-// restored.
-class ChromeNewWindowDelegate::TabRestoreHelper
- : public sessions::TabRestoreServiceObserver {
- public:
- TabRestoreHelper(ChromeNewWindowDelegate* delegate,
- Profile* profile,
- sessions::TabRestoreService* service)
- : delegate_(delegate), profile_(profile), tab_restore_service_(service) {
- tab_restore_service_->AddObserver(this);
- }
-
- ~TabRestoreHelper() override { tab_restore_service_->RemoveObserver(this); }
-
- sessions::TabRestoreService* tab_restore_service() {
- return tab_restore_service_;
- }
-
- void TabRestoreServiceChanged(sessions::TabRestoreService* service) override {
- }
-
- void TabRestoreServiceDestroyed(
- sessions::TabRestoreService* service) override {
- // This destroys us.
- delegate_->tab_restore_helper_.reset();
- }
-
- void TabRestoreServiceLoaded(sessions::TabRestoreService* service) override {
- RestoreTabUsingProfile(profile_);
- // This destroys us.
- delegate_->tab_restore_helper_.reset();
- }
-
- private:
- ChromeNewWindowDelegate* delegate_;
- Profile* profile_;
- sessions::TabRestoreService* tab_restore_service_;
-
- DISALLOW_COPY_AND_ASSIGN(TabRestoreHelper);
-};
-
-void ChromeNewWindowDelegate::NewTab() {
- Browser* browser = GetBrowserForActiveWindow();
- if (browser && browser->is_type_tabbed()) {
- chrome::NewTab(browser);
- return;
- }
-
- // Display a browser, setting the focus to the location bar after it is shown.
- {
- chrome::ScopedTabbedBrowserDisplayer displayer(
- ProfileManager::GetActiveUserProfile());
- browser = displayer.browser();
- chrome::NewTab(browser);
- }
-
- browser->SetFocusToLocationBar(false);
-}
-
-void ChromeNewWindowDelegate::NewWindow(bool is_incognito) {
- Browser* browser = GetBrowserForActiveWindow();
- Profile* profile = (browser && browser->profile())
- ? browser->profile()->GetOriginalProfile()
- : ProfileManager::GetActiveUserProfile();
- chrome::NewEmptyWindow(is_incognito ? profile->GetOffTheRecordProfile()
- : profile);
-}
-
-void ChromeNewWindowDelegate::OpenFileManager() {
- using file_manager::kFileManagerAppId;
- Profile* const profile = ProfileManager::GetActiveUserProfile();
- const ExtensionService* const service =
- extensions::ExtensionSystem::Get(profile)->extension_service();
- if (!service ||
- !extensions::util::IsAppLaunchableWithoutEnabling(kFileManagerAppId,
- profile)) {
- return;
- }
-
- const extensions::Extension* const extension =
- service->GetInstalledExtension(kFileManagerAppId);
- OpenApplication(CreateAppLaunchParamsUserContainer(
- profile, extension, WindowOpenDisposition::NEW_FOREGROUND_TAB,
- extensions::SOURCE_KEYBOARD));
-}
-
-void ChromeNewWindowDelegate::OpenCrosh() {
- Profile* profile = ProfileManager::GetActiveUserProfile();
- GURL crosh_url =
- extensions::TerminalExtensionHelper::GetCroshExtensionURL(profile);
- if (!crosh_url.is_valid())
- return;
- chrome::ScopedTabbedBrowserDisplayer displayer(profile);
- Browser* browser = displayer.browser();
- content::WebContents* page = browser->OpenURL(content::OpenURLParams(
- crosh_url, content::Referrer(), WindowOpenDisposition::NEW_FOREGROUND_TAB,
- ui::PAGE_TRANSITION_GENERATED, false));
- browser->window()->Show();
- browser->window()->Activate();
- page->Focus();
-}
-
-void ChromeNewWindowDelegate::OpenGetHelp() {
- Profile* const profile = ProfileManager::GetActiveUserProfile();
- chrome::ShowHelpForProfile(profile, chrome::HELP_SOURCE_KEYBOARD);
-}
-
-void ChromeNewWindowDelegate::RestoreTab() {
- if (tab_restore_helper_.get()) {
- DCHECK(!tab_restore_helper_->tab_restore_service()->IsLoaded());
- return;
- }
-
- Browser* browser = GetBrowserForActiveWindow();
- Profile* profile = browser ? browser->profile() : NULL;
- if (!profile)
- profile = ProfileManager::GetActiveUserProfile();
- if (profile->IsOffTheRecord())
- return;
- sessions::TabRestoreService* service =
- TabRestoreServiceFactory::GetForProfile(profile);
- if (!service)
- return;
-
- if (service->IsLoaded()) {
- RestoreTabUsingProfile(profile);
- } else {
- tab_restore_helper_.reset(new TabRestoreHelper(this, profile, service));
- service->LoadTabsFromLastSession();
- }
-}
-
-void ChromeNewWindowDelegate::ShowKeyboardOverlay() {
- // TODO(mazda): Move the show logic to ash (http://crbug.com/124222).
- Profile* profile = ProfileManager::GetActiveUserProfile();
- std::string url(chrome::kChromeUIKeyboardOverlayURL);
- ash::KeyboardOverlayView::ShowDialog(profile, new ChromeWebContentsHandler,
- GURL(url));
-}
-
-void ChromeNewWindowDelegate::ShowTaskManager() {
- chrome::OpenTaskManager(NULL);
-}
-
-void ChromeNewWindowDelegate::OpenFeedbackPage() {
- chrome::OpenFeedbackDialog(GetBrowserForActiveWindow());
-}
« no previous file with comments | « chrome/browser/ui/ash/chrome_new_window_delegate.h ('k') | chrome/browser/ui/ash/chrome_new_window_delegate_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698