#include "third_party/blink/renderer/core/workers/shared_worker.h"
#include <optional>
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "third_party/blink/public/common/blob/blob_utils.h"
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
#include "third_party/blink/public/mojom/worker/shared_worker_info.mojom-blink.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_shared_worker_options.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_union_sharedworkeroptions_string.h"
#include "third_party/blink/renderer/core/event_target_names.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/fetch/request.h"
#include "third_party/blink/renderer/core/fileapi/public_url_manager.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/messaging/message_channel.h"
#include "third_party/blink/renderer/core/messaging/message_port.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/core/script/script.h"
#include "third_party/blink/renderer/core/workers/shared_worker_client_holder.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/weborigin/security_origin.h"
namespace blink {
namespace {
void RecordSharedWorkerUsage(LocalDOMWindow* window) { … }
}
SharedWorker::SharedWorker(ExecutionContext* context)
: … { … }
SharedWorker* SharedWorker::Create(
ExecutionContext* context,
const String& url,
const V8UnionSharedWorkerOptionsOrString* name_or_options,
ExceptionState& exception_state) { … }
SharedWorker* SharedWorker::Create(
base::PassKey<StorageAccessHandle>,
ExecutionContext* context,
const String& url,
const V8UnionSharedWorkerOptionsOrString* name_or_options,
ExceptionState& exception_state,
PublicURLManager* public_url_manager,
const HeapMojoRemote<mojom::blink::SharedWorkerConnector>*
connector_override) { … }
SharedWorker* SharedWorker::CreateImpl(
ExecutionContext* context,
const String& url,
const V8UnionSharedWorkerOptionsOrString* name_or_options,
ExceptionState& exception_state,
PublicURLManager* public_url_manager,
const HeapMojoRemote<mojom::blink::SharedWorkerConnector>*
connector_override) { … }
SharedWorker::~SharedWorker() = default;
const AtomicString& SharedWorker::InterfaceName() const { … }
bool SharedWorker::HasPendingActivity() const { … }
void SharedWorker::ContextLifecycleStateChanged(
mojom::FrameLifecycleState state) { … }
void SharedWorker::Trace(Visitor* visitor) const { … }
}