chromium/chrome/browser/preloading/prefetch/chrome_prefetch_manager.cc

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/preloading/prefetch/chrome_prefetch_manager.h"

#include "content/public/common/content_features.h"
#include "third_party/blink/public/mojom/loader/referrer.mojom.h"

#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/flags/android/chrome_feature_list.h"
#endif  // BUILDFLAG(IS_ANDROID)

ChromePrefetchManager::~ChromePrefetchManager() = default;

// static
ChromePrefetchManager* ChromePrefetchManager::GetOrCreateForWebContents(
    content::WebContents* web_contents) {}

#if BUILDFLAG(IS_ANDROID)
void ChromePrefetchManager::StartPrefetchFromCCT(
    const GURL& prefetch_url,
    bool use_prefetch_proxy,
    const std::optional<url::Origin>& referring_origin) {
  CHECK(
      base::FeatureList::IsEnabled(chrome::android::kCCTNavigationalPrefetch));

  // TODO(crbug.com/40288091): Prepare PreloadingPredictor / PreloadingAttempt
  // for CCT prefetches.
  // TODO(crbug.com/40288091): Specify appropriate referrer value that comes
  // from CCT.
  GetWebContents().StartPrefetch(prefetch_url, use_prefetch_proxy,
                                 blink::mojom::Referrer(), referring_origin,
                                 /*attempt=*/nullptr);
}
#endif  // BUILDFLAG(IS_ANDROID)

ChromePrefetchManager::ChromePrefetchManager(content::WebContents* web_contents)
    :{}

WEB_CONTENTS_USER_DATA_KEY_IMPL(ChromePrefetchManager);