Changeset 104409 in webkit
- Timestamp:
- Jan 8, 2012 1:44:52 PM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r104377 r104409 1 2012-01-08 Dan Bernstein <mitz@apple.com> 2 3 REGRESSION (r103859): WKViews leak 4 https://bugs.webkit.org/show_bug.cgi?id=75805 5 6 The flags changed event monitor added in r103859 was retaining the WKView (as it references 7 self in the handler block), causing it to leak. 8 9 * UIProcess/API/mac/WKView.mm: 10 (-[WKView dealloc]): Moved call to remove the flags changed event monitor from here... 11 (-[WKView viewDidMoveToWindow]): ...to here. Moved call to add the flags changed event 12 monitor to here from... 13 (-[WKView initWithFrame:contextRef:pageGroupRef:]): ...here. 14 1 15 2012-01-06 Mark Rowe <mrowe@apple.com> 2 16 -
trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm
r104022 r104409 226 226 { 227 227 _data->_page->close(); 228 [NSEvent removeMonitor:_data->_flagsChangedEventMonitor];229 228 230 229 ASSERT(!_data->_inSecureInputState); … … 1824 1823 [self _updateWindowVisibility]; 1825 1824 [self _updateWindowAndViewFrames]; 1826 1827 [self _accessibilityRegisterUIProcessTokens]; 1825 1826 _data->_flagsChangedEventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:NSFlagsChangedMask handler:^(NSEvent *flagsChangedEvent) { 1827 [self _postFakeMouseMovedEventForFlagsChangedEvent:flagsChangedEvent]; 1828 return flagsChangedEvent; 1829 }]; 1830 1831 [self _accessibilityRegisterUIProcessTokens]; 1828 1832 } else { 1829 1833 _data->_page->viewStateDidChange(WebPageProxy::ViewIsVisible); 1830 1834 _data->_page->viewStateDidChange(WebPageProxy::ViewWindowIsActive | WebPageProxy::ViewIsInWindow); 1835 1836 [NSEvent removeMonitor:_data->_flagsChangedEventMonitor]; 1837 _data->_flagsChangedEventMonitor = nil; 1831 1838 1832 1839 #if ENABLE(GESTURE_EVENTS) … … 2704 2711 _data->_mouseDownEvent = nil; 2705 2712 _data->_ignoringMouseDraggedEvents = NO; 2706 _data->_flagsChangedEventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:NSFlagsChangedMask handler:^(NSEvent *flagsChangedEvent) {2707 [self _postFakeMouseMovedEventForFlagsChangedEvent:flagsChangedEvent];2708 return flagsChangedEvent;2709 }];2710 2713 2711 2714 [self _registerDraggedTypes];
Note: See TracChangeset
for help on using the changeset viewer.