OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |