Changeset 87644 in webkit


Ignore:
Timestamp:
May 29, 2011 1:12:27 PM (13 years ago)
Author:
Darin Adler
Message:

2011-05-29 Darin Adler <Darin Adler>

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.
Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r87642 r87644  
     12011-05-29  Darin Adler  <darin@apple.com>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        Race condition in full screen controller, which leads to problem when web process crashes
     6        https://bugs.webkit.org/show_bug.cgi?id=61707
     7
     8        Saw this while debugging a crash. We don't have a way to make regression tests for this
     9        kind of issue at this time.
     10
     11        * UIProcess/mac/WKFullScreenWindowController.mm:
     12        (-[WKFullScreenWindowController exitAcceleratedCompositingMode]): Retain the controller
     13        here since we are keeping a pointer to it.
     14        (exitCompositedModeRepaintCompleted): Release the controller here.
     15
    1162011-05-29  Anders Carlsson  <andersca@apple.com>
    217
  • trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.mm

    r87113 r87644  
    396396
    397397    NSDisableScreenUpdates();
     398    [self retain]; // Balanced by release in exitCompositedModeRepaintCompleted below.
    398399    [self _page]->forceRepaint(VoidCallback::create(self, exitCompositedModeRepaintCompleted));
    399400}
     
    415416static void exitCompositedModeRepaintCompleted(WKErrorRef, void* context)
    416417{
    417     [(WKFullScreenWindowController*)context exitCompositedModeRepaintCompleted];
     418    WKFullScreenWindowController *controller = static_cast<WKFullScreenWindowController *>(context);
     419    [controller exitCompositedModeRepaintCompleted];
     420    [controller release]; // Balanced by retain in exitAcceleratedCompositingMode above.
    418421}
    419422
Note: See TracChangeset for help on using the changeset viewer.