Index: extensions/renderer/render_view_observer_natives.cc |
diff --git a/extensions/renderer/render_view_observer_natives.cc b/extensions/renderer/render_view_observer_natives.cc |
index 19a3974c1b8ad1743f77bbfd4061dd5fe139b5e9..c618eeff2ccf4532e216fdb9b34ae66047610cb5 100644 |
--- a/extensions/renderer/render_view_observer_natives.cc |
+++ b/extensions/renderer/render_view_observer_natives.cc |
@@ -21,7 +21,9 @@ class LoadWatcher : public content::RenderViewObserver { |
LoadWatcher(ScriptContext* context, |
content::RenderView* view, |
v8::Handle<v8::Function> cb) |
- : content::RenderViewObserver(view), context_(context), callback_(cb) {} |
+ : content::RenderViewObserver(view), |
+ context_(context), |
+ callback_(context->isolate(), cb) {} |
void DidCreateDocumentElement(blink::WebLocalFrame* frame) override { |
CallbackAndDie(true); |
@@ -37,12 +39,13 @@ class LoadWatcher : public content::RenderViewObserver { |
v8::Isolate* isolate = context_->isolate(); |
v8::HandleScope handle_scope(isolate); |
v8::Handle<v8::Value> args[] = {v8::Boolean::New(isolate, succeeded)}; |
- context_->CallFunction(callback_.NewHandle(isolate), 1, args); |
+ context_->CallFunction(v8::Local<v8::Function>::New(isolate, callback_), |
+ arraysize(args), args); |
delete this; |
} |
ScriptContext* context_; |
- ScopedPersistent<v8::Function> callback_; |
+ v8::UniquePersistent<v8::Function> callback_; |
DISALLOW_COPY_AND_ASSIGN(LoadWatcher); |
}; |
} // namespace |