summaryrefslogtreecommitdiffstats
path: root/WebKit
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit')
-rw-r--r--WebKit/android/jni/WebViewCore.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp
index f129600..b16a69d 100644
--- a/WebKit/android/jni/WebViewCore.cpp
+++ b/WebKit/android/jni/WebViewCore.cpp
@@ -35,6 +35,7 @@
#include "Color.h"
#include "DatabaseTracker.h"
#include "Document.h"
+#include "DOMWindow.h"
#include "Element.h"
#include "Editor.h"
#include "EditorClientAndroid.h"
@@ -47,6 +48,7 @@
#include "FrameLoaderClientAndroid.h"
#include "FrameTree.h"
#include "FrameView.h"
+#include "Geolocation.h"
#include "GraphicsContext.h"
#include "GraphicsJNI.h"
#include "HitTestResult.h"
@@ -64,6 +66,7 @@
#include "InlineTextBox.h"
#include <JNIHelp.h>
#include "KeyboardCodes.h"
+#include "Navigator.h"
#include "Node.h"
#include "Page.h"
#include "PageGroup.h"
@@ -2773,6 +2776,13 @@ static void Pause(JNIEnv* env, jobject obj)
ChromeClientAndroid* chromeClientAndroid = static_cast<ChromeClientAndroid*>(chromeClient);
chromeClientAndroid->storeGeolocationPermissions();
+ Frame* mainFrame = GET_NATIVE_VIEW(env, obj)->mainFrame();
+ for (Frame* frame = mainFrame; frame; frame = frame->tree()->traverseNext()) {
+ Geolocation* geolocation = frame->domWindow()->navigator()->optionalGeolocation();
+ if (geolocation)
+ geolocation->suspend();
+ }
+
ANPEvent event;
SkANP::InitEvent(&event, kLifecycle_ANPEventType);
event.data.lifecycle.action = kPause_ANPLifecycleAction;
@@ -2781,6 +2791,13 @@ static void Pause(JNIEnv* env, jobject obj)
static void Resume(JNIEnv* env, jobject obj)
{
+ Frame* mainFrame = GET_NATIVE_VIEW(env, obj)->mainFrame();
+ for (Frame* frame = mainFrame; frame; frame = frame->tree()->traverseNext()) {
+ Geolocation* geolocation = frame->domWindow()->navigator()->optionalGeolocation();
+ if (geolocation)
+ geolocation->resume();
+ }
+
ANPEvent event;
SkANP::InitEvent(&event, kLifecycle_ANPEventType);
event.data.lifecycle.action = kResume_ANPLifecycleAction;