summaryrefslogtreecommitdiff
path: root/chromium/java/com/android/webview
diff options
context:
space:
mode:
authorPrimiano Tucci <primiano@google.com>2014-09-30 16:34:42 +0100
committerPrimiano Tucci <primiano@google.com>2014-10-01 13:38:44 +0100
commit22fec495f2e36255d15ff35301ad96d5f7e35d20 (patch)
treeb7d109703e8e7729b0502d89a0fb2891672cb707 /chromium/java/com/android/webview
parent5d016d9a6abb8d713bc094662190721a8b2d95ae (diff)
parent84e387193b55f94d61a9544ccfbe3c79e5e23f25 (diff)
downloadwebview-22fec495f2e36255d15ff35301ad96d5f7e35d20.tar.gz
Merge master-chromium into master at 267aeeb8d85c
This commit was generated by merge_to_master.py. Change-Id: I1126b4412fc30084b9345f7d0a6f307e49a4feb9
Diffstat (limited to 'chromium/java/com/android/webview')
-rw-r--r--chromium/java/com/android/webview/chromium/ResourceRewriter.java90
-rw-r--r--chromium/java/com/android/webview/chromium/WebBackForwardListChromium.java2
-rw-r--r--chromium/java/com/android/webview/chromium/WebHistoryItemChromium.java2
-rw-r--r--chromium/java/com/android/webview/chromium/WebViewChromium.java2
-rw-r--r--chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java6
-rw-r--r--chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java5
6 files changed, 14 insertions, 93 deletions
diff --git a/chromium/java/com/android/webview/chromium/ResourceRewriter.java b/chromium/java/com/android/webview/chromium/ResourceRewriter.java
index 3410044..99fa46f 100644
--- a/chromium/java/com/android/webview/chromium/ResourceRewriter.java
+++ b/chromium/java/com/android/webview/chromium/ResourceRewriter.java
@@ -34,102 +34,22 @@ class ResourceRewriter {
// Rewrite the R 'constants' for all library apks.
SparseArray<String> packageIdentifiers = ctx.getResources().getAssets()
.getAssignedPackageIdentifiers();
+
final int N = packageIdentifiers.size();
for (int i = 0; i < N; i++) {
final int id = packageIdentifiers.keyAt(i);
- final String name = packageIdentifiers.valueAt(i);
if (id == 0x01 || id == 0x7f) {
continue;
}
- // TODO(mkosiba): We should use jarjar to remove the redundant R classes here, but due
+ // TODO: We should use jarjar to remove the redundant R classes here, but due
// to a bug in jarjar it's not possible to rename classes with '$' in their name.
// See b/15684775.
- rewriteRValues(com.android.webview.chromium.R.class, id);
- rewriteRValues(org.chromium.content.R.class, id);
- rewriteRValues(org.chromium.ui.R.class, id);
+ com.android.webview.chromium.R.onResourcesLoaded(id);
+ org.chromium.ui.R.onResourcesLoaded(id);
+ org.chromium.content.R.onResourcesLoaded(id);
break;
}
-
- }
-
- private static void rewriteIntField(Field field, int packageId) throws IllegalAccessException {
- int requiredModifiers = Modifier.STATIC | Modifier.PUBLIC;
- int bannedModifiers = Modifier.FINAL;
-
- int mod = field.getModifiers();
- if ((mod & requiredModifiers) != requiredModifiers ||
- (mod & bannedModifiers) != 0) {
- throw new IllegalArgumentException("Field " + field.getName() +
- " is not rewritable");
- }
-
- if (field.getType() != int.class && field.getType() != Integer.class) {
- throw new IllegalArgumentException("Field " + field.getName() +
- " is not an integer");
- }
-
- try {
- int resId = field.getInt(null);
- int newId = (resId & 0x00ffffff) | (packageId << 24);
- field.setInt(null, newId);
- } catch (IllegalAccessException e) {
- // This should not occur (we check above if we can write to it)
- throw new IllegalArgumentException(e);
- }
- }
-
- private static void rewriteIntArrayField(Field field, int packageId) {
- int requiredModifiers = Modifier.STATIC | Modifier.PUBLIC;
-
- if ((field.getModifiers() & requiredModifiers) != requiredModifiers) {
- throw new IllegalArgumentException("Field " + field.getName() +
- " is not rewritable");
- }
-
- if (field.getType() != int[].class) {
- throw new IllegalArgumentException("Field " + field.getName() +
- " is not an integer array");
- }
-
- try {
- int[] array = (int[]) field.get(null);
- for (int i = 0; i < array.length; i++) {
- array[i] = (array[i] & 0x00ffffff) | (packageId << 24);
- }
- } catch (IllegalAccessException e) {
- // This should not occur (we check above if we can write to it)
- throw new IllegalArgumentException(e);
- }
}
-
- private static void rewriteRValues(final Class<?> rClazz, int id) {
- try {
- Class<?>[] declaredClasses = rClazz.getDeclaredClasses();
- for (Class<?> clazz : declaredClasses) {
- try {
- if (clazz.getSimpleName().equals("styleable")) {
- for (Field field : clazz.getDeclaredFields()) {
- if (field.getType() == int[].class) {
- rewriteIntArrayField(field, id);
- }
- }
-
- } else {
- for (Field field : clazz.getDeclaredFields()) {
- rewriteIntField(field, id);
- }
- }
- } catch (Exception e) {
- throw new IllegalArgumentException("Failed to rewrite R values for " +
- clazz.getName(), e);
- }
- }
-
- } catch (Exception e) {
- throw new IllegalArgumentException("Failed to rewrite R values", e);
- }
- }
-
}
diff --git a/chromium/java/com/android/webview/chromium/WebBackForwardListChromium.java b/chromium/java/com/android/webview/chromium/WebBackForwardListChromium.java
index ad2b64b..b584ee9 100644
--- a/chromium/java/com/android/webview/chromium/WebBackForwardListChromium.java
+++ b/chromium/java/com/android/webview/chromium/WebBackForwardListChromium.java
@@ -16,7 +16,7 @@
package com.android.webview.chromium;
-import org.chromium.content.browser.NavigationHistory;
+import org.chromium.content_public.browser.NavigationHistory;
import android.webkit.WebBackForwardList;
import android.webkit.WebHistoryItem;
diff --git a/chromium/java/com/android/webview/chromium/WebHistoryItemChromium.java b/chromium/java/com/android/webview/chromium/WebHistoryItemChromium.java
index 18ab645..e36384b 100644
--- a/chromium/java/com/android/webview/chromium/WebHistoryItemChromium.java
+++ b/chromium/java/com/android/webview/chromium/WebHistoryItemChromium.java
@@ -16,7 +16,7 @@
package com.android.webview.chromium;
-import org.chromium.content.browser.NavigationEntry;
+import org.chromium.content_public.browser.NavigationEntry;
import android.graphics.Bitmap;
import android.webkit.WebHistoryItem;
diff --git a/chromium/java/com/android/webview/chromium/WebViewChromium.java b/chromium/java/com/android/webview/chromium/WebViewChromium.java
index 08ad69a..e29c3d3 100644
--- a/chromium/java/com/android/webview/chromium/WebViewChromium.java
+++ b/chromium/java/com/android/webview/chromium/WebViewChromium.java
@@ -69,7 +69,7 @@ import org.chromium.android_webview.AwLayoutSizer;
import org.chromium.android_webview.AwSettings;
import org.chromium.android_webview.AwPrintDocumentAdapter;
import org.chromium.base.ThreadUtils;
-import org.chromium.content.browser.LoadUrlParams;
+import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.net.NetworkChangeNotifier;
import java.io.BufferedWriter;
diff --git a/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
index 9e718f1..5a947e8 100644
--- a/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
+++ b/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
@@ -28,6 +28,7 @@ import android.net.Uri;
import android.os.Build;
import android.os.FileUtils;
import android.os.Looper;
+import android.os.StrictMode;
import android.os.SystemProperties;
import android.os.Trace;
import android.util.Log;
@@ -56,13 +57,13 @@ import org.chromium.base.CommandLine;
import org.chromium.base.MemoryPressureListener;
import org.chromium.base.PathService;
import org.chromium.base.PathUtils;
+import org.chromium.base.ResourceExtractor;
import org.chromium.base.ThreadUtils;
import org.chromium.base.TraceEvent;
import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.base.library_loader.ProcessInitException;
import org.chromium.content.app.ContentMain;
import org.chromium.content.browser.ContentViewStatics;
-import org.chromium.content.browser.ResourceExtractor;
import java.io.File;
import java.lang.ref.WeakReference;
@@ -101,7 +102,10 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
public WebViewChromiumFactoryProvider() {
if (Build.IS_DEBUGGABLE) {
+ // Suppress the StrictMode violation as this codepath is only hit on debugglable builds.
+ StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
CommandLine.initFromFile(COMMAND_LINE_FILE);
+ StrictMode.setThreadPolicy(oldPolicy);
} else {
CommandLine.init(null);
}
diff --git a/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java b/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java
index c2cc671..8d92630 100644
--- a/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java
+++ b/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java
@@ -287,10 +287,7 @@ public class WebViewContentsClientAdapter extends AwContentsClient {
return mParams.isMainFrame;
}
- public boolean hasUserGestureInsecure() {
- return mParams.hasUserGesture;
- }
-
+ @Override
public boolean hasGesture() {
return mParams.hasUserGesture;
}