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

Unified Diff: content/browser/web_contents/web_contents_impl.cc

Issue 10450002: Transfer user agent override info between browser and renderer (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Default to not overriding in prerender config Created 8 years, 6 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
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/view_messages.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/web_contents/web_contents_impl.cc
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 6b345d2187d84070a97be7f5403f99f2caeef464..e4d1397b7a428d49ee0b43fc86ee5b3e84496f1e 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -227,6 +227,7 @@ void MakeNavigateParams(const NavigationEntryImpl& entry,
entry.transferred_global_request_id().child_id;
params->transferred_request_request_id =
entry.transferred_global_request_id().request_id;
+ params->is_overriding_user_agent = entry.GetIsOverridingUserAgent();
// Avoid downloading when in view-source mode.
params->allow_download = !entry.IsViewSourceMode();
params->embedder_channel_name = embedder_channel_name;
@@ -749,11 +750,25 @@ content::WebUI* WebContentsImpl::GetCommittedWebUI() const {
}
void WebContentsImpl::SetUserAgentOverride(const std::string& override) {
- user_agent_override_ = override;
+ if (GetUserAgentOverride() == override)
+ return;
+
+ renderer_preferences_.user_agent_override = override;
+
+ // Send the new override string to the renderer.
+ RenderViewHost* host = GetRenderViewHost();
+ if (host)
+ host->SyncRendererPrefs();
+
+ // Reload the page if a load is currently in progress to avoid having
+ // different parts of the page loaded using different user agents.
+ NavigationEntry* entry = controller_.GetActiveEntry();
+ if (is_loading_ && entry != NULL && entry->GetIsOverridingUserAgent())
+ controller_.ReloadIgnoringCache(true);
}
const std::string& WebContentsImpl::GetUserAgentOverride() const {
- return user_agent_override_;
+ return renderer_preferences_.user_agent_override;
}
const string16& WebContentsImpl::GetTitle() const {
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/view_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698