Chromium Code Reviews| Index: extensions/renderer/object_backed_native_handler.cc |
| diff --git a/extensions/renderer/object_backed_native_handler.cc b/extensions/renderer/object_backed_native_handler.cc |
| index 10bedc1772fb714a604860d20e133ad1e07226d9..2633497f1e299c697607666092c470ddbd8492fd 100644 |
| --- a/extensions/renderer/object_backed_native_handler.cc |
| +++ b/extensions/renderer/object_backed_native_handler.cc |
| @@ -25,7 +25,8 @@ ObjectBackedNativeHandler::ObjectBackedNativeHandler(ScriptContext* context) |
| v8::ObjectTemplate::New(context->isolate())) { |
| } |
| -ObjectBackedNativeHandler::~ObjectBackedNativeHandler() { Invalidate(); } |
| +ObjectBackedNativeHandler::~ObjectBackedNativeHandler() { |
| +} |
| v8::Handle<v8::Object> ObjectBackedNativeHandler::NewInstance() { |
| return v8::Local<v8::ObjectTemplate>::New(GetIsolate(), object_template_) |
| @@ -75,9 +76,9 @@ v8::Isolate* ObjectBackedNativeHandler::GetIsolate() const { |
| } |
| void ObjectBackedNativeHandler::Invalidate() { |
| - if (!is_valid()) |
| - return; |
| - v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
| + CHECK(is_valid()); |
|
Devlin
2015/04/13 16:07:07
Or just leave it to the super class to do this CHE
not at google - send to devlin
2015/04/13 17:08:30
Yeah good point, not needed here.
|
| + |
| + v8::Isolate* isolate = GetIsolate(); |
| v8::HandleScope handle_scope(isolate); |
| v8::Context::Scope context_scope(context_->v8_context()); |
| @@ -90,9 +91,10 @@ void ObjectBackedNativeHandler::Invalidate() { |
| handler_function_value.As<v8::External>()->Value()); |
| data->Delete(v8::String::NewFromUtf8(isolate, kHandlerFunction)); |
| } |
| + |
| router_data_.Clear(); |
| object_template_.Reset(); |
| - context_ = NULL; |
| + |
| NativeHandler::Invalidate(); |
| } |