summaryrefslogtreecommitdiffstats
path: root/core/java/android/webkit/JniUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/webkit/JniUtil.java')
-rw-r--r--core/java/android/webkit/JniUtil.java189
1 files changed, 0 insertions, 189 deletions
diff --git a/core/java/android/webkit/JniUtil.java b/core/java/android/webkit/JniUtil.java
deleted file mode 100644
index 01a81c4..0000000
--- a/core/java/android/webkit/JniUtil.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.webkit;
-
-import android.app.ActivityManager;
-import android.content.Context;
-import android.net.Uri;
-import android.provider.Settings;
-import android.util.Log;
-
-import java.io.File;
-import java.io.InputStream;
-
-class JniUtil {
-
- static {
- System.loadLibrary("webcore");
- System.loadLibrary("chromium_net");
- }
- private static final String LOGTAG = "webkit";
- private JniUtil() {} // Utility class, do not instantiate.
-
- // Used by the Chromium HTTP stack.
- private static String sDatabaseDirectory;
- private static String sCacheDirectory;
- private static Context sContext;
-
- private static void checkInitialized() {
- if (sContext == null) {
- throw new IllegalStateException("Call CookieSyncManager::createInstance() or create a webview before using this class");
- }
- }
-
- protected static synchronized void setContext(Context context) {
- if (sContext != null) {
- return;
- }
-
- sContext = context.getApplicationContext();
- }
-
- protected static synchronized Context getContext() {
- return sContext;
- }
-
- /**
- * Called by JNI. Gets the application's database directory, excluding the trailing slash.
- * @return String The application's database directory
- */
- private static synchronized String getDatabaseDirectory() {
- checkInitialized();
-
- if (sDatabaseDirectory == null) {
- sDatabaseDirectory = sContext.getDatabasePath("dummy").getParent();
- }
-
- return sDatabaseDirectory;
- }
-
- /**
- * Called by JNI. Gets the application's cache directory, excluding the trailing slash.
- * @return String The application's cache directory
- */
- private static synchronized String getCacheDirectory() {
- checkInitialized();
-
- if (sCacheDirectory == null) {
- File cacheDir = sContext.getCacheDir();
- if (cacheDir == null) {
- sCacheDirectory = "";
- } else {
- sCacheDirectory = cacheDir.getAbsolutePath();
- }
- }
-
- return sCacheDirectory;
- }
-
- /**
- * Called by JNI. Gets the application's package name.
- * @return String The application's package name
- */
- private static synchronized String getPackageName() {
- checkInitialized();
-
- return sContext.getPackageName();
- }
-
- private static final String ANDROID_CONTENT = URLUtil.CONTENT_BASE;
-
- /**
- * Called by JNI. Calculates the size of an input stream by reading it.
- * @return long The size of the stream
- */
- private static synchronized long contentUrlSize(String url) {
- // content://
- if (url.startsWith(ANDROID_CONTENT)) {
- try {
- // Strip off MIME type. If we don't do this, we can fail to
- // load Gmail attachments, because the URL being loaded doesn't
- // exactly match the URL we have permission to read.
- int mimeIndex = url.lastIndexOf('?');
- if (mimeIndex != -1) {
- url = url.substring(0, mimeIndex);
- }
- Uri uri = Uri.parse(url);
- InputStream is = sContext.getContentResolver().openInputStream(uri);
- byte[] buffer = new byte[1024];
- int n;
- long size = 0;
- try {
- while ((n = is.read(buffer)) != -1) {
- size += n;
- }
- } finally {
- is.close();
- }
- return size;
- } catch (Exception e) {
- Log.e(LOGTAG, "Exception: " + url);
- return 0;
- }
- } else {
- return 0;
- }
- }
-
- /**
- * Called by JNI.
- *
- * @return Opened input stream to content
- * TODO: Make all content loading use this instead of BrowserFrame.java
- */
- private static synchronized InputStream contentUrlStream(String url) {
- // content://
- if (url.startsWith(ANDROID_CONTENT)) {
- try {
- // Strip off mimetype, for compatibility with ContentLoader.java
- // (used with Android HTTP stack, now removed).
- // If we don't do this, we can fail to load Gmail attachments,
- // because the URL being loaded doesn't exactly match the URL we
- // have permission to read.
- int mimeIndex = url.lastIndexOf('?');
- if (mimeIndex != -1) {
- url = url.substring(0, mimeIndex);
- }
- Uri uri = Uri.parse(url);
- return sContext.getContentResolver().openInputStream(uri);
- } catch (Exception e) {
- Log.e(LOGTAG, "Exception: " + url);
- return null;
- }
- } else {
- return null;
- }
- }
-
- private static synchronized String getAutofillQueryUrl() {
- checkInitialized();
- // If the device has not checked in it won't have pulled down the system setting for the
- // Autofill Url. In that case we will not make autofill server requests.
- return Settings.Global.getString(sContext.getContentResolver(),
- Settings.Global.WEB_AUTOFILL_QUERY_URL);
- }
-
- private static boolean canSatisfyMemoryAllocation(long bytesRequested) {
- checkInitialized();
- ActivityManager manager = (ActivityManager) sContext.getSystemService(
- Context.ACTIVITY_SERVICE);
- ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();
- manager.getMemoryInfo(memInfo);
- long leftToAllocate = memInfo.availMem - memInfo.threshold;
- return !memInfo.lowMemory && bytesRequested < leftToAllocate;
- }
-}