chromium/content/browser/renderer_host/navigation_transitions/navigation_entry_screenshot.cc

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

#include "content/browser/renderer_host/navigation_transitions/navigation_entry_screenshot.h"

#include "content/browser/renderer_host/navigation_transitions/navigation_entry_screenshot_cache.h"
#include "content/browser/renderer_host/navigation_transitions/navigation_transition_config.h"

#if BUILDFLAG(IS_ANDROID)
#include "base/functional/callback.h"
#include "base/task/bind_post_task.h"
#include "base/task/thread_pool.h"
#include "ui/android/resources/ui_resource_provider.h"
#endif

namespace content {

#if BUILDFLAG(IS_ANDROID)
namespace {

BASE_FEATURE(kNavigationEntryScreenshotCompression,
             "NavigationEntryScreenshotCompression",
             base::FEATURE_ENABLED_BY_DEFAULT);

static bool g_disable_compression_for_testing = false;

using CompressionDoneCallback = base::OnceCallback<void(sk_sp<SkPixelRef>)>;
void CompressNavigationScreenshotOnWorkerThread(
    SkBitmap bitmap,
    bool supports_etc_non_power_of_two,
    CompressionDoneCallback done_callback) {
  TRACE_EVENT0("navigation", "CompressNavigationScreenshotOnWorkerThread");

  if (auto compressed_bitmap = ui::UIResourceProvider::CompressBitmap(
          bitmap, supports_etc_non_power_of_two)) {
    std::move(done_callback).Run(std::move(compressed_bitmap));
  }
}

}  // namespace
#endif

// static
const void* const NavigationEntryScreenshot::kUserDataKey =;

// static
void NavigationEntryScreenshot::SetDisableCompressionForTesting(bool disable) {}

NavigationEntryScreenshot::NavigationEntryScreenshot(
    const SkBitmap& bitmap,
    int navigation_entry_id,
    bool supports_etc_non_power_of_two)
    :{}

NavigationEntryScreenshot::~NavigationEntryScreenshot() {}

cc::UIResourceBitmap NavigationEntryScreenshot::GetBitmap(cc::UIResourceId uid,
                                                          bool resource_lost) {}

size_t NavigationEntryScreenshot::SetCache(
    NavigationEntryScreenshotCache* cache) {}

SkBitmap NavigationEntryScreenshot::GetBitmapForTesting() const {}

size_t NavigationEntryScreenshot::CompressedSizeForTesting() const {}

void NavigationEntryScreenshot::StartCompression(
    const SkBitmap& bitmap,
    bool supports_etc_non_power_of_two) {}

void NavigationEntryScreenshot::OnCompressionFinished(
    sk_sp<SkPixelRef> compressed_bitmap) {}

const cc::UIResourceBitmap& NavigationEntryScreenshot::GetBitmap() const {}

}  // namespace content