[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

ossy at webkit.org ossy at webkit.org
Wed Dec 22 12:17:58 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 6bd81709f1b2f89dac77d9dfa5087de7347e0f14
Author: ossy at webkit.org <ossy at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Aug 18 17:51:24 2010 +0000

    [Qt] Request for permission before starting Geolocation service
    https://bugs.webkit.org/show_bug.cgi?id=42027
    
    Patch by Mahesh Kulkarni <mahesh.kulkarni at nokia.com> on 2010-08-18
    Reviewed by Steve Block.
    
    Handles starting location acquisition when request is granted for ports using
    "!CLIENT_BASED_GEOLOCATION and PREEMPT_GEOLOCATION_PERMISSION" policy
    Only Qt port as of today uses the above combination. Enable
    PREEMPT_GEOLOCATION_PERMISSION for qt port.
    
    Below tests cover these changes on platform using PREEMPT_GEOLOCATION_PERMISSION
    - fast/dom/Geolocation/delayed-permission-allowed.html
    - fast/dom/Geolocation/delayed-permission-denied.html
    - fast/dom/Geolocation/delayed-permission-allowed-for-multiple-requests.html
    - fast/dom/Geolocation/delayed-permission-denied-for-multiple-requests.html
    
    * WebCore.pro:
    * page/Geolocation.cpp:
    (WebCore::Geolocation::handlePendingPermissionNotifiers):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65616 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index a107c10..21a5891 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,25 @@
+2010-08-18  Mahesh Kulkarni  <mahesh.kulkarni at nokia.com>
+
+        Reviewed by Steve Block.
+
+        [Qt] Request for permission before starting Geolocation service
+        https://bugs.webkit.org/show_bug.cgi?id=42027
+
+        Handles starting location acquisition when request is granted for ports using 
+        "!CLIENT_BASED_GEOLOCATION and PREEMPT_GEOLOCATION_PERMISSION" policy
+        Only Qt port as of today uses the above combination. Enable 
+        PREEMPT_GEOLOCATION_PERMISSION for qt port. 
+
+        Below tests cover these changes on platform using PREEMPT_GEOLOCATION_PERMISSION
+        - fast/dom/Geolocation/delayed-permission-allowed.html
+        - fast/dom/Geolocation/delayed-permission-denied.html
+        - fast/dom/Geolocation/delayed-permission-allowed-for-multiple-requests.html
+        - fast/dom/Geolocation/delayed-permission-denied-for-multiple-requests.html
+
+        * WebCore.pro:
+        * page/Geolocation.cpp:
+        (WebCore::Geolocation::handlePendingPermissionNotifiers):
+
 2010-08-18  Andreas Kling  <andreas.kling at nokia.com>
 
         Reviewed by Darin Adler.
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index 2f5769c..42ca95f 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -2799,6 +2799,7 @@ contains(DEFINES, ENABLE_QT_BEARER=1) {
 }
 
 contains(DEFINES, ENABLE_GEOLOCATION=1) {
+    DEFINES += WTF_USE_PREEMPT_GEOLOCATION_PERMISSION
     HEADERS += \
         platform/qt/GeolocationServiceQt.h
     SOURCES += \
diff --git a/WebCore/page/Geolocation.cpp b/WebCore/page/Geolocation.cpp
index fd10f27..57ad963 100644
--- a/WebCore/page/Geolocation.cpp
+++ b/WebCore/page/Geolocation.cpp
@@ -678,14 +678,6 @@ void Geolocation::stopUpdating()
 #if USE(PREEMPT_GEOLOCATION_PERMISSION)
 void Geolocation::handlePendingPermissionNotifiers()
 {
-#if ENABLE(CLIENT_BASED_GEOLOCATION)
-    if (!m_frame)
-        return;
-    Page* page = m_frame->page();
-    if (!page)
-        return;
-#endif
-
     // While we iterate through the list, we need not worry about list being modified as the permission 
     // is already set to Yes/No and no new listeners will be added to the pending list
     GeoNotifierSet::const_iterator end = m_pendingForPermissionNotifiers.end();
@@ -695,12 +687,10 @@ void Geolocation::handlePendingPermissionNotifiers()
         if (isAllowed()) {
             // start all pending notification requests as permission granted.
             // The notifier is always ref'ed by m_oneShots or m_watchers.
-#if ENABLE(CLIENT_BASED_GEOLOCATION)
-            notifier->startTimerIfNeeded();
-            page->geolocationController()->addObserver(this, notifier->m_options->enableHighAccuracy());
-#else
-            // TODO: Handle startUpdate() for non-client based implementations using pre-emptive policy
-#endif
+            if (startUpdating(notifier))
+                notifier->startTimerIfNeeded();
+            else
+                notifier->setFatalError(PositionError::create(PositionError::POSITION_UNAVAILABLE, failedToStartServiceErrorMessage));
         } else
             notifier->setFatalError(PositionError::create(PositionError::PERMISSION_DENIED, permissionDeniedErrorMessage));
     }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list