123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- "use strict";
- /**
- * Copyright 2022 Google LLC.
- * Copyright (c) Microsoft Corporation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.BrowsingContextStorage = void 0;
- const protocol_js_1 = require("../../../protocol/protocol.js");
- /** Container class for browsing contexts. */
- class BrowsingContextStorage {
- /** Map from context ID to context implementation. */
- #contexts = new Map();
- /** Gets all top-level contexts, i.e. those with no parent. */
- getTopLevelContexts() {
- return this.getAllContexts().filter((context) => context.isTopLevelContext());
- }
- /** Gets all contexts. */
- getAllContexts() {
- return Array.from(this.#contexts.values());
- }
- /** Deletes the context with the given ID. */
- deleteContextById(id) {
- this.#contexts.delete(id);
- }
- /** Deletes the given context. */
- deleteContext(context) {
- this.#contexts.delete(context.id);
- }
- /** Tracks the given context. */
- addContext(context) {
- this.#contexts.set(context.id, context);
- }
- /** Returns true whether there is an existing context with the given ID. */
- hasContext(id) {
- return this.#contexts.has(id);
- }
- /** Gets the context with the given ID, if any. */
- findContext(id) {
- return this.#contexts.get(id);
- }
- /** Returns the top-level context ID of the given context, if any. */
- findTopLevelContextId(id) {
- if (id === null) {
- return null;
- }
- const maybeContext = this.findContext(id);
- const parentId = maybeContext?.parentId ?? null;
- if (parentId === null) {
- return id;
- }
- return this.findTopLevelContextId(parentId);
- }
- /** Gets the context with the given ID, if any, otherwise throws. */
- getContext(id) {
- const result = this.findContext(id);
- if (result === undefined) {
- throw new protocol_js_1.Message.NoSuchFrameException(`Context ${id} not found`);
- }
- return result;
- }
- }
- exports.BrowsingContextStorage = BrowsingContextStorage;
- //# sourceMappingURL=browsingContextStorage.js.map
|