diff options
Diffstat (limited to 'core/java/android/webkit/StreamLoader.java')
-rw-r--r-- | core/java/android/webkit/StreamLoader.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/core/java/android/webkit/StreamLoader.java b/core/java/android/webkit/StreamLoader.java index 705157c..623ff29 100644 --- a/core/java/android/webkit/StreamLoader.java +++ b/core/java/android/webkit/StreamLoader.java @@ -102,7 +102,7 @@ abstract class StreamLoader extends Handler { // to pass data to the loader mData = new byte[8192]; sendHeaders(); - while (!sendData()); + while (!sendData() && !mHandler.cancelled()); closeStreamAndSendEndData(); mHandler.loadSynchronousMessages(); } @@ -113,9 +113,13 @@ abstract class StreamLoader extends Handler { * @see android.os.Handler#handleMessage(android.os.Message) */ public void handleMessage(Message msg) { - if (WebView.DEBUG && mHandler.isSynchronous()) { + if (DebugFlags.STREAM_LOADER && mHandler.isSynchronous()) { throw new AssertionError(); } + if (mHandler.cancelled()) { + closeStreamAndSendEndData(); + return; + } switch(msg.what) { case MSG_STATUS: if (setupStreamAndSendStatus()) { @@ -153,7 +157,6 @@ abstract class StreamLoader extends Handler { if (mContentLength > 0) { headers.setContentLength(mContentLength); } - headers.setCacheControl(NO_STORE); buildHeaders(headers); mHandler.headers(headers); } |