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

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: Cleand up userAgentOverride 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
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 0e2c5155d0bdcb1d37b61e6f4f7178041d8b55ba..231430c763a518a000f4091785b2081010243543 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -226,6 +226,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;
@@ -746,11 +747,27 @@ content::WebUI* WebContentsImpl::GetCommittedWebUI() const {
}
void WebContentsImpl::SetUserAgentOverride(const std::string& override) {
- user_agent_override_ = override;
+ if (GetUserAgentOverride() == override) {
Charlie Reis 2012/06/19 22:47:59 nit: No braces needed on a one-line if. (Ditto be
gone 2012/06/20 00:01:10 Done.
+ 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 {

Powered by Google App Engine
This is Rietveld 408576698