Title: [202020] trunk/Tools
Revision
202020
Author
[email protected]
Date
2016-06-13 19:27:08 -0700 (Mon, 13 Jun 2016)

Log Message

False-positive over-release of WebView in destroyWebViewAndOffscreenWindow() in DumpRenderTree.mm
<https://webkit.org/b/158716>

Reviewed by Andy Estes.

* DumpRenderTree/mac/DumpRenderTree.mm:
(destroyWebViewAndOffscreenWindow): Change this function to take
a WebView, and assert that it's the same as [mainFrame webView].
(dumpRenderTree): Pass 'webView' into
destroyWebViewAndOffscreenWindow().
* DumpRenderTree/mac/DumpRenderTreeMac.h:
(createWebViewAndOffscreenWindow): Add NS_RETURNS_RETAINED since
this function returns a +1 WebView.  Declare this method only for
Objective-C[++] source.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (202019 => 202020)


--- trunk/Tools/ChangeLog	2016-06-14 00:34:11 UTC (rev 202019)
+++ trunk/Tools/ChangeLog	2016-06-14 02:27:08 UTC (rev 202020)
@@ -1,3 +1,20 @@
+2016-06-13  David Kilzer  <[email protected]>
+
+        False-positive over-release of WebView in destroyWebViewAndOffscreenWindow() in DumpRenderTree.mm
+        <https://webkit.org/b/158716>
+
+        Reviewed by Andy Estes.
+
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (destroyWebViewAndOffscreenWindow): Change this function to take
+        a WebView, and assert that it's the same as [mainFrame webView].
+        (dumpRenderTree): Pass 'webView' into
+        destroyWebViewAndOffscreenWindow().
+        * DumpRenderTree/mac/DumpRenderTreeMac.h:
+        (createWebViewAndOffscreenWindow): Add NS_RETURNS_RETAINED since
+        this function returns a +1 WebView.  Declare this method only for
+        Objective-C[++] source.
+
 2016-06-13  Sam Weinig  <[email protected]>
 
         Make HashMap and HashSet work with Refs

Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (202019 => 202020)


--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2016-06-14 00:34:11 UTC (rev 202019)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2016-06-14 02:27:08 UTC (rev 202020)
@@ -855,9 +855,9 @@
     return webView;
 }
 
-static void destroyWebViewAndOffscreenWindow()
+static void destroyWebViewAndOffscreenWindow(WebView *webView)
 {
-    WebView *webView = [mainFrame webView];
+    ASSERT(webView == [mainFrame webView]);
 #if !PLATFORM(IOS)
     NSWindow *window = [webView window];
 #endif
@@ -1313,7 +1313,7 @@
     if (threaded)
         stopJavaScriptThreads();
 
-    destroyWebViewAndOffscreenWindow();
+    destroyWebViewAndOffscreenWindow(webView);
     
     releaseGlobalControllers();
     

Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTreeMac.h (202019 => 202020)


--- trunk/Tools/DumpRenderTree/mac/DumpRenderTreeMac.h	2016-06-14 00:34:11 UTC (rev 202019)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTreeMac.h	2016-06-14 02:27:08 UTC (rev 202020)
@@ -67,7 +67,10 @@
 void setWaitToDumpWatchdog(CFRunLoopTimerRef);
 bool shouldSetWaitToDumpWatchdog();
 
-WebView* createWebViewAndOffscreenWindow();
+#ifdef __OBJC__
+WebView *createWebViewAndOffscreenWindow() NS_RETURNS_RETAINED;
+#endif
+
 void setPersistentUserStyleSheetLocation(CFStringRef);
 
 unsigned worldIDForWorld(WebScriptWorld *);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to