Index: content/browser/web_contents/navigation_controller_impl.cc |
diff --git a/content/browser/web_contents/navigation_controller_impl.cc b/content/browser/web_contents/navigation_controller_impl.cc |
index 25d4874d1083a1bbfd6df35da7670c905ddb7d4a..28ad4a481829ea79a4d13de709ee6f270516319c 100644 |
--- a/content/browser/web_contents/navigation_controller_impl.cc |
+++ b/content/browser/web_contents/navigation_controller_impl.cc |
@@ -563,121 +563,91 @@ void NavigationControllerImpl::AddTransientEntry(NavigationEntryImpl* entry) { |
web_contents_->NotifyNavigationStateChanged(kInvalidateAll); |
} |
-void NavigationControllerImpl::TransferURL( |
- const GURL& url, |
- const content::Referrer& referrer, |
- content::PageTransition transition, |
- const std::string& extra_headers, |
- const GlobalRequestID& transferred_global_request_id, |
- bool is_renderer_initiated) { |
- // The user initiated a load, we don't need to reload anymore. |
- needs_reload_ = false; |
- |
- NavigationEntryImpl* entry = NavigationEntryImpl::FromNavigationEntry( |
- CreateNavigationEntry( |
- url, referrer, transition, is_renderer_initiated, extra_headers, |
- browser_context_)); |
- entry->set_transferred_global_request_id(transferred_global_request_id); |
- |
- LoadEntry(entry); |
-} |
- |
void NavigationControllerImpl::LoadURL( |
const GURL& url, |
const content::Referrer& referrer, |
content::PageTransition transition, |
const std::string& extra_headers) { |
- if (content::HandleDebugURL(url, transition)) |
- return; |
- |
- bool override = ShouldKeepOverride(GetLastCommittedEntry()); |
- LoadURLWithUserAgentOverride(url, referrer, transition, false, extra_headers, |
- override); |
+ LoadURLParams params(url); |
+ params.referrer = referrer; |
+ params.transition_type = transition; |
+ params.extra_headers = extra_headers; |
+ LoadURLWithParams(params); |
} |
-void NavigationControllerImpl::LoadURLFromRenderer( |
- const GURL& url, |
- const content::Referrer& referrer, |
- content::PageTransition transition, |
- const std::string& extra_headers) { |
- bool override = ShouldKeepOverride(GetLastCommittedEntry()); |
- LoadURLWithUserAgentOverride(url, referrer, transition, true, extra_headers, |
- override); |
-} |
+void NavigationControllerImpl::LoadURLWithParams(const LoadURLParams& params) { |
+ if (content::HandleDebugURL(params.url, params.transition_type)) |
+ return; |
+ |
+ // Checks based on params.load_type. |
+ switch (params.load_type) { |
+ case LOAD_TYPE_DEFAULT: |
+ break; |
+ case LOAD_TYPE_BROWSER_INITIATED_HTTP_POST: |
+ if (!params.url.SchemeIs(chrome::kHttpScheme) && |
+ !params.url.SchemeIs(chrome::kHttpsScheme)) { |
+ NOTREACHED() << "Http post load must use http(s) scheme."; |
+ return; |
+ } |
+ break; |
+ case LOAD_TYPE_DATA: |
+ if (!params.url.SchemeIs(chrome::kDataScheme)) { |
+ NOTREACHED() << "Data load must use data scheme."; |
+ return; |
+ } |
+ break; |
+ default: |
+ NOTREACHED(); |
+ break; |
+ }; |
-void NavigationControllerImpl::LoadURLWithUserAgentOverride( |
- const GURL& url, |
- const content::Referrer& referrer, |
- content::PageTransition transition, |
- bool is_renderer_initiated, |
- const std::string& extra_headers, |
- bool is_overriding_user_agent) { |
// The user initiated a load, we don't need to reload anymore. |
needs_reload_ = false; |
- NavigationEntryImpl* entry = NavigationEntryImpl::FromNavigationEntry( |
- CreateNavigationEntry( |
- url, referrer, transition, is_renderer_initiated, extra_headers, |
- browser_context_)); |
- entry->SetIsOverridingUserAgent(is_overriding_user_agent); |
- |
- LoadEntry(entry); |
-} |
- |
-void NavigationControllerImpl::LoadDataWithBaseURL( |
- const GURL& data_url, |
- const content::Referrer& referrer, |
- const GURL& base_url, |
- const GURL& history_url, |
- bool is_overriding_user_agent) { |
- // Make sure we don't allow non-'data:' URLs. |
- if (!data_url.SchemeIs(chrome::kDataScheme)) { |
- NOTREACHED(); |
- return; |
+ bool override = false; |
+ switch (params.override_user_agent) { |
+ case UA_OVERRIDE_INHERIT: |
+ override = ShouldKeepOverride(GetLastCommittedEntry()); |
+ break; |
+ case UA_OVERRIDE_TRUE: |
+ override = true; |
+ break; |
+ case UA_OVERRIDE_FALSE: |
+ override = false; |
+ break; |
+ default: |
+ NOTREACHED(); |
+ break; |
} |
- needs_reload_ = false; |
- |
NavigationEntryImpl* entry = NavigationEntryImpl::FromNavigationEntry( |
CreateNavigationEntry( |
- data_url, |
- referrer, |
- content::PAGE_TRANSITION_TYPED, |
- false, |
- std::string(), |
+ params.url, |
+ params.referrer, |
+ params.transition_type, |
+ params.is_renderer_initiated, |
+ params.extra_headers, |
browser_context_)); |
- entry->SetIsOverridingUserAgent(is_overriding_user_agent); |
- entry->SetBaseURLForDataURL(base_url); |
- entry->SetVirtualURL(history_url); |
- |
- LoadEntry(entry); |
-} |
+ entry->SetIsOverridingUserAgent(override); |
+ entry->set_transferred_global_request_id( |
+ params.transferred_global_request_id); |
-void NavigationControllerImpl::PostURL( |
- const GURL& url, |
- const content::Referrer& referrer, |
- const base::RefCountedMemory& http_body, |
- bool is_overriding_user_agent) { |
- // Must be http scheme for a post request. |
- if (!url.SchemeIs(chrome::kHttpScheme) && |
- !url.SchemeIs(chrome::kHttpsScheme)) { |
- NOTREACHED(); |
- return; |
- } |
- |
- needs_reload_ = false; |
- |
- NavigationEntryImpl* entry = NavigationEntryImpl::FromNavigationEntry( |
- CreateNavigationEntry( |
- url, |
- referrer, |
- content::PAGE_TRANSITION_TYPED, |
- false, |
- std::string(), |
- browser_context_)); |
- entry->SetIsOverridingUserAgent(is_overriding_user_agent); |
- entry->SetHasPostData(true); |
- entry->SetBrowserInitiatedPostData(&http_body); |
+ switch (params.load_type) { |
+ case LOAD_TYPE_DEFAULT: |
+ break; |
+ case LOAD_TYPE_BROWSER_INITIATED_HTTP_POST: |
+ entry->SetHasPostData(true); |
+ entry->SetBrowserInitiatedPostData( |
+ params.browser_initiated_post_data); |
+ break; |
+ case LOAD_TYPE_DATA: |
+ entry->SetBaseURLForDataURL(params.base_url_for_data_url); |
+ entry->SetVirtualURL(params.virtual_url_for_data_url); |
+ break; |
+ default: |
+ NOTREACHED(); |
+ break; |
+ }; |
LoadEntry(entry); |
} |