1234567891011121314151617181920212223242526272829303132333435363738394041 |
- From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
- From: Cheng Zhao <[email protected]>
- Date: Thu, 20 Sep 2018 17:45:03 -0700
- Subject: blink_local_frame.patch
- According to electron/electron#3699, it is unreliable to use |unload|
- event for process.exit('exit'), so we have to do that in
- willReleaseScriptContext.
- However Chromium then disallowed scripting in willReleaseScriptContext
- in https://codereview.chromium.org/1657583002, and crash will happen
- when there is code doing that.
- This patch reverts the change to fix the crash in Electron.
- diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
- index 55dfea6ac16d63cd7fc78114d430889c62d0e69a..74d2122efa86d90490b05a15858556055172ad2f 100644
- --- a/third_party/blink/renderer/core/frame/local_frame.cc
- +++ b/third_party/blink/renderer/core/frame/local_frame.cc
- @@ -551,10 +551,6 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
- }
- CHECK(!view_ || !view_->IsAttached());
-
- - // This is the earliest that scripting can be disabled:
- - // - FrameLoader::Detach() can fire XHR abort events
- - // - Document::Shutdown() can dispose plugins which can run script.
- - ScriptForbiddenScope forbid_script;
- if (!Client())
- return;
-
- @@ -572,6 +568,10 @@ void LocalFrame::DetachImpl(FrameDetachType type) {
- // Notify ScriptController that the frame is closing, since its cleanup ends
- // up calling back to LocalFrameClient via WindowProxy.
- GetScriptController().ClearForClose();
- + // This is the earliest that scripting can be disabled:
- + // - FrameLoader::Detach() can fire XHR abort events
- + // - Document::Shutdown() can dispose plugins which can run script.
- + ScriptForbiddenScope forbid_script;
-
- // TODO(crbug.com/729196): Trace why LocalFrameView::DetachFromLayout crashes.
- CHECK(!view_->IsAttached());
|