| Index: chrome/browser/ui/browser.cc
|
| ===================================================================
|
| --- chrome/browser/ui/browser.cc (revision 145001)
|
| +++ chrome/browser/ui/browser.cc (working copy)
|
| @@ -103,6 +103,7 @@
|
| #include "chrome/browser/ui/browser_list.h"
|
| #include "chrome/browser/ui/browser_navigator.h"
|
| #include "chrome/browser/ui/browser_tab_restore_service_delegate.h"
|
| +#include "chrome/browser/ui/browser_tabstrip.h"
|
| #include "chrome/browser/ui/browser_toolbar_model_delegate.h"
|
| #include "chrome/browser/ui/browser_ui_prefs.h"
|
| #include "chrome/browser/ui/browser_window.h"
|
| @@ -504,7 +505,7 @@
|
| FindBar* find_bar = window_->CreateFindBar();
|
| find_bar_controller_.reset(new FindBarController(find_bar));
|
| find_bar->SetFindBarController(find_bar_controller_.get());
|
| - find_bar_controller_->ChangeTabContents(GetActiveTabContents());
|
| + find_bar_controller_->ChangeTabContents(chrome::GetActiveTabContents(this));
|
| find_bar_controller_->find_bar()->MoveWindowIfNecessary(gfx::Rect(), true);
|
| }
|
| return find_bar_controller_.get();
|
| @@ -526,14 +527,14 @@
|
| // Browser, State Storage and Retrieval for UI:
|
|
|
| SkBitmap Browser::GetCurrentPageIcon() const {
|
| - TabContents* contents = GetActiveTabContents();
|
| + TabContents* contents = chrome::GetActiveTabContents(this);
|
| // |contents| can be NULL since GetCurrentPageIcon() is called by the window
|
| // during the window's creation (before tabs have been added).
|
| return contents ? contents->favicon_tab_helper()->GetFavicon() : SkBitmap();
|
| }
|
|
|
| string16 Browser::GetWindowTitleForCurrentTab() const {
|
| - WebContents* contents = GetActiveWebContents();
|
| + WebContents* contents = chrome::GetActiveWebContents(this);
|
| string16 title;
|
|
|
| // |contents| can be NULL because GetWindowTitleForCurrentTab is called by the
|
| @@ -629,13 +630,13 @@
|
| content::Source<Browser>(this),
|
| content::Details<bool>(&exiting));
|
|
|
| - CloseAllTabs();
|
| + chrome::CloseAllTabs(this);
|
| }
|
|
|
| void Browser::OnWindowActivated() {
|
| // On some platforms we want to automatically reload tabs that are
|
| // killed when the user selects them.
|
| - WebContents* contents = GetActiveWebContents();
|
| + WebContents* contents = chrome::GetActiveWebContents(this);
|
| if (contents && contents->GetCrashedStatus() ==
|
| base::TERMINATION_STATUS_PROCESS_WAS_KILLED) {
|
| if (CommandLine::ForCurrentProcess()->HasSwitch(
|
| @@ -733,163 +734,9 @@
|
| return tab_strip_model_->active_index();
|
| }
|
|
|
| -int Browser::GetIndexOfController(
|
| - const NavigationController* controller) const {
|
| - return tab_strip_model_->GetIndexOfController(controller);
|
| -}
|
| -
|
| -TabContents* Browser::GetActiveTabContents() const {
|
| - return tab_strip_model_->GetActiveTabContents();
|
| -}
|
| -
|
| -WebContents* Browser::GetActiveWebContents() const {
|
| - TabContents* tab_contents = GetActiveTabContents();
|
| - return tab_contents ? tab_contents->web_contents() : NULL;
|
| -}
|
| -
|
| -TabContents* Browser::GetTabContentsAt(int index) const {
|
| - return tab_strip_model_->GetTabContentsAt(index);
|
| -}
|
| -
|
| -WebContents* Browser::GetWebContentsAt(int index) const {
|
| - TabContents* tab_contents = GetTabContentsAt(index);
|
| - if (tab_contents)
|
| - return tab_contents->web_contents();
|
| - return NULL;
|
| -}
|
| -
|
| -void Browser::ActivateTabAt(int index, bool user_gesture) {
|
| - tab_strip_model_->ActivateTabAt(index, user_gesture);
|
| -}
|
| -
|
| -bool Browser::IsTabPinned(int index) const {
|
| - return tab_strip_model_->IsTabPinned(index);
|
| -}
|
| -
|
| -bool Browser::IsTabDiscarded(int index) const {
|
| - return tab_strip_model_->IsTabDiscarded(index);
|
| -}
|
| -
|
| -void Browser::CloseAllTabs() {
|
| - tab_strip_model_->CloseAllTabs();
|
| -}
|
| -
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // Browser, Tab adding/showing functions:
|
|
|
| -bool Browser::IsTabStripEditable() const {
|
| - return window()->IsTabStripEditable();
|
| -}
|
| -
|
| -int Browser::GetIndexForInsertionDuringRestore(int relative_index) {
|
| - return (tab_strip_model_->insertion_policy() == TabStripModel::INSERT_AFTER) ?
|
| - tab_count() : relative_index;
|
| -}
|
| -
|
| -TabContents* Browser::AddSelectedTabWithURL(
|
| - const GURL& url,
|
| - content::PageTransition transition) {
|
| - browser::NavigateParams params(this, url, transition);
|
| - params.disposition = NEW_FOREGROUND_TAB;
|
| - browser::Navigate(¶ms);
|
| - return params.target_contents;
|
| -}
|
| -
|
| -WebContents* Browser::AddTab(TabContents* tab_contents,
|
| - content::PageTransition type) {
|
| - tab_strip_model_->AddTabContents(tab_contents, -1, type,
|
| - TabStripModel::ADD_ACTIVE);
|
| - return tab_contents->web_contents();
|
| -}
|
| -
|
| -WebContents* Browser::AddRestoredTab(
|
| - const std::vector<TabNavigation>& navigations,
|
| - int tab_index,
|
| - int selected_navigation,
|
| - const std::string& extension_app_id,
|
| - bool select,
|
| - bool pin,
|
| - bool from_last_session,
|
| - content::SessionStorageNamespace* session_storage_namespace) {
|
| - GURL restore_url = navigations.at(selected_navigation).virtual_url();
|
| - TabContents* tab_contents = TabContentsFactory(
|
| - profile(),
|
| - tab_util::GetSiteInstanceForNewTab(profile_, restore_url),
|
| - MSG_ROUTING_NONE,
|
| - GetActiveWebContents(),
|
| - session_storage_namespace);
|
| - WebContents* new_tab = tab_contents->web_contents();
|
| - tab_contents->extension_tab_helper()->SetExtensionAppById(extension_app_id);
|
| - std::vector<NavigationEntry*> entries;
|
| - TabNavigation::CreateNavigationEntriesFromTabNavigations(
|
| - profile_, navigations, &entries);
|
| - new_tab->GetController().Restore(
|
| - selected_navigation, from_last_session, &entries);
|
| - DCHECK_EQ(0u, entries.size());
|
| -
|
| - int add_types = select ? TabStripModel::ADD_ACTIVE :
|
| - TabStripModel::ADD_NONE;
|
| - if (pin) {
|
| - int first_mini_tab_idx = tab_strip_model_->IndexOfFirstNonMiniTab();
|
| - tab_index = std::min(tab_index, first_mini_tab_idx);
|
| - add_types |= TabStripModel::ADD_PINNED;
|
| - }
|
| - tab_strip_model_->InsertTabContentsAt(tab_index, tab_contents, add_types);
|
| - if (select) {
|
| - window_->Activate();
|
| - } else {
|
| - // We set the size of the view here, before WebKit does its initial
|
| - // layout. If we don't, the initial layout of background tabs will be
|
| - // performed with a view width of 0, which may cause script outputs and
|
| - // anchor link location calculations to be incorrect even after a new
|
| - // layout with proper view dimensions. TabStripModel::AddTabContents()
|
| - // contains similar logic.
|
| - new_tab->GetView()->SizeContents(window_->GetRestoredBounds().size());
|
| - new_tab->WasHidden();
|
| - }
|
| - SessionService* session_service =
|
| - SessionServiceFactory::GetForProfileIfExisting(profile_);
|
| - if (session_service)
|
| - session_service->TabRestored(tab_contents, pin);
|
| - return new_tab;
|
| -}
|
| -
|
| -void Browser::AddWebContents(WebContents* new_contents,
|
| - WindowOpenDisposition disposition,
|
| - const gfx::Rect& initial_pos,
|
| - bool user_gesture) {
|
| - AddNewContents(NULL, new_contents, disposition, initial_pos, user_gesture);
|
| -}
|
| -
|
| -void Browser::CloseTabContents(WebContents* contents) {
|
| - CloseContents(contents);
|
| -}
|
| -
|
| -void Browser::ReplaceRestoredTab(
|
| - const std::vector<TabNavigation>& navigations,
|
| - int selected_navigation,
|
| - bool from_last_session,
|
| - const std::string& extension_app_id,
|
| - content::SessionStorageNamespace* session_storage_namespace) {
|
| - GURL restore_url = navigations.at(selected_navigation).virtual_url();
|
| - TabContents* tab_contents = TabContentsFactory(
|
| - profile(),
|
| - tab_util::GetSiteInstanceForNewTab(profile_, restore_url),
|
| - MSG_ROUTING_NONE,
|
| - GetActiveWebContents(),
|
| - session_storage_namespace);
|
| - tab_contents->extension_tab_helper()->SetExtensionAppById(extension_app_id);
|
| - WebContents* replacement = tab_contents->web_contents();
|
| - std::vector<NavigationEntry*> entries;
|
| - TabNavigation::CreateNavigationEntriesFromTabNavigations(
|
| - profile_, navigations, &entries);
|
| - replacement->GetController().Restore(
|
| - selected_navigation, from_last_session, &entries);
|
| - DCHECK_EQ(0u, entries.size());
|
| -
|
| - tab_strip_model_->ReplaceNavigationControllerAt(active_index(), tab_contents);
|
| -}
|
| -
|
| void Browser::WindowFullscreenStateChanged() {
|
| fullscreen_controller_->WindowFullscreenStateChanged();
|
| command_controller_->FullscreenStateChanged();
|
| @@ -929,7 +776,7 @@
|
| // OTOH, if "auto detect" is turned off, we don't change the currently
|
| // active encoding.
|
| if (encoding_auto_detect_.GetValue()) {
|
| - WebContents* contents = GetActiveWebContents();
|
| + WebContents* contents = chrome::GetActiveWebContents(this);
|
| if (contents)
|
| contents->ResetOverrideEncoding();
|
| }
|
| @@ -939,7 +786,7 @@
|
| content::RecordAction(UserMetricsAction("OverrideEncoding"));
|
| const std::string selected_encoding =
|
| CharacterEncoding::GetCanonicalEncodingNameByCommandId(encoding_id);
|
| - WebContents* contents = GetActiveWebContents();
|
| + WebContents* contents = chrome::GetActiveWebContents(this);
|
| if (!selected_encoding.empty() && contents)
|
| contents->SetOverrideEncoding(selected_encoding);
|
| // Update the list of recently selected encodings.
|
| @@ -965,14 +812,14 @@
|
| select_file_dialog_->SelectFile(SelectFileDialog::SELECT_OPEN_FILE,
|
| string16(), directory,
|
| NULL, 0, FILE_PATH_LITERAL(""),
|
| - GetActiveWebContents(),
|
| + chrome::GetActiveWebContents(this),
|
| parent_window, NULL);
|
| }
|
|
|
| void Browser::OpenCreateShortcutsDialog() {
|
| content::RecordAction(UserMetricsAction("CreateShortcut"));
|
| #if !defined(OS_MACOSX)
|
| - TabContents* current_tab = GetActiveTabContents();
|
| + TabContents* current_tab = chrome::GetActiveTabContents(this);
|
| DCHECK(current_tab &&
|
| web_app::IsValidUrl(current_tab->web_contents()->GetURL())) <<
|
| "Menu item should be disabled.";
|
| @@ -1139,7 +986,7 @@
|
| bool user_initiated) {
|
| tab_strip_model_->TabNavigating(contents, transition);
|
|
|
| - bool contents_is_selected = contents == GetActiveTabContents();
|
| + bool contents_is_selected = contents == chrome::GetActiveTabContents(this);
|
| if (user_initiated && contents_is_selected && window()->GetLocationBar()) {
|
| // Forcibly reset the location bar if the url is going to change in the
|
| // current tab, since otherwise it won't discard any ongoing user edits,
|
| @@ -1169,21 +1016,6 @@
|
| return OpenURLFromTab(NULL, params);
|
| }
|
|
|
| -// Centralized method for creating a TabContents, configuring and
|
| -// installing all its supporting objects and observers.
|
| -TabContents* Browser::TabContentsFactory(
|
| - Profile* profile,
|
| - SiteInstance* site_instance,
|
| - int routing_id,
|
| - const WebContents* base_web_contents,
|
| - content::SessionStorageNamespace* session_storage_namespace) {
|
| - WebContents* new_contents = WebContents::Create(
|
| - profile, site_instance, routing_id, base_web_contents,
|
| - session_storage_namespace);
|
| - TabContents* tab_contents = new TabContents(new_contents);
|
| - return tab_contents;
|
| -}
|
| -
|
| ///////////////////////////////////////////////////////////////////////////////
|
| // Browser, TabStripModelDelegate implementation:
|
|
|
| @@ -1239,8 +1071,8 @@
|
| const GURL& url, const content::Referrer& referrer, Profile* profile,
|
| content::PageTransition transition, bool defer_load,
|
| SiteInstance* instance) const {
|
| - TabContents* contents = TabContentsFactory(profile, instance,
|
| - MSG_ROUTING_NONE, GetActiveWebContents(), NULL);
|
| + TabContents* contents = chrome::TabContentsFactory(profile, instance,
|
| + MSG_ROUTING_NONE, chrome::GetActiveWebContents(this), NULL);
|
| if (!defer_load) {
|
| // Load the initial URL before adding the new tab contents to the tab strip
|
| // so that the tab contents has navigation state.
|
| @@ -1252,12 +1084,13 @@
|
| }
|
|
|
| bool Browser::CanDuplicateContentsAt(int index) {
|
| - NavigationController& nc = GetWebContentsAt(index)->GetController();
|
| + NavigationController& nc =
|
| + chrome::GetWebContentsAt(this, index)->GetController();
|
| return nc.GetWebContents() && nc.GetLastCommittedEntry();
|
| }
|
|
|
| void Browser::DuplicateContentsAt(int index) {
|
| - TabContents* contents = GetTabContentsAt(index);
|
| + TabContents* contents = chrome::GetTabContentsAt(this, index);
|
| CHECK(contents);
|
| TabContents* contents_dupe = contents->Clone();
|
|
|
| @@ -1266,7 +1099,7 @@
|
| // If this is a tabbed browser, just create a duplicate tab inside the same
|
| // window next to the tab being duplicated.
|
| int index = tab_strip_model_->GetIndexOfTabContents(contents);
|
| - pinned = IsTabPinned(index);
|
| + pinned = tab_strip_model_->IsTabPinned(index);
|
| int add_types = TabStripModel::ADD_ACTIVE |
|
| TabStripModel::ADD_INHERIT_GROUP |
|
| (pinned ? TabStripModel::ADD_PINNED : 0);
|
| @@ -1295,7 +1128,7 @@
|
| browser->window()->Show();
|
|
|
| // The page transition below is only for the purpose of inserting the tab.
|
| - browser->AddTab(contents_dupe, content::PAGE_TRANSITION_LINK);
|
| + chrome::AddTab(browser, contents_dupe, content::PAGE_TRANSITION_LINK);
|
| }
|
|
|
| SessionService* session_service =
|
| @@ -1433,7 +1266,7 @@
|
| }
|
|
|
| // Discarded tabs always get reloaded.
|
| - if (!did_reload && IsTabDiscarded(index)) {
|
| + if (!did_reload && tab_strip_model_->IsTabDiscarded(index)) {
|
| LOG(WARNING) << "Reloading discarded tab at " << index;
|
| static int reload_count = 0;
|
| UMA_HISTOGRAM_CUSTOM_COUNTS(
|
| @@ -1465,7 +1298,7 @@
|
|
|
| // Show the loading state (if any).
|
| status_bubble->SetStatus(
|
| - GetActiveTabContents()->core_tab_helper()->GetStatusText());
|
| + chrome::GetActiveTabContents(this)->core_tab_helper()->GetStatusText());
|
| }
|
|
|
| if (HasFindBarController()) {
|
| @@ -1514,7 +1347,8 @@
|
| if (session_service) {
|
| // The new_contents may end up with a different navigation stack. Force
|
| // the session service to update itself.
|
| - session_service->TabRestored(new_contents, IsTabPinned(index));
|
| + session_service->TabRestored(new_contents,
|
| + tab_strip_model_->IsTabPinned(index));
|
| }
|
|
|
| content::DevToolsManager::GetInstance()->ContentsReplaced(
|
| @@ -1527,8 +1361,9 @@
|
| if (session_service) {
|
| session_service->SetPinnedState(
|
| session_id(),
|
| - GetTabContentsAt(index)->restore_tab_helper()->session_id(),
|
| - IsTabPinned(index));
|
| + chrome::GetTabContentsAt(this, index)->restore_tab_helper()->
|
| + session_id(),
|
| + tab_strip_model_->IsTabPinned(index));
|
| }
|
| }
|
|
|
| @@ -1574,7 +1409,7 @@
|
| bool Browser::TabsNeedBeforeUnloadFired() {
|
| if (tabs_needing_before_unload_fired_.empty()) {
|
| for (int i = 0; i < tab_count(); ++i) {
|
| - WebContents* contents = GetTabContentsAt(i)->web_contents();
|
| + WebContents* contents = chrome::GetTabContentsAt(this, i)->web_contents();
|
| if (contents->NeedToFireBeforeUnload())
|
| tabs_needing_before_unload_fired_.insert(contents);
|
| }
|
| @@ -1635,7 +1470,7 @@
|
| WebContents* Browser::OpenURLFromTab(WebContents* source,
|
| const OpenURLParams& params) {
|
| browser::NavigateParams nav_params(this, params.url, params.transition);
|
| - nav_params.source_contents = GetTabContentsAt(
|
| + nav_params.source_contents = chrome::GetTabContentsAt(this,
|
| tab_strip_model_->GetIndexOfWebContents(source));
|
| nav_params.referrer = params.referrer;
|
| nav_params.disposition = params.disposition;
|
| @@ -1672,59 +1507,13 @@
|
| WindowOpenDisposition disposition,
|
| const gfx::Rect& initial_pos,
|
| bool user_gesture) {
|
| - // No code for this yet.
|
| - DCHECK(disposition != SAVE_TO_DISK);
|
| - // Can't create a new contents for the current tab - invalid case.
|
| - DCHECK(disposition != CURRENT_TAB);
|
| -
|
| - TabContents* source_tab_contents = NULL;
|
| - BlockedContentTabHelper* source_blocked_content = NULL;
|
| - TabContents* new_tab_contents = TabContents::FromWebContents(new_contents);
|
| - if (!new_tab_contents) {
|
| - new_tab_contents = new TabContents(new_contents);
|
| - }
|
| - if (source) {
|
| - source_tab_contents = TabContents::FromWebContents(source);
|
| - source_blocked_content = source_tab_contents->blocked_content_tab_helper();
|
| - }
|
| -
|
| - if (source_tab_contents) {
|
| - // Handle blocking of all contents.
|
| - if (source_blocked_content->all_contents_blocked()) {
|
| - source_blocked_content->AddTabContents(new_tab_contents,
|
| - disposition,
|
| - initial_pos,
|
| - user_gesture);
|
| - return;
|
| - }
|
| -
|
| - // Handle blocking of popups.
|
| - if ((disposition == NEW_POPUP) && !user_gesture &&
|
| - !CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kDisablePopupBlocking)) {
|
| - // Unrequested popups from normal pages are constrained unless they're in
|
| - // the whitelist. The popup owner will handle checking this.
|
| - GetConstrainingTabContents(source_tab_contents)->
|
| - blocked_content_tab_helper()->
|
| - AddPopup(new_tab_contents, initial_pos, user_gesture);
|
| - return;
|
| - }
|
| -
|
| - new_contents->GetRenderViewHost()->DisassociateFromPopupCount();
|
| - }
|
| -
|
| - browser::NavigateParams params(this, new_tab_contents);
|
| - params.source_contents = source ?
|
| - GetTabContentsAt(tab_strip_model_->GetIndexOfWebContents(source)): NULL;
|
| - params.disposition = disposition;
|
| - params.window_bounds = initial_pos;
|
| - params.window_action = browser::NavigateParams::SHOW_WINDOW;
|
| - params.user_gesture = user_gesture;
|
| - browser::Navigate(¶ms);
|
| + chrome::AddWebContents(this, source, new_contents, disposition, initial_pos,
|
| + user_gesture);
|
| }
|
|
|
| void Browser::ActivateContents(WebContents* contents) {
|
| - ActivateTabAt(tab_strip_model_->GetIndexOfWebContents(contents), false);
|
| + chrome::ActivateTabAt(this, tab_strip_model_->GetIndexOfWebContents(contents),
|
| + false);
|
| window_->Activate();
|
| }
|
|
|
| @@ -1736,13 +1525,14 @@
|
| window_->UpdateLoadingAnimations(tab_strip_model_->TabsAreLoading());
|
| window_->UpdateTitleBar();
|
|
|
| - WebContents* selected_contents = GetActiveWebContents();
|
| + WebContents* selected_contents = chrome::GetActiveWebContents(this);
|
| if (source == selected_contents) {
|
| bool is_loading = source->IsLoading();
|
| command_controller_->LoadingStateChanged(is_loading, false);
|
| if (GetStatusBubble()) {
|
| GetStatusBubble()->SetStatus(
|
| - GetActiveTabContents()->core_tab_helper()->GetStatusText());
|
| + chrome::GetActiveTabContents(this)->core_tab_helper()->
|
| + GetStatusText());
|
| }
|
|
|
| if (!is_loading && pending_web_app_action_ == UPDATE_SHORTCUT) {
|
| @@ -1771,13 +1561,7 @@
|
| return;
|
| }
|
|
|
| - int index = tab_strip_model_->GetIndexOfWebContents(source);
|
| - if (index == TabStripModel::kNoTab) {
|
| - NOTREACHED() << "CloseContents called for tab not in our strip";
|
| - return;
|
| - }
|
| - tab_strip_model_->CloseTabContentsAt(index,
|
| - TabStripModel::CLOSE_CREATE_HISTORICAL_TAB);
|
| + chrome::CloseWebContents(this, source);
|
| }
|
|
|
| void Browser::MoveContents(WebContents* source, const gfx::Rect& pos) {
|
| @@ -1798,7 +1582,7 @@
|
| if (!GetStatusBubble())
|
| return;
|
|
|
| - if (source == GetActiveWebContents()) {
|
| + if (source == chrome::GetActiveWebContents(this)) {
|
| PrefService* prefs = profile_->GetPrefs();
|
| GetStatusBubble()->SetURL(url, prefs->GetString(prefs::kAcceptLanguages));
|
| }
|
| @@ -1809,7 +1593,7 @@
|
| if (!GetStatusBubble())
|
| return;
|
|
|
| - if (source == GetActiveWebContents()) {
|
| + if (source == chrome::GetActiveWebContents(this)) {
|
| GetStatusBubble()->MouseMoved(location, !motion);
|
| if (!motion)
|
| GetStatusBubble()->SetURL(GURL(), std::string());
|
| @@ -1915,7 +1699,7 @@
|
| // Panels.
|
| // Don't show the animation if the selected tab is not visible (i.e. the
|
| // window is minimized, we're in a unit test, etc.).
|
| - WebContents* shelf_tab = shelf->browser()->GetActiveWebContents();
|
| + WebContents* shelf_tab = chrome::GetActiveWebContents(shelf->browser());
|
| if ((download->GetTotalBytes() > 0) &&
|
| !download_crx_util::IsExtensionDownload(*download) &&
|
| platform_util::IsVisible(shelf_tab->GetNativeView()) &&
|
| @@ -1930,7 +1714,7 @@
|
|
|
| void Browser::ViewSourceForTab(WebContents* source, const GURL& page_url) {
|
| DCHECK(source);
|
| - TabContents* tab_contents = GetTabContentsAt(
|
| + TabContents* tab_contents = chrome::GetTabContentsAt(this,
|
| tab_strip_model_->GetIndexOfWebContents(source));
|
| chrome::ViewSource(this, tab_contents);
|
| }
|
| @@ -1939,7 +1723,7 @@
|
| const GURL& frame_url,
|
| const std::string& frame_content_state) {
|
| DCHECK(source);
|
| - TabContents* tab_contents = GetTabContentsAt(
|
| + TabContents* tab_contents = chrome::GetTabContentsAt(this,
|
| tab_strip_model_->GetIndexOfWebContents(source));
|
| chrome::ViewSource(this, tab_contents, frame_url, frame_content_state);
|
| }
|
| @@ -2033,12 +1817,12 @@
|
| }
|
|
|
| void Browser::DidNavigateMainFramePostCommit(WebContents* web_contents) {
|
| - if (web_contents == GetActiveWebContents())
|
| + if (web_contents == chrome::GetActiveWebContents(this))
|
| UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE);
|
| }
|
|
|
| void Browser::DidNavigateToPendingEntry(WebContents* web_contents) {
|
| - if (web_contents == GetActiveWebContents())
|
| + if (web_contents == chrome::GetActiveWebContents(this))
|
| UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE);
|
| }
|
|
|
| @@ -2123,7 +1907,7 @@
|
| if (!web_contents) {
|
| // Intent is system-caused and the picker will show over the currently
|
| // active web contents.
|
| - web_contents = GetActiveWebContents();
|
| + web_contents = chrome::GetActiveWebContents(this);
|
| }
|
| TabContents* tab_contents = TabContents::FromWebContents(web_contents);
|
| tab_contents->web_intent_picker_controller()->SetIntentsDispatcher(
|
| @@ -2232,7 +2016,7 @@
|
| }
|
| tab_strip_model_->SetTabBlocked(index, blocked);
|
| command_controller_->PrintingStateChanged();
|
| - if (!blocked && GetActiveTabContents() == tab_contents)
|
| + if (!blocked && chrome::GetActiveTabContents(this) == tab_contents)
|
| tab_contents->web_contents()->Focus();
|
| }
|
|
|
| @@ -2247,7 +2031,7 @@
|
| // Browser, BookmarkTabHelperDelegate implementation:
|
|
|
| void Browser::URLStarredChanged(TabContents* source, bool starred) {
|
| - if (source == GetActiveTabContents())
|
| + if (source == chrome::GetActiveTabContents(this))
|
| window_->SetStarredState(starred);
|
| }
|
|
|
| @@ -2256,14 +2040,14 @@
|
|
|
| void Browser::OnZoomIconChanged(TabContents* source,
|
| ZoomController::ZoomIconState state) {
|
| - if (source == GetActiveTabContents())
|
| + if (source == chrome::GetActiveTabContents(this))
|
| window_->SetZoomIconState(state);
|
| }
|
|
|
| void Browser::OnZoomChanged(TabContents* source,
|
| int zoom_percent,
|
| bool can_show_bubble) {
|
| - if (source == GetActiveTabContents()) {
|
| + if (source == chrome::GetActiveTabContents(this)) {
|
| window_->SetZoomIconTooltipPercent(zoom_percent);
|
|
|
| // Only show the zoom bubble for zoom changes in the active window.
|
| @@ -2277,7 +2061,7 @@
|
|
|
| void Browser::OnDidGetApplicationInfo(TabContents* source,
|
| int32 page_id) {
|
| - if (GetActiveTabContents() != source)
|
| + if (chrome::GetActiveTabContents(this) != source)
|
| return;
|
|
|
| NavigationEntry* entry =
|
| @@ -2357,8 +2141,8 @@
|
| // (NavigationControllers) for convenience, so the notification could
|
| // actually be for a different window while we're doing asynchronous
|
| // closing of this one.
|
| - if (GetActiveWebContents() &&
|
| - &GetActiveWebContents()->GetController() ==
|
| + if (chrome::GetActiveWebContents(this) &&
|
| + &chrome::GetActiveWebContents(this)->GetController() ==
|
| content::Source<NavigationController>(source).ptr())
|
| UpdateToolbar(false);
|
| break;
|
| @@ -2375,8 +2159,7 @@
|
| content::Details<extensions::UnloadedExtensionInfo>(
|
| details)->extension;
|
| for (int i = tab_strip_model_->count() - 1; i >= 0; --i) {
|
| - WebContents* tc =
|
| - tab_strip_model_->GetTabContentsAt(i)->web_contents();
|
| + WebContents* tc = chrome::GetTabContentsAt(this, i)->web_contents();
|
| bool close_tab_contents =
|
| tc->GetURL().SchemeIs(chrome::kExtensionScheme) &&
|
| tc->GetURL().host() == extension->id();
|
| @@ -2385,9 +2168,8 @@
|
| (type_ == TYPE_PANEL &&
|
| (web_app::GetExtensionIdFromApplicationName(app_name_) ==
|
| extension->id()));
|
| - if (close_tab_contents) {
|
| - CloseTabContents(tc);
|
| - }
|
| + if (close_tab_contents)
|
| + chrome::CloseWebContents(this, tc);
|
| }
|
| }
|
| break;
|
| @@ -2446,7 +2228,7 @@
|
|
|
| case chrome::NOTIFICATION_WEB_CONTENT_SETTINGS_CHANGED: {
|
| WebContents* web_contents = content::Source<WebContents>(source).ptr();
|
| - if (web_contents == GetActiveWebContents()) {
|
| + if (web_contents == chrome::GetActiveWebContents(this)) {
|
| LocationBar* location_bar = window()->GetLocationBar();
|
| if (location_bar)
|
| location_bar->UpdateContentSettingsIcons();
|
| @@ -2475,20 +2257,20 @@
|
|
|
| // TODO(beng): investigate if we can avoid this and instead rely on the
|
| // visibility of the WebContentsView
|
| - GetActiveWebContents()->WasHidden();
|
| + chrome::GetActiveWebContents(this)->WasHidden();
|
| preview_contents->web_contents()->WasRestored();
|
| }
|
|
|
| void Browser::HideInstant() {
|
| window_->HideInstant();
|
| - if (GetActiveWebContents())
|
| - GetActiveWebContents()->WasRestored();
|
| + if (chrome::GetActiveWebContents(this))
|
| + chrome::GetActiveWebContents(this)->WasRestored();
|
| if (instant_->GetPreviewContents())
|
| instant_->GetPreviewContents()->web_contents()->WasHidden();
|
| }
|
|
|
| void Browser::CommitInstant(TabContents* preview_contents) {
|
| - TabContents* tab_contents = GetActiveTabContents();
|
| + TabContents* tab_contents = chrome::GetActiveTabContents(this);
|
| int index = tab_strip_model_->GetIndexOfTabContents(tab_contents);
|
| DCHECK_NE(TabStripModel::kNoTab, index);
|
| // TabStripModel takes ownership of preview_contents.
|
| @@ -2520,7 +2302,7 @@
|
| }
|
|
|
| TabContents* Browser::GetInstantHostTabContents() const {
|
| - return GetActiveTabContents();
|
| + return chrome::GetActiveTabContents(this);
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
| @@ -2534,7 +2316,8 @@
|
| // Browser, UI update coalescing and handling (private):
|
|
|
| void Browser::UpdateToolbar(bool should_restore_state) {
|
| - window_->UpdateToolbar(GetActiveTabContents(), should_restore_state);
|
| + window_->UpdateToolbar(chrome::GetActiveTabContents(this),
|
| + should_restore_state);
|
| }
|
|
|
| void Browser::UpdateSearchState(TabContents* contents) {
|
| @@ -2549,7 +2332,7 @@
|
|
|
| // Do some synchronous updates.
|
| if (changed_flags & content::INVALIDATE_TYPE_URL &&
|
| - source == GetActiveWebContents()) {
|
| + source == chrome::GetActiveWebContents(this)) {
|
| // Only update the URL for the current tab. Note that we do not update
|
| // the navigation commands since those would have already been updated
|
| // synchronously by NavigationStateChanged.
|
| @@ -2561,7 +2344,7 @@
|
| // immediately start/stop, which gives a more snappy feel. We want to do
|
| // this for any tab so they start & stop quickly.
|
| tab_strip_model_->UpdateTabContentsStateAt(
|
| - GetIndexOfController(&source->GetController()),
|
| + chrome::GetIndexOfTab(this, source),
|
| TabStripModelObserver::LOADING_ONLY);
|
| // The status bubble needs to be updated during INVALIDATE_TYPE_LOAD too,
|
| // but we do that asynchronously by not stripping INVALIDATE_TYPE_LOAD from
|
| @@ -2574,7 +2357,7 @@
|
| // the TabStripModel, so we notify the TabStripModel now and notify others
|
| // asynchronously.
|
| tab_strip_model_->UpdateTabContentsStateAt(
|
| - GetIndexOfController(&source->GetController()),
|
| + chrome::GetIndexOfTab(this, source),
|
| TabStripModelObserver::TITLE_NOT_LOADING);
|
| }
|
|
|
| @@ -2604,7 +2387,7 @@
|
| i != scheduled_updates_.end(); ++i) {
|
| bool found = false;
|
| for (int tab = 0; tab < tab_count(); tab++) {
|
| - if (GetWebContentsAt(tab) == i->first) {
|
| + if (chrome::GetWebContentsAt(this, tab) == i->first) {
|
| found = true;
|
| break;
|
| }
|
| @@ -2621,7 +2404,7 @@
|
| const WebContents* contents = i->first;
|
| unsigned flags = i->second;
|
|
|
| - if (contents == GetActiveWebContents()) {
|
| + if (contents == chrome::GetActiveWebContents(this)) {
|
| // Updates that only matter when the tab is selected go here.
|
|
|
| if (flags & content::INVALIDATE_TYPE_PAGE_ACTIONS) {
|
| @@ -2631,9 +2414,8 @@
|
| }
|
| // Updating the URL happens synchronously in ScheduleUIUpdate.
|
| if (flags & content::INVALIDATE_TYPE_LOAD && GetStatusBubble()) {
|
| - GetStatusBubble()->SetStatus(
|
| - GetActiveTabContents()->
|
| - core_tab_helper()->GetStatusText());
|
| + GetStatusBubble()->SetStatus(chrome::GetActiveTabContents(this)->
|
| + core_tab_helper()->GetStatusText());
|
| }
|
|
|
| if (flags & (content::INVALIDATE_TYPE_TAB |
|
| @@ -2684,14 +2466,14 @@
|
| SessionServiceFactory::GetForProfileIfExisting(profile());
|
| if (session_service) {
|
| for (int i = index; i < tab_count(); ++i) {
|
| - TabContents* tab = GetTabContentsAt(i);
|
| + TabContents* tab = chrome::GetTabContentsAt(this, i);
|
| if (tab) {
|
| session_service->SetTabIndexInWindow(
|
| session_id(), tab->restore_tab_helper()->session_id(), i);
|
| session_service->SetPinnedState(
|
| session_id(),
|
| tab->restore_tab_helper()->session_id(),
|
| - IsTabPinned(i));
|
| + tab_strip_model_->IsTabPinned(i));
|
| }
|
| }
|
| }
|
| @@ -2845,7 +2627,7 @@
|
| // is the selected tab. Because saving state can conditionally revert the
|
| // location bar, saving the current tab's location bar state to a
|
| // non-selected tab can corrupt both tabs.
|
| - if (contents == GetActiveTabContents()) {
|
| + if (contents == chrome::GetActiveTabContents(this)) {
|
| LocationBar* location_bar = window()->GetLocationBar();
|
| if (location_bar)
|
| location_bar->SaveStateToContents(contents->web_contents());
|
| @@ -2928,7 +2710,7 @@
|
| (!window_ || !window_->IsFullscreen())) {
|
| state = BookmarkBar::SHOW;
|
| } else {
|
| - TabContents* tab = GetActiveTabContents();
|
| + TabContents* tab = chrome::GetActiveTabContents(this);
|
| if (tab && tab->bookmark_tab_helper()->ShouldShowBookmarkBar())
|
| state = BookmarkBar::DETACHED;
|
| else
|
|
|