Changeset 166663 in webkit


Ignore:
Timestamp:
Apr 2, 2014 1:59:19 PM (10 years ago)
Author:
dino@apple.com
Message:

[iOS] Expose geolocation provider on the process pool
https://bugs.webkit.org/show_bug.cgi?id=131125

Patch by Sam Weinig.
Reviewed by Dean Jackson.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _geolocationProvider]): Create and initialize WKGeolocationProviderIOS if necessary.

  • UIProcess/API/Cocoa/WKProcessPoolInternal.h: Expose _geolocationProvider.
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]): Call into WKProcessPool.

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r166661 r166663  
     12014-04-02  Dean Jackson  <dino@apple.com>
     2
     3        [iOS] Expose geolocation provider on the process pool
     4        https://bugs.webkit.org/show_bug.cgi?id=131125
     5
     6        Patch by Sam Weinig.
     7        Reviewed by Dean Jackson.
     8
     9        * UIProcess/API/Cocoa/WKProcessPool.mm:
     10        (-[WKProcessPool _geolocationProvider]): Create and initialize WKGeolocationProviderIOS if necessary.
     11        * UIProcess/API/Cocoa/WKProcessPoolInternal.h: Expose _geolocationProvider.
     12        * UIProcess/ios/WKContentView.mm:
     13        (-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]): Call into WKProcessPool.
     14
    1152014-04-02  Martin Hock  <mhock@apple.com>
    216
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm

    r166186 r166663  
    4646#if PLATFORM(IOS)
    4747#import <WebCore/WebCoreThreadSystemInterface.h>
     48#import "WKGeolocationProviderIOS.h"
    4849#endif
    4950
     
    6465@implementation WKProcessPool {
    6566    WebKit::WeakObjCPtr<id <_WKDownloadDelegate>> _downloadDelegate;
     67
     68#if PLATFORM(IOS)
     69    RetainPtr<WKGeolocationProviderIOS> _geolocationProvider;
     70#endif // PLATFORM(IOS)
    6671}
    6772
     
    192197@end
    193198
     199#if PLATFORM(IOS)
     200@implementation WKProcessPool (WKInternal)
     201
     202- (WKGeolocationProviderIOS *)_geolocationProvider
     203{
     204    if (!_geolocationProvider)
     205        _geolocationProvider = adoptNS([[WKGeolocationProviderIOS alloc] initWithContext:_context.get()]);
     206    return _geolocationProvider.get();
     207}
     208
     209@end
     210#endif // PLATFORM(IOS)
     211
    194212#endif // WK_API_ENABLED
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolInternal.h

    r166011 r166663  
    3131#import "WebContext.h"
    3232
     33#if TARGET_OS_IPHONE
     34@class WKGeolocationProviderIOS;
     35#endif
     36
    3337namespace WebKit {
    3438
     
    4953@end
    5054
     55#if TARGET_OS_IPHONE
     56@interface WKProcessPool (WKInternal)
     57@property(readonly) WKGeolocationProviderIOS *_geolocationProvider;
     58@end
     59#endif
     60
    5161#endif // WK_API_ENABLED
  • trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm

    r166658 r166663  
    446446- (void)_decidePolicyForGeolocationRequestFromOrigin:(WebSecurityOrigin&)origin frame:(WebFrameProxy&)frame request:(GeolocationPermissionRequestProxy&)permissionRequest
    447447{
    448     // FIXME: The line below is commented out since wrapper(WebContext&) now returns a WKProcessPool.
    449     // As part of the new API we should figure out where geolocation fits in, see <rdar://problem/15885544>.
    450     // [[wrapper(_page->process().context()) _geolocationProvider] decidePolicyForGeolocationRequestFromOrigin:toAPI(&origin) frame:toAPI(&frame) request:toAPI(&permissionRequest) window:[self window]];
     448    [[wrapper(_page->process().context()) _geolocationProvider] decidePolicyForGeolocationRequestFromOrigin:toAPI(&origin) frame:toAPI(&frame) request:toAPI(&permissionRequest) window:[self window]];
    451449}
    452450
Note: See TracChangeset for help on using the changeset viewer.