Title: [105112] trunk/Source/WebKit2
Revision
105112
Author
[email protected]
Date
2012-01-16 17:17:48 -0800 (Mon, 16 Jan 2012)

Log Message

<rdar://problem/10702758> REGRESSION: Every Safari Reader WKView leaks

Reviewed by John Sullivan and Ada Chan.

* UIProcess/API/mac/WKView.mm:
(-[WKView viewDidMoveToWindow]): Since this method can be called multiple times in a row
while [self window] is non-nil, check if there isn’t already an event monitor before adding
a new one.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (105111 => 105112)


--- trunk/Source/WebKit2/ChangeLog	2012-01-17 01:12:51 UTC (rev 105111)
+++ trunk/Source/WebKit2/ChangeLog	2012-01-17 01:17:48 UTC (rev 105112)
@@ -1,3 +1,14 @@
+2012-01-16  Dan Bernstein  <[email protected]>
+
+        <rdar://problem/10702758> REGRESSION: Every Safari Reader WKView leaks
+
+        Reviewed by John Sullivan and Ada Chan.
+
+        * UIProcess/API/mac/WKView.mm:
+        (-[WKView viewDidMoveToWindow]): Since this method can be called multiple times in a row
+        while [self window] is non-nil, check if there isn’t already an event monitor before adding
+        a new one.
+
 2012-01-16  Anders Carlsson  <[email protected]>
 
         Crash when calling SecItemAdd with a null result pointer

Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (105111 => 105112)


--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm	2012-01-17 01:12:51 UTC (rev 105111)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm	2012-01-17 01:17:48 UTC (rev 105112)
@@ -1834,10 +1834,12 @@
         [self _updateWindowVisibility];
         [self _updateWindowAndViewFrames];
 
-        _data->_flagsChangedEventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:NSFlagsChangedMask handler:^(NSEvent *flagsChangedEvent) {
-            [self _postFakeMouseMovedEventForFlagsChangedEvent:flagsChangedEvent];
-            return flagsChangedEvent;
-        }];
+        if (!_data->_flagsChangedEventMonitor) {
+            _data->_flagsChangedEventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:NSFlagsChangedMask handler:^(NSEvent *flagsChangedEvent) {
+                [self _postFakeMouseMovedEventForFlagsChangedEvent:flagsChangedEvent];
+                return flagsChangedEvent;
+            }];
+        }
 
         [self _accessibilityRegisterUIProcessTokens];
     } else {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to