| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeServiceTabLauncher.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeServiceTabLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeServiceTabLauncher.java
|
| deleted file mode 100644
|
| index c8f7a54f2defa9c9d5d7dc0d1a89863a3f408e7f..0000000000000000000000000000000000000000
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeServiceTabLauncher.java
|
| +++ /dev/null
|
| @@ -1,109 +0,0 @@
|
| -// 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 org.chromium.chrome.browser;
|
| -
|
| -import android.content.Context;
|
| -import android.content.Intent;
|
| -import android.os.AsyncTask;
|
| -
|
| -import org.chromium.base.CommandLine;
|
| -import org.chromium.base.annotations.UsedByReflection;
|
| -import org.chromium.chrome.browser.tab.Tab;
|
| -import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
|
| -import org.chromium.chrome.browser.tabmodel.document.AsyncTabCreationParams;
|
| -import org.chromium.chrome.browser.tabmodel.document.TabDelegate;
|
| -import org.chromium.chrome.browser.webapps.WebappDataStorage;
|
| -import org.chromium.chrome.browser.webapps.WebappRegistry;
|
| -import org.chromium.chrome.browser.webapps.WebappRegistry.FetchWebappDataStorageCallback;
|
| -import org.chromium.components.service_tab_launcher.ServiceTabLauncher;
|
| -import org.chromium.content_public.browser.LoadUrlParams;
|
| -import org.chromium.content_public.common.Referrer;
|
| -import org.chromium.content_public.common.ResourceRequestBody;
|
| -import org.chromium.ui.base.PageTransition;
|
| -import org.chromium.webapk.lib.client.WebApkNavigationClient;
|
| -import org.chromium.webapk.lib.client.WebApkValidator;
|
| -
|
| -/**
|
| - * Service Tab Launcher implementation for Chrome. Provides the ability for Android Services
|
| - * running in Chrome to launch URLs, without having access to an activity.
|
| - *
|
| - * This class is referred to from the ServiceTabLauncher implementation in Chromium using a
|
| - * meta-data value in the Android manifest file. The ServiceTabLauncher class has more
|
| - * documentation about why this is necessary.
|
| - *
|
| - * URLs within the scope of a recently launched standalone-capable web app on the Android home
|
| - * screen are launched in the standalone web app frame.
|
| - *
|
| - * TODO(peter): after upstreaming, merge this with ServiceTabLauncher and remove reflection calls
|
| - * in ServiceTabLauncher.
|
| - */
|
| -@UsedByReflection("ServiceTabLauncher.java")
|
| -public class ChromeServiceTabLauncher extends ServiceTabLauncher {
|
| - @Override
|
| - @UsedByReflection("ServiceTabLauncher.java")
|
| - public void launchTab(final Context context, final int requestId, final boolean incognito,
|
| - final String url, final int disposition, final String referrerUrl,
|
| - final int referrerPolicy, final String extraHeaders,
|
| - final ResourceRequestBody postData) {
|
| - final TabDelegate tabDelegate = new TabDelegate(incognito);
|
| -
|
| - // 1. Launch WebAPK if one matches the target URL.
|
| - if (CommandLine.getInstance().hasSwitch(ChromeSwitches.ENABLE_WEBAPK)) {
|
| - String webApkPackageName = WebApkValidator.queryWebApkPackage(context, url);
|
| - if (webApkPackageName != null) {
|
| - Intent intent =
|
| - WebApkNavigationClient.createLaunchWebApkIntent(webApkPackageName, url);
|
| - if (intent != null) {
|
| - intent.putExtra(ShortcutHelper.EXTRA_SOURCE, ShortcutSource.NOTIFICATION);
|
| - context.startActivity(intent);
|
| - return;
|
| - }
|
| - }
|
| - }
|
| -
|
| - // 2. Launch WebappActivity if one matches the target URL and was opened recently.
|
| - // Otherwise, open the URL in a tab.
|
| - FetchWebappDataStorageCallback callback = new FetchWebappDataStorageCallback() {
|
| - @Override
|
| - public void onWebappDataStorageRetrieved(final WebappDataStorage storage) {
|
| - // If we do not find a WebappDataStorage corresponding to this URL, or if it hasn't
|
| - // been opened recently enough, open the URL in a tab.
|
| - if (storage == null || !storage.wasLaunchedRecently()) {
|
| - LoadUrlParams loadUrlParams = new LoadUrlParams(url, PageTransition.LINK);
|
| - loadUrlParams.setPostData(postData);
|
| - loadUrlParams.setVerbatimHeaders(extraHeaders);
|
| - loadUrlParams.setReferrer(new Referrer(referrerUrl, referrerPolicy));
|
| -
|
| - AsyncTabCreationParams asyncParams = new AsyncTabCreationParams(loadUrlParams,
|
| - requestId);
|
| - tabDelegate.createNewTab(asyncParams, TabLaunchType.FROM_CHROME_UI,
|
| - Tab.INVALID_TAB_ID);
|
| - } else {
|
| - // The URL is within the scope of a recently launched standalone-capable web app
|
| - // on the home screen, so open it a standalone web app frame. An AsyncTask is
|
| - // used because WebappDataStorage.createWebappLaunchIntent contains a Bitmap
|
| - // decode operation and should not be run on the UI thread.
|
| - //
|
| - // This currently assumes that the only source is notifications; any future use
|
| - // which adds a different source will need to change this.
|
| - new AsyncTask<Void, Void, Intent>() {
|
| - @Override
|
| - protected final Intent doInBackground(Void... nothing) {
|
| - return storage.createWebappLaunchIntent();
|
| - }
|
| -
|
| - @Override
|
| - protected final void onPostExecute(Intent intent) {
|
| - intent.putExtra(ShortcutHelper.EXTRA_SOURCE,
|
| - ShortcutSource.NOTIFICATION);
|
| - tabDelegate.createNewStandaloneFrame(intent);
|
| - }
|
| - }.execute();
|
| - }
|
| - }
|
| - };
|
| - WebappRegistry.getWebappDataStorageForUrl(context, url, callback);
|
| - }
|
| -}
|
|
|