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

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

Issue 12386019: Instant: Use only one hidden WebContents per profile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 9 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 | Annotate | Revision Log
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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 #include "chrome/browser/download/download_shelf.h" 52 #include "chrome/browser/download/download_shelf.h"
53 #include "chrome/browser/extensions/browser_extension_window_controller.h" 53 #include "chrome/browser/extensions/browser_extension_window_controller.h"
54 #include "chrome/browser/extensions/extension_prefs.h" 54 #include "chrome/browser/extensions/extension_prefs.h"
55 #include "chrome/browser/extensions/extension_service.h" 55 #include "chrome/browser/extensions/extension_service.h"
56 #include "chrome/browser/extensions/extension_system.h" 56 #include "chrome/browser/extensions/extension_system.h"
57 #include "chrome/browser/extensions/tab_helper.h" 57 #include "chrome/browser/extensions/tab_helper.h"
58 #include "chrome/browser/favicon/favicon_tab_helper.h" 58 #include "chrome/browser/favicon/favicon_tab_helper.h"
59 #include "chrome/browser/file_select_helper.h" 59 #include "chrome/browser/file_select_helper.h"
60 #include "chrome/browser/first_run/first_run.h" 60 #include "chrome/browser/first_run/first_run.h"
61 #include "chrome/browser/google/google_url_tracker.h" 61 #include "chrome/browser/google/google_url_tracker.h"
62 #include "chrome/browser/instant/instant_controller.h"
62 #include "chrome/browser/instant/search.h" 63 #include "chrome/browser/instant/search.h"
63 #include "chrome/browser/lifetime/application_lifetime.h" 64 #include "chrome/browser/lifetime/application_lifetime.h"
64 #include "chrome/browser/net/url_fixer_upper.h" 65 #include "chrome/browser/net/url_fixer_upper.h"
65 #include "chrome/browser/notifications/notification_ui_manager.h" 66 #include "chrome/browser/notifications/notification_ui_manager.h"
66 #include "chrome/browser/pepper_broker_infobar_delegate.h" 67 #include "chrome/browser/pepper_broker_infobar_delegate.h"
67 #include "chrome/browser/prefs/incognito_mode_prefs.h" 68 #include "chrome/browser/prefs/incognito_mode_prefs.h"
68 #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" 69 #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h"
69 #include "chrome/browser/profiles/profile.h" 70 #include "chrome/browser/profiles/profile.h"
70 #include "chrome/browser/profiles/profile_destroyer.h" 71 #include "chrome/browser/profiles/profile_destroyer.h"
71 #include "chrome/browser/profiles/profile_manager.h" 72 #include "chrome/browser/profiles/profile_manager.h"
(...skipping 928 matching lines...) Expand 10 before | Expand all | Expand 10 after
1000 1001
1001 void Browser::TabDeactivated(WebContents* contents) { 1002 void Browser::TabDeactivated(WebContents* contents) {
1002 fullscreen_controller_->OnTabDeactivated(contents); 1003 fullscreen_controller_->OnTabDeactivated(contents);
1003 search_delegate_->OnTabDeactivated(contents); 1004 search_delegate_->OnTabDeactivated(contents);
1004 1005
1005 // Save what the user's currently typing, so it can be restored when we 1006 // Save what the user's currently typing, so it can be restored when we
1006 // switch back to this tab. 1007 // switch back to this tab.
1007 window_->GetLocationBar()->SaveStateToContents(contents); 1008 window_->GetLocationBar()->SaveStateToContents(contents);
1008 1009
1009 if (instant_controller_) 1010 if (instant_controller_)
1010 instant_controller_->TabDeactivated(contents); 1011 instant_controller_->instant()->TabDeactivated(contents);
samarth 2013/03/11 19:03:24 I always found the fact that BrowserInstantControl
1011 } 1012 }
1012 1013
1013 void Browser::ActiveTabChanged(WebContents* old_contents, 1014 void Browser::ActiveTabChanged(WebContents* old_contents,
1014 WebContents* new_contents, 1015 WebContents* new_contents,
1015 int index, 1016 int index,
1016 bool user_gesture) { 1017 bool user_gesture) {
1017 // On some platforms we want to automatically reload tabs that are 1018 // On some platforms we want to automatically reload tabs that are
1018 // killed when the user selects them. 1019 // killed when the user selects them.
1019 bool did_reload = false; 1020 bool did_reload = false;
1020 if (user_gesture && ShouldReloadCrashedTab(new_contents)) { 1021 if (user_gesture && ShouldReloadCrashedTab(new_contents)) {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1072 SessionServiceFactory::GetForProfileIfExisting(profile_); 1073 SessionServiceFactory::GetForProfileIfExisting(profile_);
1073 if (session_service && !tab_strip_model_->closing_all()) { 1074 if (session_service && !tab_strip_model_->closing_all()) {
1074 session_service->SetSelectedTabInWindow(session_id(), 1075 session_service->SetSelectedTabInWindow(session_id(),
1075 tab_strip_model_->active_index()); 1076 tab_strip_model_->active_index());
1076 } 1077 }
1077 1078
1078 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_SWITCH); 1079 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_SWITCH);
1079 1080
1080 // This needs to be called after UpdateSearchState(). 1081 // This needs to be called after UpdateSearchState().
1081 if (instant_controller_) 1082 if (instant_controller_)
1082 instant_controller_->ActiveTabChanged(); 1083 instant_controller_->instant()->ActiveTabChanged();
1083 } 1084 }
1084 1085
1085 void Browser::TabMoved(WebContents* contents, 1086 void Browser::TabMoved(WebContents* contents,
1086 int from_index, 1087 int from_index,
1087 int to_index) { 1088 int to_index) {
1088 DCHECK(from_index >= 0 && to_index >= 0); 1089 DCHECK(from_index >= 0 && to_index >= 0);
1089 // Notify the history service. 1090 // Notify the history service.
1090 SyncHistoryWithTabs(std::min(from_index, to_index)); 1091 SyncHistoryWithTabs(std::min(from_index, to_index));
1091 } 1092 }
1092 1093
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 GlobalErrorServiceFactory::GetForProfile(profile()); 1217 GlobalErrorServiceFactory::GetForProfile(profile());
1217 GlobalError* error = service->GetFirstGlobalErrorWithBubbleView(); 1218 GlobalError* error = service->GetFirstGlobalErrorWithBubbleView();
1218 if (error) 1219 if (error)
1219 error->ShowBubbleView(this); 1220 error->ShowBubbleView(this);
1220 } 1221 }
1221 1222
1222 void Browser::ShowFirstRunBubble() { 1223 void Browser::ShowFirstRunBubble() {
1223 window()->GetLocationBar()->ShowFirstRunBubble(); 1224 window()->GetLocationBar()->ShowFirstRunBubble();
1224 } 1225 }
1225 1226
1226 void Browser::MaybeUpdateBookmarkBarStateForInstantOverlay( 1227 void Browser::MaybeUpdateBookmarkBarStateForInstantOverlay() {
1227 const chrome::search::Mode& mode) {
1228 // This is invoked by a platform-specific implementation of 1228 // This is invoked by a platform-specific implementation of
1229 // |InstantOverlayController| to update bookmark bar state according to 1229 // |InstantOverlayController| to update bookmark bar state according to
1230 // Instant overlay state. 1230 // Instant overlay state.
1231 // ModeChanged() updates bookmark bar state for all mode transitions except 1231 // ModeChanged() updates bookmark bar state for all mode transitions except
1232 // when new mode is |SEARCH_SUGGESTIONS|, because that needs to be done when 1232 // when new mode is |SEARCH_SUGGESTIONS|, because that needs to be done when
1233 // the suggestions are ready. 1233 // the suggestions are ready.
1234 if (mode.is_search_suggestions() && 1234 if (bookmark_bar_state_ == BookmarkBar::SHOW)
1235 bookmark_bar_state_ == BookmarkBar::SHOW) {
1236 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE); 1235 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE);
1237 }
1238 } 1236 }
1239 1237
1240 void Browser::ShowDownload(content::DownloadItem* download) { 1238 void Browser::ShowDownload(content::DownloadItem* download) {
1241 if (!window()) 1239 if (!window())
1242 return; 1240 return;
1243 1241
1244 // If the download occurs in a new tab, and it's not a save page 1242 // If the download occurs in a new tab, and it's not a save page
1245 // download (started before initial navigation completed) close it. 1243 // download (started before initial navigation completed) close it.
1246 WebContents* source = download->GetWebContents(); 1244 WebContents* source = download->GetWebContents();
1247 if (source && source->GetController().IsInitialNavigation() && 1245 if (source && source->GetController().IsInitialNavigation() &&
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
1819 // is |DEFAULT|; other origins require more complex logic to be implemented 1817 // is |DEFAULT|; other origins require more complex logic to be implemented
1820 // to prevent jankiness caused by hiding bookmark bar, so just hide the 1818 // to prevent jankiness caused by hiding bookmark bar, so just hide the
1821 // bookmark bar immediately and tolerate the jankiness for a while. 1819 // bookmark bar immediately and tolerate the jankiness for a while.
1822 // For other mode transitions, update bookmark bar state accordingly. 1820 // For other mode transitions, update bookmark bar state accordingly.
1823 if (new_mode.is_search_suggestions() && 1821 if (new_mode.is_search_suggestions() &&
1824 new_mode.is_origin_default() && 1822 new_mode.is_origin_default() &&
1825 bookmark_bar_state_ == BookmarkBar::SHOW) { 1823 bookmark_bar_state_ == BookmarkBar::SHOW) {
1826 return; 1824 return;
1827 } 1825 }
1828 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE); 1826 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE);
1827
1828 if (instant_controller_)
1829 instant_controller_->instant()->SearchModeChanged(old_mode, new_mode);
1829 } 1830 }
1830 1831
1831 /////////////////////////////////////////////////////////////////////////////// 1832 ///////////////////////////////////////////////////////////////////////////////
1832 // Browser, Command and state updating (private): 1833 // Browser, Command and state updating (private):
1833 1834
1834 void Browser::OnDevToolsDisabledChanged() { 1835 void Browser::OnDevToolsDisabledChanged() {
1835 if (profile_->GetPrefs()->GetBoolean(prefs::kDevToolsDisabled)) 1836 if (profile_->GetPrefs()->GetBoolean(prefs::kDevToolsDisabled))
1836 content::DevToolsManager::GetInstance()->CloseAllClientHosts(); 1837 content::DevToolsManager::GetInstance()->CloseAllClientHosts();
1837 } 1838 }
1838 1839
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
2242 if (contents && !allow_js_access) { 2243 if (contents && !allow_js_access) {
2243 contents->web_contents()->GetController().LoadURL( 2244 contents->web_contents()->GetController().LoadURL(
2244 target_url, 2245 target_url,
2245 content::Referrer(), 2246 content::Referrer(),
2246 content::PAGE_TRANSITION_LINK, 2247 content::PAGE_TRANSITION_LINK,
2247 std::string()); // No extra headers. 2248 std::string()); // No extra headers.
2248 } 2249 }
2249 2250
2250 return contents != NULL; 2251 return contents != NULL;
2251 } 2252 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698