chrome-devtools-frontend 1.0.1668390 → 1.0.1669021
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/devtools-ci/SKILL.md +65 -0
- package/.agents/skills/gerrit-cli/SKILL.md +59 -0
- package/.agents/skills/gerrit-cli/references/commands.md +93 -0
- package/.agents/skills/gerrit-cli/references/workflows.md +56 -0
- package/.agents/skills/gerrit-cli/scripts/gerrit_client_wrapper.py +47 -0
- package/.agents/skills/gerrit-cli/scripts/import_upstream.py +230 -0
- package/docs/contributing/infrastructure.md +7 -1
- package/front_end/core/host/AidaClient.ts +66 -47
- package/front_end/core/host/GcaClient.ts +4 -6
- package/front_end/core/host/ResourceLoader.ts +4 -2
- package/front_end/core/root/Runtime.ts +0 -5
- package/front_end/core/sdk/ConsoleModel.ts +3 -2
- package/front_end/core/sdk/DebuggerModel.ts +14 -6
- package/front_end/core/sdk/SDKSettings.ts +19 -0
- package/front_end/core/sdk/sdk-meta.ts +0 -58
- package/front_end/generated/InspectorBackendCommands.ts +2 -2
- package/front_end/generated/protocol.ts +11 -3
- package/front_end/models/ai_assistance/AiUtils.ts +67 -4
- package/front_end/models/ai_assistance/StorageItem.ts +26 -5
- package/front_end/models/ai_code_completion/AiCodeCompletion.ts +2 -19
- package/front_end/models/ai_code_generation/AiCodeGeneration.ts +2 -3
- package/front_end/models/trace/handlers/RendererHandler.ts +20 -4
- package/front_end/models/trace/types/File.ts +1 -0
- package/front_end/models/workspace/UISourceCode.ts +0 -10
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +61 -182
- package/front_end/panels/ai_assistance/components/ChatInput.ts +25 -8
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +13 -69
- package/front_end/panels/ai_assistance/components/ChatView.ts +14 -8
- package/front_end/panels/ai_assistance/components/chatMessage.css +2 -20
- package/front_end/panels/application/ApplicationPanelSidebar.ts +2 -2
- package/front_end/panels/application/ApplicationPanelTreeElement.ts +41 -3
- package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +116 -79
- package/front_end/panels/application/ServiceWorkersView.ts +8 -8
- package/front_end/panels/application/application.ts +2 -0
- package/front_end/panels/application/components/AdsView.ts +10 -6
- package/front_end/panels/application/preloading/PreloadingView.ts +53 -45
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +111 -119
- package/front_end/panels/application/preloading/components/preloadingDetailsReportView.css +21 -23
- package/front_end/panels/application/serviceWorkerUpdateCycleView.css +105 -102
- package/front_end/panels/common/AiCodeCompletionDisclaimer.ts +107 -96
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +17 -19
- package/front_end/panels/common/AiCodeCompletionTeaser.ts +6 -6
- package/front_end/panels/common/AiCodeGenerationTeaser.ts +28 -26
- package/front_end/panels/common/common.ts +1 -1
- package/front_end/panels/console/ConsoleInsightTeaser.ts +3 -6
- package/front_end/panels/console/ConsoleView.ts +6 -4
- package/front_end/panels/console/ConsoleViewMessage.ts +1 -1
- package/front_end/panels/console/console-meta.ts +28 -0
- package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +1 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +3 -2
- package/front_end/panels/emulation/DeviceModeWrapper.ts +18 -4
- package/front_end/panels/explain/components/ConsoleInsight.ts +4 -6
- package/front_end/panels/explain/explain-meta.ts +7 -49
- package/front_end/panels/network/NetworkDataGridNode.ts +1 -1
- package/front_end/panels/network/NetworkLogView.ts +1 -0
- package/front_end/panels/network/OriginalResourceChunkView.ts +340 -0
- package/front_end/panels/network/ResourceChunkView.ts +72 -46
- package/front_end/panels/network/ResourceDirectSocketChunkView.ts +3 -2
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +3 -3
- package/front_end/panels/network/originalResourceChunkView.css +49 -0
- package/front_end/panels/screencast/ScreencastView.ts +401 -260
- package/front_end/panels/screencast/screencastView.css +113 -100
- package/front_end/panels/sensors/LocationsSettingsTab.ts +106 -122
- package/front_end/panels/sensors/locationsSettingsTab.css +4 -4
- package/front_end/panels/settings/AISettingsTab.ts +17 -100
- package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +2 -2
- package/front_end/panels/snippets/SnippetsQuickOpen.ts +4 -4
- package/front_end/panels/sources/AddSourceMapURLDialog.ts +3 -3
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +4 -3
- package/front_end/panels/sources/BreakpointEditDialog.ts +14 -14
- package/front_end/panels/sources/BreakpointsView.ts +14 -14
- package/front_end/panels/sources/CallStackSidebarPane.ts +6 -6
- package/front_end/panels/sources/CategorizedBreakpointL10n.ts +18 -18
- package/front_end/panels/sources/CoveragePlugin.ts +7 -7
- package/front_end/panels/sources/DebuggerPausedMessage.ts +23 -23
- package/front_end/panels/sources/DebuggerPlugin.ts +29 -29
- package/front_end/panels/sources/FilteredUISourceCodeListProvider.ts +2 -2
- package/front_end/panels/sources/GoToLineQuickOpen.ts +10 -10
- package/front_end/panels/sources/NavigatorView.ts +34 -27
- package/front_end/panels/sources/OutlineQuickOpen.ts +3 -3
- package/front_end/panels/sources/PersistenceActions.ts +9 -9
- package/front_end/panels/sources/ProfilePlugin.ts +1 -1
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +5 -5
- package/front_end/panels/sources/SnippetsPlugin.ts +2 -2
- package/front_end/panels/sources/SourcesNavigator.ts +20 -18
- package/front_end/panels/sources/SourcesPanel.ts +26 -25
- package/front_end/panels/sources/SourcesView.ts +5 -6
- package/front_end/panels/sources/TabbedEditorContainer.ts +3 -3
- package/front_end/panels/sources/ThreadsSidebarPane.ts +1 -1
- package/front_end/panels/sources/UISourceCodeFrame.ts +0 -2
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +7 -7
- package/front_end/panels/sources/components/HeadersView.ts +2 -2
- package/front_end/panels/sources/sources-meta.ts +109 -71
- package/front_end/panels/sources/sources.ts +0 -2
- package/front_end/panels/timeline/TimelineHistoryManager.ts +14 -3
- package/front_end/panels/timeline/TimelineLoader.ts +72 -42
- package/front_end/panels/timeline/TimelinePanel.ts +29 -4
- package/front_end/panels/timeline/timelineHistoryManager.css +4 -0
- 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 +187 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +91 -38
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts +145 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.d.ts +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Dialog.d.ts +3 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Dialog.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Dialog.js +8 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Dialog.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.d.ts +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.js +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts +1 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js +0 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.d.ts +0 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.js +12 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.js +4 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js +49 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.d.ts +0 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.js +0 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.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/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/util.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts +0 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js +0 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js.map +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/util/disposable.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/disposable.js +2 -2
- 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 +187 -1
- package/front_end/third_party/puppeteer/package/package.json +5 -5
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +155 -2
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +0 -2
- package/front_end/third_party/puppeteer/package/src/api/Dialog.ts +10 -2
- package/front_end/third_party/puppeteer/package/src/api/JSHandle.ts +0 -2
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +1 -3
- package/front_end/third_party/puppeteer/package/src/api/Realm.ts +0 -1
- package/front_end/third_party/puppeteer/package/src/bidi/BidiOverCdp.ts +4 -2
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +17 -0
- package/front_end/third_party/puppeteer/package/src/bidi/HTTPResponse.ts +5 -4
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +66 -0
- package/front_end/third_party/puppeteer/package/src/common/EventEmitter.ts +0 -6
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/injected/util.ts +4 -1
- package/front_end/third_party/puppeteer/package/src/node/ScreenRecorder.ts +0 -3
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/disposable.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +9 -7
- package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +7 -8
- package/front_end/ui/legacy/Dialog.ts +12 -2
- package/front_end/ui/legacy/TabbedPane.ts +7 -2
- package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +40 -24
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +1 -0
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +8 -4
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +14 -7
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +11 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -0
- package/package.json +1 -1
- package/front_end/panels/sources/AiWarningInfobarPlugin.ts +0 -78
|
@@ -35,8 +35,8 @@ export class TimelineLoader {
|
|
|
35
35
|
#collectedEvents: Trace.Types.Events.Event[] = [];
|
|
36
36
|
#metadata: Trace.Types.File.MetaData|null;
|
|
37
37
|
|
|
38
|
-
#
|
|
39
|
-
#
|
|
38
|
+
#traceLoadedCallback?: (state: LoadingState) => void;
|
|
39
|
+
#traceLoadedPromise: Promise<LoadingState>;
|
|
40
40
|
|
|
41
41
|
constructor(client: Client) {
|
|
42
42
|
this.client = client;
|
|
@@ -45,8 +45,8 @@ export class TimelineLoader {
|
|
|
45
45
|
this.#traceIsCPUProfile = false;
|
|
46
46
|
this.#metadata = null;
|
|
47
47
|
|
|
48
|
-
this.#
|
|
49
|
-
this.#
|
|
48
|
+
this.#traceLoadedPromise = new Promise<LoadingState>(resolve => {
|
|
49
|
+
this.#traceLoadedCallback = resolve;
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -57,11 +57,10 @@ export class TimelineLoader {
|
|
|
57
57
|
client.loadingStarted();
|
|
58
58
|
try {
|
|
59
59
|
loader.#processParsedFile(contents);
|
|
60
|
-
await loader.
|
|
60
|
+
await loader.complete();
|
|
61
61
|
} catch (e: unknown) {
|
|
62
|
-
await loader.close();
|
|
63
62
|
const message = e instanceof Error ? e.message : '';
|
|
64
|
-
|
|
63
|
+
loader.reportErrorAndCancelLoading(i18nString(UIStrings.malformedTimelineDataS, {PH1: message}));
|
|
65
64
|
}
|
|
66
65
|
});
|
|
67
66
|
|
|
@@ -71,7 +70,11 @@ export class TimelineLoader {
|
|
|
71
70
|
static loadFromEvents(events: Trace.Types.Events.Event[], client: Client): TimelineLoader {
|
|
72
71
|
const loader = new TimelineLoader(client);
|
|
73
72
|
window.setTimeout(async () => {
|
|
74
|
-
|
|
73
|
+
try {
|
|
74
|
+
await loader.addEvents(events, null);
|
|
75
|
+
} catch (e: unknown) {
|
|
76
|
+
loader.reportErrorAndCancelLoading(e instanceof Error ? e.message : undefined);
|
|
77
|
+
}
|
|
75
78
|
});
|
|
76
79
|
return loader;
|
|
77
80
|
}
|
|
@@ -79,12 +82,16 @@ export class TimelineLoader {
|
|
|
79
82
|
static loadFromTraceFile(traceFile: Trace.Types.File.TraceFile, client: Client): TimelineLoader {
|
|
80
83
|
const loader = new TimelineLoader(client);
|
|
81
84
|
window.setTimeout(async () => {
|
|
82
|
-
|
|
85
|
+
try {
|
|
86
|
+
await loader.addEvents(traceFile.traceEvents, traceFile.metadata);
|
|
87
|
+
} catch (e: unknown) {
|
|
88
|
+
loader.reportErrorAndCancelLoading(e instanceof Error ? e.message : undefined);
|
|
89
|
+
}
|
|
83
90
|
});
|
|
84
91
|
return loader;
|
|
85
92
|
}
|
|
86
93
|
|
|
87
|
-
static loadFromCpuProfile(profile: Protocol.Profiler.Profile, client: Client): TimelineLoader {
|
|
94
|
+
static loadFromCpuProfile(profile: Protocol.Profiler.Profile, client: Client, title?: string): TimelineLoader {
|
|
88
95
|
const loader = new TimelineLoader(client);
|
|
89
96
|
loader.#traceIsCPUProfile = true;
|
|
90
97
|
|
|
@@ -93,10 +100,15 @@ export class TimelineLoader {
|
|
|
93
100
|
profile, Trace.Types.Events.ThreadID(1));
|
|
94
101
|
|
|
95
102
|
window.setTimeout(async () => {
|
|
96
|
-
|
|
103
|
+
try {
|
|
104
|
+
await loader.addEvents(contents.traceEvents, title ? {title} : null);
|
|
105
|
+
} catch (e: unknown) {
|
|
106
|
+
loader.reportErrorAndCancelLoading(e instanceof Error ? e.message : undefined);
|
|
107
|
+
}
|
|
97
108
|
});
|
|
98
|
-
} catch (e) {
|
|
99
|
-
console.error(e.stack);
|
|
109
|
+
} catch (e: unknown) {
|
|
110
|
+
console.error(e instanceof Error ? e.stack : e);
|
|
111
|
+
loader.reportErrorAndCancelLoading(e instanceof Error ? e.message : undefined);
|
|
100
112
|
}
|
|
101
113
|
return loader;
|
|
102
114
|
}
|
|
@@ -110,9 +122,8 @@ export class TimelineLoader {
|
|
|
110
122
|
Common.Settings.Settings.instance().moduleSetting('network.enable-remote-file-loading').get();
|
|
111
123
|
Host.ResourceLoader.loadAsStream(url, null, stream, finishedCallback, allowRemoteFilePaths);
|
|
112
124
|
|
|
113
|
-
async function finishedCallback(
|
|
114
|
-
|
|
115
|
-
errorDescription: Host.ResourceLoader.LoadErrorDescription): Promise<void> {
|
|
125
|
+
async function finishedCallback(success: boolean, _headers: Record<string, string>,
|
|
126
|
+
errorDescription: Host.ResourceLoader.LoadErrorDescription): Promise<void> {
|
|
116
127
|
if (!success) {
|
|
117
128
|
return loader.reportErrorAndCancelLoading(errorDescription.message);
|
|
118
129
|
}
|
|
@@ -120,9 +131,8 @@ export class TimelineLoader {
|
|
|
120
131
|
const txt = stream.data();
|
|
121
132
|
const trace = JSON.parse(txt);
|
|
122
133
|
loader.#processParsedFile(trace);
|
|
123
|
-
await loader.
|
|
134
|
+
await loader.complete();
|
|
124
135
|
} catch (e: unknown) {
|
|
125
|
-
await loader.close();
|
|
126
136
|
const message = e instanceof Error ? e.message : '';
|
|
127
137
|
return loader.reportErrorAndCancelLoading(i18nString(UIStrings.malformedTimelineDataS, {PH1: message}));
|
|
128
138
|
}
|
|
@@ -166,27 +176,31 @@ export class TimelineLoader {
|
|
|
166
176
|
}
|
|
167
177
|
}
|
|
168
178
|
|
|
169
|
-
async addEvents(events: readonly Trace.Types.Events.Event[],
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
179
|
+
async addEvents(events: readonly Trace.Types.Events.Event[],
|
|
180
|
+
metadata: Trace.Types.File.MetaData|null): Promise<void> {
|
|
181
|
+
try {
|
|
182
|
+
this.#metadata = metadata;
|
|
183
|
+
this.client?.loadingStarted();
|
|
184
|
+
/**
|
|
185
|
+
* See the `eventsPerChunk` comment in `models/trace/types/Configuration.ts`.
|
|
186
|
+
*
|
|
187
|
+
* This value is different though. Why? `The addEvents()` work below is different
|
|
188
|
+
* (and much faster!) than running `handleEvent()` on all handlers.
|
|
189
|
+
*/
|
|
190
|
+
const eventsPerChunk = 150_000;
|
|
191
|
+
for (let i = 0; i < events.length; i += eventsPerChunk) {
|
|
192
|
+
const chunk = events.slice(i, i + eventsPerChunk);
|
|
193
|
+
this.#collectEvents(chunk as unknown as Trace.Types.Events.Event[]);
|
|
194
|
+
this.client?.loadingProgress((i + chunk.length) / events.length);
|
|
195
|
+
await new Promise(r => window.setTimeout(r, 0)); // Yield event loop to paint.
|
|
196
|
+
}
|
|
197
|
+
await this.complete();
|
|
198
|
+
} catch (e: unknown) {
|
|
199
|
+
this.reportErrorAndCancelLoading(e instanceof Error ? e.message : undefined);
|
|
185
200
|
}
|
|
186
|
-
void this.close();
|
|
187
201
|
}
|
|
188
202
|
|
|
189
|
-
async
|
|
203
|
+
async #cleanup(): Promise<void> {
|
|
190
204
|
if (this.client) {
|
|
191
205
|
await this.client.loadingComplete(
|
|
192
206
|
/* collectedEvents */[], /* exclusiveFilter= */ null, /* metadata= */ null);
|
|
@@ -197,19 +211,29 @@ export class TimelineLoader {
|
|
|
197
211
|
}
|
|
198
212
|
}
|
|
199
213
|
|
|
214
|
+
async cancel(): Promise<void> {
|
|
215
|
+
await this.#cleanup();
|
|
216
|
+
this.#traceLoadedCallback?.(LoadingState.CANCELLED);
|
|
217
|
+
}
|
|
218
|
+
|
|
200
219
|
private reportErrorAndCancelLoading(message?: string): void {
|
|
201
220
|
if (message) {
|
|
202
221
|
Common.Console.Console.instance().error(message);
|
|
203
222
|
}
|
|
204
|
-
|
|
223
|
+
this.#traceLoadedCallback?.(LoadingState.ERROR);
|
|
224
|
+
void this.#cleanup();
|
|
205
225
|
}
|
|
206
226
|
|
|
207
|
-
async
|
|
227
|
+
async complete(): Promise<void> {
|
|
208
228
|
if (!this.client) {
|
|
209
229
|
return;
|
|
210
230
|
}
|
|
211
231
|
this.client.processingStarted();
|
|
212
|
-
|
|
232
|
+
try {
|
|
233
|
+
await this.finalizeTrace();
|
|
234
|
+
} catch (e: unknown) {
|
|
235
|
+
this.reportErrorAndCancelLoading(e instanceof Error ? e.message : undefined);
|
|
236
|
+
}
|
|
213
237
|
}
|
|
214
238
|
|
|
215
239
|
private async finalizeTrace(): Promise<void> {
|
|
@@ -218,11 +242,11 @@ export class TimelineLoader {
|
|
|
218
242
|
}
|
|
219
243
|
|
|
220
244
|
await (this.client as Client).loadingComplete(this.#collectedEvents, this.filter, this.#metadata);
|
|
221
|
-
this.#
|
|
245
|
+
this.#traceLoadedCallback?.(LoadingState.SUCCESS);
|
|
222
246
|
}
|
|
223
247
|
|
|
224
|
-
|
|
225
|
-
return this.#
|
|
248
|
+
traceLoaded(): Promise<LoadingState> {
|
|
249
|
+
return this.#traceLoadedPromise;
|
|
226
250
|
}
|
|
227
251
|
|
|
228
252
|
#parseCPUProfileFormatFromFile(parsedTrace: Protocol.Profiler.Profile): void {
|
|
@@ -241,3 +265,9 @@ export class TimelineLoader {
|
|
|
241
265
|
* Used when we parse the input, but do not yet know if it is a raw CPU Profile or a Trace
|
|
242
266
|
**/
|
|
243
267
|
export type ParsedJSONFile = Trace.Types.File.Contents|Protocol.Profiler.Profile;
|
|
268
|
+
|
|
269
|
+
export const enum LoadingState {
|
|
270
|
+
SUCCESS = 'SUCCESS',
|
|
271
|
+
CANCELLED = 'CANCELLED',
|
|
272
|
+
ERROR = 'ERROR',
|
|
273
|
+
}
|
|
@@ -301,6 +301,16 @@ const UIStrings = {
|
|
|
301
301
|
* @description Title of the shortcuts dialog shown to the user that lists keyboard shortcuts.
|
|
302
302
|
*/
|
|
303
303
|
shortcutsDialogTitle: 'Keyboard shortcuts for flamechart',
|
|
304
|
+
/**
|
|
305
|
+
* @description Header for the confirmation dialog asking the user whether
|
|
306
|
+
* to load a CPU profile recorded by console.profile().
|
|
307
|
+
*/
|
|
308
|
+
loadCpuProfileHeader: 'Load CPU profile?',
|
|
309
|
+
/**
|
|
310
|
+
* @description Confirmation message asking the user whether to load a CPU profile recorded by console.profile().
|
|
311
|
+
* @example {Profile 1} PH1
|
|
312
|
+
*/
|
|
313
|
+
loadCpuProfileConfirmation: 'Do you want to load the recorded CPU profile "{PH1}" into the Performance panel?',
|
|
304
314
|
} as const;
|
|
305
315
|
const str_ = i18n.i18n.registerUIStrings('panels/timeline/TimelinePanel.ts', UIStrings);
|
|
306
316
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -1036,12 +1046,12 @@ export class TimelinePanel extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
1036
1046
|
this.#minimapComponent.highlightBounds(bounds, /* withBracket */ false);
|
|
1037
1047
|
}
|
|
1038
1048
|
|
|
1039
|
-
loadFromCpuProfile(profile: Protocol.Profiler.Profile|null): void {
|
|
1049
|
+
loadFromCpuProfile(profile: Protocol.Profiler.Profile|null, title?: string): void {
|
|
1040
1050
|
if (this.state !== State.IDLE || profile === null) {
|
|
1041
1051
|
return;
|
|
1042
1052
|
}
|
|
1043
1053
|
this.prepareToLoadTimeline();
|
|
1044
|
-
this.loader = TimelineLoader.loadFromCpuProfile(profile, this);
|
|
1054
|
+
this.loader = TimelineLoader.loadFromCpuProfile(profile, this, title);
|
|
1045
1055
|
}
|
|
1046
1056
|
|
|
1047
1057
|
private setState(state: State): void {
|
|
@@ -3243,9 +3253,24 @@ export class BottomUpProfileRevealer implements Common.Revealer.Revealer<Utils.H
|
|
|
3243
3253
|
}
|
|
3244
3254
|
|
|
3245
3255
|
export class ProfileFinishedRevealer implements Common.Revealer.Revealer<SDK.CPUProfilerModel.ProfileFinishedData> {
|
|
3256
|
+
static #consoleProfilePromiseChain: Promise<void> = Promise.resolve();
|
|
3257
|
+
|
|
3246
3258
|
async reveal(data: SDK.CPUProfilerModel.ProfileFinishedData): Promise<void> {
|
|
3247
|
-
|
|
3248
|
-
|
|
3259
|
+
const taskPromise = ProfileFinishedRevealer.#consoleProfilePromiseChain.then(async () => {
|
|
3260
|
+
const title = data.title || 'Untitled';
|
|
3261
|
+
const confirmed = await UI.UIUtils.ConfirmDialog.show(
|
|
3262
|
+
i18nString(UIStrings.loadCpuProfileConfirmation, {PH1: title}),
|
|
3263
|
+
i18nString(UIStrings.loadCpuProfileHeader),
|
|
3264
|
+
undefined,
|
|
3265
|
+
{jslogContext: 'load-cpu-profile-confirmation'},
|
|
3266
|
+
);
|
|
3267
|
+
if (confirmed) {
|
|
3268
|
+
await UI.ViewManager.ViewManager.instance().showView('timeline');
|
|
3269
|
+
TimelinePanel.instance().loadFromCpuProfile(data.cpuProfile, title);
|
|
3270
|
+
}
|
|
3271
|
+
});
|
|
3272
|
+
ProfileFinishedRevealer.#consoleProfilePromiseChain = taskPromise.catch(() => {});
|
|
3273
|
+
return await taskPromise;
|
|
3249
3274
|
}
|
|
3250
3275
|
}
|
|
3251
3276
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Name: Dependencies sourced from the upstream `chromium` repository
|
|
2
2
|
URL: Internal
|
|
3
3
|
Version: N/A
|
|
4
|
-
Revision:
|
|
4
|
+
Revision: b7fe14017379ddffae396d944fb8b59a5896c261
|
|
5
5
|
Update Mechanism: Manual (https://crbug.com/428069060)
|
|
6
6
|
License: BSD-3-Clause
|
|
7
7
|
License File: LICENSE
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Name: Puppeteer Core
|
|
2
2
|
Short Name: Puppeteer Core
|
|
3
3
|
URL: https://github.com/puppeteer/puppeteer/tree/main/packages/puppeteer-core
|
|
4
|
-
Version: 25.
|
|
4
|
+
Version: 25.4.0
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
License File: LICENSE
|
|
7
|
-
Revision:
|
|
7
|
+
Revision: f5b96c54c01d4bcbeaa3c603ec5adf6782363b29
|
|
8
8
|
Security Critical: no
|
|
9
9
|
Shipped: yes
|
|
10
10
|
Update Mechanism: Autoroll
|
|
@@ -123,6 +123,11 @@ export declare interface AddScreenParams {
|
|
|
123
123
|
isInternal?: boolean;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
+
/**
|
|
127
|
+
* @public
|
|
128
|
+
*/
|
|
129
|
+
export declare const asyncDisposeSymbol: typeof Symbol.asyncDispose;
|
|
130
|
+
|
|
126
131
|
/**
|
|
127
132
|
* Supported autofill address field names.
|
|
128
133
|
*
|
|
@@ -567,6 +572,55 @@ export declare abstract class Browser extends EventEmitter<BrowserEvents> {
|
|
|
567
572
|
* Uninstalls an extension.
|
|
568
573
|
*/
|
|
569
574
|
abstract uninstallExtension(id: string): Promise<void>;
|
|
575
|
+
/**
|
|
576
|
+
* Installs a Progressive Web App (PWA) and returns its manifest id.
|
|
577
|
+
*
|
|
578
|
+
* @remarks
|
|
579
|
+
*
|
|
580
|
+
* Only available when connected to the browser over a pipe connection. Set
|
|
581
|
+
* `pipe: true` in {@link PuppeteerNode.launch | puppeteer.launch}; the launch
|
|
582
|
+
* option defaults to `false`. The underlying `PWA` CDP domain is not exposed
|
|
583
|
+
* over a WebSocket connection.
|
|
584
|
+
*
|
|
585
|
+
* The returned manifest id echoes {@link InstallPWAOptions.manifestId}, so it
|
|
586
|
+
* can be passed directly to {@link Browser.launchPWA},
|
|
587
|
+
* {@link Browser.getPWAState}, or {@link Browser.uninstallPWA}.
|
|
588
|
+
*/
|
|
589
|
+
abstract installPWA(options: InstallPWAOptions): Promise<string>;
|
|
590
|
+
/**
|
|
591
|
+
* Uninstalls a previously installed Progressive Web App (PWA).
|
|
592
|
+
*
|
|
593
|
+
* @remarks
|
|
594
|
+
*
|
|
595
|
+
* Only available over a pipe connection. See {@link Browser.installPWA}.
|
|
596
|
+
*/
|
|
597
|
+
abstract uninstallPWA(options: UninstallPWAOptions): Promise<void>;
|
|
598
|
+
/**
|
|
599
|
+
* Launches an installed Progressive Web App (PWA) and resolves with the
|
|
600
|
+
* {@link Page | page} backing the app window.
|
|
601
|
+
*
|
|
602
|
+
* @remarks
|
|
603
|
+
*
|
|
604
|
+
* Only available over a pipe connection. See {@link Browser.installPWA}.
|
|
605
|
+
*
|
|
606
|
+
* `PWA.launch` resolves with the id of the launched _tab_ target. Puppeteer
|
|
607
|
+
* does not expose tab targets through {@link Browser.targets}; this method
|
|
608
|
+
* instead resolves with the tab's child page target (the app's web contents).
|
|
609
|
+
* If Chromium focuses an existing app window, this returns that window's
|
|
610
|
+
* existing page.
|
|
611
|
+
*/
|
|
612
|
+
abstract launchPWA(options: LaunchPWAOptions): Promise<Page>;
|
|
613
|
+
/**
|
|
614
|
+
* Returns the OS-integration state of an installed Progressive Web App (PWA),
|
|
615
|
+
* such as its badge count and registered file handlers.
|
|
616
|
+
*
|
|
617
|
+
* @remarks
|
|
618
|
+
*
|
|
619
|
+
* Only available over a pipe connection. See {@link Browser.installPWA}.
|
|
620
|
+
* Meaningful only for an app that is currently installed; querying an
|
|
621
|
+
* unknown manifest id rejects.
|
|
622
|
+
*/
|
|
623
|
+
abstract getPWAState(options: GetPWAStateOptions): Promise<PWAState>;
|
|
570
624
|
/**
|
|
571
625
|
* Gets a list of {@link ScreenInfo | screen information objects}.
|
|
572
626
|
*/
|
|
@@ -591,6 +645,8 @@ export declare abstract class Browser extends EventEmitter<BrowserEvents> {
|
|
|
591
645
|
* Whether Puppeteer is connected to this {@link Browser | browser}.
|
|
592
646
|
*/
|
|
593
647
|
abstract get connected(): boolean;
|
|
648
|
+
[disposeSymbol](): void;
|
|
649
|
+
[asyncDisposeSymbol](): Promise<void>;
|
|
594
650
|
/**
|
|
595
651
|
* Get debug information from Puppeteer.
|
|
596
652
|
*
|
|
@@ -788,6 +844,8 @@ export declare abstract class BrowserContext extends EventEmitter<BrowserContext
|
|
|
788
844
|
* Identifier for this {@link BrowserContext | browser context}.
|
|
789
845
|
*/
|
|
790
846
|
get id(): string | undefined;
|
|
847
|
+
[disposeSymbol](): void;
|
|
848
|
+
[asyncDisposeSymbol](): Promise<void>;
|
|
791
849
|
}
|
|
792
850
|
|
|
793
851
|
/**
|
|
@@ -2067,6 +2125,11 @@ export declare interface DeviceRequestPromptDevice {
|
|
|
2067
2125
|
*/
|
|
2068
2126
|
export declare abstract class Dialog {
|
|
2069
2127
|
|
|
2128
|
+
/**
|
|
2129
|
+
* A boolean value indicating whether the dialog has been handled.
|
|
2130
|
+
*/
|
|
2131
|
+
get handled(): boolean;
|
|
2132
|
+
protected set handled(handled: boolean);
|
|
2070
2133
|
/**
|
|
2071
2134
|
* The type of the dialog.
|
|
2072
2135
|
*/
|
|
@@ -2094,6 +2157,11 @@ export declare abstract class Dialog {
|
|
|
2094
2157
|
dismiss(): Promise<void>;
|
|
2095
2158
|
}
|
|
2096
2159
|
|
|
2160
|
+
/**
|
|
2161
|
+
* @public
|
|
2162
|
+
*/
|
|
2163
|
+
export declare const disposeSymbol: typeof Symbol.dispose;
|
|
2164
|
+
|
|
2097
2165
|
/**
|
|
2098
2166
|
* @public
|
|
2099
2167
|
*/
|
|
@@ -2794,6 +2862,8 @@ export declare class EventEmitter<
|
|
|
2794
2862
|
* @returns `this` to enable you to chain method calls.
|
|
2795
2863
|
*/
|
|
2796
2864
|
removeAllListeners(type?: keyof EventsWithWildcard<Events>): this;
|
|
2865
|
+
[disposeSymbol](): void;
|
|
2866
|
+
[asyncDisposeSymbol](): Promise<void>;
|
|
2797
2867
|
}
|
|
2798
2868
|
|
|
2799
2869
|
/**
|
|
@@ -3731,6 +3801,18 @@ export declare interface GeolocationOptions {
|
|
|
3731
3801
|
accuracy?: number;
|
|
3732
3802
|
}
|
|
3733
3803
|
|
|
3804
|
+
/**
|
|
3805
|
+
* Options for {@link Browser.getPWAState}.
|
|
3806
|
+
*
|
|
3807
|
+
* @public
|
|
3808
|
+
*/
|
|
3809
|
+
export declare interface GetPWAStateOptions {
|
|
3810
|
+
/**
|
|
3811
|
+
* The id from the web app's manifest file.
|
|
3812
|
+
*/
|
|
3813
|
+
manifestId: string;
|
|
3814
|
+
}
|
|
3815
|
+
|
|
3734
3816
|
/**
|
|
3735
3817
|
* @public
|
|
3736
3818
|
*/
|
|
@@ -4157,6 +4239,37 @@ export declare type InnerParams<T extends unknown[]> = {
|
|
|
4157
4239
|
[K in keyof T]: FlattenHandle<T[K]>;
|
|
4158
4240
|
};
|
|
4159
4241
|
|
|
4242
|
+
/**
|
|
4243
|
+
* Options for {@link Browser.installPWA}.
|
|
4244
|
+
*
|
|
4245
|
+
* @public
|
|
4246
|
+
*/
|
|
4247
|
+
export declare interface InstallPWAOptions {
|
|
4248
|
+
/**
|
|
4249
|
+
* The id from the web app's manifest file, commonly the URL of the site
|
|
4250
|
+
* installing the web app. See
|
|
4251
|
+
* {@link https://web.dev/learn/pwa/web-app-manifest | Web app manifest}.
|
|
4252
|
+
*/
|
|
4253
|
+
manifestId: string;
|
|
4254
|
+
/**
|
|
4255
|
+
* The URL used to install the app, or the URL of its signed web bundle.
|
|
4256
|
+
*
|
|
4257
|
+
* This is required because the browser-scoped CDP session has no associated
|
|
4258
|
+
* page from which Chromium could derive an install URL.
|
|
4259
|
+
*/
|
|
4260
|
+
installUrlOrBundleUrl: string;
|
|
4261
|
+
/**
|
|
4262
|
+
* Whether the app should open in a standalone window or a browser tab.
|
|
4263
|
+
*
|
|
4264
|
+
* @remarks
|
|
4265
|
+
*
|
|
4266
|
+
* `PWA.install` alone leaves the app at Chromium's default display mode
|
|
4267
|
+
* (`browser`); setting this chains a `PWA.changeAppUserSettings` call to apply
|
|
4268
|
+
* the preference.
|
|
4269
|
+
*/
|
|
4270
|
+
displayMode?: PWADisplayMode;
|
|
4271
|
+
}
|
|
4272
|
+
|
|
4160
4273
|
/**
|
|
4161
4274
|
* @public
|
|
4162
4275
|
*/
|
|
@@ -4355,6 +4468,8 @@ export declare abstract class JSHandle<T = unknown> {
|
|
|
4355
4468
|
* backing this handle.
|
|
4356
4469
|
*/
|
|
4357
4470
|
abstract remoteObject(): Protocol.Runtime.RemoteObject;
|
|
4471
|
+
[disposeSymbol](): void;
|
|
4472
|
+
[asyncDisposeSymbol](): Promise<void>;
|
|
4358
4473
|
}
|
|
4359
4474
|
|
|
4360
4475
|
/**
|
|
@@ -5100,6 +5215,28 @@ export declare interface LaunchOptions extends ConnectOptions {
|
|
|
5100
5215
|
signal?: AbortSignal;
|
|
5101
5216
|
}
|
|
5102
5217
|
|
|
5218
|
+
/**
|
|
5219
|
+
* Options for {@link Browser.launchPWA}.
|
|
5220
|
+
*
|
|
5221
|
+
* @public
|
|
5222
|
+
*/
|
|
5223
|
+
export declare interface LaunchPWAOptions {
|
|
5224
|
+
/**
|
|
5225
|
+
* The id from the web app's manifest file.
|
|
5226
|
+
*/
|
|
5227
|
+
manifestId: string;
|
|
5228
|
+
/**
|
|
5229
|
+
* An optional URL within the app's scope to launch. Defaults to the app's
|
|
5230
|
+
* start URL.
|
|
5231
|
+
*/
|
|
5232
|
+
url?: string;
|
|
5233
|
+
/**
|
|
5234
|
+
* Maximum time in milliseconds to wait for the app's page target to appear.
|
|
5235
|
+
* Defaults to 30 seconds. Pass `0` to disable the timeout.
|
|
5236
|
+
*/
|
|
5237
|
+
timeout?: number;
|
|
5238
|
+
}
|
|
5239
|
+
|
|
5103
5240
|
/**
|
|
5104
5241
|
* Locators describe a strategy of locating objects and performing an action on
|
|
5105
5242
|
* them. If the action fails because the object is not ready for the action, the
|
|
@@ -5817,7 +5954,7 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
|
|
|
5817
5954
|
abstract get tracing(): Tracing;
|
|
5818
5955
|
/**
|
|
5819
5956
|
* Experimental API for {@link https://github.com/webmachinelearning/webmcp| WebMCP}.
|
|
5820
|
-
* Requires Chrome
|
|
5957
|
+
* Requires Chrome 151+ with the `--enable-features=WebMCP` flag enabled.
|
|
5821
5958
|
*
|
|
5822
5959
|
* @experimental
|
|
5823
5960
|
*/
|
|
@@ -7560,6 +7697,8 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
|
|
|
7560
7697
|
* @experimental
|
|
7561
7698
|
*/
|
|
7562
7699
|
abstract windowId(): Promise<WindowId>;
|
|
7700
|
+
[disposeSymbol](): void;
|
|
7701
|
+
[asyncDisposeSymbol](): Promise<void>;
|
|
7563
7702
|
/**
|
|
7564
7703
|
* Opens DevTools for the this page if not already open and returns the DevTools page.
|
|
7565
7704
|
* This method is only available in Chrome.
|
|
@@ -8188,6 +8327,12 @@ declare namespace Puppeteer_2 {
|
|
|
8188
8327
|
WorkAreaInsets,
|
|
8189
8328
|
AddScreenParams,
|
|
8190
8329
|
ExtensionInstallOptions,
|
|
8330
|
+
PWADisplayMode,
|
|
8331
|
+
InstallPWAOptions,
|
|
8332
|
+
UninstallPWAOptions,
|
|
8333
|
+
LaunchPWAOptions,
|
|
8334
|
+
GetPWAStateOptions,
|
|
8335
|
+
PWAState,
|
|
8191
8336
|
BrowserContextEvents,
|
|
8192
8337
|
CDPEvents,
|
|
8193
8338
|
CDPSessionEvents,
|
|
@@ -8371,6 +8516,8 @@ declare namespace Puppeteer_2 {
|
|
|
8371
8516
|
FileChooser,
|
|
8372
8517
|
Puppeteer,
|
|
8373
8518
|
SecurityDetails,
|
|
8519
|
+
disposeSymbol,
|
|
8520
|
+
asyncDisposeSymbol,
|
|
8374
8521
|
BrowserLauncher,
|
|
8375
8522
|
PuppeteerNode,
|
|
8376
8523
|
ScreenRecorder,
|
|
@@ -8537,6 +8684,31 @@ export declare class PuppeteerNode extends Puppeteer {
|
|
|
8537
8684
|
trimCache(): Promise<void>;
|
|
8538
8685
|
}
|
|
8539
8686
|
|
|
8687
|
+
/**
|
|
8688
|
+
* If the user prefers opening an installed web app in a standalone window or in
|
|
8689
|
+
* a browser tab.
|
|
8690
|
+
*
|
|
8691
|
+
* @public
|
|
8692
|
+
*/
|
|
8693
|
+
export declare type PWADisplayMode = 'standalone' | 'browser';
|
|
8694
|
+
|
|
8695
|
+
/**
|
|
8696
|
+
* The OS-integration state of an installed web app, returned by
|
|
8697
|
+
* {@link Browser.getPWAState}.
|
|
8698
|
+
*
|
|
8699
|
+
* @public
|
|
8700
|
+
*/
|
|
8701
|
+
export declare interface PWAState {
|
|
8702
|
+
/**
|
|
8703
|
+
* The current badge count shown on the app icon.
|
|
8704
|
+
*/
|
|
8705
|
+
badgeCount: number;
|
|
8706
|
+
/**
|
|
8707
|
+
* The file handlers registered by the app with the OS.
|
|
8708
|
+
*/
|
|
8709
|
+
fileHandlers: Protocol.PWA.FileHandler[];
|
|
8710
|
+
}
|
|
8711
|
+
|
|
8540
8712
|
/**
|
|
8541
8713
|
* @public
|
|
8542
8714
|
*/
|
|
@@ -8682,6 +8854,7 @@ export declare abstract class Realm {
|
|
|
8682
8854
|
},
|
|
8683
8855
|
...args: Params
|
|
8684
8856
|
): Promise<HandleFor<Awaited<ReturnType<Func>>>>;
|
|
8857
|
+
[disposeSymbol](): void;
|
|
8685
8858
|
}
|
|
8686
8859
|
|
|
8687
8860
|
/**
|
|
@@ -8865,6 +9038,7 @@ export declare class ScreenRecorder extends PassThrough {
|
|
|
8865
9038
|
* @public
|
|
8866
9039
|
*/
|
|
8867
9040
|
stop(): Promise<void>;
|
|
9041
|
+
[asyncDisposeSymbol](): Promise<void>;
|
|
8868
9042
|
}
|
|
8869
9043
|
|
|
8870
9044
|
/**
|
|
@@ -9338,6 +9512,18 @@ export declare interface TracingOptions {
|
|
|
9338
9512
|
categories?: string[];
|
|
9339
9513
|
}
|
|
9340
9514
|
|
|
9515
|
+
/**
|
|
9516
|
+
* Options for {@link Browser.uninstallPWA}.
|
|
9517
|
+
*
|
|
9518
|
+
* @public
|
|
9519
|
+
*/
|
|
9520
|
+
export declare interface UninstallPWAOptions {
|
|
9521
|
+
/**
|
|
9522
|
+
* The id from the web app's manifest file.
|
|
9523
|
+
*/
|
|
9524
|
+
manifestId: string;
|
|
9525
|
+
}
|
|
9526
|
+
|
|
9341
9527
|
/**
|
|
9342
9528
|
* Puppeteer will throw this error if a method is not
|
|
9343
9529
|
* supported by the currently used protocol
|