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

Side by Side 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: Moved override state to DocumentState 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 params->transition = entry.GetTransitionType(); 219 params->transition = entry.GetTransitionType();
220 params->state = entry.GetContentState(); 220 params->state = entry.GetContentState();
221 params->navigation_type = 221 params->navigation_type =
222 GetNavigationType(controller.GetBrowserContext(), entry, reload_type); 222 GetNavigationType(controller.GetBrowserContext(), entry, reload_type);
223 params->request_time = base::Time::Now(); 223 params->request_time = base::Time::Now();
224 params->extra_headers = entry.extra_headers(); 224 params->extra_headers = entry.extra_headers();
225 params->transferred_request_child_id = 225 params->transferred_request_child_id =
226 entry.transferred_global_request_id().child_id; 226 entry.transferred_global_request_id().child_id;
227 params->transferred_request_request_id = 227 params->transferred_request_request_id =
228 entry.transferred_global_request_id().request_id; 228 entry.transferred_global_request_id().request_id;
229 params->is_overriding_user_agent = entry.GetIsOverridingUserAgent();
229 // Avoid downloading when in view-source mode. 230 // Avoid downloading when in view-source mode.
230 params->allow_download = !entry.IsViewSourceMode(); 231 params->allow_download = !entry.IsViewSourceMode();
231 params->embedder_channel_name = embedder_channel_name; 232 params->embedder_channel_name = embedder_channel_name;
232 params->embedder_container_id = embedder_container_id; 233 params->embedder_container_id = embedder_container_id;
233 234
234 if (delegate) 235 if (delegate)
235 delegate->AddNavigationHeaders(params->url, &params->extra_headers); 236 delegate->AddNavigationHeaders(params->url, &params->extra_headers);
236 } 237 }
237 238
238 int GetSwitchValueAsInt( 239 int GetSwitchValueAsInt(
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 content::WebUI* WebContentsImpl::GetWebUI() const { 740 content::WebUI* WebContentsImpl::GetWebUI() const {
740 return render_manager_.web_ui() ? render_manager_.web_ui() 741 return render_manager_.web_ui() ? render_manager_.web_ui()
741 : render_manager_.pending_web_ui(); 742 : render_manager_.pending_web_ui();
742 } 743 }
743 744
744 content::WebUI* WebContentsImpl::GetCommittedWebUI() const { 745 content::WebUI* WebContentsImpl::GetCommittedWebUI() const {
745 return render_manager_.web_ui(); 746 return render_manager_.web_ui();
746 } 747 }
747 748
748 void WebContentsImpl::SetUserAgentOverride(const std::string& override) { 749 void WebContentsImpl::SetUserAgentOverride(const std::string& override) {
749 user_agent_override_ = override; 750 if (GetUserAgentOverride() == override) {
751 return;
752 }
753 renderer_preferences_.user_agent_override = override;
754
755 // Send the new override string to the renderer.
756 RenderViewHost* host = GetRenderViewHost();
757 if (host) {
758 host->SyncRendererPrefs();
759 }
760
761 // Reload the page if a load is currently in progress to avoid having
762 // different parts of the page loaded using different user agents.
763 NavigationEntry* entry = controller_.GetActiveEntry();
764 if (is_loading_ && entry != NULL && entry->GetIsOverridingUserAgent()) {
765 controller_.ReloadIgnoringCache(true);
766 }
750 } 767 }
751 768
752 const std::string& WebContentsImpl::GetUserAgentOverride() const { 769 const std::string& WebContentsImpl::GetUserAgentOverride() const {
753 return user_agent_override_; 770 return renderer_preferences_.user_agent_override;
754 } 771 }
755 772
756 const string16& WebContentsImpl::GetTitle() const { 773 const string16& WebContentsImpl::GetTitle() const {
757 // Transient entries take precedence. They are used for interstitial pages 774 // Transient entries take precedence. They are used for interstitial pages
758 // that are shown on top of existing pages. 775 // that are shown on top of existing pages.
759 NavigationEntry* entry = controller_.GetTransientEntry(); 776 NavigationEntry* entry = controller_.GetTransientEntry();
760 std::string accept_languages = 777 std::string accept_languages =
761 content::GetContentClient()->browser()->GetAcceptLangs( 778 content::GetContentClient()->browser()->GetAcceptLangs(
762 GetBrowserContext()); 779 GetBrowserContext());
763 if (entry) { 780 if (entry) {
(...skipping 2270 matching lines...) Expand 10 before | Expand all | Expand 10 after
3034 browser_plugin_host()->embedder_render_process_host(); 3051 browser_plugin_host()->embedder_render_process_host();
3035 *embedder_container_id = browser_plugin_host()->instance_id(); 3052 *embedder_container_id = browser_plugin_host()->instance_id();
3036 int embedder_process_id = 3053 int embedder_process_id =
3037 embedder_render_process_host ? embedder_render_process_host->GetID() : -1; 3054 embedder_render_process_host ? embedder_render_process_host->GetID() : -1;
3038 if (embedder_process_id != -1) { 3055 if (embedder_process_id != -1) {
3039 *embedder_channel_name = 3056 *embedder_channel_name =
3040 StringPrintf("%d.r%d", render_view_host->GetProcess()->GetID(), 3057 StringPrintf("%d.r%d", render_view_host->GetProcess()->GetID(),
3041 embedder_process_id); 3058 embedder_process_id);
3042 } 3059 }
3043 } 3060 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698