Skip to content
  • abarth@webkit.org's avatar
    Geolocation should use a ScriptExecutionContext as its context object · 51f351bf
    abarth@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=80248
    
    Reviewed by Kentaro Hara.
    
    Source/WebCore: 
    
    This patch updates Geolocation to use some more modern WebCore
    mechanisms.  Previously, Geolocation used a Frame as a context object,
    which required a bunch of manual integration with the PageCache as well
    as custom signaling for Geolocation::reset().  After this patch,
    Geolocation subclasses ActiveDOMObject, which does all this work
    automatically.
    
    * Modules/geolocation/Geolocation.cpp:
    (WebCore::Geolocation::create):
    (WebCore):
    (WebCore::Geolocation::Geolocation):
    (WebCore::Geolocation::~Geolocation):
    (WebCore::Geolocation::document):
    (WebCore::Geolocation::frame):
    (WebCore::Geolocation::page):
    (WebCore::Geolocation::stop):
    (WebCore::Geolocation::getCurrentPosition):
    (WebCore::Geolocation::watchPosition):
    (WebCore::Geolocation::requestPermission):
    (WebCore::Geolocation::clearWatch):
    (WebCore::Geolocation::setIsAllowed):
    * Modules/geolocation/Geolocation.h:
    (WebCore):
    (Geolocation):
    * Modules/geolocation/NavigatorGeolocation.cpp:
    (WebCore):
    (WebCore::NavigatorGeolocation::geolocation):
    * Modules/geolocation/NavigatorGeolocation.h:
    (NavigatorGeolocation):
    * dom/Document.cpp:
    (WebCore::Document::Document):
    * dom/Document.h:
    (Document):
    * history/PageCache.cpp:
    (WebCore::logCanCacheFrameDecision):
    (WebCore::PageCache::canCachePageContainingThisFrame):
    
    Source/WebKit/chromium: 
    
    Rather than indirecting through the Frame to get the SecurityOrigin, we
    should get the SecurityOrigin directly from ScriptExecutionContext.
    
    * src/WebGeolocationPermissionRequest.cpp:
    (WebKit::WebGeolocationPermissionRequest::securityOrigin):
    
    Source/WebKit/mac: 
    
    * WebView/WebFrame.mm:
    (-[WebFrame _cacheabilityDictionary]):
        - We no longer special-case Geolocation.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@109761 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    51f351bf