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

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

Issue 8865004: Create CoreTabHelper, move remaining core TCW functionality into it. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: lots of helpers now Created 9 years 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 | Annotate | Revision Log
OLDNEW
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
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 826 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 TabContents* contents = GetSelectedTabContents(); 954 TabContents* contents = GetSelectedTabContents();
954 string16 title; 955 string16 title;
955 956
956 // |contents| can be NULL because GetWindowTitleForCurrentTab is called by the 957 // |contents| can be NULL because GetWindowTitleForCurrentTab is called by the
957 // window during the window's creation (before tabs have been added). 958 // window during the window's creation (before tabs have been added).
958 if (contents) { 959 if (contents) {
959 title = contents->GetTitle(); 960 title = contents->GetTitle();
960 FormatTitleForDisplay(&title); 961 FormatTitleForDisplay(&title);
961 } 962 }
962 if (title.empty()) 963 if (title.empty())
963 title = TabContentsWrapper::GetDefaultTitle(); 964 title = CoreTabHelper::GetDefaultTitle();
964 965
965 #if defined(OS_MACOSX) || defined(OS_CHROMEOS) 966 #if defined(OS_MACOSX) || defined(OS_CHROMEOS)
966 // On Mac or ChromeOS, we don't want to suffix the page title with 967 // On Mac or ChromeOS, we don't want to suffix the page title with
967 // the application name. 968 // the application name.
968 return title; 969 return title;
969 #else 970 #else
970 int string_id = IDS_BROWSER_WINDOW_TITLE_FORMAT; 971 int string_id = IDS_BROWSER_WINDOW_TITLE_FORMAT;
971 // Don't append the app name to window titles on app frames and app popups 972 // Don't append the app name to window titles on app frames and app popups
972 if (is_app()) 973 if (is_app())
973 string_id = IDS_BROWSER_WINDOW_TITLE_FORMAT_NO_LOGO; 974 string_id = IDS_BROWSER_WINDOW_TITLE_FORMAT_NO_LOGO;
(...skipping 2323 matching lines...) Expand 10 before | Expand all | Expand 10 after
3297 3298
3298 // Update commands to reflect current state. 3299 // Update commands to reflect current state.
3299 UpdateCommandsForTabState(); 3300 UpdateCommandsForTabState();
3300 3301
3301 // Reset the status bubble. 3302 // Reset the status bubble.
3302 StatusBubble* status_bubble = GetStatusBubble(); 3303 StatusBubble* status_bubble = GetStatusBubble();
3303 if (status_bubble) { 3304 if (status_bubble) {
3304 status_bubble->Hide(); 3305 status_bubble->Hide();
3305 3306
3306 // Show the loading state (if any). 3307 // Show the loading state (if any).
3307 status_bubble->SetStatus(GetSelectedTabContentsWrapper()->GetStatusText()); 3308 status_bubble->SetStatus(
3309 GetSelectedTabContentsWrapper()->core_tab_helper()->GetStatusText());
3308 } 3310 }
3309 3311
3310 if (HasFindBarController()) { 3312 if (HasFindBarController()) {
3311 find_bar_controller_->ChangeTabContents(new_contents); 3313 find_bar_controller_->ChangeTabContents(new_contents);
3312 find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect(), true); 3314 find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect(), true);
3313 } 3315 }
3314 3316
3315 // Update sessions. Don't force creation of sessions. If sessions doesn't 3317 // Update sessions. Don't force creation of sessions. If sessions doesn't
3316 // exist, the change will be picked up by sessions when created. 3318 // exist, the change will be picked up by sessions when created.
3317 SessionService* session_service = 3319 SessionService* session_service =
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
3496 window_->UpdateLoadingAnimations( 3498 window_->UpdateLoadingAnimations(
3497 tab_handler_->GetTabStripModel()->TabsAreLoading()); 3499 tab_handler_->GetTabStripModel()->TabsAreLoading());
3498 window_->UpdateTitleBar(); 3500 window_->UpdateTitleBar();
3499 3501
3500 TabContents* selected_contents = GetSelectedTabContents(); 3502 TabContents* selected_contents = GetSelectedTabContents();
3501 if (source == selected_contents) { 3503 if (source == selected_contents) {
3502 bool is_loading = source->IsLoading(); 3504 bool is_loading = source->IsLoading();
3503 UpdateReloadStopState(is_loading, false); 3505 UpdateReloadStopState(is_loading, false);
3504 if (GetStatusBubble()) { 3506 if (GetStatusBubble()) {
3505 GetStatusBubble()->SetStatus( 3507 GetStatusBubble()->SetStatus(
3506 GetSelectedTabContentsWrapper()->GetStatusText()); 3508 GetSelectedTabContentsWrapper()->core_tab_helper()->GetStatusText());
3507 } 3509 }
3508 3510
3509 if (!is_loading && pending_web_app_action_ == UPDATE_SHORTCUT) { 3511 if (!is_loading && pending_web_app_action_ == UPDATE_SHORTCUT) {
3510 // Schedule a shortcut update when web application info is available if 3512 // Schedule a shortcut update when web application info is available if
3511 // last committed entry is not NULL. Last committed entry could be NULL 3513 // last committed entry is not NULL. Last committed entry could be NULL
3512 // when an interstitial page is injected (e.g. bad https certificate, 3514 // when an interstitial page is injected (e.g. bad https certificate,
3513 // malware site etc). When this happens, we abort the shortcut update. 3515 // malware site etc). When this happens, we abort the shortcut update.
3514 NavigationEntry* entry = source->controller().GetLastCommittedEntry(); 3516 NavigationEntry* entry = source->controller().GetLastCommittedEntry();
3515 if (entry) { 3517 if (entry) {
3516 TabContentsWrapper::GetCurrentWrapperForContents(source)-> 3518 TabContentsWrapper::GetCurrentWrapperForContents(source)->
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
3944 FullscreenExitBubbleType bubble_type) { 3946 FullscreenExitBubbleType bubble_type) {
3945 fullscreen_controller_->OnAcceptFullscreenPermission(url, bubble_type); 3947 fullscreen_controller_->OnAcceptFullscreenPermission(url, bubble_type);
3946 } 3948 }
3947 3949
3948 void Browser::OnDenyFullscreenPermission(FullscreenExitBubbleType bubble_type) { 3950 void Browser::OnDenyFullscreenPermission(FullscreenExitBubbleType bubble_type) {
3949 fullscreen_controller_->OnDenyFullscreenPermission(bubble_type); 3951 fullscreen_controller_->OnDenyFullscreenPermission(bubble_type);
3950 } 3952 }
3951 3953
3952 3954
3953 /////////////////////////////////////////////////////////////////////////////// 3955 ///////////////////////////////////////////////////////////////////////////////
3954 // Browser, TabContentsWrapperDelegate implementation: 3956 // Browser, CoreTabHelperDelegate implementation:
3955 3957
3956 void Browser::OnDidGetApplicationInfo(TabContentsWrapper* source, 3958 void Browser::OnDidGetApplicationInfo(TabContentsWrapper* source,
3957 int32 page_id) { 3959 int32 page_id) {
3958 if (GetSelectedTabContentsWrapper() != source) 3960 if (GetSelectedTabContentsWrapper() != source)
3959 return; 3961 return;
3960 3962
3961 NavigationEntry* entry = source->controller().GetLastCommittedEntry(); 3963 NavigationEntry* entry = source->controller().GetLastCommittedEntry();
3962 if (!entry || (entry->page_id() != page_id)) 3964 if (!entry || (entry->page_id() != page_id))
3963 return; 3965 return;
3964 3966
(...skipping 821 matching lines...) Expand 10 before | Expand all | Expand 10 after
4786 // Updates that only matter when the tab is selected go here. 4788 // Updates that only matter when the tab is selected go here.
4787 4789
4788 if (flags & TabContents::INVALIDATE_PAGE_ACTIONS) { 4790 if (flags & TabContents::INVALIDATE_PAGE_ACTIONS) {
4789 LocationBar* location_bar = window()->GetLocationBar(); 4791 LocationBar* location_bar = window()->GetLocationBar();
4790 if (location_bar) 4792 if (location_bar)
4791 location_bar->UpdatePageActions(); 4793 location_bar->UpdatePageActions();
4792 } 4794 }
4793 // Updating the URL happens synchronously in ScheduleUIUpdate. 4795 // Updating the URL happens synchronously in ScheduleUIUpdate.
4794 if (flags & TabContents::INVALIDATE_LOAD && GetStatusBubble()) { 4796 if (flags & TabContents::INVALIDATE_LOAD && GetStatusBubble()) {
4795 GetStatusBubble()->SetStatus( 4797 GetStatusBubble()->SetStatus(
4796 GetSelectedTabContentsWrapper()->GetStatusText()); 4798 GetSelectedTabContentsWrapper()->
4799 core_tab_helper()->GetStatusText());
4797 } 4800 }
4798 4801
4799 if (flags & (TabContents::INVALIDATE_TAB | 4802 if (flags & (TabContents::INVALIDATE_TAB |
4800 TabContents::INVALIDATE_TITLE)) { 4803 TabContents::INVALIDATE_TITLE)) {
4801 // TODO(pinkerton): Disable app-mode in the model until we implement it 4804 // TODO(pinkerton): Disable app-mode in the model until we implement it
4802 // on the Mac. Be sure to remove both ifdefs. http://crbug.com/13148 4805 // on the Mac. Be sure to remove both ifdefs. http://crbug.com/13148
4803 #if !defined(OS_MACOSX) 4806 #if !defined(OS_MACOSX)
4804 command_updater_.UpdateCommandEnabled(IDC_CREATE_SHORTCUTS, 4807 command_updater_.UpdateCommandEnabled(IDC_CREATE_SHORTCUTS,
4805 web_app::IsValidUrl(contents->GetURL())); 4808 web_app::IsValidUrl(contents->GetURL()));
4806 #endif 4809 #endif
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
5001 Browser* Browser::GetOrCreateTabbedBrowser(Profile* profile) { 5004 Browser* Browser::GetOrCreateTabbedBrowser(Profile* profile) {
5002 Browser* browser = GetTabbedBrowser(profile, false); 5005 Browser* browser = GetTabbedBrowser(profile, false);
5003 if (!browser) 5006 if (!browser)
5004 browser = Browser::Create(profile); 5007 browser = Browser::Create(profile);
5005 return browser; 5008 return browser;
5006 } 5009 }
5007 5010
5008 void Browser::SetAsDelegate(TabContentsWrapper* tab, Browser* delegate) { 5011 void Browser::SetAsDelegate(TabContentsWrapper* tab, Browser* delegate) {
5009 // TabContents... 5012 // TabContents...
5010 tab->tab_contents()->set_delegate(delegate); 5013 tab->tab_contents()->set_delegate(delegate);
5011 tab->set_delegate(delegate);
5012 5014
5013 // ...and all the helpers. 5015 // ...and all the helpers.
5014 tab->blocked_content_tab_helper()->set_delegate(delegate); 5016 tab->blocked_content_tab_helper()->set_delegate(delegate);
5015 tab->bookmark_tab_helper()->set_delegate(delegate); 5017 tab->bookmark_tab_helper()->set_delegate(delegate);
5016 tab->constrained_window_tab_helper()->set_delegate(delegate); 5018 tab->constrained_window_tab_helper()->set_delegate(delegate);
5019 tab->core_tab_helper()->set_delegate(delegate);
5017 tab->extension_tab_helper()->set_delegate(delegate); 5020 tab->extension_tab_helper()->set_delegate(delegate);
5018 tab->search_engine_tab_helper()->set_delegate(delegate); 5021 tab->search_engine_tab_helper()->set_delegate(delegate);
5019 } 5022 }
5020 5023
5021 void Browser::FindInPage(bool find_next, bool forward_direction) { 5024 void Browser::FindInPage(bool find_next, bool forward_direction) {
5022 ShowFindBar(); 5025 ShowFindBar();
5023 if (find_next) { 5026 if (find_next) {
5024 string16 find_text; 5027 string16 find_text;
5025 #if defined(OS_MACOSX) 5028 #if defined(OS_MACOSX)
5026 // We always want to search for the contents of the find pasteboard on OS X. 5029 // 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
5333 window_->GetLocationBar()->ShowFirstRunBubble(bubble_type); 5336 window_->GetLocationBar()->ShowFirstRunBubble(bubble_type);
5334 } else { 5337 } else {
5335 GlobalErrorService* service = 5338 GlobalErrorService* service =
5336 GlobalErrorServiceFactory::GetForProfile(profile()); 5339 GlobalErrorServiceFactory::GetForProfile(profile());
5337 GlobalError* error = service->GetFirstGlobalErrorWithBubbleView(); 5340 GlobalError* error = service->GetFirstGlobalErrorWithBubbleView();
5338 if (error) { 5341 if (error) {
5339 error->ShowBubbleView(this); 5342 error->ShowBubbleView(this);
5340 } 5343 }
5341 } 5344 }
5342 } 5345 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698