| Index: extensions/renderer/messaging_bindings.cc
|
| diff --git a/extensions/renderer/messaging_bindings.cc b/extensions/renderer/messaging_bindings.cc
|
| index 452f2e71ed175d7c49f5f32bc973b2ac2ebb6b4f..148200c5474d3fa9338cf04429c44c053e8e6921 100644
|
| --- a/extensions/renderer/messaging_bindings.cc
|
| +++ b/extensions/renderer/messaging_bindings.cc
|
| @@ -24,7 +24,6 @@
|
| #include "extensions/renderer/dispatcher.h"
|
| #include "extensions/renderer/event_bindings.h"
|
| #include "extensions/renderer/object_backed_native_handler.h"
|
| -#include "extensions/renderer/scoped_persistent.h"
|
| #include "extensions/renderer/script_context.h"
|
| #include "extensions/renderer/script_context_set.h"
|
| #include "third_party/WebKit/public/web/WebLocalFrame.h"
|
| @@ -194,7 +193,7 @@ class ExtensionImpl : public ObjectBackedNativeHandler {
|
| const v8::WeakCallbackData<v8::Object, GCCallback>& data) {
|
| // v8 says we need to explicitly reset weak handles from their callbacks.
|
| // It's not implicit as one might expect.
|
| - data.GetParameter()->object_.reset();
|
| + data.GetParameter()->object_.Reset();
|
| base::MessageLoop::current()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&GCCallback::RunCallback,
|
| @@ -204,11 +203,14 @@ class ExtensionImpl : public ObjectBackedNativeHandler {
|
| GCCallback(v8::Handle<v8::Object> object,
|
| v8::Handle<v8::Function> callback,
|
| v8::Isolate* isolate)
|
| - : object_(object), callback_(callback), isolate_(isolate) {}
|
| + : object_(isolate, object),
|
| + callback_(isolate, callback),
|
| + isolate_(isolate) {}
|
|
|
| void RunCallback() {
|
| v8::HandleScope handle_scope(isolate_);
|
| - v8::Handle<v8::Function> callback = callback_.NewHandle(isolate_);
|
| + v8::Handle<v8::Function> callback =
|
| + v8::Local<v8::Function>::New(isolate_, callback_);
|
| v8::Handle<v8::Context> context = callback->CreationContext();
|
| if (context.IsEmpty())
|
| return;
|
| @@ -217,8 +219,8 @@ class ExtensionImpl : public ObjectBackedNativeHandler {
|
| callback->Call(context->Global(), 0, NULL);
|
| }
|
|
|
| - ScopedPersistent<v8::Object> object_;
|
| - ScopedPersistent<v8::Function> callback_;
|
| + v8::UniquePersistent<v8::Object> object_;
|
| + v8::UniquePersistent<v8::Function> callback_;
|
| v8::Isolate* isolate_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(GCCallback);
|
|
|