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

Unified Diff: webkit/plugins/ppapi/ppb_url_request_info_impl.cc

Issue 6652014: Pepper: Add a property to URLRequestInfo to skip header validation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: changes per brettw Created 9 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 | « webkit/plugins/ppapi/ppb_url_request_info_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/plugins/ppapi/ppb_url_request_info_impl.cc
diff --git a/webkit/plugins/ppapi/ppb_url_request_info_impl.cc b/webkit/plugins/ppapi/ppb_url_request_info_impl.cc
index f7b472eea244251b655ee2c4654686110f10b709..d2c5ef7eb8eb9716c99f90a7ccd1b6f97b5ed21d 100644
--- a/webkit/plugins/ppapi/ppb_url_request_info_impl.cc
+++ b/webkit/plugins/ppapi/ppb_url_request_info_impl.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -103,21 +103,27 @@ PP_Bool SetProperty(PP_Resource request_id,
if (!request)
return PP_FALSE;
- if (var.type == PP_VARTYPE_BOOL) {
- return BoolToPPBool(
- request->SetBooleanProperty(property,
- PPBoolToBool(var.value.as_bool)));
- }
-
- if (var.type == PP_VARTYPE_STRING) {
- scoped_refptr<StringVar> string(StringVar::FromPPVar(var));
- if (string) {
- return BoolToPPBool(request->SetStringProperty(property,
- string->value()));
+ PP_Bool result = PP_FALSE;
+ switch (var.type) {
+ case PP_VARTYPE_UNDEFINED:
+ result = BoolToPPBool(request->SetUndefinedProperty(property));
+ break;
+ case PP_VARTYPE_BOOL:
+ result = BoolToPPBool(
+ request->SetBooleanProperty(property,
+ PPBoolToBool(var.value.as_bool)));
+ break;
+ case PP_VARTYPE_STRING: {
+ scoped_refptr<StringVar> string(StringVar::FromPPVar(var));
+ if (string)
+ result = BoolToPPBool(request->SetStringProperty(property,
+ string->value()));
+ break;
}
+ default:
+ break;
}
-
- return PP_FALSE;
+ return result;
}
PP_Bool AppendDataToBody(PP_Resource request_id,
@@ -192,7 +198,8 @@ PPB_URLRequestInfo_Impl::PPB_URLRequestInfo_Impl(PluginInstance* instance)
stream_to_file_(false),
follow_redirects_(true),
record_download_progress_(false),
- record_upload_progress_(false) {
+ record_upload_progress_(false),
+ has_custom_referrer_url_(false) {
}
PPB_URLRequestInfo_Impl::~PPB_URLRequestInfo_Impl() {
@@ -207,6 +214,18 @@ PPB_URLRequestInfo_Impl* PPB_URLRequestInfo_Impl::AsPPB_URLRequestInfo_Impl() {
return this;
}
+bool PPB_URLRequestInfo_Impl::SetUndefinedProperty(
+ PP_URLRequestProperty property) {
+ switch (property) {
+ case PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL:
+ has_custom_referrer_url_ = false;
+ custom_referrer_url_ = std::string();
+ return true;
+ default:
+ return false;
+ }
+}
+
bool PPB_URLRequestInfo_Impl::SetBooleanProperty(PP_URLRequestProperty property,
bool value) {
switch (property) {
@@ -242,6 +261,10 @@ bool PPB_URLRequestInfo_Impl::SetStringProperty(PP_URLRequestProperty property,
return false;
headers_ = value;
return true;
+ case PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL:
+ has_custom_referrer_url_ = true;
+ custom_referrer_url_ = value;
+ return true;
default:
return false;
}
@@ -311,10 +334,19 @@ WebURLRequest PPB_URLRequestInfo_Impl::ToWebURLRequest(WebFrame* frame) const {
web_request.setHTTPBody(http_body);
}
- frame->setReferrerForRequest(web_request, WebURL()); // Use default.
+ if (has_custom_referrer_url_) {
+ if (!custom_referrer_url_.empty())
+ frame->setReferrerForRequest(web_request, GURL(custom_referrer_url_));
+ } else {
+ frame->setReferrerForRequest(web_request, WebURL()); // Use default.
+ }
+
return web_request;
}
+bool PPB_URLRequestInfo_Impl::RequiresUniversalAccess() const {
+ return has_custom_referrer_url_;
+}
+
} // namespace ppapi
} // namespace webkit
-
« no previous file with comments | « webkit/plugins/ppapi/ppb_url_request_info_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698