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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java

Issue 2460253002: Update WebAPKs even if the WebAPK start URL has no Web Manifest part 2/3 (Closed)
Patch Set: Merge branch 'master' into update_fail_refactor0 Created 4 years 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: chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java
deleted file mode 100644
index f6f58954ed2c0f81d5d92e9cfe67432854723e25..0000000000000000000000000000000000000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcher.java
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright 2016 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.webapps;
-
-import android.graphics.Bitmap;
-import android.text.TextUtils;
-
-import org.chromium.base.annotations.CalledByNative;
-import org.chromium.chrome.browser.tab.EmptyTabObserver;
-import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.content_public.browser.WebContents;
-
-import java.util.HashMap;
-
-/**
- * Downloads the Web Manifest if the web site still uses the {@link manifestUrl} passed to the
- * constructor.
- */
-public class ManifestUpgradeDetectorFetcher extends EmptyTabObserver {
-
- /**
- * Called once the Web Manifest has been downloaded.
- */
- public interface Callback {
- /**
- * @param fetchedInfo The fetched Web Manifest data.
- * @param bestIconUrl Icon URL in {@link data} which is best suited for use as the launcher
- * icon on this device.
- */
- void onGotManifestData(WebApkInfo fetchedInfo, String bestIconUrl);
- }
-
- /**
- * Pointer to the native side ManifestUpgradeDetectorFetcher. The Java side owns the native side
- * ManifestUpgradeDetectorFetcher.
- */
- private long mNativePointer;
-
- /** The tab that is being observed. */
- private Tab mTab;
-
- /**
- * Web Manifest data at time that the WebAPK was generated.
- */
- private WebApkInfo mOldInfo;
-
- private Callback mCallback;
-
- /**
- * Starts fetching the web manifest resources.
- * @param callback Called once the Web Manifest has been downloaded.
- */
- public boolean start(Tab tab, WebApkInfo oldInfo, Callback callback) {
- if (tab.getWebContents() == null || TextUtils.isEmpty(oldInfo.manifestUrl())) {
- return false;
- }
-
- mTab = tab;
- mOldInfo = oldInfo;
- mNativePointer = nativeInitialize(mOldInfo.scopeUri().toString(), mOldInfo.manifestUrl());
- mCallback = callback;
- mTab.addObserver(this);
- nativeStart(mNativePointer, mTab.getWebContents());
- return true;
- }
-
- /**
- * Puts the object in a state where it is safe to be destroyed.
- */
- public void destroy() {
- mTab.removeObserver(this);
- nativeDestroy(mNativePointer);
- mNativePointer = 0;
- }
-
- @Override
- public void onWebContentsSwapped(Tab tab, boolean didStartLoad,
- boolean didFinishLoad) {
- updatePointers();
- }
-
- @Override
- public void onContentChanged(Tab tab) {
- updatePointers();
- }
-
- /**
- * Updates which WebContents the native ManifestUpgradeDetectorFetcher is monitoring.
- */
- private void updatePointers() {
- nativeReplaceWebContents(mNativePointer, mTab.getWebContents());
- }
-
- /**
- * Called when the updated Web Manifest has been fetched.
- */
- @CalledByNative
- protected void onDataAvailable(String startUrl, String scopeUrl, String name, String shortName,
- String bestIconUrl, String bestIconMurmur2Hash, Bitmap bestIconBitmap,
- String[] iconUrls, int displayMode, int orientation, long themeColor,
- long backgroundColor) {
- HashMap<String, String> iconUrlToMurmur2HashMap = new HashMap<String, String>();
- for (String iconUrl : iconUrls) {
- String murmur2Hash = (iconUrl.equals(bestIconUrl)) ? bestIconMurmur2Hash : null;
- iconUrlToMurmur2HashMap.put(iconUrl, murmur2Hash);
- }
-
- WebApkInfo info = WebApkInfo.create(mOldInfo.id(), startUrl, scopeUrl,
- new WebApkInfo.Icon(bestIconBitmap), name, shortName, displayMode, orientation,
- mOldInfo.source(), themeColor, backgroundColor, mOldInfo.webApkPackageName(),
- mOldInfo.shellApkVersion(), mOldInfo.manifestUrl(), startUrl,
- iconUrlToMurmur2HashMap);
- mCallback.onGotManifestData(info, bestIconUrl);
- }
-
- private native long nativeInitialize(String scope, String webManifestUrl);
- private native void nativeReplaceWebContents(
- long nativeManifestUpgradeDetectorFetcher, WebContents webContents);
- private native void nativeDestroy(long nativeManifestUpgradeDetectorFetcher);
- private native void nativeStart(
- long nativeManifestUpgradeDetectorFetcher, WebContents webContents);
-}

Powered by Google App Engine
This is Rietveld 408576698