chrome-devtools-frontend 1.0.1635648 → 1.0.1636056
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/verification/SKILL.md +1 -1
- package/front_end/core/i18n/collect-ui-strings.js +3 -3
- package/front_end/core/root/Runtime.ts +5 -0
- package/front_end/core/sdk/SourceMapCache.ts +13 -11
- package/front_end/core/sdk/SourceMapManager.ts +7 -3
- package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +84 -22
- package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +7 -33
- package/front_end/models/ai_assistance/agents/AiAgent.ts +11 -4
- package/front_end/models/ai_assistance/agents/GreenDevAgent.ts +68 -5
- package/front_end/models/ai_assistance/agents/GreenDevAgentAntigravityCliSocketClient.ts +53 -0
- package/front_end/models/ai_assistance/agents/GreenDevAgentGeminiCliSocketClient.ts +117 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +20 -2
- package/front_end/models/ai_assistance/ai_assistance.ts +4 -0
- package/front_end/models/greendev/Prototypes.ts +17 -5
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +32 -1
- package/front_end/panels/network/NetworkLogView.ts +4 -1
- package/front_end/panels/settings/SettingsScreen.ts +3 -2
- package/front_end/panels/sources/PersistenceActions.ts +21 -7
- package/front_end/panels/timeline/TimelineDetailsView.ts +36 -0
- package/front_end/panels/whats_new/ReleaseNoteText.ts +9 -9
- package/front_end/panels/whats_new/resources/WNDT.md +9 -9
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +8 -5
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +35 -33
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/TargetManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/TargetManager.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/TargetManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts +8 -8
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js +8 -8
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/CustomQuerySelector.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/CustomQuerySelector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/CustomQuerySelector.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/CustomQuerySelector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/injected.d.ts +2 -7
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/PuppeteerNode.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/PuppeteerNode.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/Mutex.d.ts +10 -7
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/Mutex.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/Mutex.js +16 -12
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/Mutex.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +8 -5
- package/front_end/third_party/puppeteer/package/package.json +5 -7
- package/front_end/third_party/puppeteer/package/src/cdp/TargetManager.ts +0 -1
- package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +0 -3
- package/front_end/third_party/puppeteer/package/src/common/Debug.ts +11 -11
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/injected/CustomQuerySelector.ts +3 -2
- package/front_end/third_party/puppeteer/package/src/node/PuppeteerNode.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/Mutex.ts +17 -12
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +7 -0
- package/front_end/ui/legacy/Dialog.ts +1 -0
- package/front_end/ui/legacy/UIUtils.ts +4 -0
- package/front_end/ui/legacy/components/source_frame/FontView.ts +11 -3
- package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
- package/package.json +1 -12
package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/CustomQuerySelector.d.ts
CHANGED
|
@@ -14,8 +14,9 @@ export interface CustomQuerySelector {
|
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* This class mimics the injected {@link CustomQuerySelectorRegistry}.
|
|
17
|
+
*
|
|
17
18
|
*/
|
|
18
|
-
declare class CustomQuerySelectorRegistry {
|
|
19
|
+
export declare class CustomQuerySelectorRegistry {
|
|
19
20
|
#private;
|
|
20
21
|
register(name: string, handler: CustomQueryHandler): void;
|
|
21
22
|
unregister(name: string): void;
|
|
@@ -26,5 +27,4 @@ declare class CustomQuerySelectorRegistry {
|
|
|
26
27
|
* @internal
|
|
27
28
|
*/
|
|
28
29
|
export declare const customQuerySelectors: CustomQuerySelectorRegistry;
|
|
29
|
-
export {};
|
|
30
30
|
//# sourceMappingURL=CustomQuerySelector.d.ts.map
|
package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/CustomQuerySelector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomQuerySelector.d.ts","sourceRoot":"","sources":["../../../src/injected/CustomQuerySelector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAC,SAAS,EAAE,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACpE,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;CACzE;AAED
|
|
1
|
+
{"version":3,"file":"CustomQuerySelector.d.ts","sourceRoot":"","sources":["../../../src/injected/CustomQuerySelector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAC,SAAS,EAAE,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACpE,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;CACzE;AAED;;;GAGG;AACH,qBAAa,2BAA2B;;IAGtC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAyBzD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIlD,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,6BAAoC,CAAC"}
|
package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/CustomQuerySelector.js
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
7
|
* This class mimics the injected {@link CustomQuerySelectorRegistry}.
|
|
8
|
+
*
|
|
8
9
|
*/
|
|
9
|
-
class CustomQuerySelectorRegistry {
|
|
10
|
+
export class CustomQuerySelectorRegistry {
|
|
10
11
|
#selectors = new Map();
|
|
11
12
|
register(name, handler) {
|
|
12
13
|
if (!handler.queryOne && handler.queryAll) {
|
package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/CustomQuerySelector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomQuerySelector.js","sourceRoot":"","sources":["../../../src/injected/CustomQuerySelector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH
|
|
1
|
+
{"version":3,"file":"CustomQuerySelector.js","sourceRoot":"","sources":["../../../src/injected/CustomQuerySelector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH;;;GAGG;AACH,MAAM,OAAO,2BAA2B;IACtC,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEpD,QAAQ,CAAC,IAAY,EAAE,OAA2B;QAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpC,KAAK,MAAM,MAAM,IAAI,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACtD,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjD,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;YACvC,OAAO,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC7C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE;YACxB,aAAa,EAAE,OAAO,CAAC,QAAQ;YAC/B,gBAAgB,EAAE,OAAO,CAAC,QAAS;SACpC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,2BAA2B,EAAE,CAAC"}
|
|
@@ -30,13 +30,8 @@ declare const PuppeteerUtil: Readonly<{
|
|
|
30
30
|
pQuerySelector: (root: Node, selector: string) => Promise<Node | null>;
|
|
31
31
|
pierceQuerySelector: (root: Node, selector: string) => Element | null;
|
|
32
32
|
pierceQuerySelectorAll: (element: Node, selector: string) => Element[];
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
register(name: string, handler: import("../index-browser.js").CustomQueryHandler): void;
|
|
36
|
-
unregister(name: string): void;
|
|
37
|
-
get(name: string): CustomQuerySelectors.CustomQuerySelector | undefined;
|
|
38
|
-
clear(): void;
|
|
39
|
-
};
|
|
33
|
+
CustomQuerySelectorRegistry: typeof CustomQuerySelectors.CustomQuerySelectorRegistry;
|
|
34
|
+
customQuerySelectors: CustomQuerySelectors.CustomQuerySelectorRegistry;
|
|
40
35
|
ariaQuerySelector: (root: Node, selector: string) => Promise<Node | null>;
|
|
41
36
|
ariaQuerySelectorAll: (root: Node, selector: string) => AsyncIterable<Node>;
|
|
42
37
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injected.d.ts","sourceRoot":"","sources":["../../../src/injected/injected.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAK7C,OAAO,KAAK,oBAAoB,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAStD;;GAEG;AACH,QAAA,MAAM,aAAa;;iDAhBqB,GAAG;;;;;;uBAHnC,UAAa,EAAC,gBAAmB;0BAIY,UACrD,EAAC,gBAAmB;4BALI,UAAY,EAAC,gBAElC,EAAC,mBAAkB;;;sBAAV,iBAAmB,EAAC,iBAAoB;2BAEzB,UAAa,EAAC,gBAAmB;;wBA0C4gL,UAAa,EAAC,gBAAmB;qBAAi8B,UAAa,EAAC,gBAAmB;0BA9ChkN,UAAa,EAAC,gBAAmB;6BAqBrC,aAAgB,EAAC,gBACR
|
|
1
|
+
{"version":3,"file":"injected.d.ts","sourceRoot":"","sources":["../../../src/injected/injected.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAK7C,OAAO,KAAK,oBAAoB,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAStD;;GAEG;AACH,QAAA,MAAM,aAAa;;iDAhBqB,GAAG;;;;;;uBAHnC,UAAa,EAAC,gBAAmB;0BAIY,UACrD,EAAC,gBAAmB;4BALI,UAAY,EAAC,gBAElC,EAAC,mBAAkB;;;sBAAV,iBAAmB,EAAC,iBAAoB;2BAEzB,UAAa,EAAC,gBAAmB;;wBA0C4gL,UAAa,EAAC,gBAAmB;qBAAi8B,UAAa,EAAC,gBAAmB;0BA9ChkN,UAAa,EAAC,gBAAmB;6BAqBrC,aAAgB,EAAC,gBACR;;;wBAjB0B,UAAa,EAAC,gBAC9C;2BAOH,UAAa,EAAE,gBACjB;EAqBH,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,aAAa,CAAC;AAEzD;;GAEG;AACH,eAAe,aAAa,CAAC"}
|
|
@@ -14,7 +14,7 @@ import type { ChromeReleaseChannel, LaunchOptions } from './LaunchOptions.js';
|
|
|
14
14
|
* fetching and downloading browsers.
|
|
15
15
|
*
|
|
16
16
|
* If you're using Puppeteer in a Node environment, this is the class you'll get
|
|
17
|
-
* when you run `
|
|
17
|
+
* when you run `import puppeteer from 'puppeteer'`.
|
|
18
18
|
*
|
|
19
19
|
* @remarks
|
|
20
20
|
* The most common method to use is {@link PuppeteerNode.launch | launch}, which
|
|
@@ -13,7 +13,7 @@ import { FirefoxLauncher } from './FirefoxLauncher.js';
|
|
|
13
13
|
* fetching and downloading browsers.
|
|
14
14
|
*
|
|
15
15
|
* If you're using Puppeteer in a Node environment, this is the class you'll get
|
|
16
|
-
* when you run `
|
|
16
|
+
* when you run `import puppeteer from 'puppeteer'`.
|
|
17
17
|
*
|
|
18
18
|
* @remarks
|
|
19
19
|
* The most common method to use is {@link PuppeteerNode.launch | launch}, which
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
export declare const PUPPETEER_REVISIONS: Readonly<{
|
|
10
|
-
chrome: "
|
|
11
|
-
'chrome-headless-shell': "
|
|
12
|
-
firefox: "
|
|
10
|
+
chrome: "149.0.7827.22";
|
|
11
|
+
'chrome-headless-shell': "149.0.7827.22";
|
|
12
|
+
firefox: "stable_151.0";
|
|
13
13
|
}>;
|
|
14
14
|
//# sourceMappingURL=revisions.d.ts.map
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
export const PUPPETEER_REVISIONS = Object.freeze({
|
|
10
|
-
chrome: '
|
|
11
|
-
'chrome-headless-shell': '
|
|
12
|
-
firefox: '
|
|
10
|
+
chrome: '149.0.7827.22',
|
|
11
|
+
'chrome-headless-shell': '149.0.7827.22',
|
|
12
|
+
firefox: 'stable_151.0',
|
|
13
13
|
});
|
|
14
14
|
//# sourceMappingURL=revisions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revisions.js","sourceRoot":"","sources":["../../src/revisions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"revisions.js","sourceRoot":"","sources":["../../src/revisions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,eAAe;IACvB,uBAAuB,EAAE,eAAe;IACxC,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { disposeSymbol } from './disposable.js';
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
declare class MutexGuard {
|
|
6
|
+
#private;
|
|
7
|
+
constructor(mutex: Mutex, onRelease?: () => void);
|
|
8
|
+
[disposeSymbol](): void;
|
|
9
|
+
}
|
|
2
10
|
/**
|
|
3
11
|
* @internal
|
|
4
12
|
*/
|
|
5
13
|
export declare class Mutex {
|
|
6
14
|
#private;
|
|
7
|
-
static Guard:
|
|
8
|
-
new (mutex: Mutex, onRelease?: () => void): {
|
|
9
|
-
"__#200@#mutex": Mutex;
|
|
10
|
-
"__#200@#onRelease"?: () => void;
|
|
11
|
-
[Symbol.dispose](): void;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
15
|
+
static Guard: typeof MutexGuard;
|
|
14
16
|
acquire(onRelease?: () => void): Promise<InstanceType<typeof Mutex.Guard>>;
|
|
15
17
|
release(): void;
|
|
16
18
|
}
|
|
19
|
+
export {};
|
|
17
20
|
//# sourceMappingURL=Mutex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mutex.d.ts","sourceRoot":"","sources":["../../../src/util/Mutex.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"Mutex.d.ts","sourceRoot":"","sources":["../../../src/util/Mutex.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,cAAM,UAAU;;gBAGF,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI;IAIhD,CAAC,aAAa,CAAC,IAAI,IAAI;CAIxB;AAED;;GAEG;AACH,qBAAa,KAAK;;IAChB,MAAM,CAAC,KAAK,oBAAc;IAMpB,OAAO,CACX,SAAS,CAAC,EAAE,MAAM,IAAI,GACrB,OAAO,CAAC,YAAY,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IAW5C,OAAO,IAAI,IAAI;CAQhB"}
|
|
@@ -5,22 +5,26 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Deferred } from './Deferred.js';
|
|
7
7
|
import { disposeSymbol } from './disposable.js';
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
class MutexGuard {
|
|
12
|
+
#mutex;
|
|
13
|
+
#onRelease;
|
|
14
|
+
constructor(mutex, onRelease) {
|
|
15
|
+
this.#mutex = mutex;
|
|
16
|
+
this.#onRelease = onRelease;
|
|
17
|
+
}
|
|
18
|
+
[disposeSymbol]() {
|
|
19
|
+
this.#onRelease?.();
|
|
20
|
+
return this.#mutex.release();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
8
23
|
/**
|
|
9
24
|
* @internal
|
|
10
25
|
*/
|
|
11
26
|
export class Mutex {
|
|
12
|
-
static Guard =
|
|
13
|
-
#mutex;
|
|
14
|
-
#onRelease;
|
|
15
|
-
constructor(mutex, onRelease) {
|
|
16
|
-
this.#mutex = mutex;
|
|
17
|
-
this.#onRelease = onRelease;
|
|
18
|
-
}
|
|
19
|
-
[disposeSymbol]() {
|
|
20
|
-
this.#onRelease?.();
|
|
21
|
-
return this.#mutex.release();
|
|
22
|
-
}
|
|
23
|
-
};
|
|
27
|
+
static Guard = MutexGuard;
|
|
24
28
|
#locked = false;
|
|
25
29
|
#acquirers = [];
|
|
26
30
|
// This is FIFO.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mutex.js","sourceRoot":"","sources":["../../../src/util/Mutex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"Mutex.js","sourceRoot":"","sources":["../../../src/util/Mutex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU;IACd,MAAM,CAAQ;IACd,UAAU,CAAc;IACxB,YAAY,KAAY,EAAE,SAAsB;QAC9C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IACD,CAAC,aAAa,CAAC;QACb,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,KAAK;IAChB,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;IAE1B,OAAO,GAAG,KAAK,CAAC;IAChB,UAAU,GAAsB,EAAE,CAAC;IAEnC,gBAAgB;IAChB,KAAK,CAAC,OAAO,CACX,SAAsB;QAEtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAQ,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC9B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,OAAO;QACT,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC"}
|
|
@@ -1580,7 +1580,7 @@ export declare interface CookieData {
|
|
|
1580
1580
|
/**
|
|
1581
1581
|
* Cookie SameSite type.
|
|
1582
1582
|
*/
|
|
1583
|
-
sameSite?:
|
|
1583
|
+
sameSite?: CookieSameSite_2;
|
|
1584
1584
|
/**
|
|
1585
1585
|
* Cookie expiration date, session cookie if not set
|
|
1586
1586
|
*/
|
|
@@ -1641,7 +1641,7 @@ export declare interface CookieParam {
|
|
|
1641
1641
|
/**
|
|
1642
1642
|
* Cookie SameSite type.
|
|
1643
1643
|
*/
|
|
1644
|
-
sameSite?:
|
|
1644
|
+
sameSite?: CookieSameSite_2;
|
|
1645
1645
|
/**
|
|
1646
1646
|
* Cookie expiration date, session cookie if not set
|
|
1647
1647
|
*/
|
|
@@ -1704,7 +1704,8 @@ export declare type CookiePriority = 'Low' | 'Medium' | 'High';
|
|
|
1704
1704
|
*
|
|
1705
1705
|
* @public
|
|
1706
1706
|
*/
|
|
1707
|
-
|
|
1707
|
+
declare type CookieSameSite_2 = 'Strict' | 'Lax' | 'None' | 'Default';
|
|
1708
|
+
export type {CookieSameSite_2 as CookieSameSite};
|
|
1708
1709
|
|
|
1709
1710
|
/**
|
|
1710
1711
|
* Represents the source scheme of the origin that originally set the cookie. A value of
|
|
@@ -1889,6 +1890,7 @@ declare interface CustomQuerySelector {
|
|
|
1889
1890
|
|
|
1890
1891
|
/**
|
|
1891
1892
|
* This class mimics the injected {@link CustomQuerySelectorRegistry}.
|
|
1893
|
+
*
|
|
1892
1894
|
*/
|
|
1893
1895
|
declare class CustomQuerySelectorRegistry {
|
|
1894
1896
|
#private;
|
|
@@ -1900,6 +1902,7 @@ declare class CustomQuerySelectorRegistry {
|
|
|
1900
1902
|
|
|
1901
1903
|
declare namespace CustomQuerySelectors {
|
|
1902
1904
|
export type {CustomQuerySelector};
|
|
1905
|
+
export {CustomQuerySelectorRegistry};
|
|
1903
1906
|
}
|
|
1904
1907
|
|
|
1905
1908
|
/**
|
|
@@ -8249,7 +8252,7 @@ declare namespace Puppeteer_2 {
|
|
|
8249
8252
|
ConnectOptions,
|
|
8250
8253
|
ConsoleMessageLocation,
|
|
8251
8254
|
ConsoleMessageType,
|
|
8252
|
-
CookieSameSite,
|
|
8255
|
+
CookieSameSite_2 as CookieSameSite,
|
|
8253
8256
|
CookiePriority,
|
|
8254
8257
|
CookieSourceScheme,
|
|
8255
8258
|
CookiePartitionKey,
|
|
@@ -8388,7 +8391,7 @@ export declare type PuppeteerLifeCycleEvent =
|
|
|
8388
8391
|
* fetching and downloading browsers.
|
|
8389
8392
|
*
|
|
8390
8393
|
* If you're using Puppeteer in a Node environment, this is the class you'll get
|
|
8391
|
-
* when you run `
|
|
8394
|
+
* when you run `import puppeteer from 'puppeteer'`.
|
|
8392
8395
|
*
|
|
8393
8396
|
* @remarks
|
|
8394
8397
|
* The most common method to use is {@link PuppeteerNode.launch | launch}, which
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "puppeteer-core",
|
|
3
|
-
"version": "25.0
|
|
3
|
+
"version": "25.1.0",
|
|
4
4
|
"description": "A high-level API to control headless Chrome over the DevTools Protocol",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"puppeteer",
|
|
@@ -148,17 +148,15 @@
|
|
|
148
148
|
"author": "The Chromium Authors",
|
|
149
149
|
"license": "Apache-2.0",
|
|
150
150
|
"dependencies": {
|
|
151
|
-
"@puppeteer/browsers": "3.0.
|
|
151
|
+
"@puppeteer/browsers": "3.0.4",
|
|
152
152
|
"chromium-bidi": "16.0.1",
|
|
153
|
-
"
|
|
154
|
-
"devtools-protocol": "0.0.1608973",
|
|
153
|
+
"devtools-protocol": "0.0.1624250",
|
|
155
154
|
"typed-query-selector": "^2.12.2",
|
|
156
|
-
"webdriver-bidi-protocol": "0.4.
|
|
157
|
-
"ws": "^8.
|
|
155
|
+
"webdriver-bidi-protocol": "0.4.2",
|
|
156
|
+
"ws": "^8.21.0"
|
|
158
157
|
},
|
|
159
158
|
"devDependencies": {
|
|
160
159
|
"@types/chrome": "0.1.40",
|
|
161
|
-
"@types/debug": "4.1.13",
|
|
162
160
|
"@types/node": "^18.17.15",
|
|
163
161
|
"@types/ws": "8.18.1",
|
|
164
162
|
"mitt": "3.0.1",
|
|
@@ -548,7 +548,6 @@ export class TargetManager
|
|
|
548
548
|
}
|
|
549
549
|
|
|
550
550
|
await session.send('Network.emulateNetworkConditionsByRule', {
|
|
551
|
-
// @ts-expect-error offline cannot be undefined before M149.
|
|
552
551
|
offline: this.#blocklist.length > 0 ? true : undefined,
|
|
553
552
|
matchedNetworkConditions,
|
|
554
553
|
});
|
|
@@ -407,7 +407,6 @@ export class WebMCP extends EventEmitter<{
|
|
|
407
407
|
tool: WebMCPTool,
|
|
408
408
|
input: object,
|
|
409
409
|
): Promise<{invocationId: string}> {
|
|
410
|
-
// @ts-expect-error WebMCP is not yet in the Protocol types.
|
|
411
410
|
return await this.#client.send('WebMCP.invokeTool', {
|
|
412
411
|
frameId: tool.frame._id,
|
|
413
412
|
toolName: tool.name,
|
|
@@ -428,7 +427,6 @@ export class WebMCP extends EventEmitter<{
|
|
|
428
427
|
this.#client.on('WebMCP.toolsAdded', this.#onToolsAdded);
|
|
429
428
|
this.#client.on('WebMCP.toolsRemoved', this.#onToolsRemoved);
|
|
430
429
|
this.#client.on('WebMCP.toolInvoked', this.#onToolInvoked);
|
|
431
|
-
// @ts-expect-error M148 has non-final status type, update expected in M149
|
|
432
430
|
this.#client.on('WebMCP.toolResponded', this.#onToolResponded);
|
|
433
431
|
}
|
|
434
432
|
|
|
@@ -439,7 +437,6 @@ export class WebMCP extends EventEmitter<{
|
|
|
439
437
|
this.#client.off('WebMCP.toolsAdded', this.#onToolsAdded);
|
|
440
438
|
this.#client.off('WebMCP.toolsRemoved', this.#onToolsRemoved);
|
|
441
439
|
this.#client.off('WebMCP.toolInvoked', this.#onToolInvoked);
|
|
442
|
-
// @ts-expect-error M148 has non-final status type, update expected in M149
|
|
443
440
|
this.#client.off('WebMCP.toolResponded', this.#onToolResponded);
|
|
444
441
|
this.#client = client;
|
|
445
442
|
this.#bindListeners();
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type
|
|
7
|
+
import type {debuglog} from 'node:util';
|
|
8
8
|
|
|
9
9
|
import {isNode} from '../environment.js';
|
|
10
10
|
|
|
@@ -15,13 +15,13 @@ declare global {
|
|
|
15
15
|
/**
|
|
16
16
|
* @internal
|
|
17
17
|
*/
|
|
18
|
-
let debugModule: typeof
|
|
18
|
+
let debugModule: typeof debuglog | null = null;
|
|
19
19
|
/**
|
|
20
20
|
* @internal
|
|
21
21
|
*/
|
|
22
|
-
export async function importDebug(): Promise<typeof
|
|
22
|
+
export async function importDebug(): Promise<typeof debuglog> {
|
|
23
23
|
if (!debugModule) {
|
|
24
|
-
debugModule = (await import('
|
|
24
|
+
debugModule = (await import('node:util')).debuglog;
|
|
25
25
|
}
|
|
26
26
|
return debugModule;
|
|
27
27
|
}
|
|
@@ -30,16 +30,16 @@ export async function importDebug(): Promise<typeof Debug> {
|
|
|
30
30
|
* A debug function that can be used in any environment.
|
|
31
31
|
*
|
|
32
32
|
* @remarks
|
|
33
|
-
* If used in Node, it falls back to
|
|
34
|
-
* {@link https://
|
|
33
|
+
* If used in Node, it falls back to Node's built-in
|
|
34
|
+
* {@link https://nodejs.org/api/util.html#utildebuglogsection-callback | util.debuglog}. In the browser it
|
|
35
35
|
* uses `console.log`.
|
|
36
36
|
*
|
|
37
|
-
* In Node, use the `
|
|
37
|
+
* In Node, use the `NODE_DEBUG` environment variable to control logging:
|
|
38
38
|
*
|
|
39
39
|
* ```
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
40
|
+
* NODE_DEBUG=* // logs all channels
|
|
41
|
+
* NODE_DEBUG=foo // logs the `foo` channel
|
|
42
|
+
* NODE_DEBUG=foo* // logs any channels starting with `foo`
|
|
43
43
|
* ```
|
|
44
44
|
*
|
|
45
45
|
* In the browser, set `window.__PUPPETEER_DEBUG` to a string:
|
|
@@ -70,7 +70,7 @@ export const debug = (prefix: string): ((...args: unknown[]) => void) => {
|
|
|
70
70
|
if (captureLogs) {
|
|
71
71
|
capturedLogs.push(prefix + logArgs);
|
|
72
72
|
}
|
|
73
|
-
(await importDebug())(prefix)(logArgs);
|
|
73
|
+
((await importDebug())(prefix) as (...args: any[]) => void)(...logArgs);
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
76
|
|
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
|
-
export const source = "\"use strict\";var
|
|
8
|
+
export const source = "\"use strict\";var N=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var r in e)N(t,r,{get:e[r],enumerable:!0})},G=(t,e,r,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let s of B(e))!Y.call(t,s)&&s!==r&&N(t,s,{get:()=>e[s],enumerable:!(o=X(e,s))||o.enumerable});return t};var J=t=>G(N({},\"__esModule\",{value:!0}),t);var pe={};l(pe,{default:()=>he});module.exports=J(pe);var x=class extends Error{constructor(e,r){super(e,r),this.name=this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},p=class extends x{};var c=class t{static create(e){return new t(e)}static async race(e){let r=new Set;try{let o=e.map(s=>s instanceof t?(s.#s&&r.add(s),s.valueOrThrow()):s);return await Promise.race(o)}finally{for(let o of r)o.reject(new Error(\"Timeout cleared\"))}}#e=!1;#r=!1;#o;#t;#a=new Promise(e=>{this.#t=e});#s;#i;constructor(e){e&&e.timeout>0&&(this.#i=new p(e.message),this.#s=setTimeout(()=>{this.reject(this.#i)},e.timeout))}#l(e){clearTimeout(this.#s),this.#o=e,this.#t()}resolve(e){this.#r||this.#e||(this.#e=!0,this.#l(e))}reject(e){this.#r||this.#e||(this.#r=!0,this.#l(e))}resolved(){return this.#e}finished(){return this.#e||this.#r}value(){return this.#o}#n;valueOrThrow(){return this.#n||(this.#n=(async()=>{if(await this.#a,this.#r)throw this.#o;return this.#o})()),this.#n}};var L=new Map,W=t=>{let e=L.get(t);return e||(e=new Function(`return ${t}`)(),L.set(t,e),e)};var E={};l(E,{ariaQuerySelector:()=>z,ariaQuerySelectorAll:()=>b});var z=(t,e)=>globalThis.__ariaQuerySelector(t,e),b=async function*(t,e){yield*await globalThis.__ariaQuerySelectorAll(t,e)};var v={};l(v,{cssQuerySelector:()=>K,cssQuerySelectorAll:()=>Z});var K=(t,e)=>t.querySelector(e),Z=function(t,e){return t.querySelectorAll(e)};var A={};l(A,{CustomQuerySelectorRegistry:()=>y,customQuerySelectors:()=>P});var y=class{#e=new Map;register(e,r){if(!r.queryOne&&r.queryAll){let o=r.queryAll;r.queryOne=(s,i)=>{for(let n of o(s,i))return n;return null}}else if(r.queryOne&&!r.queryAll){let o=r.queryOne;r.queryAll=(s,i)=>{let n=o(s,i);return n?[n]:[]}}else if(!r.queryOne||!r.queryAll)throw new Error(\"At least one query method must be defined.\");this.#e.set(e,{querySelector:r.queryOne,querySelectorAll:r.queryAll})}unregister(e){this.#e.delete(e)}get(e){return this.#e.get(e)}clear(){this.#e.clear()}},P=new y;var R={};l(R,{pierceQuerySelector:()=>ee,pierceQuerySelectorAll:()=>te});var ee=(t,e)=>{let r=null,o=s=>{let i=document.createTreeWalker(s,NodeFilter.SHOW_ELEMENT);do{let n=i.currentNode;n.shadowRoot&&o(n.shadowRoot),!(n instanceof ShadowRoot)&&n!==s&&!r&&n.matches(e)&&(r=n)}while(!r&&i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r},te=(t,e)=>{let r=[],o=s=>{let i=document.createTreeWalker(s,NodeFilter.SHOW_ELEMENT);do{let n=i.currentNode;n.shadowRoot&&o(n.shadowRoot),!(n instanceof ShadowRoot)&&n!==s&&n.matches(e)&&r.push(n)}while(i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r};var u=(t,e)=>{if(!t)throw new Error(e)};var w=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=new MutationObserver(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())}),this.#o.observe(this.#r,{childList:!0,subtree:!0,attributes:!0})}async stop(){u(this.#t,\"Polling never started.\"),this.#t.finished()||this.#t.reject(new Error(\"Polling stopped\")),this.#o&&(this.#o.disconnect(),this.#o=void 0)}result(){return u(this.#t,\"Polling never started.\"),this.#t.valueOrThrow()}},T=class{#e;#r;constructor(e){this.#e=e}async start(){let e=this.#r=c.create(),r=await this.#e();if(r){e.resolve(r);return}let o=async()=>{if(e.finished())return;let s=await this.#e();if(!s){window.requestAnimationFrame(o);return}e.resolve(s),await this.stop()};window.requestAnimationFrame(o)}async stop(){u(this.#r,\"Polling never started.\"),this.#r.finished()||this.#r.reject(new Error(\"Polling stopped\"))}result(){return u(this.#r,\"Polling never started.\"),this.#r.valueOrThrow()}},S=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=setInterval(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())},this.#r)}async stop(){u(this.#t,\"Polling never started.\"),this.#t.finished()||this.#t.reject(new Error(\"Polling stopped\")),this.#o&&(clearInterval(this.#o),this.#o=void 0)}result(){return u(this.#t,\"Polling never started.\"),this.#t.valueOrThrow()}};var _={};l(_,{PCombinator:()=>H,pQuerySelector:()=>fe,pQuerySelectorAll:()=>$});var a=class{static async*map(e,r){for await(let o of e)yield await r(o)}static async*flatMap(e,r){for await(let o of e)yield*r(o)}static async collect(e){let r=[];for await(let o of e)r.push(o);return r}static async first(e){for await(let r of e)return r}};var C={};l(C,{textQuerySelectorAll:()=>m});var re=new Set([\"checkbox\",\"image\",\"radio\"]),oe=t=>t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&!re.has(t.type),se=new Set([\"SCRIPT\",\"STYLE\"]),f=t=>!se.has(t.nodeName)&&!document.head?.contains(t),I=new WeakMap,F=t=>{for(;t;)I.delete(t),t instanceof ShadowRoot?t=t.host:t=t.parentNode},j=new WeakSet,ne=new MutationObserver(t=>{for(let e of t)F(e.target)}),d=t=>{let e=I.get(t);if(e||(e={full:\"\",immediate:[]},!f(t)))return e;let r=\"\";if(oe(t))e.full=t.value,e.immediate.push(t.value),t.addEventListener(\"input\",o=>{F(o.target)},{once:!0,capture:!0});else{for(let o=t.firstChild;o;o=o.nextSibling){if(o.nodeType===Node.TEXT_NODE){e.full+=o.nodeValue??\"\",r+=o.nodeValue??\"\";continue}r&&e.immediate.push(r),r=\"\",o.nodeType===Node.ELEMENT_NODE&&(e.full+=d(o).full)}r&&e.immediate.push(r),t instanceof Element&&t.shadowRoot&&(e.full+=d(t.shadowRoot).full),j.has(t)||(ne.observe(t,{childList:!0,characterData:!0,subtree:!0}),j.add(t))}return I.set(t,e),e};var m=function*(t,e){let r=!1;for(let o of t.childNodes)if(o instanceof Element&&f(o)){let s;o.shadowRoot?s=m(o.shadowRoot,e):s=m(o,e);for(let i of s)yield i,r=!0}r||t instanceof Element&&f(t)&&d(t).full.includes(e)&&(yield t)};var k={};l(k,{checkVisibility:()=>le,pierce:()=>g,pierceAll:()=>O});var ie=[\"hidden\",\"collapse\"],le=(t,e)=>{if(!t)return e===!1;if(e===void 0)return t;let r=t.nodeType===Node.TEXT_NODE?t.parentElement:t,o=window.getComputedStyle(r),s=o&&!ie.includes(o.visibility)&&!ae(r);return e===s?t:!1};function ae(t){let e=t.getBoundingClientRect();return e.width===0||e.height===0}var ce=t=>\"shadowRoot\"in t&&t.shadowRoot instanceof ShadowRoot;function*g(t){ce(t)?yield t.shadowRoot:yield t}function*O(t){t=g(t).next().value,yield t;let e=[document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT)];for(let r of e){let o;for(;o=r.nextNode();)o.shadowRoot&&(yield o.shadowRoot,e.push(document.createTreeWalker(o.shadowRoot,NodeFilter.SHOW_ELEMENT)))}}var D={};l(D,{xpathQuerySelectorAll:()=>q});var q=function*(t,e,r=-1){let s=(t.ownerDocument||document).evaluate(e,t,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE),i=[],n;for(;(n=s.iterateNext())&&(i.push(n),!(r&&i.length===r)););for(let h=0;h<i.length;h++)n=i[h],yield n,i[h]=null};var ue=/[-\\w\\P{ASCII}*]/u,H=(r=>(r.Descendent=\">>>\",r.Child=\">>>>\",r))(H||{}),V=t=>\"querySelectorAll\"in t,Q=class{#e;#r=[];#o=void 0;elements;constructor(e,r){this.elements=[e],this.#e=r,this.#t()}async run(){for(typeof this.#o==\"string\"&&this.#o.trimStart()===\":scope\"&&this.#t();this.#o!==void 0;this.#t()){let e=this.#o;typeof e==\"string\"?e[0]&&ue.test(e[0])?this.elements=a.flatMap(this.elements,async function*(r){V(r)&&(yield*r.querySelectorAll(e))}):this.elements=a.flatMap(this.elements,async function*(r){if(!r.parentElement){if(!V(r))return;yield*r.querySelectorAll(e);return}let o=0;for(let s of r.parentElement.children)if(++o,s===r)break;yield*r.parentElement.querySelectorAll(`:scope>:nth-child(${o})${e}`)}):this.elements=a.flatMap(this.elements,async function*(r){switch(e.name){case\"text\":yield*m(r,e.value);break;case\"xpath\":yield*q(r,e.value);break;case\"aria\":yield*b(r,e.value);break;default:let o=P.get(e.name);if(!o)throw new Error(`Unknown selector type: ${e.name}`);yield*o.querySelectorAll(r,e.value)}})}}#t(){if(this.#r.length!==0){this.#o=this.#r.shift();return}if(this.#e.length===0){this.#o=void 0;return}let e=this.#e.shift();switch(e){case\">>>>\":{this.elements=a.flatMap(this.elements,g),this.#t();break}case\">>>\":{this.elements=a.flatMap(this.elements,O),this.#t();break}default:this.#r=e,this.#t();break}}},M=class{#e=new WeakMap;calculate(e,r=[]){if(e===null)return r;e instanceof ShadowRoot&&(e=e.host);let o=this.#e.get(e);if(o)return[...o,...r];let s=0;for(let n=e.previousSibling;n;n=n.previousSibling)++s;let i=this.calculate(e.parentNode,[s]);return this.#e.set(e,i),[...i,...r]}},U=(t,e)=>{if(t.length+e.length===0)return 0;let[r=-1,...o]=t,[s=-1,...i]=e;return r===s?U(o,i):r<s?-1:1},de=async function*(t){let e=new Set;for await(let o of t)e.add(o);let r=new M;yield*[...e.values()].map(o=>[o,r.calculate(o)]).sort(([,o],[,s])=>U(o,s)).map(([o])=>o)},$=function(t,e){let r=JSON.parse(e);if(r.some(o=>{let s=0;return o.some(i=>(typeof i==\"string\"?++s:s=0,s>1))}))throw new Error(\"Multiple deep combinators found in sequence.\");return de(a.flatMap(r,o=>{let s=new Q(t,o);return s.run(),s.elements}))},fe=async function(t,e){for await(let r of $(t,e))return r;return null};var me=Object.freeze({...E,...A,...R,..._,...C,...k,...D,...v,Deferred:c,createFunction:W,createTextContent:d,IntervalPoller:S,isSuitableNodeForTextMatching:f,MutationPoller:w,RAFPoller:T}),he=me;\n";
|
|
@@ -17,8 +17,9 @@ export interface CustomQuerySelector {
|
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* This class mimics the injected {@link CustomQuerySelectorRegistry}.
|
|
20
|
+
*
|
|
20
21
|
*/
|
|
21
|
-
class CustomQuerySelectorRegistry {
|
|
22
|
+
export class CustomQuerySelectorRegistry {
|
|
22
23
|
#selectors = new Map<string, CustomQuerySelector>();
|
|
23
24
|
|
|
24
25
|
register(name: string, handler: CustomQueryHandler): void {
|
|
@@ -54,7 +55,7 @@ class CustomQuerySelectorRegistry {
|
|
|
54
55
|
return this.#selectors.get(name);
|
|
55
56
|
}
|
|
56
57
|
|
|
57
|
-
clear() {
|
|
58
|
+
clear(): void {
|
|
58
59
|
this.#selectors.clear();
|
|
59
60
|
}
|
|
60
61
|
}
|
|
@@ -29,7 +29,7 @@ import type {ChromeReleaseChannel, LaunchOptions} from './LaunchOptions.js';
|
|
|
29
29
|
* fetching and downloading browsers.
|
|
30
30
|
*
|
|
31
31
|
* If you're using Puppeteer in a Node environment, this is the class you'll get
|
|
32
|
-
* when you run `
|
|
32
|
+
* when you run `import puppeteer from 'puppeteer'`.
|
|
33
33
|
*
|
|
34
34
|
* @remarks
|
|
35
35
|
* The most common method to use is {@link PuppeteerNode.launch | launch}, which
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
10
|
export const PUPPETEER_REVISIONS = Object.freeze({
|
|
11
|
-
chrome: '
|
|
12
|
-
'chrome-headless-shell': '
|
|
13
|
-
firefox: '
|
|
11
|
+
chrome: '149.0.7827.22',
|
|
12
|
+
'chrome-headless-shell': '149.0.7827.22',
|
|
13
|
+
firefox: 'stable_151.0',
|
|
14
14
|
});
|
|
@@ -6,22 +6,27 @@
|
|
|
6
6
|
import {Deferred} from './Deferred.js';
|
|
7
7
|
import {disposeSymbol} from './disposable.js';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
class MutexGuard {
|
|
13
|
+
#mutex: Mutex;
|
|
14
|
+
#onRelease?: () => void;
|
|
15
|
+
constructor(mutex: Mutex, onRelease?: () => void) {
|
|
16
|
+
this.#mutex = mutex;
|
|
17
|
+
this.#onRelease = onRelease;
|
|
18
|
+
}
|
|
19
|
+
[disposeSymbol](): void {
|
|
20
|
+
this.#onRelease?.();
|
|
21
|
+
return this.#mutex.release();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
9
25
|
/**
|
|
10
26
|
* @internal
|
|
11
27
|
*/
|
|
12
28
|
export class Mutex {
|
|
13
|
-
static Guard =
|
|
14
|
-
#mutex: Mutex;
|
|
15
|
-
#onRelease?: () => void;
|
|
16
|
-
constructor(mutex: Mutex, onRelease?: () => void) {
|
|
17
|
-
this.#mutex = mutex;
|
|
18
|
-
this.#onRelease = onRelease;
|
|
19
|
-
}
|
|
20
|
-
[disposeSymbol](): void {
|
|
21
|
-
this.#onRelease?.();
|
|
22
|
-
return this.#mutex.release();
|
|
23
|
-
}
|
|
24
|
-
};
|
|
29
|
+
static Guard = MutexGuard;
|
|
25
30
|
|
|
26
31
|
#locked = false;
|
|
27
32
|
#acquirers: Array<() => void> = [];
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
+
import * as Greendev from '../../../models/greendev/greendev.js';
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* To use links in markdown, add key here with the link and
|
|
7
9
|
* use the added key in markdown.
|
|
@@ -106,6 +108,11 @@ export const getMarkdownLink = (key: string): string => {
|
|
|
106
108
|
}
|
|
107
109
|
const link = markdownLinks.get(key);
|
|
108
110
|
if (!link) {
|
|
111
|
+
if (Greendev.Prototypes.instance().isEnabled('beyondStylingAntigravity') ||
|
|
112
|
+
Greendev.Prototypes.instance().isEnabled('beyondStylingGemini')) {
|
|
113
|
+
return key;
|
|
114
|
+
}
|
|
115
|
+
|
|
109
116
|
throw new Error(`Markdown link with key '${key}' is not available, please check MarkdownLinksMap.ts`);
|
|
110
117
|
}
|
|
111
118
|
return link;
|
|
@@ -130,6 +130,7 @@ export class Dialog extends Common.ObjectWrapper.eventMixin<EventTypes, typeof G
|
|
|
130
130
|
iconName: 'cross',
|
|
131
131
|
accessibleLabel: i18nString(UIStrings.close),
|
|
132
132
|
jslogContext: 'dialog-close',
|
|
133
|
+
title: i18nString(UIStrings.close),
|
|
133
134
|
};
|
|
134
135
|
button.classList.add('dialog-close-button');
|
|
135
136
|
button.addEventListener('click', this.hide.bind(this));
|
|
@@ -382,6 +382,10 @@ export function markBeingEdited(element: Element, value: boolean): boolean {
|
|
|
382
382
|
return true;
|
|
383
383
|
}
|
|
384
384
|
|
|
385
|
+
export function resetElementsBeingEditedForTest(): void {
|
|
386
|
+
elementsBeingEdited.clear();
|
|
387
|
+
}
|
|
388
|
+
|
|
385
389
|
const elementsBeingEdited = new Set<Element>();
|
|
386
390
|
|
|
387
391
|
// Avoids Infinity, NaN, and scientific notation (e.g. 1e20), see crbug.com/81165.
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
*/
|
|
32
32
|
|
|
33
33
|
import * as i18n from '../../../../core/i18n/i18n.js';
|
|
34
|
-
import * as Platform from '../../../../core/platform/platform.js';
|
|
34
|
+
import type * as Platform from '../../../../core/platform/platform.js';
|
|
35
35
|
import * as TextUtils from '../../../../models/text_utils/text_utils.js';
|
|
36
36
|
import {Directives, html, render} from '../../../lit/lit.js';
|
|
37
37
|
import * as VisualLogging from '../../../visual_logging/visual_logging.js';
|
|
@@ -133,8 +133,16 @@ export class FontView extends UI.View.SimpleView {
|
|
|
133
133
|
this.#fontFamily = `WebInspectorFontPreview${++fontId}`;
|
|
134
134
|
void this.contentProvider.requestContentData().then(contentData => {
|
|
135
135
|
const url = TextUtils.ContentData.ContentData.isError(contentData) ? this.url : contentData.asDataUrl();
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
if (url) {
|
|
137
|
+
const sheet = new CSSStyleSheet();
|
|
138
|
+
sheet.insertRule('@font-face {}');
|
|
139
|
+
const rule = sheet.cssRules[0] as CSSFontFaceRule;
|
|
140
|
+
rule.style.setProperty('font-family', this.#fontFamily);
|
|
141
|
+
rule.style.setProperty('src', `url(${JSON.stringify(url)})`);
|
|
142
|
+
this.#fontFaceRule = rule.cssText;
|
|
143
|
+
} else {
|
|
144
|
+
this.#fontFaceRule = '';
|
|
145
|
+
}
|
|
138
146
|
this.#previewVisible = true;
|
|
139
147
|
this.requestUpdate();
|
|
140
148
|
});
|