diff options
-rw-r--r-- | core/java/android/webkit/FrameLoader.java | 10 | ||||
-rw-r--r-- | core/java/android/webkit/LoadListener.java | 24 |
2 files changed, 23 insertions, 11 deletions
diff --git a/core/java/android/webkit/FrameLoader.java b/core/java/android/webkit/FrameLoader.java index 303e417..906264a 100644 --- a/core/java/android/webkit/FrameLoader.java +++ b/core/java/android/webkit/FrameLoader.java @@ -262,9 +262,13 @@ class FrameLoader { CacheLoader cacheLoader = new CacheLoader(mListener, result); mListener.setCacheLoader(cacheLoader); - // Load the cached file in a separate thread - WebViewWorker.getHandler().obtainMessage( - WebViewWorker.MSG_ADD_STREAMLOADER, cacheLoader).sendToTarget(); + if (mListener.isSynchronous()) { + cacheLoader.load(); + } else { + // Load the cached file in a separate thread + WebViewWorker.getHandler().obtainMessage( + WebViewWorker.MSG_ADD_STREAMLOADER, cacheLoader).sendToTarget(); + } } /* diff --git a/core/java/android/webkit/LoadListener.java b/core/java/android/webkit/LoadListener.java index 4bdab0a..a23a4ce 100644 --- a/core/java/android/webkit/LoadListener.java +++ b/core/java/android/webkit/LoadListener.java @@ -656,10 +656,14 @@ class LoadListener extends Handler implements EventHandler { // ask for it, so make sure we have a valid CacheLoader // before calling it. if (mCacheLoader != null) { - // Load the cached file in a separate thread - WebViewWorker.getHandler().obtainMessage( - WebViewWorker.MSG_ADD_STREAMLOADER, mCacheLoader) - .sendToTarget(); + if (isSynchronous()) { + mCacheLoader.load(); + } else { + // Load the cached file in a separate thread + WebViewWorker.getHandler().obtainMessage( + WebViewWorker.MSG_ADD_STREAMLOADER, mCacheLoader) + .sendToTarget(); + } mFromCache = true; if (DebugFlags.LOAD_LISTENER) { Log.v(LOGTAG, "LoadListener cache load url=" + url()); @@ -718,10 +722,14 @@ class LoadListener extends Handler implements EventHandler { Log.v(LOGTAG, "FrameLoader: HTTP URL in cache " + "and usable: " + url()); } - // Load the cached file in a separate thread - WebViewWorker.getHandler().obtainMessage( - WebViewWorker.MSG_ADD_STREAMLOADER, mCacheLoader) - .sendToTarget(); + if (isSynchronous()) { + mCacheLoader.load(); + } else { + // Load the cached file in a separate thread + WebViewWorker.getHandler().obtainMessage( + WebViewWorker.MSG_ADD_STREAMLOADER, mCacheLoader) + .sendToTarget(); + } mFromCache = true; return true; } |