#include "storage/browser/blob/blob_url_store_impl.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/strings/strcat.h"
#include "components/crash/core/common/crash_key.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "net/base/features.h"
#include "storage/browser/blob/blob_impl.h"
#include "storage/browser/blob/blob_url_loader_factory.h"
#include "storage/browser/blob/blob_url_registry.h"
#include "storage/browser/blob/blob_url_utils.h"
#include "storage/browser/blob/features.h"
#include "url/url_util.h"
namespace storage {
class BlobURLTokenImpl : public blink::mojom::BlobURLToken { … };
BlobURLStoreImpl::BlobURLStoreImpl(
const blink::StorageKey& storage_key,
const url::Origin& renderer_origin,
int render_process_host_id,
base::WeakPtr<BlobUrlRegistry> registry,
BlobURLValidityCheckBehavior validity_check_behavior)
: … { … }
BlobURLStoreImpl::~BlobURLStoreImpl() { … }
void BlobURLStoreImpl::Register(
mojo::PendingRemote<blink::mojom::Blob> blob,
const GURL& url,
const base::UnguessableToken& unsafe_agent_cluster_id,
const std::optional<net::SchemefulSite>& unsafe_top_level_site,
RegisterCallback callback) { … }
void BlobURLStoreImpl::Revoke(const GURL& url) { … }
void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
const GURL& url,
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
ResolveAsURLLoaderFactoryCallback callback) { … }
void BlobURLStoreImpl::ResolveForNavigation(
const GURL& url,
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
ResolveForNavigationCallback callback) { … }
bool BlobURLStoreImpl::BlobUrlIsValid(const GURL& url,
const char* method) const { … }
}