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

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

Issue 949653003: When page translation state is updated, just ask the toolbar to update, don't (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 // defined(OS_WIN) 10 #endif // defined(OS_WIN)
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 #include "chrome/browser/themes/theme_service.h" 83 #include "chrome/browser/themes/theme_service.h"
84 #include "chrome/browser/themes/theme_service_factory.h" 84 #include "chrome/browser/themes/theme_service_factory.h"
85 #include "chrome/browser/translate/chrome_translate_client.h" 85 #include "chrome/browser/translate/chrome_translate_client.h"
86 #include "chrome/browser/ui/autofill/chrome_autofill_client.h" 86 #include "chrome/browser/ui/autofill/chrome_autofill_client.h"
87 #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h" 87 #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h"
88 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h" 88 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h"
89 #include "chrome/browser/ui/bookmarks/bookmark_utils.h" 89 #include "chrome/browser/ui/bookmarks/bookmark_utils.h"
90 #include "chrome/browser/ui/browser_command_controller.h" 90 #include "chrome/browser/ui/browser_command_controller.h"
91 #include "chrome/browser/ui/browser_commands.h" 91 #include "chrome/browser/ui/browser_commands.h"
92 #include "chrome/browser/ui/browser_content_setting_bubble_model_delegate.h" 92 #include "chrome/browser/ui/browser_content_setting_bubble_model_delegate.h"
93 #include "chrome/browser/ui/browser_content_translate_driver_observer.h"
94 #include "chrome/browser/ui/browser_dialogs.h" 93 #include "chrome/browser/ui/browser_dialogs.h"
95 #include "chrome/browser/ui/browser_finder.h" 94 #include "chrome/browser/ui/browser_finder.h"
96 #include "chrome/browser/ui/browser_instant_controller.h" 95 #include "chrome/browser/ui/browser_instant_controller.h"
97 #include "chrome/browser/ui/browser_iterator.h" 96 #include "chrome/browser/ui/browser_iterator.h"
98 #include "chrome/browser/ui/browser_list.h" 97 #include "chrome/browser/ui/browser_list.h"
99 #include "chrome/browser/ui/browser_navigator.h" 98 #include "chrome/browser/ui/browser_navigator.h"
100 #include "chrome/browser/ui/browser_tab_restore_service_delegate.h" 99 #include "chrome/browser/ui/browser_tab_restore_service_delegate.h"
101 #include "chrome/browser/ui/browser_tab_strip_model_delegate.h" 100 #include "chrome/browser/ui/browser_tab_strip_model_delegate.h"
102 #include "chrome/browser/ui/browser_tabstrip.h" 101 #include "chrome/browser/ui/browser_tabstrip.h"
103 #include "chrome/browser/ui/browser_toolbar_model_delegate.h" 102 #include "chrome/browser/ui/browser_toolbar_model_delegate.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 #include "chrome/grit/locale_settings.h" 151 #include "chrome/grit/locale_settings.h"
153 #include "components/app_modal/javascript_dialog_manager.h" 152 #include "components/app_modal/javascript_dialog_manager.h"
154 #include "components/bookmarks/browser/bookmark_model.h" 153 #include "components/bookmarks/browser/bookmark_model.h"
155 #include "components/bookmarks/browser/bookmark_utils.h" 154 #include "components/bookmarks/browser/bookmark_utils.h"
156 #include "components/content_settings/core/browser/host_content_settings_map.h" 155 #include "components/content_settings/core/browser/host_content_settings_map.h"
157 #include "components/history/core/browser/top_sites.h" 156 #include "components/history/core/browser/top_sites.h"
158 #include "components/infobars/core/simple_alert_infobar_delegate.h" 157 #include "components/infobars/core/simple_alert_infobar_delegate.h"
159 #include "components/search/search.h" 158 #include "components/search/search.h"
160 #include "components/sessions/session_types.h" 159 #include "components/sessions/session_types.h"
161 #include "components/startup_metric_utils/startup_metric_utils.h" 160 #include "components/startup_metric_utils/startup_metric_utils.h"
161 #include "components/translate/core/browser/language_state.h"
162 #include "components/ui/zoom/zoom_controller.h" 162 #include "components/ui/zoom/zoom_controller.h"
163 #include "components/web_modal/popup_manager.h" 163 #include "components/web_modal/popup_manager.h"
164 #include "components/web_modal/web_contents_modal_dialog_manager.h" 164 #include "components/web_modal/web_contents_modal_dialog_manager.h"
165 #include "content/public/browser/devtools_agent_host.h" 165 #include "content/public/browser/devtools_agent_host.h"
166 #include "content/public/browser/download_item.h" 166 #include "content/public/browser/download_item.h"
167 #include "content/public/browser/download_manager.h" 167 #include "content/public/browser/download_manager.h"
168 #include "content/public/browser/interstitial_page.h" 168 #include "content/public/browser/interstitial_page.h"
169 #include "content/public/browser/invalidate_type.h" 169 #include "content/public/browser/invalidate_type.h"
170 #include "content/public/browser/navigation_controller.h" 170 #include "content/public/browser/navigation_controller.h"
171 #include "content/public/browser/navigation_entry.h" 171 #include "content/public/browser/navigation_entry.h"
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 host_desktop_type_( 354 host_desktop_type_(
355 BrowserWindow::AdjustHostDesktopType(params.host_desktop_type)), 355 BrowserWindow::AdjustHostDesktopType(params.host_desktop_type)),
356 content_setting_bubble_model_delegate_( 356 content_setting_bubble_model_delegate_(
357 new BrowserContentSettingBubbleModelDelegate(this)), 357 new BrowserContentSettingBubbleModelDelegate(this)),
358 toolbar_model_delegate_(new BrowserToolbarModelDelegate(this)), 358 toolbar_model_delegate_(new BrowserToolbarModelDelegate(this)),
359 tab_restore_service_delegate_(new BrowserTabRestoreServiceDelegate(this)), 359 tab_restore_service_delegate_(new BrowserTabRestoreServiceDelegate(this)),
360 synced_window_delegate_(new BrowserSyncedWindowDelegate(this)), 360 synced_window_delegate_(new BrowserSyncedWindowDelegate(this)),
361 bookmark_bar_state_(BookmarkBar::HIDDEN), 361 bookmark_bar_state_(BookmarkBar::HIDDEN),
362 command_controller_(new chrome::BrowserCommandController(this)), 362 command_controller_(new chrome::BrowserCommandController(this)),
363 window_has_shown_(false), 363 window_has_shown_(false),
364 translate_driver_observer_(
365 new BrowserContentTranslateDriverObserver(this)),
366 chrome_updater_factory_(this), 364 chrome_updater_factory_(this),
367 weak_factory_(this) { 365 weak_factory_(this) {
368 // If this causes a crash then a window is being opened using a profile type 366 // If this causes a crash then a window is being opened using a profile type
369 // that is disallowed by policy. The crash prevents the disabled window type 367 // that is disallowed by policy. The crash prevents the disabled window type
370 // from opening at all, but the path that triggered it should be fixed. 368 // from opening at all, but the path that triggered it should be fixed.
371 CHECK(IncognitoModePrefs::CanOpenBrowser(profile_)); 369 CHECK(IncognitoModePrefs::CanOpenBrowser(profile_));
372 CHECK(!profile_->IsGuestSession() || profile_->IsOffTheRecord()) 370 CHECK(!profile_->IsGuestSession() || profile_->IsOffTheRecord())
373 << "Only off the record browser may be opened in guest mode"; 371 << "Only off the record browser may be opened in guest mode";
374 372
375 // TODO(jeremy): Move to initializer list once flag is removed. 373 // TODO(jeremy): Move to initializer list once flag is removed.
(...skipping 1683 matching lines...) Expand 10 before | Expand all | Expand 10 after
2059 (extensions::TabHelper::FromWebContents(web_contents) 2057 (extensions::TabHelper::FromWebContents(web_contents)
2060 ->extension_app() == extension)) { 2058 ->extension_app() == extension)) {
2061 tab_strip_model_->CloseWebContentsAt(i, TabStripModel::CLOSE_NONE); 2059 tab_strip_model_->CloseWebContentsAt(i, TabStripModel::CLOSE_NONE);
2062 } 2060 }
2063 } 2061 }
2064 } 2062 }
2065 } 2063 }
2066 #endif // defined(ENABLE_EXTENSIONS) 2064 #endif // defined(ENABLE_EXTENSIONS)
2067 2065
2068 /////////////////////////////////////////////////////////////////////////////// 2066 ///////////////////////////////////////////////////////////////////////////////
2067 // Browser, translate::ContentTranslateDriver::Observer implementation:
2068
2069 void Browser::OnIsPageTranslatedChanged(content::WebContents* source) {
2070 DCHECK(source);
2071 if (tab_strip_model_->GetActiveWebContents() == source) {
2072 window_->SetTranslateIconToggled(
2073 ChromeTranslateClient::FromWebContents(
2074 source)->GetLanguageState().IsPageTranslated());
2075 }
2076 }
2077
2078 void Browser::OnTranslateEnabledChanged(content::WebContents* source) {
2079 DCHECK(source);
2080 if (tab_strip_model_->GetActiveWebContents() == source)
2081 UpdateToolbar(false);
2082 }
2083
2084 ///////////////////////////////////////////////////////////////////////////////
2069 // Browser, Command and state updating (private): 2085 // Browser, Command and state updating (private):
2070 2086
2071 void Browser::OnDevToolsDisabledChanged() { 2087 void Browser::OnDevToolsDisabledChanged() {
2072 if (profile_->GetPrefs()->GetBoolean(prefs::kDevToolsDisabled)) 2088 if (profile_->GetPrefs()->GetBoolean(prefs::kDevToolsDisabled))
2073 content::DevToolsAgentHost::DetachAllClients(); 2089 content::DevToolsAgentHost::DetachAllClients();
2074 } 2090 }
2075 2091
2076 /////////////////////////////////////////////////////////////////////////////// 2092 ///////////////////////////////////////////////////////////////////////////////
2077 // Browser, UI update coalescing and handling (private): 2093 // Browser, UI update coalescing and handling (private):
2078 2094
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
2286 BookmarkTabHelper::FromWebContents(web_contents)->set_delegate(delegate); 2302 BookmarkTabHelper::FromWebContents(web_contents)->set_delegate(delegate);
2287 WebContentsModalDialogManager::FromWebContents(web_contents)-> 2303 WebContentsModalDialogManager::FromWebContents(web_contents)->
2288 SetDelegate(delegate); 2304 SetDelegate(delegate);
2289 CoreTabHelper::FromWebContents(web_contents)->set_delegate(delegate); 2305 CoreTabHelper::FromWebContents(web_contents)->set_delegate(delegate);
2290 SearchEngineTabHelper::FromWebContents(web_contents)->set_delegate(delegate); 2306 SearchEngineTabHelper::FromWebContents(web_contents)->set_delegate(delegate);
2291 SearchTabHelper::FromWebContents(web_contents)->set_delegate(delegate); 2307 SearchTabHelper::FromWebContents(web_contents)->set_delegate(delegate);
2292 translate::ContentTranslateDriver& content_translate_driver = 2308 translate::ContentTranslateDriver& content_translate_driver =
2293 ChromeTranslateClient::FromWebContents(web_contents)->translate_driver(); 2309 ChromeTranslateClient::FromWebContents(web_contents)->translate_driver();
2294 if (delegate) { 2310 if (delegate) {
2295 ui_zoom::ZoomController::FromWebContents(web_contents)->AddObserver(this); 2311 ui_zoom::ZoomController::FromWebContents(web_contents)->AddObserver(this);
2296 content_translate_driver.AddObserver(translate_driver_observer_.get()); 2312 content_translate_driver.AddObserver(this);
2297 } else { 2313 } else {
2298 ui_zoom::ZoomController::FromWebContents(web_contents) 2314 ui_zoom::ZoomController::FromWebContents(web_contents)->RemoveObserver(
2299 ->RemoveObserver(this); 2315 this);
2300 content_translate_driver.RemoveObserver(translate_driver_observer_.get()); 2316 content_translate_driver.RemoveObserver(this);
2301 } 2317 }
2302 } 2318 }
2303 2319
2304 void Browser::CloseFrame() { 2320 void Browser::CloseFrame() {
2305 window_->Close(); 2321 window_->Close();
2306 } 2322 }
2307 2323
2308 void Browser::TabDetachedAtImpl(content::WebContents* contents, 2324 void Browser::TabDetachedAtImpl(content::WebContents* contents,
2309 int index, 2325 int index,
2310 DetachType type) { 2326 DetachType type) {
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
2524 if (contents && !allow_js_access) { 2540 if (contents && !allow_js_access) {
2525 contents->web_contents()->GetController().LoadURL( 2541 contents->web_contents()->GetController().LoadURL(
2526 target_url, 2542 target_url,
2527 content::Referrer(), 2543 content::Referrer(),
2528 ui::PAGE_TRANSITION_LINK, 2544 ui::PAGE_TRANSITION_LINK,
2529 std::string()); // No extra headers. 2545 std::string()); // No extra headers.
2530 } 2546 }
2531 2547
2532 return contents != NULL; 2548 return contents != NULL;
2533 } 2549 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser.h ('k') | chrome/browser/ui/browser_content_translate_driver_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698