summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-17 19:16:44 +0000
committerviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-17 19:16:44 +0000
commite372f3d392e7aac7cb2fbee4da8e7ebe33aae510 (patch)
tree4446248411fbf1cbd3907d606afc8a079089157a /webkit
parent09e2c324286f24ebafee4f38fcd9e4d70ff7f649 (diff)
downloadchromium_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.cc9
-rw-r--r--webkit/glue/weburlrequest_extradata_impl.h13
-rw-r--r--webkit/plugins/ppapi/ppb_url_request_info_impl.cc8
-rw-r--r--webkit/support/webkit_support.cc3
-rw-r--r--webkit/tools/test_shell/test_webview_delegate.cc2
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");