diff options
author | Patrick Scott <phanna@android.com> | 2009-04-29 10:21:57 -0400 |
---|---|---|
committer | Patrick Scott <phanna@android.com> | 2009-04-29 14:11:27 -0400 |
commit | e82dc4205285a40d6c2227e362c30ce24c96a552 (patch) | |
tree | 7f0d1c0d21365274aa379c8cd226a80aeb2330e0 /core/java/android/webkit/StreamLoader.java | |
parent | 42fba356cf90612986fb4d0627d1f8c349cf8db7 (diff) | |
download | frameworks_base-e82dc4205285a40d6c2227e362c30ce24c96a552.zip frameworks_base-e82dc4205285a40d6c2227e362c30ce24c96a552.tar.gz frameworks_base-e82dc4205285a40d6c2227e362c30ce24c96a552.tar.bz2 |
Parse the base64 data before creating the data stream.
This will ensure that we do not parse the data in chunks when passing it to the
LoadListener. Decoding in chunks can lead to incomplete sequences which will
lead to a failed decode.
Check for a cancelled LoadListener in StreamLoader and stop the load. This is
just a shortcut for downloaded or failed resources.
Cleanup some of the LoadListener code around resetting a few member variables.
Reset them in the status callback since that indicates a new response from the
server (or StreamLoader).
Diffstat (limited to 'core/java/android/webkit/StreamLoader.java')
-rw-r--r-- | core/java/android/webkit/StreamLoader.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/core/java/android/webkit/StreamLoader.java b/core/java/android/webkit/StreamLoader.java index 705157c..7d6d7cc 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(); } @@ -116,6 +116,10 @@ abstract class StreamLoader extends Handler { if (WebView.DEBUG && mHandler.isSynchronous()) { throw new AssertionError(); } + if (mHandler.cancelled()) { + closeStreamAndSendEndData(); + return; + } switch(msg.what) { case MSG_STATUS: if (setupStreamAndSendStatus()) { |