diff options
| -rw-r--r-- | core/java/android/webkit/GearsPermissionsManager.java | 8 | ||||
| -rw-r--r-- | core/java/android/webkit/WebSettings.java | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/core/java/android/webkit/GearsPermissionsManager.java b/core/java/android/webkit/GearsPermissionsManager.java index e70e44968620..6549cb8fb0aa 100644 --- a/core/java/android/webkit/GearsPermissionsManager.java +++ b/core/java/android/webkit/GearsPermissionsManager.java @@ -139,7 +139,13 @@ class GearsPermissionsManager { file = new File(file.getAbsolutePath() + File.separator + GEARS_DATABASE_DIR + File.separator + GEARS_DATABASE_FILE); // Remember whether or not we need to create the LocationAccess table. - boolean needToCreateTables = !file.exists(); + boolean needToCreateTables = false; + if (!file.exists()) { + needToCreateTables = true; + // Create the path or else SQLiteDatabase.openOrCreateDatabase() + // may throw on the device. + file.getParentFile().mkdirs(); + } // If the database file does not yet exist and the system location // setting says that the Gears origins need to be removed from the // location permission table, it means that we don't actually need diff --git a/core/java/android/webkit/WebSettings.java b/core/java/android/webkit/WebSettings.java index c5012f1a5ebf..a038b55995ac 100644 --- a/core/java/android/webkit/WebSettings.java +++ b/core/java/android/webkit/WebSettings.java @@ -199,6 +199,7 @@ public class WebSettings { switch (msg.what) { case SYNC: synchronized (WebSettings.this) { + checkGearsPermissions(); if (mBrowserFrame.mNativeFrame != 0) { nativeSync(mBrowserFrame.mNativeFrame); } |