#include "third_party/blink/renderer/core/fileapi/public_url_manager.h"
#include "base/feature_list.h"
#include "base/notreached.h"
#include "base/types/pass_key.h"
#include "base/unguessable_token.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "net/base/features.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
#include "third_party/blink/public/common/blob/blob_utils.h"
#include "third_party/blink/public/mojom/blob/blob_registry.mojom-blink.h"
#include "third_party/blink/public/mojom/blob/blob_url_store.mojom-blink.h"
#include "third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom-blink.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/fileapi/url_registry.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/workers/worker_global_scope.h"
#include "third_party/blink/renderer/core/workers/worklet_global_scope.h"
#include "third_party/blink/renderer/platform/blob/blob_data.h"
#include "third_party/blink/renderer/platform/blob/blob_url.h"
#include "third_party/blink/renderer/platform/blob/blob_url_null_origin_map.h"
#include "third_party/blink/renderer/platform/heap/persistent.h"
#include "third_party/blink/renderer/platform/network/blink_schemeful_site.h"
#include "third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/weborigin/security_origin.h"
#include "third_party/blink/renderer/platform/wtf/casting.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
namespace blink {
namespace {
static void RemoveFromNullOriginMapIfNecessary(const KURL& blob_url) { … }
}
PublicURLManager::PublicURLManager(ExecutionContext* execution_context)
: … { … }
PublicURLManager::PublicURLManager(
base::PassKey<GlobalStorageAccessHandle>,
ExecutionContext* execution_context,
mojo::PendingAssociatedRemote<mojom::blink::BlobURLStore>
frame_url_store_remote)
: … { … }
mojom::blink::BlobURLStore& PublicURLManager::GetBlobURLStore() { … }
String PublicURLManager::RegisterURL(URLRegistrable* registrable) { … }
void PublicURLManager::Revoke(const KURL& url) { … }
void PublicURLManager::Resolve(
const KURL& url,
mojo::PendingReceiver<network::mojom::blink::URLLoaderFactory>
factory_receiver) { … }
void PublicURLManager::Resolve(
const KURL& url,
mojo::PendingReceiver<mojom::blink::BlobURLToken> token_receiver) { … }
void PublicURLManager::ContextDestroyed() { … }
void PublicURLManager::Trace(Visitor* visitor) const { … }
}