Commit ad4d203f authored by jochen@chromium.org's avatar jochen@chromium.org

Make sure gin Handles exist before using them

When we run out of stack space for example, we can't create an handle.

BUG=363417
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/259993003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266545 0039d316-1c4b-4281-b951-d872f2087c98
parent e9374129
...@@ -28,6 +28,9 @@ void NetErrorPageController::Install(content::RenderFrame* render_frame) { ...@@ -28,6 +28,9 @@ void NetErrorPageController::Install(content::RenderFrame* render_frame) {
gin::Handle<NetErrorPageController> controller = gin::CreateHandle( gin::Handle<NetErrorPageController> controller = gin::CreateHandle(
isolate, new NetErrorPageController(render_frame)); isolate, new NetErrorPageController(render_frame));
if (controller.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
global->Set(gin::StringToV8(isolate, "errorPageController"), global->Set(gin::StringToV8(isolate, "errorPageController"),
controller.ToV8()); controller.ToV8());
......
...@@ -33,6 +33,9 @@ void DomAutomationController::Install(RenderFrame* render_frame, ...@@ -33,6 +33,9 @@ void DomAutomationController::Install(RenderFrame* render_frame,
gin::Handle<DomAutomationController> controller = gin::Handle<DomAutomationController> controller =
gin::CreateHandle(isolate, new DomAutomationController(render_frame)); gin::CreateHandle(isolate, new DomAutomationController(render_frame));
if (controller.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
global->Set(gin::StringToV8(isolate, "domAutomationController"), global->Set(gin::StringToV8(isolate, "domAutomationController"),
controller.ToV8()); controller.ToV8());
......
...@@ -32,6 +32,9 @@ void MemoryBenchmarkingExtension::Install(blink::WebFrame* frame) { ...@@ -32,6 +32,9 @@ void MemoryBenchmarkingExtension::Install(blink::WebFrame* frame) {
v8::Context::Scope context_scope(context); v8::Context::Scope context_scope(context);
gin::Handle<MemoryBenchmarkingExtension> controller = gin::Handle<MemoryBenchmarkingExtension> controller =
gin::CreateHandle(isolate, new MemoryBenchmarkingExtension()); gin::CreateHandle(isolate, new MemoryBenchmarkingExtension());
if (controller.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
v8::Handle<v8::Object> chrome = v8::Handle<v8::Object> chrome =
global->Get(gin::StringToV8(isolate, "chrome"))->ToObject(); global->Get(gin::StringToV8(isolate, "chrome"))->ToObject();
......
...@@ -74,6 +74,9 @@ void SkiaBenchmarking::Install(blink::WebFrame* frame) { ...@@ -74,6 +74,9 @@ void SkiaBenchmarking::Install(blink::WebFrame* frame) {
gin::Handle<SkiaBenchmarking> controller = gin::Handle<SkiaBenchmarking> controller =
gin::CreateHandle(isolate, new SkiaBenchmarking()); gin::CreateHandle(isolate, new SkiaBenchmarking());
if (controller.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
v8::Handle<v8::Object> chrome = v8::Handle<v8::Object> chrome =
global->Get(gin::StringToV8(isolate, "chrome"))->ToObject(); global->Get(gin::StringToV8(isolate, "chrome"))->ToObject();
......
...@@ -87,6 +87,8 @@ void StatsCollectionController::Install(blink::WebFrame* frame) { ...@@ -87,6 +87,8 @@ void StatsCollectionController::Install(blink::WebFrame* frame) {
gin::Handle<StatsCollectionController> controller = gin::Handle<StatsCollectionController> controller =
gin::CreateHandle(isolate, new StatsCollectionController()); gin::CreateHandle(isolate, new StatsCollectionController());
if (controller.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
global->Set(gin::StringToV8(isolate, "statsCollectionController"), global->Set(gin::StringToV8(isolate, "statsCollectionController"),
controller.ToV8()); controller.ToV8());
......
...@@ -27,6 +27,8 @@ void GCController::Install(blink::WebFrame* frame) { ...@@ -27,6 +27,8 @@ void GCController::Install(blink::WebFrame* frame) {
gin::Handle<GCController> controller = gin::Handle<GCController> controller =
gin::CreateHandle(isolate, new GCController()); gin::CreateHandle(isolate, new GCController());
if (controller.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
global->Set(gin::StringToV8(isolate, "GCController"), controller.ToV8()); global->Set(gin::StringToV8(isolate, "GCController"), controller.ToV8());
} }
......
...@@ -61,6 +61,8 @@ void AccessibilityControllerBindings::Install( ...@@ -61,6 +61,8 @@ void AccessibilityControllerBindings::Install(
gin::Handle<AccessibilityControllerBindings> bindings = gin::Handle<AccessibilityControllerBindings> bindings =
gin::CreateHandle(isolate, gin::CreateHandle(isolate,
new AccessibilityControllerBindings(controller)); new AccessibilityControllerBindings(controller));
if (bindings.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
global->Set(gin::StringToV8(isolate, "accessibilityController"), global->Set(gin::StringToV8(isolate, "accessibilityController"),
bindings.ToV8()); bindings.ToV8());
......
...@@ -436,6 +436,8 @@ void EventSenderBindings::Install(base::WeakPtr<EventSender> sender, ...@@ -436,6 +436,8 @@ void EventSenderBindings::Install(base::WeakPtr<EventSender> sender,
gin::Handle<EventSenderBindings> bindings = gin::Handle<EventSenderBindings> bindings =
gin::CreateHandle(isolate, new EventSenderBindings(sender)); gin::CreateHandle(isolate, new EventSenderBindings(sender));
if (bindings.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
global->Set(gin::StringToV8(isolate, "eventSender"), bindings.ToV8()); global->Set(gin::StringToV8(isolate, "eventSender"), bindings.ToV8());
} }
......
...@@ -68,6 +68,8 @@ void GamepadControllerBindings::Install( ...@@ -68,6 +68,8 @@ void GamepadControllerBindings::Install(
gin::Handle<GamepadControllerBindings> bindings = gin::Handle<GamepadControllerBindings> bindings =
gin::CreateHandle(isolate, new GamepadControllerBindings(controller)); gin::CreateHandle(isolate, new GamepadControllerBindings(controller));
if (bindings.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
global->Set(gin::StringToV8(isolate, "gamepadController"), bindings.ToV8()); global->Set(gin::StringToV8(isolate, "gamepadController"), bindings.ToV8());
} }
......
...@@ -285,6 +285,8 @@ void TestRunnerBindings::Install(base::WeakPtr<TestRunner> runner, ...@@ -285,6 +285,8 @@ void TestRunnerBindings::Install(base::WeakPtr<TestRunner> runner,
gin::Handle<TestRunnerBindings> bindings = gin::Handle<TestRunnerBindings> bindings =
gin::CreateHandle(isolate, new TestRunnerBindings(runner)); gin::CreateHandle(isolate, new TestRunnerBindings(runner));
if (bindings.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
v8::Handle<v8::Value> v8_bindings = bindings.ToV8(); v8::Handle<v8::Value> v8_bindings = bindings.ToV8();
global->Set(gin::StringToV8(isolate, "testRunner"), v8_bindings); global->Set(gin::StringToV8(isolate, "testRunner"), v8_bindings);
......
...@@ -68,6 +68,8 @@ void TextInputControllerBindings::Install( ...@@ -68,6 +68,8 @@ void TextInputControllerBindings::Install(
gin::Handle<TextInputControllerBindings> bindings = gin::Handle<TextInputControllerBindings> bindings =
gin::CreateHandle(isolate, new TextInputControllerBindings(controller)); gin::CreateHandle(isolate, new TextInputControllerBindings(controller));
if (bindings.IsEmpty())
return;
v8::Handle<v8::Object> global = context->Global(); v8::Handle<v8::Object> global = context->Global();
global->Set(gin::StringToV8(isolate, "textInputController"), bindings.ToV8()); global->Set(gin::StringToV8(isolate, "textInputController"), bindings.ToV8());
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment