| 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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 #include "chrome/browser/ui/global_error.h" | 107 #include "chrome/browser/ui/global_error.h" |
| 108 #include "chrome/browser/ui/global_error_service.h" | 108 #include "chrome/browser/ui/global_error_service.h" |
| 109 #include "chrome/browser/ui/global_error_service_factory.h" | 109 #include "chrome/browser/ui/global_error_service_factory.h" |
| 110 #include "chrome/browser/ui/intents/web_intent_picker_controller.h" | 110 #include "chrome/browser/ui/intents/web_intent_picker_controller.h" |
| 111 #include "chrome/browser/ui/omnibox/location_bar.h" | 111 #include "chrome/browser/ui/omnibox/location_bar.h" |
| 112 #include "chrome/browser/ui/panels/panel.h" | 112 #include "chrome/browser/ui/panels/panel.h" |
| 113 #include "chrome/browser/ui/panels/panel_manager.h" | 113 #include "chrome/browser/ui/panels/panel_manager.h" |
| 114 #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" | 114 #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" |
| 115 #include "chrome/browser/ui/status_bubble.h" | 115 #include "chrome/browser/ui/status_bubble.h" |
| 116 #include "chrome/browser/ui/sync/browser_synced_window_delegate.h" | 116 #include "chrome/browser/ui/sync/browser_synced_window_delegate.h" |
| 117 #include "chrome/browser/ui/tab_contents/core_tab_helper.h" |
| 117 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 118 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| 118 #include "chrome/browser/ui/tabs/dock_info.h" | 119 #include "chrome/browser/ui/tabs/dock_info.h" |
| 119 #include "chrome/browser/ui/tabs/tab_menu_model.h" | 120 #include "chrome/browser/ui/tabs/tab_menu_model.h" |
| 120 #include "chrome/browser/ui/web_applications/web_app_ui.h" | 121 #include "chrome/browser/ui/web_applications/web_app_ui.h" |
| 121 #include "chrome/browser/ui/webui/bug_report_ui.h" | 122 #include "chrome/browser/ui/webui/bug_report_ui.h" |
| 122 #include "chrome/browser/ui/webui/chrome_web_ui.h" | 123 #include "chrome/browser/ui/webui/chrome_web_ui.h" |
| 123 #include "chrome/browser/ui/webui/ntp/new_tab_page_handler.h" | 124 #include "chrome/browser/ui/webui/ntp/new_tab_page_handler.h" |
| 124 #include "chrome/browser/ui/webui/options/content_settings_handler.h" | 125 #include "chrome/browser/ui/webui/options/content_settings_handler.h" |
| 125 #include "chrome/browser/ui/window_sizer.h" | 126 #include "chrome/browser/ui/window_sizer.h" |
| 126 #include "chrome/browser/upgrade_detector.h" | 127 #include "chrome/browser/upgrade_detector.h" |
| (...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 951 TabContents* contents = GetSelectedTabContents(); | 952 TabContents* contents = GetSelectedTabContents(); |
| 952 string16 title; | 953 string16 title; |
| 953 | 954 |
| 954 // |contents| can be NULL because GetWindowTitleForCurrentTab is called by the | 955 // |contents| can be NULL because GetWindowTitleForCurrentTab is called by the |
| 955 // window during the window's creation (before tabs have been added). | 956 // window during the window's creation (before tabs have been added). |
| 956 if (contents) { | 957 if (contents) { |
| 957 title = contents->GetTitle(); | 958 title = contents->GetTitle(); |
| 958 FormatTitleForDisplay(&title); | 959 FormatTitleForDisplay(&title); |
| 959 } | 960 } |
| 960 if (title.empty()) | 961 if (title.empty()) |
| 961 title = TabContentsWrapper::GetDefaultTitle(); | 962 title = CoreTabHelper::GetDefaultTitle(); |
| 962 | 963 |
| 963 #if defined(OS_MACOSX) || defined(OS_CHROMEOS) | 964 #if defined(OS_MACOSX) || defined(OS_CHROMEOS) |
| 964 // On Mac or ChromeOS, we don't want to suffix the page title with | 965 // On Mac or ChromeOS, we don't want to suffix the page title with |
| 965 // the application name. | 966 // the application name. |
| 966 return title; | 967 return title; |
| 967 #else | 968 #else |
| 968 int string_id = IDS_BROWSER_WINDOW_TITLE_FORMAT; | 969 int string_id = IDS_BROWSER_WINDOW_TITLE_FORMAT; |
| 969 // Don't append the app name to window titles on app frames and app popups | 970 // Don't append the app name to window titles on app frames and app popups |
| 970 if (is_app()) | 971 if (is_app()) |
| 971 string_id = IDS_BROWSER_WINDOW_TITLE_FORMAT_NO_LOGO; | 972 string_id = IDS_BROWSER_WINDOW_TITLE_FORMAT_NO_LOGO; |
| (...skipping 2316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3288 | 3289 |
| 3289 // Update commands to reflect current state. | 3290 // Update commands to reflect current state. |
| 3290 UpdateCommandsForTabState(); | 3291 UpdateCommandsForTabState(); |
| 3291 | 3292 |
| 3292 // Reset the status bubble. | 3293 // Reset the status bubble. |
| 3293 StatusBubble* status_bubble = GetStatusBubble(); | 3294 StatusBubble* status_bubble = GetStatusBubble(); |
| 3294 if (status_bubble) { | 3295 if (status_bubble) { |
| 3295 status_bubble->Hide(); | 3296 status_bubble->Hide(); |
| 3296 | 3297 |
| 3297 // Show the loading state (if any). | 3298 // Show the loading state (if any). |
| 3298 status_bubble->SetStatus(GetSelectedTabContentsWrapper()->GetStatusText()); | 3299 status_bubble->SetStatus( |
| 3300 GetSelectedTabContentsWrapper()->core_tab_helper()->GetStatusText()); |
| 3299 } | 3301 } |
| 3300 | 3302 |
| 3301 if (HasFindBarController()) { | 3303 if (HasFindBarController()) { |
| 3302 find_bar_controller_->ChangeTabContents(new_contents); | 3304 find_bar_controller_->ChangeTabContents(new_contents); |
| 3303 find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect(), true); | 3305 find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect(), true); |
| 3304 } | 3306 } |
| 3305 | 3307 |
| 3306 // Update sessions. Don't force creation of sessions. If sessions doesn't | 3308 // Update sessions. Don't force creation of sessions. If sessions doesn't |
| 3307 // exist, the change will be picked up by sessions when created. | 3309 // exist, the change will be picked up by sessions when created. |
| 3308 SessionService* session_service = | 3310 SessionService* session_service = |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3487 window_->UpdateLoadingAnimations( | 3489 window_->UpdateLoadingAnimations( |
| 3488 tab_handler_->GetTabStripModel()->TabsAreLoading()); | 3490 tab_handler_->GetTabStripModel()->TabsAreLoading()); |
| 3489 window_->UpdateTitleBar(); | 3491 window_->UpdateTitleBar(); |
| 3490 | 3492 |
| 3491 TabContents* selected_contents = GetSelectedTabContents(); | 3493 TabContents* selected_contents = GetSelectedTabContents(); |
| 3492 if (source == selected_contents) { | 3494 if (source == selected_contents) { |
| 3493 bool is_loading = source->IsLoading(); | 3495 bool is_loading = source->IsLoading(); |
| 3494 UpdateReloadStopState(is_loading, false); | 3496 UpdateReloadStopState(is_loading, false); |
| 3495 if (GetStatusBubble()) { | 3497 if (GetStatusBubble()) { |
| 3496 GetStatusBubble()->SetStatus( | 3498 GetStatusBubble()->SetStatus( |
| 3497 GetSelectedTabContentsWrapper()->GetStatusText()); | 3499 GetSelectedTabContentsWrapper()->core_tab_helper()->GetStatusText()); |
| 3498 } | 3500 } |
| 3499 | 3501 |
| 3500 if (!is_loading && pending_web_app_action_ == UPDATE_SHORTCUT) { | 3502 if (!is_loading && pending_web_app_action_ == UPDATE_SHORTCUT) { |
| 3501 // Schedule a shortcut update when web application info is available if | 3503 // Schedule a shortcut update when web application info is available if |
| 3502 // last committed entry is not NULL. Last committed entry could be NULL | 3504 // last committed entry is not NULL. Last committed entry could be NULL |
| 3503 // when an interstitial page is injected (e.g. bad https certificate, | 3505 // when an interstitial page is injected (e.g. bad https certificate, |
| 3504 // malware site etc). When this happens, we abort the shortcut update. | 3506 // malware site etc). When this happens, we abort the shortcut update. |
| 3505 NavigationEntry* entry = source->controller().GetLastCommittedEntry(); | 3507 NavigationEntry* entry = source->controller().GetLastCommittedEntry(); |
| 3506 if (entry) { | 3508 if (entry) { |
| 3507 TabContentsWrapper::GetCurrentWrapperForContents(source)-> | 3509 TabContentsWrapper::GetCurrentWrapperForContents(source)-> |
| (...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3935 FullscreenExitBubbleType bubble_type) { | 3937 FullscreenExitBubbleType bubble_type) { |
| 3936 fullscreen_controller_->OnAcceptFullscreenPermission(url, bubble_type); | 3938 fullscreen_controller_->OnAcceptFullscreenPermission(url, bubble_type); |
| 3937 } | 3939 } |
| 3938 | 3940 |
| 3939 void Browser::OnDenyFullscreenPermission(FullscreenExitBubbleType bubble_type) { | 3941 void Browser::OnDenyFullscreenPermission(FullscreenExitBubbleType bubble_type) { |
| 3940 fullscreen_controller_->OnDenyFullscreenPermission(bubble_type); | 3942 fullscreen_controller_->OnDenyFullscreenPermission(bubble_type); |
| 3941 } | 3943 } |
| 3942 | 3944 |
| 3943 | 3945 |
| 3944 /////////////////////////////////////////////////////////////////////////////// | 3946 /////////////////////////////////////////////////////////////////////////////// |
| 3945 // Browser, TabContentsWrapperDelegate implementation: | 3947 // Browser, CoreTabHelperDelegate implementation: |
| 3946 | 3948 |
| 3947 void Browser::OnDidGetApplicationInfo(TabContentsWrapper* source, | 3949 void Browser::OnDidGetApplicationInfo(TabContentsWrapper* source, |
| 3948 int32 page_id) { | 3950 int32 page_id) { |
| 3949 if (GetSelectedTabContentsWrapper() != source) | 3951 if (GetSelectedTabContentsWrapper() != source) |
| 3950 return; | 3952 return; |
| 3951 | 3953 |
| 3952 NavigationEntry* entry = source->controller().GetLastCommittedEntry(); | 3954 NavigationEntry* entry = source->controller().GetLastCommittedEntry(); |
| 3953 if (!entry || (entry->page_id() != page_id)) | 3955 if (!entry || (entry->page_id() != page_id)) |
| 3954 return; | 3956 return; |
| 3955 | 3957 |
| (...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4776 // Updates that only matter when the tab is selected go here. | 4778 // Updates that only matter when the tab is selected go here. |
| 4777 | 4779 |
| 4778 if (flags & TabContents::INVALIDATE_PAGE_ACTIONS) { | 4780 if (flags & TabContents::INVALIDATE_PAGE_ACTIONS) { |
| 4779 LocationBar* location_bar = window()->GetLocationBar(); | 4781 LocationBar* location_bar = window()->GetLocationBar(); |
| 4780 if (location_bar) | 4782 if (location_bar) |
| 4781 location_bar->UpdatePageActions(); | 4783 location_bar->UpdatePageActions(); |
| 4782 } | 4784 } |
| 4783 // Updating the URL happens synchronously in ScheduleUIUpdate. | 4785 // Updating the URL happens synchronously in ScheduleUIUpdate. |
| 4784 if (flags & TabContents::INVALIDATE_LOAD && GetStatusBubble()) { | 4786 if (flags & TabContents::INVALIDATE_LOAD && GetStatusBubble()) { |
| 4785 GetStatusBubble()->SetStatus( | 4787 GetStatusBubble()->SetStatus( |
| 4786 GetSelectedTabContentsWrapper()->GetStatusText()); | 4788 GetSelectedTabContentsWrapper()-> |
| 4789 core_tab_helper()->GetStatusText()); |
| 4787 } | 4790 } |
| 4788 | 4791 |
| 4789 if (flags & (TabContents::INVALIDATE_TAB | | 4792 if (flags & (TabContents::INVALIDATE_TAB | |
| 4790 TabContents::INVALIDATE_TITLE)) { | 4793 TabContents::INVALIDATE_TITLE)) { |
| 4791 // TODO(pinkerton): Disable app-mode in the model until we implement it | 4794 // TODO(pinkerton): Disable app-mode in the model until we implement it |
| 4792 // on the Mac. Be sure to remove both ifdefs. http://crbug.com/13148 | 4795 // on the Mac. Be sure to remove both ifdefs. http://crbug.com/13148 |
| 4793 #if !defined(OS_MACOSX) | 4796 #if !defined(OS_MACOSX) |
| 4794 command_updater_.UpdateCommandEnabled(IDC_CREATE_SHORTCUTS, | 4797 command_updater_.UpdateCommandEnabled(IDC_CREATE_SHORTCUTS, |
| 4795 web_app::IsValidUrl(contents->GetURL())); | 4798 web_app::IsValidUrl(contents->GetURL())); |
| 4796 #endif | 4799 #endif |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4991 Browser* Browser::GetOrCreateTabbedBrowser(Profile* profile) { | 4994 Browser* Browser::GetOrCreateTabbedBrowser(Profile* profile) { |
| 4992 Browser* browser = GetTabbedBrowser(profile, false); | 4995 Browser* browser = GetTabbedBrowser(profile, false); |
| 4993 if (!browser) | 4996 if (!browser) |
| 4994 browser = Browser::Create(profile); | 4997 browser = Browser::Create(profile); |
| 4995 return browser; | 4998 return browser; |
| 4996 } | 4999 } |
| 4997 | 5000 |
| 4998 void Browser::SetAsDelegate(TabContentsWrapper* tab, Browser* delegate) { | 5001 void Browser::SetAsDelegate(TabContentsWrapper* tab, Browser* delegate) { |
| 4999 // TabContents... | 5002 // TabContents... |
| 5000 tab->tab_contents()->set_delegate(delegate); | 5003 tab->tab_contents()->set_delegate(delegate); |
| 5001 tab->set_delegate(delegate); | |
| 5002 | 5004 |
| 5003 // ...and all the helpers. | 5005 // ...and all the helpers. |
| 5004 tab->blocked_content_tab_helper()->set_delegate(delegate); | 5006 tab->blocked_content_tab_helper()->set_delegate(delegate); |
| 5005 tab->bookmark_tab_helper()->set_delegate(delegate); | 5007 tab->bookmark_tab_helper()->set_delegate(delegate); |
| 5006 tab->constrained_window_tab_helper()->set_delegate(delegate); | 5008 tab->constrained_window_tab_helper()->set_delegate(delegate); |
| 5009 tab->core_tab_helper()->set_delegate(delegate); |
| 5007 tab->extension_tab_helper()->set_delegate(delegate); | 5010 tab->extension_tab_helper()->set_delegate(delegate); |
| 5008 tab->search_engine_tab_helper()->set_delegate(delegate); | 5011 tab->search_engine_tab_helper()->set_delegate(delegate); |
| 5009 } | 5012 } |
| 5010 | 5013 |
| 5011 void Browser::FindInPage(bool find_next, bool forward_direction) { | 5014 void Browser::FindInPage(bool find_next, bool forward_direction) { |
| 5012 ShowFindBar(); | 5015 ShowFindBar(); |
| 5013 if (find_next) { | 5016 if (find_next) { |
| 5014 string16 find_text; | 5017 string16 find_text; |
| 5015 #if defined(OS_MACOSX) | 5018 #if defined(OS_MACOSX) |
| 5016 // We always want to search for the contents of the find pasteboard on OS X. | 5019 // We always want to search for the contents of the find pasteboard on OS X. |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5323 window_->GetLocationBar()->ShowFirstRunBubble(bubble_type); | 5326 window_->GetLocationBar()->ShowFirstRunBubble(bubble_type); |
| 5324 } else { | 5327 } else { |
| 5325 GlobalErrorService* service = | 5328 GlobalErrorService* service = |
| 5326 GlobalErrorServiceFactory::GetForProfile(profile()); | 5329 GlobalErrorServiceFactory::GetForProfile(profile()); |
| 5327 GlobalError* error = service->GetFirstGlobalErrorWithBubbleView(); | 5330 GlobalError* error = service->GetFirstGlobalErrorWithBubbleView(); |
| 5328 if (error) { | 5331 if (error) { |
| 5329 error->ShowBubbleView(this); | 5332 error->ShowBubbleView(this); |
| 5330 } | 5333 } |
| 5331 } | 5334 } |
| 5332 } | 5335 } |
| OLD | NEW |