diff options
Diffstat (limited to 'WebKit')
-rw-r--r-- | WebKit/android/jni/WebCoreResourceLoader.cpp | 18 | ||||
-rw-r--r-- | WebKit/android/jni/WebCoreResourceLoader.h | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/WebKit/android/jni/WebCoreResourceLoader.cpp b/WebKit/android/jni/WebCoreResourceLoader.cpp index b17c9a7..cf32c09 100644 --- a/WebKit/android/jni/WebCoreResourceLoader.cpp +++ b/WebKit/android/jni/WebCoreResourceLoader.cpp @@ -56,6 +56,7 @@ static struct resourceloader_t { jmethodID mCancelMethodID; jmethodID mDownloadFileMethodID; jmethodID mWillLoadFromCacheMethodID; + jmethodID mPauseLoadMethodID; } gResourceLoader; // ---------------------------------------------------------------------------- @@ -72,6 +73,7 @@ PassRefPtr<WebCore::ResourceLoaderAndroid> WebCoreResourceLoader::create(JNIEnv } WebCoreResourceLoader::WebCoreResourceLoader(JNIEnv *env, jobject jLoadListener) + : mPausedLoad(false) { mJLoader = env->NewGlobalRef(jLoadListener); } @@ -98,6 +100,17 @@ void WebCoreResourceLoader::downloadFile() checkException(env); } +void WebCoreResourceLoader::pauseLoad(bool pause) +{ + if (mPausedLoad == pause) + return; + + mPausedLoad = pause; + JNIEnv* env = JSC::Bindings::getJNIEnv(); + env->CallVoidMethod(mJLoader, gResourceLoader.mPauseLoadMethodID, pause); + checkException(env); +} + /* * This static method is called to check to see if a POST response is in * the cache. This may be slow, but is only used during a navigation to @@ -320,6 +333,11 @@ int register_resource_loader(JNIEnv* env) LOG_FATAL_IF(gResourceLoader.mDownloadFileMethodID == NULL, "Could not find method downloadFile on LoadListener"); + gResourceLoader.mPauseLoadMethodID = + env->GetMethodID(resourceLoader, "pauseLoad", "(Z)V"); + LOG_FATAL_IF(gResourceLoader.mPauseLoadMethodID == NULL, + "Could not find method pauseLoad on LoadListener"); + gResourceLoader.mWillLoadFromCacheMethodID = env->GetStaticMethodID(resourceLoader, "willLoadFromCache", "(Ljava/lang/String;J)Z"); LOG_FATAL_IF(gResourceLoader.mWillLoadFromCacheMethodID == NULL, diff --git a/WebKit/android/jni/WebCoreResourceLoader.h b/WebKit/android/jni/WebCoreResourceLoader.h index d24a43e..c60b3f5 100644 --- a/WebKit/android/jni/WebCoreResourceLoader.h +++ b/WebKit/android/jni/WebCoreResourceLoader.h @@ -49,6 +49,8 @@ public: */ virtual void downloadFile(); + virtual void pauseLoad(bool); + /** * Call to java to find out if this URL is in the cache */ @@ -68,6 +70,7 @@ protected: WebCoreResourceLoader(JNIEnv *env, jobject jLoadListener); private: jobject mJLoader; + bool mPausedLoad; }; } // end namespace android |