// 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.customtabs; import org.chromium.base.ThreadUtils; import org.chromium.base.annotations.JNINamespace; import org.chromium.chrome.browser.profiles.Profile; /** * Interface to the resource prefetch predictor. * * This allows to initiate and abort prefetches of likely subresources, based on * the local browsing history. */ @JNINamespace("predictors") class ResourcePrefetchPredictor { private final Profile mProfile; /** * @param profile The profile used to get the prefetch predictor. */ public ResourcePrefetchPredictor(Profile profile) { mProfile = profile; } /** * Starts a prefetch for a URL. * * @param url The URL to start the prefetch for. * @return false in case the ResourcePrefetchPredictor is not usable. */ public boolean startPrefetching(String url) { ThreadUtils.assertOnUiThread(); return nativeStartPrefetching(mProfile, url); } /** * Stops a prefetch for a URL, if one is in progress. * * @param url The URL to stop the prefetch of. * @return false in case the ResourcePrefetchPredictor is not usable. */ public boolean stopPrefetching(String url) { ThreadUtils.assertOnUiThread(); return nativeStopPrefetching(mProfile, url); } private static native boolean nativeStartPrefetching(Profile profile, String url); private static native boolean nativeStopPrefetching(Profile profile, String url); }