diff options
author | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-17 19:16:44 +0000 |
---|---|---|
committer | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-17 19:16:44 +0000 |
commit | e372f3d392e7aac7cb2fbee4da8e7ebe33aae510 (patch) | |
tree | 4446248411fbf1cbd3907d606afc8a079089157a /webkit | |
parent | 09e2c324286f24ebafee4f38fcd9e4d70ff7f649 (diff) | |
download | chromium_src-e372f3d392e7aac7cb2fbee4da8e7ebe33aae510.zip chromium_src-e372f3d392e7aac7cb2fbee4da8e7ebe33aae510.tar.gz chromium_src-e372f3d392e7aac7cb2fbee4da8e7ebe33aae510.tar.bz2 |
PPAPI (Flash): Properly honor Pepper url requests with custom user agents.
BUG=134615
TEST=With suitably recent Flapper: http://10tv.nana10.co.il/ streams properly
(see bug for appropriate things to click).
Review URL: https://chromiumcodereview.appspot.com/10780019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147060 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/glue/weburlrequest_extradata_impl.cc | 9 | ||||
-rw-r--r-- | webkit/glue/weburlrequest_extradata_impl.h | 13 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppb_url_request_info_impl.cc | 8 | ||||
-rw-r--r-- | webkit/support/webkit_support.cc | 3 | ||||
-rw-r--r-- | webkit/tools/test_shell/test_webview_delegate.cc | 2 |
5 files changed, 25 insertions, 10 deletions
diff --git a/webkit/glue/weburlrequest_extradata_impl.cc b/webkit/glue/weburlrequest_extradata_impl.cc index 392d784..d9e7462 100644 --- a/webkit/glue/weburlrequest_extradata_impl.cc +++ b/webkit/glue/weburlrequest_extradata_impl.cc @@ -1,16 +1,19 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "webkit/glue/weburlrequest_extradata_impl.h" using WebKit::WebReferrerPolicy; +using WebKit::WebString; namespace webkit_glue { WebURLRequestExtraDataImpl::WebURLRequestExtraDataImpl( - WebReferrerPolicy referrer_policy) - : referrer_policy_(referrer_policy) { + WebReferrerPolicy referrer_policy, + const WebString& custom_user_agent) + : referrer_policy_(referrer_policy), + custom_user_agent_(custom_user_agent) { } WebURLRequestExtraDataImpl::~WebURLRequestExtraDataImpl() { diff --git a/webkit/glue/weburlrequest_extradata_impl.h b/webkit/glue/weburlrequest_extradata_impl.h index f49199a..d4b2c19 100644 --- a/webkit/glue/weburlrequest_extradata_impl.h +++ b/webkit/glue/weburlrequest_extradata_impl.h @@ -7,6 +7,7 @@ #include "base/compiler_specific.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebReferrerPolicy.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h" #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLRequest.h" #include "webkit/glue/webkit_glue_export.h" @@ -17,14 +18,24 @@ namespace webkit_glue { class WEBKIT_GLUE_EXPORT WebURLRequestExtraDataImpl : NON_EXPORTED_BASE(public WebKit::WebURLRequest::ExtraData) { public: + // |custom_user_agent| is used to communicate an overriding custom user agent + // to |RenderViewImpl::willSendRequest()|; set to a null string to indicate no + // override and an empty string to indicate that there should be no user + // agent. This needs to be here, instead of content's |RequestExtraData| since + // ppb_url_request_info_impl.cc needs to be able to set it. explicit WebURLRequestExtraDataImpl( - WebKit::WebReferrerPolicy referrer_policy); + WebKit::WebReferrerPolicy referrer_policy, + const WebKit::WebString& custom_user_agent); virtual ~WebURLRequestExtraDataImpl(); WebKit::WebReferrerPolicy referrer_policy() const { return referrer_policy_; } + const WebKit::WebString& custom_user_agent() const { + return custom_user_agent_; + } private: WebKit::WebReferrerPolicy referrer_policy_; + WebKit::WebString custom_user_agent_; DISALLOW_COPY_AND_ASSIGN(WebURLRequestExtraDataImpl); }; diff --git a/webkit/plugins/ppapi/ppb_url_request_info_impl.cc b/webkit/plugins/ppapi/ppb_url_request_info_impl.cc index 9bc99bf..da379cb 100644 --- a/webkit/plugins/ppapi/ppb_url_request_info_impl.cc +++ b/webkit/plugins/ppapi/ppb_url_request_info_impl.cc @@ -18,6 +18,7 @@ #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURL.h" #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLRequest.h" #include "webkit/glue/webkit_glue.h" +#include "webkit/glue/weburlrequest_extradata_impl.h" #include "webkit/plugins/ppapi/common.h" #include "webkit/plugins/ppapi/plugin_module.h" #include "webkit/plugins/ppapi/ppb_file_ref_impl.h" @@ -121,10 +122,9 @@ bool PPB_URLRequestInfo_Impl::ToWebURLRequest(WebFrame* frame, } if (data().has_custom_user_agent) { - // TODO(viettrungluu): If |custom_user_agent| is empty, we're supposed to - // arrange for User-Agent to be omitted; this probably won't do that. - dest->addHTTPHeaderField(WebString::fromUTF8("User-Agent"), - WebString::fromUTF8(data().custom_user_agent)); + dest->setExtraData(new webkit_glue::WebURLRequestExtraDataImpl( + WebKit::WebReferrerPolicyDefault, // Ignored. + WebString::fromUTF8(data().custom_user_agent))); } return true; diff --git a/webkit/support/webkit_support.cc b/webkit/support/webkit_support.cc index 5b1c8c5..e768fa1 100644 --- a/webkit/support/webkit_support.cc +++ b/webkit/support/webkit_support.cc @@ -742,7 +742,8 @@ WebKit::WebURLError CreateCancelledError(const WebKit::WebURLRequest& request) { WebKit::WebURLRequest::ExtraData* CreateWebURLRequestExtraData( WebKit::WebReferrerPolicy referrer_policy) { - return new webkit_glue::WebURLRequestExtraDataImpl(referrer_policy); + return new webkit_glue::WebURLRequestExtraDataImpl(referrer_policy, + WebKit::WebString()); } // Bridge for SimpleDatabaseSystem diff --git a/webkit/tools/test_shell/test_webview_delegate.cc b/webkit/tools/test_shell/test_webview_delegate.cc index 542fc51..09e59f5 100644 --- a/webkit/tools/test_shell/test_webview_delegate.cc +++ b/webkit/tools/test_shell/test_webview_delegate.cc @@ -860,7 +860,7 @@ void TestWebViewDelegate::willSendRequest( request.setExtraData( new webkit_glue::WebURLRequestExtraDataImpl( - frame->document().referrerPolicy())); + frame->document().referrerPolicy(), WebString())); if (!redirect_response.isNull() && block_redirects_) { printf("Returning null for this redirect\n"); |