Commit 02fee1e8 authored by Robbie McElrath's avatar Robbie McElrath Committed by Commit Bot

[AW] Use WebView's LicenseContentProvider in Monochrome

This deletes Monochrome's LicenseContentProvider and makes it use
WebView's implementation as SystemWebView and Trichrome do.

Test: Start monochrome's LicenseActivity, then start monochrome
Bug: 934152
Change-Id: I8db38a219c932726659af08593aad6a9b7c178ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1860402Reviewed-by: default avatarAndrew Grieve <agrieve@chromium.org>
Reviewed-by: default avatarRichard Coles <torne@chromium.org>
Commit-Queue: Robbie McElrath <rmcelrath@chromium.org>
Cr-Commit-Position: refs/heads/master@{#707651}
parent 278b662e
...@@ -387,6 +387,10 @@ group("gn_all") { ...@@ -387,6 +387,10 @@ group("gn_all") {
if (enable_chrome_android_internal) { if (enable_chrome_android_internal) {
deps += [ "//clank" ] deps += [ "//clank" ]
} }
if (public_android_sdk) {
deps += [ "//chrome/android/monochrome:monochrome_apk_checker" ]
}
} }
# NOTE: The following should really be 'is_android', but the fuzzing build # NOTE: The following should really be 'is_android', but the fuzzing build
......
...@@ -467,7 +467,6 @@ source_set("common") { ...@@ -467,7 +467,6 @@ source_set("common") {
deps = [ deps = [
":browser_jni_headers", ":browser_jni_headers",
"//android_webview/apk", "//android_webview/apk",
"//android_webview/apk:webview_license_provider",
"//android_webview/browser", "//android_webview/browser",
"//android_webview/browser/gfx", "//android_webview/browser/gfx",
"//android_webview/common", "//android_webview/common",
......
...@@ -10,25 +10,8 @@ generate_jni("apk_jni_headers") { ...@@ -10,25 +10,8 @@ generate_jni("apk_jni_headers") {
] ]
} }
# Monochrome uses a different copy of LicenseContentProvider.java. # Empty target to avoid breaking Clank.
# This one is used in Trichrome and SystemWebview. java_group("webview_license_provider_java") {
android_library("webview_license_provider_java") {
java_files =
[ "java/src/com/android/webview/chromium/LicenseContentProvider.java" ]
deps = [
":apk_java",
"//base:base_java",
"//components/about_ui/android:aboutui_java",
]
}
# Contains the native dependencies used by LicenseContentProvider via JNI.
# This should be included in the shared library of any APK that depends on
# :webview_license_provider_java.
group("webview_license_provider") {
deps = [
"//components/about_ui",
]
} }
# Contains classes needed by the webview apk, but not used when loading the apk # Contains classes needed by the webview apk, but not used when loading the apk
...@@ -36,6 +19,7 @@ group("webview_license_provider") { ...@@ -36,6 +19,7 @@ group("webview_license_provider") {
android_library("apk_java") { android_library("apk_java") {
java_files = [ java_files = [
"java/src/com/android/webview/chromium/LicenseActivity.java", "java/src/com/android/webview/chromium/LicenseActivity.java",
"java/src/com/android/webview/chromium/LicenseContentProvider.java",
"java/src/com/android/webview/chromium/WebViewApkApplication.java", "java/src/com/android/webview/chromium/WebViewApkApplication.java",
] ]
deps = [ deps = [
...@@ -43,6 +27,7 @@ android_library("apk_java") { ...@@ -43,6 +27,7 @@ android_library("apk_java") {
"//android_webview:common_commandline_java", "//android_webview:common_commandline_java",
"//base:base_java", "//base:base_java",
"//base:jni_java", "//base:jni_java",
"//components/about_ui/android:aboutui_java",
"//components/embedder_support/android:application_java", "//components/embedder_support/android:application_java",
"//ui/android:ui_java", "//ui/android:ui_java",
] ]
...@@ -57,5 +42,8 @@ source_set("apk") { ...@@ -57,5 +42,8 @@ source_set("apk") {
":apk_jni_headers", ":apk_jni_headers",
"//android_webview/common", "//android_webview/common",
"//base", "//base",
# Called via JNI by LicenseContentProvider in :apk_java.
"//components/about_ui:about_ui_android",
] ]
} }
...@@ -31,7 +31,6 @@ public class LicenseContentProvider ...@@ -31,7 +31,6 @@ public class LicenseContentProvider
extends ContentProvider implements ContentProvider.PipeDataWriter<String> { extends ContentProvider implements ContentProvider.PipeDataWriter<String> {
public static final String LICENSES_URI_SUFFIX = "LicenseContentProvider/webview_licenses"; public static final String LICENSES_URI_SUFFIX = "LicenseContentProvider/webview_licenses";
public static final String LICENSES_CONTENT_TYPE = "text/html"; public static final String LICENSES_CONTENT_TYPE = "text/html";
private static final String TAG = "LicenseCP";
@Override @Override
public boolean onCreate() { public boolean onCreate() {
......
...@@ -28,7 +28,6 @@ template("system_webview_apk_tmpl") { ...@@ -28,7 +28,6 @@ template("system_webview_apk_tmpl") {
"//android_webview:locale_pak_assets", "//android_webview:locale_pak_assets",
"//android_webview:pak_file_assets", "//android_webview:pak_file_assets",
"//android_webview/apk:apk_java", "//android_webview/apk:apk_java",
"//android_webview/apk:webview_license_provider_java",
"//android_webview/glue", "//android_webview/glue",
"//android_webview/support_library:support_lib_glue_java", "//android_webview/support_library:support_lib_glue_java",
"//base:base_java", "//base:base_java",
......
...@@ -372,7 +372,6 @@ template("monochrome_public_common_apk_or_module_tmpl") { ...@@ -372,7 +372,6 @@ template("monochrome_public_common_apk_or_module_tmpl") {
"//android_webview/apk:apk_java", "//android_webview/apk:apk_java",
"//android_webview/glue", "//android_webview/glue",
"//chrome/android:monochrome_java", "//chrome/android:monochrome_java",
"//chrome/android/monochrome:monochrome_license_provider_java",
"//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline", "//third_party/crashpad/crashpad/handler:crashpad_handler_trampoline",
] ]
loadable_modules += [ "$root_out_dir/libcrashpad_handler_trampoline.so" ] loadable_modules += [ "$root_out_dir/libcrashpad_handler_trampoline.so" ]
......
...@@ -2,22 +2,7 @@ ...@@ -2,22 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("//build/config/android/rules.gni") import("//build/config/android/config.gni")
android_library("monochrome_license_provider_java") {
java_files =
[ "java/src/com/android/webview/chromium/LicenseContentProvider.java" ]
deps = [
"//base:base_java",
"//chrome/android:chrome_java",
"//components/about_ui/android:aboutui_java",
]
# Don't instrument this file as there exist another copy
# //android_webview:webview_license_provider_java
jacoco_never_instrument = true
}
if (public_android_sdk) { if (public_android_sdk) {
group("monochrome_apk_checker") { group("monochrome_apk_checker") {
......
include_rules = [
"+components/about_ui/android/java",
]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package com.android.webview.chromium;
import android.annotation.TargetApi;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.ParcelFileDescriptor;
import org.chromium.base.ThreadUtils;
import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
import org.chromium.components.aboutui.CreditUtilsJni;
import java.io.FileNotFoundException;
/**
* Content provider for the OSS licenses file used on Monochrome and Trichrome.
*/
@TargetApi(Build.VERSION_CODES.N)
public class LicenseContentProvider
extends ContentProvider implements ContentProvider.PipeDataWriter<String> {
public static final String LICENSES_URI_SUFFIX = "LicenseContentProvider/webview_licenses";
public static final String LICENSES_CONTENT_TYPE = "text/html";
@Override
public boolean onCreate() {
return true;
}
@Override
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
if (uri != null && uri.toString().endsWith(LICENSES_URI_SUFFIX)) {
return openPipeHelper(null, null, null, "webview_licenses.notice", this);
}
return null;
}
@Override
public void writeDataToPipe(
ParcelFileDescriptor output, Uri uri, String mimeType, Bundle opts, String filename) {
ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
ChromeBrowserInitializer.getInstance(getContext()).handleSynchronousStartup();
}
});
CreditUtilsJni.get().writeCreditsHtml(output.detachFd());
}
@Override
public String getType(Uri uri) {
if (uri != null && uri.toString().endsWith(LICENSES_URI_SUFFIX)) {
return LICENSES_CONTENT_TYPE;
}
return null;
}
@Override
public int update(Uri uri, ContentValues values, String where, String[] whereArgs) {
throw new UnsupportedOperationException();
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
throw new UnsupportedOperationException();
}
@Override
public Uri insert(Uri uri, ContentValues values) {
throw new UnsupportedOperationException();
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
String sortOrder) {
throw new UnsupportedOperationException();
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment