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