From 8f91ebf194baa8028367e9e41f2e5ee2ff099b88 Mon Sep 17 00:00:00 2001 From: Shravan Narayan Date: Fri, 10 May 2013 17:08:50 -0400 Subject: [PATCH] DataResource bugfix WebviewClient logs error for http urls. --- framework/src/org/apache/cordova/FileHelper.java | 4 +++- .../org/apache/cordova/IceCreamCordovaWebViewClient.java | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/framework/src/org/apache/cordova/FileHelper.java b/framework/src/org/apache/cordova/FileHelper.java index 400352cc..8bc24aa1 100644 --- a/framework/src/org/apache/cordova/FileHelper.java +++ b/framework/src/org/apache/cordova/FileHelper.java @@ -98,8 +98,10 @@ public class FileHelper { Uri uri = Uri.parse(uriString); String relativePath = uri.getPath().substring(15); return cordova.getActivity().getAssets().open(relativePath); - } else { + } else if (uriString.startsWith("file://")) { return new FileInputStream(getRealPath(uriString, cordova)); + } else { + return null; } } diff --git a/framework/src/org/apache/cordova/IceCreamCordovaWebViewClient.java b/framework/src/org/apache/cordova/IceCreamCordovaWebViewClient.java index d9c1cd21..14c76037 100644 --- a/framework/src/org/apache/cordova/IceCreamCordovaWebViewClient.java +++ b/framework/src/org/apache/cordova/IceCreamCordovaWebViewClient.java @@ -19,6 +19,7 @@ package org.apache.cordova; import java.io.IOException; +import java.io.InputStream; import org.apache.cordova.api.CordovaInterface; import org.apache.cordova.api.DataResource; @@ -55,7 +56,12 @@ public class IceCreamCordovaWebViewClient extends CordovaWebViewClient { if(ret == null) { try { - ret = new WebResourceResponse(dataResource.getMimeType(), "UTF-8", dataResource.getInputStream()); + InputStream is; + String mimeType; + if((is = dataResource.getInputStream()) != null && (mimeType = dataResource.getMimeType()) != null) { + // If we don't know how to open this file, let the browser continue loading + ret = new WebResourceResponse(mimeType, "UTF-8", is); + } } catch(IOException e) { LOG.e("IceCreamCordovaWebViewClient", "Error occurred while loading a file.", e); }