blob: a98a8ea74964303ec4a2743f00705da173376633 [file] [log] [blame]
// 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.
#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_BACKGROUND_RESOURCE_FETCH_ASSETS_H_
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_BACKGROUND_RESOURCE_FETCH_ASSETS_H_
#include "base/memory/ref_counted.h"
#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/platform/url_loader_throttle_provider.h"
#include "third_party/blink/public/platform/web_common.h"
namespace base {
class SequencedTaskRunner;
} // namespace base
namespace network {
class SharedURLLoaderFactory;
} // namespace network
namespace blink {
// WebBackgroundResourceFetchAssets is created on the main thread and used to
// get the SharedURLLoaderFactory from the background thread. Used only when
// BackgroundResourceFetch feature is enabled.
class BLINK_PLATFORM_EXPORT WebBackgroundResourceFetchAssets
: public base::RefCountedThreadSafe<WebBackgroundResourceFetchAssets> {
public:
// Returns the task runner used to fetch resources on the background thread.
virtual const scoped_refptr<base::SequencedTaskRunner>& GetTaskRunner() = 0;
// Returns a SharedURLLoaderFactory for resource fetching. Must be called on
// the background thread.
virtual scoped_refptr<network::SharedURLLoaderFactory> GetLoaderFactory() = 0;
virtual URLLoaderThrottleProvider* GetThrottleProvider() = 0;
virtual const blink::LocalFrameToken& GetLocalFrameToken() = 0;
protected:
friend class base::RefCountedThreadSafe<WebBackgroundResourceFetchAssets>;
virtual ~WebBackgroundResourceFetchAssets() = default;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_BACKGROUND_RESOURCE_FETCH_ASSETS_H_