2009-03-13 Greg Bolsinga <bolsinga@apple.com>
authorbolsinga@apple.com <bolsinga@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Mar 2009 18:56:42 +0000 (18:56 +0000)
committerbolsinga@apple.com <bolsinga@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Mar 2009 18:56:42 +0000 (18:56 +0000)
commit7370f7e82a1b28c86d1a0ab4b4fe9926bdb9f5c3
treee1bfe75fa54f538702fa33014b049b24c5ffe2bc
parent5dc5aef4ae909d5f1c384ce80a6711528586175f
2009-03-13  Greg Bolsinga  <bolsinga@apple.com>

        Reviewed by Simon Fraser.

        Update Geolocation perimission dialogs to be asynchronous.
        https://bugs.webkit.org/show_bug.cgi?id=24505

        WebGeolocation is a wrapper around WebCore::Geolocation. It mimics the
        coding style set by WebSecurityOrigin.

        WebChromeClient now calls the private UI delegate method
        -webView:frame:requestGeolocationPermission:securityOrigin:

        * WebCoreSupport/WebChromeClient.h:
        * WebCoreSupport/WebChromeClient.mm:
        (WebChromeClient::requestGeolocationPermissionForFrame):
        * WebCoreSupport/WebGeolocation.mm: Added.
        (WebCore::if):
        (-[WebGeolocation shouldClearCache]):
        (-[WebGeolocation setIsAllowed:]):
        (-[WebGeolocation dealloc]):
        * WebCoreSupport/WebGeolocationInternal.h: Added.
        * WebCoreSupport/WebGeolocationPrivate.h: Added.
        * WebView/WebUIDelegatePrivate.h:

2009-03-13  Greg Bolsinga  <bolsinga@apple.com>

        Reviewed by Simon Fraser.

        Update Geolocation perimission dialogs to be asynchronous.
        https://bugs.webkit.org/show_bug.cgi?id=24505

        Add WebGeolocation, a wrapper around WebCore::Geolocation. It mimics the
        coding style set by WebSecurityOrigin.

        * WebKit.xcodeproj/project.pbxproj:

2009-03-13  Greg Bolsinga  <bolsinga@apple.com>

        Reviewed by Simon Fraser.

        Update Geolocation perimission dialogs to be asynchronous.
        https://bugs.webkit.org/show_bug.cgi?id=24505

        Geolocation now requests permission from the Chrome asynchronously.
        The Chrome is passed the Geolocation object, and the Chrome sets the permission
        on the Geolocation. Geolocation also tracks if the Chrome should clear its cache
        of SecurityOrigins with geolocation permission. This is so that the GeolocationService
        can inform the Chrome of its request, and the Chrome is also free to implement its
        own policy.

        * WebCore.base.exp:
        * WebCore.xcodeproj/project.pbxproj:
        * page/Chrome.cpp:
        (WebCore::Chrome::requestGeolocationPermissionForFrame):
        * page/Chrome.h:
        * page/ChromeClient.h:
        (WebCore::ChromeClient::requestGeolocationPermissionForFrame):
        * page/Geolocation.cpp:
        (WebCore::Geolocation::Geolocation):
        (WebCore::Geolocation::getCurrentPosition):
        (WebCore::Geolocation::watchPosition):
        (WebCore::Geolocation::setIsAllowed):
        (WebCore::Geolocation::displayChallengeIfNecessary):
        (WebCore::Geolocation::geolocationServicePositionChanged):
        * page/Geolocation.h:
        (WebCore::Geolocation::isAllowed):
        (WebCore::Geolocation::setShouldClearCache):
        (WebCore::Geolocation::shouldClearCache):
        (WebCore::Geolocation::):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@41675 268f45cc-cd09-0410-ab3c-d52691b4dbfc
17 files changed:
WebCore/ChangeLog
WebCore/WebCore.base.exp
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/page/Chrome.cpp
WebCore/page/Chrome.h
WebCore/page/ChromeClient.h
WebCore/page/Geolocation.cpp
WebCore/page/Geolocation.h
WebKit/ChangeLog
WebKit/WebKit.xcodeproj/project.pbxproj
WebKit/mac/ChangeLog
WebKit/mac/WebCoreSupport/WebChromeClient.h
WebKit/mac/WebCoreSupport/WebChromeClient.mm
WebKit/mac/WebCoreSupport/WebGeolocation.mm [new file with mode: 0644]
WebKit/mac/WebCoreSupport/WebGeolocationInternal.h [new file with mode: 0644]
WebKit/mac/WebCoreSupport/WebGeolocationPrivate.h [new file with mode: 0644]
WebKit/mac/WebView/WebUIDelegatePrivate.h