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

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

Issue 3360003: Revert "Don't create pending entries when a navigation is initiated by the page." (Closed)
Patch Set: Created 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/tab_contents/tab_contents.h" 5 #include "chrome/browser/tab_contents/tab_contents.h"
6 6
7 #if defined(OS_CHROMEOS) 7 #if defined(OS_CHROMEOS)
8 // For GdkScreen 8 // For GdkScreen
9 #include <gdk/gdk.h> 9 #include <gdk/gdk.h>
10 #endif // defined(OS_CHROMEOS) 10 #endif // defined(OS_CHROMEOS)
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 break; // Fall through to rest of function. 217 break; // Fall through to rest of function.
218 } 218 }
219 219
220 if (entry.restore_type() == NavigationEntry::RESTORE_LAST_SESSION && 220 if (entry.restore_type() == NavigationEntry::RESTORE_LAST_SESSION &&
221 profile->DidLastSessionExitCleanly()) 221 profile->DidLastSessionExitCleanly())
222 return ViewMsg_Navigate_Params::RESTORE; 222 return ViewMsg_Navigate_Params::RESTORE;
223 223
224 return ViewMsg_Navigate_Params::NORMAL; 224 return ViewMsg_Navigate_Params::NORMAL;
225 } 225 }
226 226
227 void MakeNavigateParams(const NavigationEntry& entry, 227 void MakeNavigateParams(const NavigationController& controller,
228 const NavigationController& controller,
229 NavigationController::ReloadType reload_type, 228 NavigationController::ReloadType reload_type,
230 ViewMsg_Navigate_Params* params) { 229 ViewMsg_Navigate_Params* params) {
230 const NavigationEntry& entry = *controller.pending_entry();
231 params->page_id = entry.page_id(); 231 params->page_id = entry.page_id();
232 params->pending_history_list_offset = controller.GetIndexOfEntry(&entry); 232 params->pending_history_list_offset = controller.pending_entry_index();
233 params->current_history_list_offset = controller.last_committed_entry_index(); 233 params->current_history_list_offset = controller.last_committed_entry_index();
234 params->current_history_list_length = controller.entry_count(); 234 params->current_history_list_length = controller.entry_count();
235 params->url = entry.url(); 235 params->url = entry.url();
236 params->referrer = entry.referrer(); 236 params->referrer = entry.referrer();
237 params->transition = entry.transition_type(); 237 params->transition = entry.transition_type();
238 params->state = entry.content_state(); 238 params->state = entry.content_state();
239 params->navigation_type = 239 params->navigation_type =
240 GetNavigationType(controller.profile(), entry, reload_type); 240 GetNavigationType(controller.profile(), entry, reload_type);
241 params->request_time = base::Time::Now(); 241 params->request_time = base::Time::Now();
242 } 242 }
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 837
838 void TabContents::OpenURL(const GURL& url, const GURL& referrer, 838 void TabContents::OpenURL(const GURL& url, const GURL& referrer,
839 WindowOpenDisposition disposition, 839 WindowOpenDisposition disposition,
840 PageTransition::Type transition) { 840 PageTransition::Type transition) {
841 if (delegate_) 841 if (delegate_)
842 delegate_->OpenURLFromTab(this, url, referrer, disposition, transition); 842 delegate_->OpenURLFromTab(this, url, referrer, disposition, transition);
843 } 843 }
844 844
845 bool TabContents::NavigateToPendingEntry( 845 bool TabContents::NavigateToPendingEntry(
846 NavigationController::ReloadType reload_type) { 846 NavigationController::ReloadType reload_type) {
847 return NavigateToEntry(*controller_.pending_entry(), reload_type); 847 const NavigationEntry& entry = *controller_.pending_entry();
848 }
849 848
850 bool TabContents::NavigateToEntry(
851 const NavigationEntry& entry,
852 NavigationController::ReloadType reload_type) {
853 RenderViewHost* dest_render_view_host = render_manager_.Navigate(entry); 849 RenderViewHost* dest_render_view_host = render_manager_.Navigate(entry);
854 if (!dest_render_view_host) 850 if (!dest_render_view_host)
855 return false; // Unable to create the desired render view host. 851 return false; // Unable to create the desired render view host.
856 852
857 if (delegate_ && delegate_->ShouldEnablePreferredSizeNotifications()) { 853 if (delegate_ && delegate_->ShouldEnablePreferredSizeNotifications()) {
858 dest_render_view_host->EnablePreferredSizeChangedMode( 854 dest_render_view_host->EnablePreferredSizeChangedMode(
859 kPreferredSizeWidth | kPreferredSizeHeightThisIsSlow); 855 kPreferredSizeWidth | kPreferredSizeHeightThisIsSlow);
860 } 856 }
861 857
862 // For security, we should never send non-DOM-UI URLs (other than about:blank) 858 // For security, we should never send non-DOM-UI URLs (other than about:blank)
(...skipping 11 matching lines...) Expand all
874 devtools_manager->OnNavigatingToPendingEntry(render_view_host(), 870 devtools_manager->OnNavigatingToPendingEntry(render_view_host(),
875 dest_render_view_host, 871 dest_render_view_host,
876 entry.url()); 872 entry.url());
877 } 873 }
878 874
879 // Used for page load time metrics. 875 // Used for page load time metrics.
880 current_load_start_ = base::TimeTicks::Now(); 876 current_load_start_ = base::TimeTicks::Now();
881 877
882 // Navigate in the desired RenderViewHost. 878 // Navigate in the desired RenderViewHost.
883 ViewMsg_Navigate_Params navigate_params; 879 ViewMsg_Navigate_Params navigate_params;
884 MakeNavigateParams(entry, controller_, reload_type, &navigate_params); 880 MakeNavigateParams(controller_, reload_type, &navigate_params);
885 dest_render_view_host->Navigate(navigate_params); 881 dest_render_view_host->Navigate(navigate_params);
886 882
887 if (entry.page_id() == -1) { 883 if (entry.page_id() == -1) {
888 // HACK!! This code suppresses javascript: URLs from being added to 884 // HACK!! This code suppresses javascript: URLs from being added to
889 // session history, which is what we want to do for javascript: URLs that 885 // session history, which is what we want to do for javascript: URLs that
890 // do not generate content. What we really need is a message from the 886 // do not generate content. What we really need is a message from the
891 // renderer telling us that a new page was not created. The same message 887 // renderer telling us that a new page was not created. The same message
892 // could be used for mailto: URLs and the like. 888 // could be used for mailto: URLs and the like.
893 if (entry.url().SchemeIs(chrome::kJavaScriptScheme)) 889 if (entry.url().SchemeIs(chrome::kJavaScriptScheme))
894 return false; 890 return false;
(...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after
1981 last_search_result_ = FindNotificationDetails(request_id, number_of_matches, 1977 last_search_result_ = FindNotificationDetails(request_id, number_of_matches,
1982 selection, active_match_ordinal, 1978 selection, active_match_ordinal,
1983 final_update); 1979 final_update);
1984 NotificationService::current()->Notify( 1980 NotificationService::current()->Notify(
1985 NotificationType::FIND_RESULT_AVAILABLE, 1981 NotificationType::FIND_RESULT_AVAILABLE,
1986 Source<TabContents>(this), 1982 Source<TabContents>(this),
1987 Details<FindNotificationDetails>(&last_search_result_)); 1983 Details<FindNotificationDetails>(&last_search_result_));
1988 } 1984 }
1989 1985
1990 void TabContents::GoToEntryAtOffset(int offset) { 1986 void TabContents::GoToEntryAtOffset(int offset) {
1991 if (!delegate_ || delegate_->OnGoToEntryOffset(offset)) { 1987 if (!delegate_ || delegate_->OnGoToEntryOffset(offset))
1992 NavigationEntry* entry = controller_.GetEntryAtOffset(offset); 1988 controller_.GoToOffset(offset);
1993 if (!entry)
1994 return;
1995 // Note that we don't call NavigationController::GotToOffset() as we don't
1996 // want to create a pending navigation entry (it might end up lingering
1997 // http://crbug.com/51680).
1998 NavigateToEntry(*entry, NavigationController::NO_RELOAD);
1999 }
2000 } 1989 }
2001 1990
2002 void TabContents::OnMissingPluginStatus(int status) { 1991 void TabContents::OnMissingPluginStatus(int status) {
2003 #if defined(OS_WIN) 1992 #if defined(OS_WIN)
2004 // TODO(PORT): pull in when plug-ins work 1993 // TODO(PORT): pull in when plug-ins work
2005 GetPluginInstaller()->OnMissingPluginStatus(status); 1994 GetPluginInstaller()->OnMissingPluginStatus(status);
2006 #endif 1995 #endif
2007 } 1996 }
2008 1997
2009 void TabContents::OnCrashedPlugin(const FilePath& plugin_path) { 1998 void TabContents::OnCrashedPlugin(const FilePath& plugin_path) {
(...skipping 1244 matching lines...) Expand 10 before | Expand all | Expand 10 after
3254 AddInfoBar(new SavePasswordInfoBarDelegate(this, form_to_save)); 3243 AddInfoBar(new SavePasswordInfoBarDelegate(this, form_to_save));
3255 } 3244 }
3256 3245
3257 Profile* TabContents::GetProfileForPasswordManager() { 3246 Profile* TabContents::GetProfileForPasswordManager() {
3258 return profile(); 3247 return profile();
3259 } 3248 }
3260 3249
3261 bool TabContents::DidLastPageLoadEncounterSSLErrors() { 3250 bool TabContents::DidLastPageLoadEncounterSSLErrors() {
3262 return controller().ssl_manager()->ProcessedSSLErrorFromRequest(); 3251 return controller().ssl_manager()->ProcessedSSLErrorFromRequest();
3263 } 3252 }
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents/tab_contents.h ('k') | chrome/browser/tab_contents/test_tab_contents.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698