Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1242)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java

Issue 141533006: [Android] Move the java content/ package to content_public/ to start the split. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Small fixes and findbugs line update Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java b/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java
deleted file mode 100644
index 4db35fe6122214f7a3085f8dfbd037bc523b79e9..0000000000000000000000000000000000000000
--- a/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright 2013 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 org.chromium.content.browser;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.ResolveInfo;
-import android.content.pm.ServiceInfo;
-import android.os.Bundle;
-import android.util.Log;
-
-import java.util.List;
-
-/**
- * {@link PepperPluginManager} collects meta data about plugins from preloaded android apps
- * that reply to PEPPERPLUGIN intent query.
- */
-public class PepperPluginManager {
-
- private static final String LOGTAG = "PepperPluginManager";
-
- /**
- * Service Action: A plugin wishes to be loaded in the ContentView must
- * provide {@link android.content.IntentFilter IntentFilter} that accepts
- * this action in its AndroidManifest.xml.
- */
- public static final String PEPPER_PLUGIN_ACTION = "org.chromium.intent.PEPPERPLUGIN";
- public static final String PEPPER_PLUGIN_ROOT = "/system/lib/pepperplugin/";
-
- // A plugin will specify the following fields in its AndroidManifest.xml.
- private static final String FILENAME = "filename";
- private static final String MIMETYPE = "mimetype";
- private static final String NAME = "name";
- private static final String DESCRIPTION = "description";
- private static final String VERSION = "version";
-
- private static String getPluginDescription(Bundle metaData) {
- // Find the name of the plugin's shared library.
- String filename = metaData.getString(FILENAME);
- if (filename == null || filename.isEmpty()) {
- return null;
- }
- // Find the mimetype of the plugin. Flash is handled in getFlashPath.
- String mimetype = metaData.getString(MIMETYPE);
- if (mimetype == null || mimetype.isEmpty()) {
- return null;
- }
- // Assemble the plugin info, according to the format described in
- // pepper_plugin_list.cc.
- // (eg. path<#name><#description><#version>;mimetype)
- StringBuffer plugin = new StringBuffer(PEPPER_PLUGIN_ROOT);
- plugin.append(filename);
-
- // Find the (optional) name/description/version of the plugin.
- String name = metaData.getString(NAME);
- String description = metaData.getString(DESCRIPTION);
- String version = metaData.getString(VERSION);
-
- if (name != null && !name.isEmpty()) {
- plugin.append("#");
- plugin.append(name);
- if (description != null && !description.isEmpty()) {
- plugin.append("#");
- plugin.append(description);
- if (version != null && !version.isEmpty()) {
- plugin.append("#");
- plugin.append(version);
- }
- }
- }
- plugin.append(';');
- plugin.append(mimetype);
-
- return plugin.toString();
- }
-
- /**
- * Collects information about installed plugins and returns a plugin description
- * string, which will be appended to for command line to load plugins.
- *
- * @param context Android context
- * @return Description string for plugins
- */
- public static String getPlugins(final Context context) {
- StringBuffer ret = new StringBuffer();
- PackageManager pm = context.getPackageManager();
- List<ResolveInfo> plugins = pm.queryIntentServices(
- new Intent(PEPPER_PLUGIN_ACTION),
- PackageManager.GET_SERVICES | PackageManager.GET_META_DATA);
- for (ResolveInfo info : plugins) {
- // Retrieve the plugin's service information.
- ServiceInfo serviceInfo = info.serviceInfo;
- if (serviceInfo == null || serviceInfo.metaData == null ||
- serviceInfo.packageName == null) {
- Log.e(LOGTAG, "Can't get service information from " + info);
- continue;
- }
-
- // Retrieve the plugin's package information.
- PackageInfo pkgInfo;
- try {
- pkgInfo = pm.getPackageInfo(serviceInfo.packageName, 0);
- } catch (NameNotFoundException e) {
- Log.e(LOGTAG, "Can't find plugin: " + serviceInfo.packageName);
- continue;
- }
- if (pkgInfo == null ||
- (pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
- continue;
- }
- Log.i(LOGTAG, "The given plugin package is preloaded: " + serviceInfo.packageName);
-
- String plugin = getPluginDescription(serviceInfo.metaData);
- if (plugin == null) {
- continue;
- }
- if (ret.length() > 0) {
- ret.append(',');
- }
- ret.append(plugin);
- }
- return ret.toString();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698