summaryrefslogtreecommitdiffstats
path: root/content/renderer/v8_value_converter_impl.cc
diff options
context:
space:
mode:
authorbattre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-16 17:50:51 +0000
committerbattre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-16 17:50:51 +0000
commit3de391e83b7685f135807f41e798afac1fb555ff (patch)
tree837cf9215d0e8f096a88af6b3b10a33e67dae844 /content/renderer/v8_value_converter_impl.cc
parent86cac206930cdcd1b3050832f02ed6b840845b03 (diff)
downloadchromium_src-3de391e83b7685f135807f41e798afac1fb555ff.zip
chromium_src-3de391e83b7685f135807f41e798afac1fb555ff.tar.gz
chromium_src-3de391e83b7685f135807f41e798afac1fb555ff.tar.bz2
Support optional arguments in SendRequestNatives::StartRequest
Extensions send calls via SendRequestNatives::StartRequest. It is necessary to support undefined v8 values to express optional parameters. This CL exposes the functionality to configure support for Undefined, Date and Regex data types in content::V8ValueConverter and uses it to enable Undefined values in SendRequestNatives::StartRequest. BUG=127533 TEST=error messages on console are gone, see bug report Review URL: https://chromiumcodereview.appspot.com/10387055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137452 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/v8_value_converter_impl.cc')
-rw-r--r--content/renderer/v8_value_converter_impl.cc36
1 files changed, 30 insertions, 6 deletions
diff --git a/content/renderer/v8_value_converter_impl.cc b/content/renderer/v8_value_converter_impl.cc
index c457377..9161196 100644
--- a/content/renderer/v8_value_converter_impl.cc
+++ b/content/renderer/v8_value_converter_impl.cc
@@ -29,9 +29,33 @@ V8ValueConverter* V8ValueConverter::create() {
}
V8ValueConverterImpl::V8ValueConverterImpl()
- : allow_undefined_(false),
- allow_date_(false),
- allow_regexp_(false) {
+ : undefined_allowed_(false),
+ date_allowed_(false),
+ regexp_allowed_(false) {
+}
+
+bool V8ValueConverterImpl::GetUndefinedAllowed() const {
+ return undefined_allowed_;
+}
+
+void V8ValueConverterImpl::SetUndefinedAllowed(bool val) {
+ undefined_allowed_ = val;
+}
+
+bool V8ValueConverterImpl::GetDateAllowed() const {
+ return date_allowed_;
+}
+
+void V8ValueConverterImpl::SetDateAllowed(bool val) {
+ date_allowed_ = val;
+}
+
+bool V8ValueConverterImpl::GetRegexpAllowed() const {
+ return regexp_allowed_;
+}
+
+void V8ValueConverterImpl::SetRegexpAllowed(bool val) {
+ regexp_allowed_ = val;
}
v8::Handle<v8::Value> V8ValueConverterImpl::ToV8Value(
@@ -167,15 +191,15 @@ Value* V8ValueConverterImpl::FromV8ValueImpl(v8::Handle<v8::Value> val) const {
return Value::CreateStringValue(std::string(*utf8, utf8.length()));
}
- if (allow_undefined_ && val->IsUndefined())
+ if (undefined_allowed_ && val->IsUndefined())
return Value::CreateNullValue();
- if (allow_date_ && val->IsDate()) {
+ if (date_allowed_ && val->IsDate()) {
v8::Date* date = v8::Date::Cast(*val);
return Value::CreateDoubleValue(date->NumberValue() / 1000.0);
}
- if (allow_regexp_ && val->IsRegExp()) {
+ if (regexp_allowed_ && val->IsRegExp()) {
return Value::CreateStringValue(
*v8::String::Utf8Value(val->ToString()));
}