diff options
author | Ben Murdoch <benm@google.com> | 2011-05-05 14:36:32 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-10 15:38:30 +0100 |
commit | f05b935882198ccf7d81675736e3aeb089c5113a (patch) | |
tree | 4ea0ca838d9ef1b15cf17ddb3928efb427c7e5a1 /WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm | |
parent | 60fbdcc62bced8db2cb1fd233cc4d1e4ea17db1b (diff) | |
download | external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.zip external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.gz external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.bz2 |
Merge WebKit at r74534: Initial merge by git.
Change-Id: I6ccd1154fa1b19c2ec2a66878eb675738735f1eb
Diffstat (limited to 'WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm')
-rw-r--r-- | WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm b/WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm deleted file mode 100644 index e03cae2..0000000 --- a/WebKitTools/DumpRenderTree/mac/MockGeolocationProvider.mm +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2010 Apple Inc. All Rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "MockGeolocationProvider.h" - - -@implementation MockGeolocationProvider - -+ (MockGeolocationProvider *)shared -{ - static MockGeolocationProvider *provider = [[MockGeolocationProvider alloc] init]; - return provider; -} - -- (void)dealloc -{ - ASSERT(_registeredViews.isEmpty()); - - [_lastPosition release]; - [_error release]; - [super dealloc]; -} - -- (void)setPosition:(WebGeolocationPosition *)position -{ - if (_lastPosition != position) { - [_lastPosition release]; - _lastPosition = [position retain]; - } - - [_error release]; - _error = 0; - - if (!_timer) - _timer = [NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(timerFired) userInfo:0 repeats:NO]; -} - -- (void)setError:(NSError *)error -{ - if (_error != error) { - [_error release]; - _error = [error retain]; - } - - [_lastPosition release]; - _lastPosition = 0; - - if (!_timer) - _timer = [NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(timerFired) userInfo:0 repeats:NO]; -} - -- (void)registerWebView:(WebView *)webView -{ - _registeredViews.add(webView); - - if (!_timer) - _timer = [NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(timerFired) userInfo:0 repeats:NO]; -} - -- (void)unregisterWebView:(WebView *)webView -{ - _registeredViews.remove(webView); -} - -- (WebGeolocationPosition *)lastPosition -{ - return _lastPosition; -} - -- (void)stopTimer -{ - [_timer invalidate]; - _timer = 0; -} - -- (void)timerFired -{ - _timer = 0; - - // Expect that views won't be (un)registered while iterating. - HashSet<WebView*> views = _registeredViews; - for (HashSet<WebView*>::iterator iter = views.begin(); iter != views.end(); ++iter) { - if (_error) - [*iter _geolocationDidFailWithError:_error]; - else - [*iter _geolocationDidChangePosition:_lastPosition]; - } -} - -@end |