Title: [87644] trunk/Source/WebKit2
Revision
87644
Author
[email protected]
Date
2011-05-29 13:12:27 -0700 (Sun, 29 May 2011)

Log Message

2011-05-29  Darin Adler  <[email protected]>

        Reviewed by Dan Bernstein.

        Race condition in full screen controller, which leads to problem when web process crashes
        https://bugs.webkit.org/show_bug.cgi?id=61707

        Saw this while debugging a crash. We don't have a way to make regression tests for this
        kind of issue at this time.

        * UIProcess/mac/WKFullScreenWindowController.mm:
        (-[WKFullScreenWindowController exitAcceleratedCompositingMode]): Retain the controller
        here since we are keeping a pointer to it.
        (exitCompositedModeRepaintCompleted): Release the controller here.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (87643 => 87644)


--- trunk/Source/WebKit2/ChangeLog	2011-05-29 20:12:01 UTC (rev 87643)
+++ trunk/Source/WebKit2/ChangeLog	2011-05-29 20:12:27 UTC (rev 87644)
@@ -1,3 +1,18 @@
+2011-05-29  Darin Adler  <[email protected]>
+
+        Reviewed by Dan Bernstein.
+
+        Race condition in full screen controller, which leads to problem when web process crashes
+        https://bugs.webkit.org/show_bug.cgi?id=61707
+
+        Saw this while debugging a crash. We don't have a way to make regression tests for this
+        kind of issue at this time.
+
+        * UIProcess/mac/WKFullScreenWindowController.mm:
+        (-[WKFullScreenWindowController exitAcceleratedCompositingMode]): Retain the controller
+        here since we are keeping a pointer to it.
+        (exitCompositedModeRepaintCompleted): Release the controller here.
+
 2011-05-29  Anders Carlsson  <[email protected]>
 
         Reviewed by Darin Adler.

Modified: trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm (87643 => 87644)


--- trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm	2011-05-29 20:12:01 UTC (rev 87643)
+++ trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm	2011-05-29 20:12:27 UTC (rev 87644)
@@ -395,6 +395,7 @@
         return;
 
     NSDisableScreenUpdates();
+    [self retain]; // Balanced by release in exitCompositedModeRepaintCompleted below.
     [self _page]->forceRepaint(VoidCallback::create(self, exitCompositedModeRepaintCompleted));
 }
 
@@ -414,7 +415,9 @@
 
 static void exitCompositedModeRepaintCompleted(WKErrorRef, void* context)
 {
-    [(WKFullScreenWindowController*)context exitCompositedModeRepaintCompleted];
+    WKFullScreenWindowController *controller = static_cast<WKFullScreenWindowController *>(context);
+    [controller exitCompositedModeRepaintCompleted];
+    [controller release]; // Balanced by retain in exitAcceleratedCompositingMode above.
 }
 
 - (WebCore::IntRect)getFullScreenRect
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to