Changeset 196714 in webkit
- Timestamp:
- Feb 17, 2016 12:40:28 PM (8 years ago)
- Location:
- trunk/Source/WebKit/ios
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ios/ChangeLog
r195180 r196714 1 2016-02-17 David Kilzer <ddkilzer@apple.com> 2 3 [iOS WK1] NSTimer in WebGeolocationProviderIOS.mm fires on the main thread without the WebThreadLock 4 <http://webkit.org/b/154347> 5 <rdar://problem/19360382> 6 7 Reviewed by Andy Estes. 8 9 This isn't testable because the GeolocationClientMock in WebCore 10 bypasses this code in WebKit1. 11 12 * Misc/WebGeolocationProviderIOS.mm: 13 (-[WebGeolocationProviderIOS _handlePendingInitialPosition:]): 14 Assert that this is always called on the WebThread. 15 (-[WebGeolocationProviderIOS registerWebView:]): Register the 16 NSTimer on the WebThread NSRunLoop. 17 1 18 2016-01-16 Myles C. Maxfield <mmaxfield@apple.com> 2 19 -
trunk/Source/WebKit/ios/Misc/WebGeolocationProviderIOS.mm
r168555 r196714 158 158 { 159 159 ASSERT_UNUSED(timer, timer == _sendLastPositionAsynchronouslyTimer); 160 ASSERT(WebThreadIsCurrent()); 160 161 161 162 if (_lastPosition) { … … 197 198 // On WebKit2, we could skip that and send the position directly from the UIProcess. 198 199 _pendingInitialPositionWebView.add(webView); 199 if (!_sendLastPositionAsynchronouslyTimer) 200 _sendLastPositionAsynchronouslyTimer = [NSTimer scheduledTimerWithTimeInterval:0 201 target:self 202 selector:@selector(_handlePendingInitialPosition:) 203 userInfo:nil 204 repeats:NO]; 200 if (!_sendLastPositionAsynchronouslyTimer) { 201 _sendLastPositionAsynchronouslyTimer = [NSTimer timerWithTimeInterval:0 target:self selector:@selector(_handlePendingInitialPosition:) userInfo:nil repeats:NO]; 202 [WebThreadNSRunLoop() addTimer:_sendLastPositionAsynchronouslyTimer.get() forMode:NSDefaultRunLoopMode]; 203 } 205 204 } 206 205
Note: See TracChangeset
for help on using the changeset viewer.