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

Unified Diff: chrome/browser/tab_contents.cc

Issue 479: DidNavigate refactor of doom (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/tab_contents.cc
===================================================================
--- chrome/browser/tab_contents.cc (revision 1840)
+++ chrome/browser/tab_contents.cc (working copy)
@@ -60,21 +60,23 @@
}
int32 TabContents::GetMaxPageID() {
- if (AsWebContents())
- return AsWebContents()->site_instance()->max_page_id();
+ if (GetSiteInstance())
+ return GetSiteInstance()->max_page_id();
else
return max_page_id_;
}
void TabContents::UpdateMaxPageID(int32 page_id) {
- if (AsWebContents()) {
- // Ensure both the SiteInstance and RenderProcessHost update their max page
- // IDs in sync.
- AsWebContents()->site_instance()->UpdateMaxPageID(page_id);
+ // Ensure both the SiteInstance and RenderProcessHost update their max page
+ // IDs in sync. Only WebContents will also have site instances, except during
+ // testing.
+ if (GetSiteInstance())
+ GetSiteInstance()->UpdateMaxPageID(page_id);
+
+ if (AsWebContents())
AsWebContents()->process()->UpdateMaxPageID(page_id);
- } else {
+ else
max_page_id_ = std::max(max_page_id_, page_id);
- }
}
const std::wstring TabContents::GetDefaultTitle() const {
@@ -256,35 +258,10 @@
NotificationService::NoDetails());
}
-void TabContents::DidNavigateToEntry(
- NavigationEntry* entry,
- NavigationController::LoadCommittedDetails* details) {
- // The entry may be deleted by DidNavigateToEntry...
- int new_page_id = entry->page_id();
-
- controller_->DidNavigateToEntry(entry, details);
-
- // update after informing the navigation controller so it can check the
- // previous value of the max page id.
- UpdateMaxPageID(new_page_id);
-}
-
-bool TabContents::Navigate(const NavigationEntry& entry, bool reload) {
- NavigationEntry* new_entry = new NavigationEntry(entry);
- if (new_entry->page_id() == -1) {
- // This is a new navigation. Our behavior is to always navigate to the
- // same page (page 0) in response to a navigation.
- new_entry->set_page_id(0);
- new_entry->set_title(GetDefaultTitle());
- }
-
- // When we're commanded to navigate like this, it's always a new main frame
- // navigation (which is the default for the details).
- NavigationController::LoadCommittedDetails details;
- if (controller()->GetLastCommittedEntry())
- details.previous_url = controller()->GetLastCommittedEntry()->url();
-
- DidNavigateToEntry(new_entry, &details);
+bool TabContents::NavigateToPendingEntry(bool reload) {
+ // Our benavior is just to report that the entry was committed.
+ controller()->GetPendingEntry()->set_title(GetDefaultTitle());
+ controller()->CommitPendingEntry();
return true;
}

Powered by Google App Engine
This is Rietveld 408576698