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..339a2d0958063cdeada8f02c153ec7d305044dd2 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,6 +103,9 @@ PP_Bool SetProperty(PP_Resource request_id, |
if (!request) |
return PP_FALSE; |
+ if (var.type == PP_VARTYPE_UNDEFINED) |
brettw
2011/03/11 23:31:05
Now that we have 3 of these, I think it would be m
viettrungluu
2011/03/14 17:13:53
Done.
|
+ return BoolToPPBool(request->SetUndefinedProperty(property)); |
+ |
if (var.type == PP_VARTYPE_BOOL) { |
return BoolToPPBool( |
request->SetBooleanProperty(property, |
@@ -192,7 +195,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 +211,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 +258,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 +331,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 |
- |