Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com> Co-authored-by: loc <andy@slack-corp.com> Co-authored-by: Robo <hop2deep@gmail.com> Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
						|
From: Cheng Zhao <zcbenz@gmail.com>
 | 
						|
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 c58f6dded2c2cb0059a07fb2867f73be2a9727f3..38a0b88a26d6af97c9d9e22c8b40dc4d768e1f64 100644
 | 
						|
--- a/third_party/blink/renderer/core/frame/local_frame.cc
 | 
						|
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
 | 
						|
@@ -401,10 +401,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;
 | 
						|
 
 | 
						|
@@ -422,6 +418,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());
 |