blob: 096389b1d7ceb99dbf4395200fde07e5305b20fa [file] [log] [blame]
Tsuyoshi Horo29323892023-10-26 01:42:391// Copyright 2023 The Chromium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_RENDERER_BACKGROUND_RESOURCE_FETCH_ASSETS_H_
6#define CONTENT_RENDERER_BACKGROUND_RESOURCE_FETCH_ASSETS_H_
7
Tsuyoshi Horo03154e82024-01-15 09:25:588#include <memory>
Tsuyoshi Horo29323892023-10-26 01:42:399
Tsuyoshi Horo03154e82024-01-15 09:25:5810#include "third_party/blink/public/platform/web_background_resource_fetch_assets.h"
Tsuyoshi Horo29323892023-10-26 01:42:3911namespace network {
12class PendingSharedURLLoaderFactory;
13} // namespace network
14
15namespace content {
16
17// An implementation of WebBackgroundResourceFetchAssets.
18class BackgroundResourceFetchAssets
19 : public blink::WebBackgroundResourceFetchAssets {
20 public:
21 BackgroundResourceFetchAssets(
22 std::unique_ptr<network::PendingSharedURLLoaderFactory>
23 pending_loader_factory,
Tsuyoshi Horo03154e82024-01-15 09:25:5824 std::unique_ptr<blink::URLLoaderThrottleProvider> throttle_provider,
25 scoped_refptr<base::SequencedTaskRunner> background_task_runner,
26 const blink::LocalFrameToken& local_frame_token);
Tsuyoshi Horo29323892023-10-26 01:42:3927
28 BackgroundResourceFetchAssets(const BackgroundResourceFetchAssets&) = delete;
29 BackgroundResourceFetchAssets& operator=(
30 const BackgroundResourceFetchAssets&) = delete;
31
32 const scoped_refptr<base::SequencedTaskRunner>& GetTaskRunner() override;
33 scoped_refptr<network::SharedURLLoaderFactory> GetLoaderFactory() override;
Tsuyoshi Horo03154e82024-01-15 09:25:5834 blink::URLLoaderThrottleProvider* GetThrottleProvider() override;
35 const blink::LocalFrameToken& GetLocalFrameToken() override;
Tsuyoshi Horo29323892023-10-26 01:42:3936
37 private:
38 ~BackgroundResourceFetchAssets() override;
39
40 std::unique_ptr<network::PendingSharedURLLoaderFactory>
41 pending_loader_factory_;
42
43 scoped_refptr<network::SharedURLLoaderFactory> loader_factory_;
44
Tsuyoshi Horo03154e82024-01-15 09:25:5845 std::unique_ptr<blink::URLLoaderThrottleProvider> throttle_provider_;
46
Tsuyoshi Horo29323892023-10-26 01:42:3947 scoped_refptr<base::SequencedTaskRunner> background_task_runner_;
Tsuyoshi Horo03154e82024-01-15 09:25:5848
49 const blink::LocalFrameToken local_frame_token_;
Tsuyoshi Horo29323892023-10-26 01:42:3950};
51
52} // namespace content
53
54#endif // CONTENT_RENDERER_BACKGROUND_RESOURCE_FETCH_ASSETS_H_