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

Unified Diff: content/renderer/render_frame_impl.cc

Issue 1841403002: Carry over user-agent override when opening new windows Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_frame_impl.cc
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 80613981ba14dd462bba29538f7a28b4f0fa65ba..790d24e595053a7a0d6c08875e17df4f1e54f597 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -2625,6 +2625,26 @@ void RenderFrameImpl::didChangeOpener(blink::WebFrame* opener) {
// Only a local frame should be able to update another frame's opener.
DCHECK(!opener || opener->isWebLocalFrame());
+ // Carry over the user agent override flag, if it exists.
+ blink::WebView* webview = render_view_->webview();
dcheng 2016/03/31 05:24:18 This doesn't get called at all when creating a new
+ if (opener && !pending_navigation_params_.get() && webview &&
+ webview->mainFrame() && webview->mainFrame()->isWebLocalFrame() &&
+ webview->mainFrame()->dataSource()) {
+ if (webview->mainFrame()->dataSource()->request().url().isEmpty() &&
+ opener->dataSource()) {
+ DocumentState* old_document_state =
+ DocumentState::FromDataSource(opener->dataSource());
+ InternalDocumentStateData* internal_data =
+ InternalDocumentStateData::FromDocumentState(
+ DocumentState::FromDataSource(
+ webview->mainFrame()->dataSource()));
+ InternalDocumentStateData* old_internal_data =
+ InternalDocumentStateData::FromDocumentState(old_document_state);
+ internal_data->set_is_overriding_user_agent(
+ old_internal_data->is_overriding_user_agent());
+ }
+ }
+
int opener_routing_id = opener ?
RenderFrameImpl::FromWebFrame(opener->toWebLocalFrame())->GetRoutingID() :
MSG_ROUTING_NONE;
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698