diff options
author | battre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-16 17:50:51 +0000 |
---|---|---|
committer | battre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-16 17:50:51 +0000 |
commit | 3de391e83b7685f135807f41e798afac1fb555ff (patch) | |
tree | 837cf9215d0e8f096a88af6b3b10a33e67dae844 /content/renderer/v8_value_converter_impl.cc | |
parent | 86cac206930cdcd1b3050832f02ed6b840845b03 (diff) | |
download | chromium_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.cc | 36 |
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())); } |