| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 92 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| 93 #include "chrome/browser/ui/tabs/dock_info.h" | 93 #include "chrome/browser/ui/tabs/dock_info.h" |
| 94 #include "chrome/browser/ui/tabs/tab_menu_model.h" | 94 #include "chrome/browser/ui/tabs/tab_menu_model.h" |
| 95 #include "chrome/browser/ui/web_applications/web_app_ui.h" | 95 #include "chrome/browser/ui/web_applications/web_app_ui.h" |
| 96 #include "chrome/browser/ui/webui/bug_report_ui.h" | 96 #include "chrome/browser/ui/webui/bug_report_ui.h" |
| 97 #include "chrome/browser/ui/webui/options/content_settings_handler.h" | 97 #include "chrome/browser/ui/webui/options/content_settings_handler.h" |
| 98 #include "chrome/browser/ui/window_sizer.h" | 98 #include "chrome/browser/ui/window_sizer.h" |
| 99 #include "chrome/browser/upgrade_detector.h" | 99 #include "chrome/browser/upgrade_detector.h" |
| 100 #include "chrome/browser/web_applications/web_app.h" | 100 #include "chrome/browser/web_applications/web_app.h" |
| 101 #include "chrome/common/chrome_constants.h" | 101 #include "chrome/common/chrome_constants.h" |
| 102 #include "chrome/common/chrome_notification_types.h" |
| 102 #include "chrome/common/chrome_switches.h" | 103 #include "chrome/common/chrome_switches.h" |
| 103 #include "chrome/common/extensions/extension.h" | 104 #include "chrome/common/extensions/extension.h" |
| 104 #include "chrome/common/extensions/extension_constants.h" | 105 #include "chrome/common/extensions/extension_constants.h" |
| 105 #include "chrome/common/pref_names.h" | 106 #include "chrome/common/pref_names.h" |
| 106 #include "chrome/common/profiling.h" | 107 #include "chrome/common/profiling.h" |
| 107 #include "chrome/common/url_constants.h" | 108 #include "chrome/common/url_constants.h" |
| 108 #include "chrome/common/web_apps.h" | 109 #include "chrome/common/web_apps.h" |
| 109 #include "content/browser/debugger/devtools_manager.h" | 110 #include "content/browser/debugger/devtools_manager.h" |
| 110 #include "content/browser/debugger/devtools_toggle_action.h" | 111 #include "content/browser/debugger/devtools_toggle_action.h" |
| 111 #include "content/browser/debugger/devtools_window.h" | 112 #include "content/browser/debugger/devtools_window.h" |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 maximized_state_(MAXIMIZED_STATE_DEFAULT), | 244 maximized_state_(MAXIMIZED_STATE_DEFAULT), |
| 244 method_factory_(this), | 245 method_factory_(this), |
| 245 block_command_execution_(false), | 246 block_command_execution_(false), |
| 246 last_blocked_command_id_(-1), | 247 last_blocked_command_id_(-1), |
| 247 last_blocked_command_disposition_(CURRENT_TAB), | 248 last_blocked_command_disposition_(CURRENT_TAB), |
| 248 pending_web_app_action_(NONE), | 249 pending_web_app_action_(NONE), |
| 249 ALLOW_THIS_IN_INITIALIZER_LIST( | 250 ALLOW_THIS_IN_INITIALIZER_LIST( |
| 250 tab_restore_service_delegate_( | 251 tab_restore_service_delegate_( |
| 251 new BrowserTabRestoreServiceDelegate(this))), | 252 new BrowserTabRestoreServiceDelegate(this))), |
| 252 bookmark_bar_state_(BookmarkBar::HIDDEN) { | 253 bookmark_bar_state_(BookmarkBar::HIDDEN) { |
| 253 registrar_.Add(this, NotificationType::SSL_VISIBLE_STATE_CHANGED, | 254 registrar_.Add(this, content::NOTIFICATION_SSL_VISIBLE_STATE_CHANGED, |
| 254 NotificationService::AllSources()); | 255 NotificationService::AllSources()); |
| 255 registrar_.Add(this, NotificationType::EXTENSION_UPDATE_DISABLED, | 256 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED, |
| 256 NotificationService::AllSources()); | 257 NotificationService::AllSources()); |
| 257 registrar_.Add(this, NotificationType::EXTENSION_LOADED, | 258 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, |
| 258 NotificationService::AllSources()); | 259 NotificationService::AllSources()); |
| 259 registrar_.Add(this, NotificationType::EXTENSION_UNLOADED, | 260 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED, |
| 260 NotificationService::AllSources()); | 261 NotificationService::AllSources()); |
| 261 registrar_.Add(this, NotificationType::EXTENSION_UNINSTALLED, | 262 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED, |
| 262 NotificationService::AllSources()); | 263 NotificationService::AllSources()); |
| 263 registrar_.Add(this, NotificationType::EXTENSION_PROCESS_TERMINATED, | 264 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED, |
| 264 NotificationService::AllSources()); | 265 NotificationService::AllSources()); |
| 265 registrar_.Add( | 266 registrar_.Add( |
| 266 this, NotificationType::BROWSER_THEME_CHANGED, | 267 this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, |
| 267 Source<ThemeService>(ThemeServiceFactory::GetForProfile(profile_))); | 268 Source<ThemeService>(ThemeServiceFactory::GetForProfile(profile_))); |
| 268 registrar_.Add(this, NotificationType::TAB_CONTENT_SETTINGS_CHANGED, | 269 registrar_.Add(this, chrome::NOTIFICATION_TAB_CONTENT_SETTINGS_CHANGED, |
| 269 NotificationService::AllSources()); | 270 NotificationService::AllSources()); |
| 270 registrar_.Add(this, NotificationType::BOOKMARK_BAR_VISIBILITY_PREF_CHANGED, | 271 registrar_.Add(this, |
| 272 chrome::NOTIFICATION_BOOKMARK_BAR_VISIBILITY_PREF_CHANGED, |
| 271 NotificationService::AllSources()); | 273 NotificationService::AllSources()); |
| 272 | 274 |
| 273 // Need to know when to alert the user of theme install delay. | 275 // Need to know when to alert the user of theme install delay. |
| 274 registrar_.Add(this, NotificationType::EXTENSION_READY_FOR_INSTALL, | 276 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_READY_FOR_INSTALL, |
| 275 NotificationService::AllSources()); | 277 NotificationService::AllSources()); |
| 276 | 278 |
| 277 PrefService* local_state = g_browser_process->local_state(); | 279 PrefService* local_state = g_browser_process->local_state(); |
| 278 if (local_state) { | 280 if (local_state) { |
| 279 local_pref_registrar_.Init(local_state); | 281 local_pref_registrar_.Init(local_state); |
| 280 local_pref_registrar_.Add(prefs::kPrintingEnabled, this); | 282 local_pref_registrar_.Add(prefs::kPrintingEnabled, this); |
| 281 local_pref_registrar_.Add(prefs::kAllowFileSelectionDialogs, this); | 283 local_pref_registrar_.Add(prefs::kAllowFileSelectionDialogs, this); |
| 282 } | 284 } |
| 283 | 285 |
| 284 profile_pref_registrar_.Init(profile_->GetPrefs()); | 286 profile_pref_registrar_.Init(profile_->GetPrefs()); |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 // name. See http://crbug.com/7028. | 462 // name. See http://crbug.com/7028. |
| 461 ui::win::SetAppIdForWindow( | 463 ui::win::SetAppIdForWindow( |
| 462 is_app() ? | 464 is_app() ? |
| 463 ShellIntegration::GetAppId(UTF8ToWide(app_name_), profile_->GetPath()) : | 465 ShellIntegration::GetAppId(UTF8ToWide(app_name_), profile_->GetPath()) : |
| 464 ShellIntegration::GetChromiumAppId(profile_->GetPath()), | 466 ShellIntegration::GetChromiumAppId(profile_->GetPath()), |
| 465 window()->GetNativeHandle()); | 467 window()->GetNativeHandle()); |
| 466 } | 468 } |
| 467 #endif | 469 #endif |
| 468 | 470 |
| 469 NotificationService::current()->Notify( | 471 NotificationService::current()->Notify( |
| 470 NotificationType::BROWSER_WINDOW_READY, | 472 chrome::NOTIFICATION_BROWSER_WINDOW_READY, |
| 471 Source<Browser>(this), | 473 Source<Browser>(this), |
| 472 NotificationService::NoDetails()); | 474 NotificationService::NoDetails()); |
| 473 | 475 |
| 474 if (use_compact_navigation_bar_.GetValue()) { | 476 if (use_compact_navigation_bar_.GetValue()) { |
| 475 // This enables the compact navigation bar host. | 477 // This enables the compact navigation bar host. |
| 476 UseCompactNavigationBarChanged(); | 478 UseCompactNavigationBarChanged(); |
| 477 } | 479 } |
| 478 | 480 |
| 479 // Show the First Run information bubble if we've been told to. | 481 // Show the First Run information bubble if we've been told to. |
| 480 PrefService* local_state = g_browser_process->local_state(); | 482 PrefService* local_state = g_browser_process->local_state(); |
| (...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 994 if (session_service) | 996 if (session_service) |
| 995 session_service->WindowClosing(session_id()); | 997 session_service->WindowClosing(session_id()); |
| 996 | 998 |
| 997 TabRestoreService* tab_restore_service = | 999 TabRestoreService* tab_restore_service = |
| 998 TabRestoreServiceFactory::GetForProfile(profile()); | 1000 TabRestoreServiceFactory::GetForProfile(profile()); |
| 999 if (tab_restore_service && is_type_tabbed() && tab_count()) | 1001 if (tab_restore_service && is_type_tabbed() && tab_count()) |
| 1000 tab_restore_service->BrowserClosing(tab_restore_service_delegate()); | 1002 tab_restore_service->BrowserClosing(tab_restore_service_delegate()); |
| 1001 | 1003 |
| 1002 // TODO(sky): convert session/tab restore to use notification. | 1004 // TODO(sky): convert session/tab restore to use notification. |
| 1003 NotificationService::current()->Notify( | 1005 NotificationService::current()->Notify( |
| 1004 NotificationType::BROWSER_CLOSING, | 1006 chrome::NOTIFICATION_BROWSER_CLOSING, |
| 1005 Source<Browser>(this), | 1007 Source<Browser>(this), |
| 1006 Details<bool>(&exiting)); | 1008 Details<bool>(&exiting)); |
| 1007 | 1009 |
| 1008 CloseAllTabs(); | 1010 CloseAllTabs(); |
| 1009 } | 1011 } |
| 1010 | 1012 |
| 1011 void Browser::OnWindowActivated() { | 1013 void Browser::OnWindowActivated() { |
| 1012 // On some platforms we want to automatically reload tabs that are | 1014 // On some platforms we want to automatically reload tabs that are |
| 1013 // killed when the user selects them. | 1015 // killed when the user selects them. |
| 1014 TabContents* contents = GetSelectedTabContents(); | 1016 TabContents* contents = GetSelectedTabContents(); |
| (...skipping 1830 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2845 contents->restore_tab_helper()->SetWindowID(session_id()); | 2847 contents->restore_tab_helper()->SetWindowID(session_id()); |
| 2846 | 2848 |
| 2847 SyncHistoryWithTabs(index); | 2849 SyncHistoryWithTabs(index); |
| 2848 | 2850 |
| 2849 // Make sure the loading state is updated correctly, otherwise the throbber | 2851 // Make sure the loading state is updated correctly, otherwise the throbber |
| 2850 // won't start if the page is loading. | 2852 // won't start if the page is loading. |
| 2851 LoadingStateChanged(contents->tab_contents()); | 2853 LoadingStateChanged(contents->tab_contents()); |
| 2852 | 2854 |
| 2853 // If the tab crashes in the beforeunload or unload handler, it won't be | 2855 // If the tab crashes in the beforeunload or unload handler, it won't be |
| 2854 // able to ack. But we know we can close it. | 2856 // able to ack. But we know we can close it. |
| 2855 registrar_.Add(this, NotificationType::TAB_CONTENTS_DISCONNECTED, | 2857 registrar_.Add(this, content::NOTIFICATION_TAB_CONTENTS_DISCONNECTED, |
| 2856 Source<TabContents>(contents->tab_contents())); | 2858 Source<TabContents>(contents->tab_contents())); |
| 2857 | 2859 |
| 2858 registrar_.Add(this, NotificationType::INTERSTITIAL_ATTACHED, | 2860 registrar_.Add(this, content::NOTIFICATION_INTERSTITIAL_ATTACHED, |
| 2859 Source<TabContents>(contents->tab_contents())); | 2861 Source<TabContents>(contents->tab_contents())); |
| 2860 } | 2862 } |
| 2861 | 2863 |
| 2862 void Browser::TabClosingAt(TabStripModel* tab_strip_model, | 2864 void Browser::TabClosingAt(TabStripModel* tab_strip_model, |
| 2863 TabContentsWrapper* contents, | 2865 TabContentsWrapper* contents, |
| 2864 int index) { | 2866 int index) { |
| 2865 NotificationService::current()->Notify( | 2867 NotificationService::current()->Notify( |
| 2866 NotificationType::TAB_CLOSING, | 2868 content::NOTIFICATION_TAB_CLOSING, |
| 2867 Source<NavigationController>(&contents->controller()), | 2869 Source<NavigationController>(&contents->controller()), |
| 2868 NotificationService::NoDetails()); | 2870 NotificationService::NoDetails()); |
| 2869 | 2871 |
| 2870 // Sever the TabContents' connection back to us. | 2872 // Sever the TabContents' connection back to us. |
| 2871 SetAsDelegate(contents, NULL); | 2873 SetAsDelegate(contents, NULL); |
| 2872 } | 2874 } |
| 2873 | 2875 |
| 2874 void Browser::TabDetachedAt(TabContentsWrapper* contents, int index) { | 2876 void Browser::TabDetachedAt(TabContentsWrapper* contents, int index) { |
| 2875 TabDetachedAtImpl(contents, index, DETACH_TYPE_DETACH); | 2877 TabDetachedAtImpl(contents, index, DETACH_TYPE_DETACH); |
| 2876 } | 2878 } |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3085 tabstrip_model()->GetWrapperIndex(source)) | 3087 tabstrip_model()->GetWrapperIndex(source)) |
| 3086 : NULL; | 3088 : NULL; |
| 3087 params.disposition = disposition; | 3089 params.disposition = disposition; |
| 3088 params.window_bounds = initial_pos; | 3090 params.window_bounds = initial_pos; |
| 3089 params.window_action = browser::NavigateParams::SHOW_WINDOW; | 3091 params.window_action = browser::NavigateParams::SHOW_WINDOW; |
| 3090 params.user_gesture = user_gesture; | 3092 params.user_gesture = user_gesture; |
| 3091 browser::Navigate(¶ms); | 3093 browser::Navigate(¶ms); |
| 3092 | 3094 |
| 3093 if (source) { | 3095 if (source) { |
| 3094 NotificationService::current()->Notify( | 3096 NotificationService::current()->Notify( |
| 3095 NotificationType::TAB_ADDED, | 3097 content::NOTIFICATION_TAB_ADDED, |
| 3096 Source<TabContentsDelegate>(source->delegate()), | 3098 Source<TabContentsDelegate>(source->delegate()), |
| 3097 Details<TabContents>(source)); | 3099 Details<TabContents>(source)); |
| 3098 } | 3100 } |
| 3099 } | 3101 } |
| 3100 | 3102 |
| 3101 void Browser::ActivateContents(TabContents* contents) { | 3103 void Browser::ActivateContents(TabContents* contents) { |
| 3102 tab_handler_->GetTabStripModel()->ActivateTabAt( | 3104 tab_handler_->GetTabStripModel()->ActivateTabAt( |
| 3103 tab_handler_->GetTabStripModel()->GetWrapperIndex(contents), false); | 3105 tab_handler_->GetTabStripModel()->GetWrapperIndex(contents), false); |
| 3104 window_->Activate(); | 3106 window_->Activate(); |
| 3105 } | 3107 } |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3225 } | 3227 } |
| 3226 tabstrip_model()->SetTabBlocked(index, blocked); | 3228 tabstrip_model()->SetTabBlocked(index, blocked); |
| 3227 } | 3229 } |
| 3228 | 3230 |
| 3229 void Browser::TabContentsFocused(TabContents* tab_content) { | 3231 void Browser::TabContentsFocused(TabContents* tab_content) { |
| 3230 window_->TabContentsFocused(tab_content); | 3232 window_->TabContentsFocused(tab_content); |
| 3231 } | 3233 } |
| 3232 | 3234 |
| 3233 bool Browser::TakeFocus(bool reverse) { | 3235 bool Browser::TakeFocus(bool reverse) { |
| 3234 NotificationService::current()->Notify( | 3236 NotificationService::current()->Notify( |
| 3235 NotificationType::FOCUS_RETURNED_TO_BROWSER, | 3237 chrome::NOTIFICATION_FOCUS_RETURNED_TO_BROWSER, |
| 3236 Source<Browser>(this), | 3238 Source<Browser>(this), |
| 3237 NotificationService::NoDetails()); | 3239 NotificationService::NoDetails()); |
| 3238 return false; | 3240 return false; |
| 3239 } | 3241 } |
| 3240 | 3242 |
| 3241 bool Browser::IsApplication() const { | 3243 bool Browser::IsApplication() const { |
| 3242 return is_app(); | 3244 return is_app(); |
| 3243 } | 3245 } |
| 3244 | 3246 |
| 3245 void Browser::ConvertContentsToApplication(TabContents* contents) { | 3247 void Browser::ConvertContentsToApplication(TabContents* contents) { |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3527 void Browser::FileSelected(const FilePath& path, int index, void* params) { | 3529 void Browser::FileSelected(const FilePath& path, int index, void* params) { |
| 3528 profile_->set_last_selected_directory(path.DirName()); | 3530 profile_->set_last_selected_directory(path.DirName()); |
| 3529 GURL file_url = net::FilePathToFileURL(path); | 3531 GURL file_url = net::FilePathToFileURL(path); |
| 3530 if (!file_url.is_empty()) | 3532 if (!file_url.is_empty()) |
| 3531 OpenURL(file_url, GURL(), CURRENT_TAB, PageTransition::TYPED); | 3533 OpenURL(file_url, GURL(), CURRENT_TAB, PageTransition::TYPED); |
| 3532 } | 3534 } |
| 3533 | 3535 |
| 3534 /////////////////////////////////////////////////////////////////////////////// | 3536 /////////////////////////////////////////////////////////////////////////////// |
| 3535 // Browser, NotificationObserver implementation: | 3537 // Browser, NotificationObserver implementation: |
| 3536 | 3538 |
| 3537 void Browser::Observe(NotificationType type, | 3539 void Browser::Observe(int type, |
| 3538 const NotificationSource& source, | 3540 const NotificationSource& source, |
| 3539 const NotificationDetails& details) { | 3541 const NotificationDetails& details) { |
| 3540 switch (type.value) { | 3542 switch (type) { |
| 3541 case NotificationType::TAB_CONTENTS_DISCONNECTED: | 3543 case content::NOTIFICATION_TAB_CONTENTS_DISCONNECTED: |
| 3542 if (is_attempting_to_close_browser_) { | 3544 if (is_attempting_to_close_browser_) { |
| 3543 // Pass in false so that we delay processing. We need to delay the | 3545 // Pass in false so that we delay processing. We need to delay the |
| 3544 // processing as it may close the tab, which is currently on the call | 3546 // processing as it may close the tab, which is currently on the call |
| 3545 // stack above us. | 3547 // stack above us. |
| 3546 ClearUnloadState(Source<TabContents>(source).ptr(), false); | 3548 ClearUnloadState(Source<TabContents>(source).ptr(), false); |
| 3547 } | 3549 } |
| 3548 break; | 3550 break; |
| 3549 | 3551 |
| 3550 case NotificationType::SSL_VISIBLE_STATE_CHANGED: | 3552 case content::NOTIFICATION_SSL_VISIBLE_STATE_CHANGED: |
| 3551 // When the current tab's SSL state changes, we need to update the URL | 3553 // When the current tab's SSL state changes, we need to update the URL |
| 3552 // bar to reflect the new state. Note that it's possible for the selected | 3554 // bar to reflect the new state. Note that it's possible for the selected |
| 3553 // tab contents to be NULL. This is because we listen for all sources | 3555 // tab contents to be NULL. This is because we listen for all sources |
| 3554 // (NavigationControllers) for convenience, so the notification could | 3556 // (NavigationControllers) for convenience, so the notification could |
| 3555 // actually be for a different window while we're doing asynchronous | 3557 // actually be for a different window while we're doing asynchronous |
| 3556 // closing of this one. | 3558 // closing of this one. |
| 3557 if (GetSelectedTabContents() && | 3559 if (GetSelectedTabContents() && |
| 3558 &GetSelectedTabContents()->controller() == | 3560 &GetSelectedTabContents()->controller() == |
| 3559 Source<NavigationController>(source).ptr()) | 3561 Source<NavigationController>(source).ptr()) |
| 3560 UpdateToolbar(false); | 3562 UpdateToolbar(false); |
| 3561 break; | 3563 break; |
| 3562 | 3564 |
| 3563 case NotificationType::EXTENSION_UPDATE_DISABLED: { | 3565 case chrome::NOTIFICATION_EXTENSION_UPDATE_DISABLED: { |
| 3564 // Show the UI if the extension was disabled for escalated permissions. | 3566 // Show the UI if the extension was disabled for escalated permissions. |
| 3565 Profile* profile = Source<Profile>(source).ptr(); | 3567 Profile* profile = Source<Profile>(source).ptr(); |
| 3566 if (profile_->IsSameProfile(profile)) { | 3568 if (profile_->IsSameProfile(profile)) { |
| 3567 ExtensionService* service = profile->GetExtensionService(); | 3569 ExtensionService* service = profile->GetExtensionService(); |
| 3568 DCHECK(service); | 3570 DCHECK(service); |
| 3569 const Extension* extension = Details<const Extension>(details).ptr(); | 3571 const Extension* extension = Details<const Extension>(details).ptr(); |
| 3570 if (service->extension_prefs()->DidExtensionEscalatePermissions( | 3572 if (service->extension_prefs()->DidExtensionEscalatePermissions( |
| 3571 extension->id())) | 3573 extension->id())) |
| 3572 ShowExtensionDisabledUI(service, profile_, extension); | 3574 ShowExtensionDisabledUI(service, profile_, extension); |
| 3573 } | 3575 } |
| 3574 break; | 3576 break; |
| 3575 } | 3577 } |
| 3576 | 3578 |
| 3577 case NotificationType::EXTENSION_UNLOADED: { | 3579 case chrome::NOTIFICATION_EXTENSION_UNLOADED: { |
| 3578 if (window()->GetLocationBar()) | 3580 if (window()->GetLocationBar()) |
| 3579 window()->GetLocationBar()->UpdatePageActions(); | 3581 window()->GetLocationBar()->UpdatePageActions(); |
| 3580 | 3582 |
| 3581 // Close any tabs from the unloaded extension. | 3583 // Close any tabs from the unloaded extension. |
| 3582 const Extension* extension = | 3584 const Extension* extension = |
| 3583 Details<UnloadedExtensionInfo>(details)->extension; | 3585 Details<UnloadedExtensionInfo>(details)->extension; |
| 3584 TabStripModel* model = tab_handler_->GetTabStripModel(); | 3586 TabStripModel* model = tab_handler_->GetTabStripModel(); |
| 3585 for (int i = model->count() - 1; i >= 0; --i) { | 3587 for (int i = model->count() - 1; i >= 0; --i) { |
| 3586 TabContents* tc = model->GetTabContentsAt(i)->tab_contents(); | 3588 TabContents* tc = model->GetTabContentsAt(i)->tab_contents(); |
| 3587 if (tc->GetURL().SchemeIs(chrome::kExtensionScheme) && | 3589 if (tc->GetURL().SchemeIs(chrome::kExtensionScheme) && |
| 3588 tc->GetURL().host() == extension->id()) { | 3590 tc->GetURL().host() == extension->id()) { |
| 3589 CloseTabContents(tc); | 3591 CloseTabContents(tc); |
| 3590 } | 3592 } |
| 3591 } | 3593 } |
| 3592 | 3594 |
| 3593 break; | 3595 break; |
| 3594 } | 3596 } |
| 3595 | 3597 |
| 3596 case NotificationType::EXTENSION_PROCESS_TERMINATED: { | 3598 case chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED: { |
| 3597 if (window()->GetLocationBar()) | 3599 if (window()->GetLocationBar()) |
| 3598 window()->GetLocationBar()->InvalidatePageActions(); | 3600 window()->GetLocationBar()->InvalidatePageActions(); |
| 3599 break; | 3601 break; |
| 3600 } | 3602 } |
| 3601 | 3603 |
| 3602 case NotificationType::EXTENSION_UNINSTALLED: | 3604 case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: |
| 3603 case NotificationType::EXTENSION_LOADED: | 3605 case chrome::NOTIFICATION_EXTENSION_LOADED: |
| 3604 if (window()->GetLocationBar()) | 3606 if (window()->GetLocationBar()) |
| 3605 window()->GetLocationBar()->UpdatePageActions(); | 3607 window()->GetLocationBar()->UpdatePageActions(); |
| 3606 break; | 3608 break; |
| 3607 | 3609 |
| 3608 case NotificationType::BROWSER_THEME_CHANGED: | 3610 case chrome::NOTIFICATION_BROWSER_THEME_CHANGED: |
| 3609 window()->UserChangedTheme(); | 3611 window()->UserChangedTheme(); |
| 3610 break; | 3612 break; |
| 3611 | 3613 |
| 3612 case NotificationType::EXTENSION_READY_FOR_INSTALL: { | 3614 case chrome::NOTIFICATION_EXTENSION_READY_FOR_INSTALL: { |
| 3613 // Handle EXTENSION_READY_FOR_INSTALL for last active tabbed browser. | 3615 // Handle EXTENSION_READY_FOR_INSTALL for last active tabbed browser. |
| 3614 if (BrowserList::FindTabbedBrowser(profile(), true) != this) | 3616 if (BrowserList::FindTabbedBrowser(profile(), true) != this) |
| 3615 break; | 3617 break; |
| 3616 | 3618 |
| 3617 // We only want to show the loading dialog for themes, but we don't want | 3619 // We only want to show the loading dialog for themes, but we don't want |
| 3618 // to wait until unpack to find out an extension is a theme, so we test | 3620 // to wait until unpack to find out an extension is a theme, so we test |
| 3619 // the download_url GURL instead. This means that themes in the extensions | 3621 // the download_url GURL instead. This means that themes in the extensions |
| 3620 // gallery won't get the loading dialog. | 3622 // gallery won't get the loading dialog. |
| 3621 GURL download_url = *(Details<GURL>(details).ptr()); | 3623 GURL download_url = *(Details<GURL>(details).ptr()); |
| 3622 if (ExtensionService::IsDownloadFromMiniGallery(download_url)) | 3624 if (ExtensionService::IsDownloadFromMiniGallery(download_url)) |
| 3623 window()->ShowThemeInstallBubble(); | 3625 window()->ShowThemeInstallBubble(); |
| 3624 break; | 3626 break; |
| 3625 } | 3627 } |
| 3626 | 3628 |
| 3627 case NotificationType::PREF_CHANGED: { | 3629 case chrome::NOTIFICATION_PREF_CHANGED: { |
| 3628 const std::string& pref_name = *Details<std::string>(details).ptr(); | 3630 const std::string& pref_name = *Details<std::string>(details).ptr(); |
| 3629 if (pref_name == prefs::kUseVerticalTabs) { | 3631 if (pref_name == prefs::kUseVerticalTabs) { |
| 3630 UseVerticalTabsChanged(); | 3632 UseVerticalTabsChanged(); |
| 3631 } else if (pref_name == prefs::kUseCompactNavigationBar) { | 3633 } else if (pref_name == prefs::kUseCompactNavigationBar) { |
| 3632 UseCompactNavigationBarChanged(); | 3634 UseCompactNavigationBarChanged(); |
| 3633 } else if (pref_name == prefs::kPrintingEnabled) { | 3635 } else if (pref_name == prefs::kPrintingEnabled) { |
| 3634 UpdatePrintingState(GetContentRestrictionsForSelectedTab()); | 3636 UpdatePrintingState(GetContentRestrictionsForSelectedTab()); |
| 3635 } else if (pref_name == prefs::kInstantEnabled) { | 3637 } else if (pref_name == prefs::kInstantEnabled) { |
| 3636 if (!InstantController::IsEnabled(profile())) { | 3638 if (!InstantController::IsEnabled(profile())) { |
| 3637 if (instant()) { | 3639 if (instant()) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 3654 UpdateCommandsForBookmarkEditing(); | 3656 UpdateCommandsForBookmarkEditing(); |
| 3655 } else if (pref_name == prefs::kAllowFileSelectionDialogs) { | 3657 } else if (pref_name == prefs::kAllowFileSelectionDialogs) { |
| 3656 UpdateSaveAsState(GetContentRestrictionsForSelectedTab()); | 3658 UpdateSaveAsState(GetContentRestrictionsForSelectedTab()); |
| 3657 UpdateOpenFileState(); | 3659 UpdateOpenFileState(); |
| 3658 } else { | 3660 } else { |
| 3659 NOTREACHED(); | 3661 NOTREACHED(); |
| 3660 } | 3662 } |
| 3661 break; | 3663 break; |
| 3662 } | 3664 } |
| 3663 | 3665 |
| 3664 case NotificationType::TAB_CONTENT_SETTINGS_CHANGED: { | 3666 case chrome::NOTIFICATION_TAB_CONTENT_SETTINGS_CHANGED: { |
| 3665 TabContents* tab_contents = Source<TabContents>(source).ptr(); | 3667 TabContents* tab_contents = Source<TabContents>(source).ptr(); |
| 3666 if (tab_contents == GetSelectedTabContents()) { | 3668 if (tab_contents == GetSelectedTabContents()) { |
| 3667 LocationBar* location_bar = window()->GetLocationBar(); | 3669 LocationBar* location_bar = window()->GetLocationBar(); |
| 3668 if (location_bar) | 3670 if (location_bar) |
| 3669 location_bar->UpdateContentSettingsIcons(); | 3671 location_bar->UpdateContentSettingsIcons(); |
| 3670 } | 3672 } |
| 3671 break; | 3673 break; |
| 3672 } | 3674 } |
| 3673 | 3675 |
| 3674 case NotificationType::INTERSTITIAL_ATTACHED: | 3676 case content::NOTIFICATION_INTERSTITIAL_ATTACHED: |
| 3675 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE); | 3677 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE); |
| 3676 break; | 3678 break; |
| 3677 | 3679 |
| 3678 case NotificationType::BOOKMARK_BAR_VISIBILITY_PREF_CHANGED: | 3680 case chrome::NOTIFICATION_BOOKMARK_BAR_VISIBILITY_PREF_CHANGED: |
| 3679 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_PREF_CHANGE); | 3681 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_PREF_CHANGE); |
| 3680 break; | 3682 break; |
| 3681 | 3683 |
| 3682 default: | 3684 default: |
| 3683 NOTREACHED() << "Got a notification we didn't register for."; | 3685 NOTREACHED() << "Got a notification we didn't register for."; |
| 3684 } | 3686 } |
| 3685 } | 3687 } |
| 3686 | 3688 |
| 3687 /////////////////////////////////////////////////////////////////////////////// | 3689 /////////////////////////////////////////////////////////////////////////////// |
| 3688 // Browser, ProfileSyncServiceObserver implementation: | 3690 // Browser, ProfileSyncServiceObserver implementation: |
| (...skipping 850 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4539 } | 4541 } |
| 4540 | 4542 |
| 4541 if (is_attempting_to_close_browser_) { | 4543 if (is_attempting_to_close_browser_) { |
| 4542 // If this is the last tab with unload handlers, then ProcessPendingTabs | 4544 // If this is the last tab with unload handlers, then ProcessPendingTabs |
| 4543 // would call back into the TabStripModel (which is invoking this method on | 4545 // would call back into the TabStripModel (which is invoking this method on |
| 4544 // us). Avoid that by passing in false so that the call to | 4546 // us). Avoid that by passing in false so that the call to |
| 4545 // ProcessPendingTabs is delayed. | 4547 // ProcessPendingTabs is delayed. |
| 4546 ClearUnloadState(contents->tab_contents(), false); | 4548 ClearUnloadState(contents->tab_contents(), false); |
| 4547 } | 4549 } |
| 4548 | 4550 |
| 4549 registrar_.Remove(this, NotificationType::INTERSTITIAL_ATTACHED, | 4551 registrar_.Remove(this, content::NOTIFICATION_INTERSTITIAL_ATTACHED, |
| 4550 Source<TabContents>(contents->tab_contents())); | 4552 Source<TabContents>(contents->tab_contents())); |
| 4551 registrar_.Remove(this, NotificationType::TAB_CONTENTS_DISCONNECTED, | 4553 registrar_.Remove(this, content::NOTIFICATION_TAB_CONTENTS_DISCONNECTED, |
| 4552 Source<TabContents>(contents->tab_contents())); | 4554 Source<TabContents>(contents->tab_contents())); |
| 4553 } | 4555 } |
| 4554 | 4556 |
| 4555 // static | 4557 // static |
| 4556 void Browser::RegisterAppPrefs(const std::string& app_name, Profile* profile) { | 4558 void Browser::RegisterAppPrefs(const std::string& app_name, Profile* profile) { |
| 4557 // We need to register the window position pref. | 4559 // We need to register the window position pref. |
| 4558 std::string window_pref(prefs::kBrowserWindowPlacement); | 4560 std::string window_pref(prefs::kBrowserWindowPlacement); |
| 4559 window_pref.append("_"); | 4561 window_pref.append("_"); |
| 4560 window_pref.append(app_name); | 4562 window_pref.append(app_name); |
| 4561 PrefService* prefs = profile->GetPrefs(); | 4563 PrefService* prefs = profile->GetPrefs(); |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4745 // end up querying state once they process the tab switch. | 4747 // end up querying state once they process the tab switch. |
| 4746 return; | 4748 return; |
| 4747 } | 4749 } |
| 4748 | 4750 |
| 4749 BookmarkBar::AnimateChangeType animate_type = | 4751 BookmarkBar::AnimateChangeType animate_type = |
| 4750 (reason == BOOKMARK_BAR_STATE_CHANGE_PREF_CHANGE) ? | 4752 (reason == BOOKMARK_BAR_STATE_CHANGE_PREF_CHANGE) ? |
| 4751 BookmarkBar::ANIMATE_STATE_CHANGE : | 4753 BookmarkBar::ANIMATE_STATE_CHANGE : |
| 4752 BookmarkBar::DONT_ANIMATE_STATE_CHANGE; | 4754 BookmarkBar::DONT_ANIMATE_STATE_CHANGE; |
| 4753 window_->BookmarkBarStateChanged(animate_type); | 4755 window_->BookmarkBarStateChanged(animate_type); |
| 4754 } | 4756 } |
| OLD | NEW |