| 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 |