| Index: third_party/WebKit/Source/bindings/core/v8/V8MutationCallback.cpp
|
| diff --git a/third_party/WebKit/Source/bindings/core/v8/V8MutationCallback.cpp b/third_party/WebKit/Source/bindings/core/v8/V8MutationCallback.cpp
|
| index 2e37dfe5255e0af8f771904463a02532871be020..a9b62b56ea8de7200b588d5560816130fd4b7ca6 100644
|
| --- a/third_party/WebKit/Source/bindings/core/v8/V8MutationCallback.cpp
|
| +++ b/third_party/WebKit/Source/bindings/core/v8/V8MutationCallback.cpp
|
| @@ -39,9 +39,7 @@ namespace blink {
|
| V8MutationCallback::V8MutationCallback(v8::Local<v8::Function> callback,
|
| v8::Local<v8::Object> owner,
|
| ScriptState* scriptState)
|
| - : ActiveDOMCallback(scriptState->getExecutionContext()),
|
| - m_callback(scriptState->isolate(), callback),
|
| - m_scriptState(scriptState) {
|
| + : m_callback(scriptState->isolate(), callback), m_scriptState(scriptState) {
|
| V8PrivateProperty::getMutationObserverCallback(scriptState->isolate())
|
| .set(scriptState->context(), owner, callback);
|
| m_callback.setPhantom();
|
| @@ -52,11 +50,11 @@ V8MutationCallback::~V8MutationCallback() {}
|
| void V8MutationCallback::call(
|
| const HeapVector<Member<MutationRecord>>& mutations,
|
| MutationObserver* observer) {
|
| - if (!canInvokeCallback())
|
| - return;
|
| -
|
| v8::Isolate* isolate = m_scriptState->isolate();
|
| -
|
| + ExecutionContext* executionContext = m_scriptState->getExecutionContext();
|
| + if (!executionContext || executionContext->isContextSuspended() ||
|
| + executionContext->isContextDestroyed())
|
| + return;
|
| if (!m_scriptState->contextIsValid())
|
| return;
|
| ScriptState::Scope scope(m_scriptState.get());
|
| @@ -85,7 +83,6 @@ void V8MutationCallback::call(
|
|
|
| DEFINE_TRACE(V8MutationCallback) {
|
| MutationCallback::trace(visitor);
|
| - ActiveDOMCallback::trace(visitor);
|
| }
|
|
|
| } // namespace blink
|
|
|