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

Side by Side Diff: chrome/browser/ui/browser.cc

Issue 9428018: Create BaseWindow and ExtensionWindowWrapper for extension API access to Panels (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Address comments, rename -> ExtensionWindowController Created 8 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/browser.h" 5 #include "chrome/browser/ui/browser.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <windows.h> 8 #include <windows.h>
9 #include <shellapi.h> 9 #include <shellapi.h>
10 #endif // OS_WIN 10 #endif // OS_WIN
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "chrome/browser/debugger/devtools_toggle_action.h" 42 #include "chrome/browser/debugger/devtools_toggle_action.h"
43 #include "chrome/browser/debugger/devtools_window.h" 43 #include "chrome/browser/debugger/devtools_window.h"
44 #include "chrome/browser/download/chrome_download_manager_delegate.h" 44 #include "chrome/browser/download/chrome_download_manager_delegate.h"
45 #include "chrome/browser/download/download_item_model.h" 45 #include "chrome/browser/download/download_item_model.h"
46 #include "chrome/browser/download/download_service.h" 46 #include "chrome/browser/download/download_service.h"
47 #include "chrome/browser/download/download_service_factory.h" 47 #include "chrome/browser/download/download_service_factory.h"
48 #include "chrome/browser/download/download_started_animation.h" 48 #include "chrome/browser/download/download_started_animation.h"
49 #include "chrome/browser/download/download_util.h" 49 #include "chrome/browser/download/download_util.h"
50 #include "chrome/browser/extensions/crx_installer.h" 50 #include "chrome/browser/extensions/crx_installer.h"
51 #include "chrome/browser/extensions/default_apps_trial.h" 51 #include "chrome/browser/extensions/default_apps_trial.h"
52 #include "chrome/browser/extensions/browser_extension_window_controller.h"
52 #include "chrome/browser/extensions/extension_browser_event_router.h" 53 #include "chrome/browser/extensions/extension_browser_event_router.h"
53 #include "chrome/browser/extensions/extension_disabled_infobar_delegate.h" 54 #include "chrome/browser/extensions/extension_disabled_infobar_delegate.h"
54 #include "chrome/browser/extensions/extension_prefs.h" 55 #include "chrome/browser/extensions/extension_prefs.h"
55 #include "chrome/browser/extensions/extension_service.h" 56 #include "chrome/browser/extensions/extension_service.h"
56 #include "chrome/browser/extensions/extension_tab_helper.h" 57 #include "chrome/browser/extensions/extension_tab_helper.h"
57 #include "chrome/browser/extensions/extension_tabs_module.h" 58 #include "chrome/browser/extensions/extension_tabs_module.h"
59 #include "chrome/browser/extensions/extension_window_list.h"
58 #include "chrome/browser/favicon/favicon_tab_helper.h" 60 #include "chrome/browser/favicon/favicon_tab_helper.h"
59 #include "chrome/browser/file_select_helper.h" 61 #include "chrome/browser/file_select_helper.h"
60 #include "chrome/browser/first_run/first_run.h" 62 #include "chrome/browser/first_run/first_run.h"
61 #include "chrome/browser/google/google_url_tracker.h" 63 #include "chrome/browser/google/google_url_tracker.h"
62 #include "chrome/browser/infobars/infobar_tab_helper.h" 64 #include "chrome/browser/infobars/infobar_tab_helper.h"
63 #include "chrome/browser/instant/instant_controller.h" 65 #include "chrome/browser/instant/instant_controller.h"
64 #include "chrome/browser/instant/instant_unload_handler.h" 66 #include "chrome/browser/instant/instant_unload_handler.h"
65 #include "chrome/browser/intents/register_intent_handler_infobar_delegate.h" 67 #include "chrome/browser/intents/register_intent_handler_infobar_delegate.h"
66 #include "chrome/browser/intents/web_intents_registry_factory.h" 68 #include "chrome/browser/intents/web_intents_registry_factory.h"
67 #include "chrome/browser/intents/web_intents_util.h" 69 #include "chrome/browser/intents/web_intents_util.h"
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 ProfileMetrics::LogProfileLaunch(profile_path); 422 ProfileMetrics::LogProfileLaunch(profile_path);
421 } 423 }
422 424
423 Browser::~Browser() { 425 Browser::~Browser() {
424 ProfileSyncService* service = 426 ProfileSyncService* service =
425 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile_); 427 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile_);
426 if (service) 428 if (service)
427 service->RemoveObserver(this); 429 service->RemoveObserver(this);
428 430
429 BrowserList::RemoveBrowser(this); 431 BrowserList::RemoveBrowser(this);
432 if (extension_window_controller_.get()) {
433 ExtensionWindowList::GetInstance()->RemoveExtensionWindow(
434 extension_window_controller_.get());
435 }
430 436
431 #if !defined(OS_MACOSX) 437 #if !defined(OS_MACOSX)
432 if (!BrowserList::HasBrowserWithProfile(profile_)) { 438 if (!BrowserList::HasBrowserWithProfile(profile_)) {
433 // We're the last browser window with this profile. We need to nuke the 439 // We're the last browser window with this profile. We need to nuke the
434 // TabRestoreService, which will start the shutdown of the 440 // TabRestoreService, which will start the shutdown of the
435 // NavigationControllers and allow for proper shutdown. If we don't do this 441 // NavigationControllers and allow for proper shutdown. If we don't do this
436 // chrome won't shutdown cleanly, and may end up crashing when some 442 // chrome won't shutdown cleanly, and may end up crashing when some
437 // thread tries to use the IO thread (or another thread) that is no longer 443 // thread tries to use the IO thread (or another thread) that is no longer
438 // valid. 444 // valid.
439 // This isn't a valid assumption for Mac OS, as it stays running after 445 // This isn't a valid assumption for Mac OS, as it stays running after
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 ShellIntegration::GetAppId(UTF8ToWide(app_name_), profile_->GetPath()) : 567 ShellIntegration::GetAppId(UTF8ToWide(app_name_), profile_->GetPath()) :
562 ShellIntegration::GetChromiumAppId(profile_->GetPath()), 568 ShellIntegration::GetChromiumAppId(profile_->GetPath()),
563 window()->GetNativeHandle()); 569 window()->GetNativeHandle());
564 570
565 if (is_type_panel()) { 571 if (is_type_panel()) {
566 ui::win::SetAppIconForWindow(ShellIntegration::GetChromiumIconPath(), 572 ui::win::SetAppIconForWindow(ShellIntegration::GetChromiumIconPath(),
567 window()->GetNativeHandle()); 573 window()->GetNativeHandle());
568 } 574 }
569 #endif 575 #endif
570 576
577 // Add the browser to the list of windows available to the extension API.
578 // (Before sending notifications).
579 extension_window_controller_.reset(
580 new BrowserExtensionWindowController(this));
581 ExtensionWindowList::GetInstance()->AddExtensionWindow(
582 extension_window_controller_.get());
583
571 content::NotificationService::current()->Notify( 584 content::NotificationService::current()->Notify(
572 chrome::NOTIFICATION_BROWSER_WINDOW_READY, 585 chrome::NOTIFICATION_BROWSER_WINDOW_READY,
573 content::Source<Browser>(this), 586 content::Source<Browser>(this),
574 content::NotificationService::NoDetails()); 587 content::NotificationService::NoDetails());
575 588
576 PrefService* local_state = g_browser_process->local_state(); 589 PrefService* local_state = g_browser_process->local_state();
577 if (local_state && local_state->FindPreference( 590 if (local_state && local_state->FindPreference(
578 prefs::kAutofillPersonalDataManagerFirstRun) && 591 prefs::kAutofillPersonalDataManagerFirstRun) &&
579 local_state->GetBoolean(prefs::kAutofillPersonalDataManagerFirstRun)) { 592 local_state->GetBoolean(prefs::kAutofillPersonalDataManagerFirstRun)) {
580 // Notify PDM that this is a first run. 593 // Notify PDM that this is a first run.
(...skipping 1254 matching lines...) Expand 10 before | Expand all | Expand 10 after
1835 tab_handler_->GetTabStripModel()->DetachTabContentsAt(active_index()); 1848 tab_handler_->GetTabStripModel()->DetachTabContentsAt(active_index());
1836 Browser* browser = Browser::Create(profile_); 1849 Browser* browser = Browser::Create(profile_);
1837 browser->tabstrip_model()->AppendTabContents(contents, true); 1850 browser->tabstrip_model()->AppendTabContents(contents, true);
1838 browser->window()->Show(); 1851 browser->window()->Show();
1839 } 1852 }
1840 1853
1841 void Browser::ToggleFullscreenMode() { 1854 void Browser::ToggleFullscreenMode() {
1842 fullscreen_controller_->ToggleFullscreenMode(); 1855 fullscreen_controller_->ToggleFullscreenMode();
1843 } 1856 }
1844 1857
1845 void Browser::ToggleFullscreenModeWithExtension(const Extension& extension) { 1858 void Browser::ToggleFullscreenModeWithExtension(const GURL& extension_url) {
1846 fullscreen_controller_->ToggleFullscreenModeWithExtension(extension); 1859 fullscreen_controller_->ToggleFullscreenModeWithExtension(extension_url);
1847 } 1860 }
1848 1861
1849 #if defined(OS_MACOSX) 1862 #if defined(OS_MACOSX)
1850 void Browser::TogglePresentationMode() { 1863 void Browser::TogglePresentationMode() {
1851 fullscreen_controller_->TogglePresentationMode(); 1864 fullscreen_controller_->TogglePresentationMode();
1852 } 1865 }
1853 #endif 1866 #endif
1854 1867
1855 #if defined(OS_CHROMEOS) 1868 #if defined(OS_CHROMEOS)
1856 void Browser::Search() { 1869 void Browser::Search() {
(...skipping 3719 matching lines...) Expand 10 before | Expand all | Expand 10 after
5576 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; 5589 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE;
5577 ShowSingletonTabOverwritingNTP(params); 5590 ShowSingletonTabOverwritingNTP(params);
5578 } else { 5591 } else {
5579 service->ShowLoginDialog(); 5592 service->ShowLoginDialog();
5580 } 5593 }
5581 } 5594 }
5582 5595
5583 void Browser::ToggleSpeechInput() { 5596 void Browser::ToggleSpeechInput() {
5584 GetSelectedWebContents()->GetRenderViewHost()->ToggleSpeechInput(); 5597 GetSelectedWebContents()->GetRenderViewHost()->ToggleSpeechInput();
5585 } 5598 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698