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

Unified Diff: extensions/renderer/v8_context_native_handler.cc

Issue 1167423002: Use V8 Maybe APIs in extensions/renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 | « extensions/renderer/utils_native_handler.cc ('k') | extensions/renderer/v8_maybe_helpers.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/v8_context_native_handler.cc
diff --git a/extensions/renderer/v8_context_native_handler.cc b/extensions/renderer/v8_context_native_handler.cc
index 6fbc8b246b37e16cfd3382bcdc24ec1f0169be5c..a1a9a4d0ac84e83884fe4aa29c2343a465aa5d8e 100644
--- a/extensions/renderer/v8_context_native_handler.cc
+++ b/extensions/renderer/v8_context_native_handler.cc
@@ -8,6 +8,7 @@
#include "extensions/common/features/feature.h"
#include "extensions/renderer/dispatcher.h"
#include "extensions/renderer/script_context.h"
+#include "extensions/renderer/v8_maybe_helpers.h"
namespace extensions {
@@ -32,16 +33,18 @@ void V8ContextNativeHandler::GetAvailability(
const v8::FunctionCallbackInfo<v8::Value>& args) {
CHECK_EQ(args.Length(), 1);
v8::Isolate* isolate = args.GetIsolate();
+ v8::Local<v8::Context> context = isolate->GetCurrentContext();
std::string api_name = *v8::String::Utf8Value(args[0]);
Feature::Availability availability = context_->GetAvailability(api_name);
+ v8::Local<v8::String> v8_availability =
+ ToV8String(isolate, availability.message().c_str());
v8::Local<v8::Object> ret = v8::Object::New(isolate);
- ret->Set(v8::String::NewFromUtf8(isolate, "is_available"),
- v8::Boolean::New(isolate, availability.is_available()));
- ret->Set(v8::String::NewFromUtf8(isolate, "message"),
- v8::String::NewFromUtf8(isolate, availability.message().c_str()));
- ret->Set(v8::String::NewFromUtf8(isolate, "result"),
- v8::Integer::New(isolate, availability.result()));
+ SetProperty(context, ret, ToV8String(isolate, "is_available"),
+ v8::Boolean::New(isolate, availability.is_available()));
+ SetProperty(context, ret, ToV8String(isolate, "message"), v8_availability);
+ SetProperty(context, ret, ToV8String(isolate, "result"),
+ v8::Integer::New(isolate, availability.result()));
args.GetReturnValue().Set(ret);
}
@@ -53,15 +56,19 @@ void V8ContextNativeHandler::GetModuleSystem(
v8::Local<v8::Object>::Cast(args[0])->CreationContext();
ScriptContext* context =
dispatcher_->script_context_set().GetByV8Context(v8_context);
- args.GetReturnValue().Set(context->module_system()->NewInstance());
+ v8::Local<v8::Object> instance;
+ if (context->module_system()->NewInstance().ToLocal(&instance))
+ args.GetReturnValue().Set(instance);
}
void V8ContextNativeHandler::RunWithNativesEnabledModuleSystem(
const v8::FunctionCallbackInfo<v8::Value>& args) {
CHECK_EQ(args.Length(), 1);
CHECK(args[0]->IsFunction());
- v8::Local<v8::Value> call_with_args[] = {
- context()->module_system()->NewInstance()};
+ v8::Local<v8::Object> instance;
+ if (!context()->module_system()->NewInstance().ToLocal(&instance))
+ return;
+ v8::Local<v8::Value> call_with_args[] = { instance };
ModuleSystem::NativesEnabledScope natives_enabled(context()->module_system());
context()->CallFunction(v8::Local<v8::Function>::Cast(args[0]), 1,
call_with_args);
« no previous file with comments | « extensions/renderer/utils_native_handler.cc ('k') | extensions/renderer/v8_maybe_helpers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698