chrome-devtools-frontend 1.0.1690116 → 1.0.1695017
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-model-management/SKILL.md +3 -3
- package/.agents/skills/foundation-test-migration/SKILL.md +2 -2
- package/.agents/skills/merging-devtools-module/SKILL.md +5 -5
- package/AUTHORS +3 -0
- package/config/typescript/tsconfig.base.json +1 -0
- package/docs/get_the_code.md +4 -9
- package/front_end/Images/src/comment-mode-cursor.svg +23 -0
- package/front_end/Tests.js +1 -1
- package/front_end/application_tokens.css +5 -0
- package/front_end/core/common/ColorConverter.ts +3 -3
- package/front_end/core/host/UserMetrics.ts +27 -0
- package/front_end/core/protocol_client/DevToolsCDPConnection.ts +0 -46
- package/front_end/core/protocol_client/InspectorBackend.ts +6 -6
- package/front_end/core/root/Runtime.ts +1 -0
- package/front_end/core/sdk/CSSLocation.ts +32 -0
- package/front_end/core/sdk/CSSModel.ts +2 -22
- package/front_end/core/sdk/CSSQuery.ts +2 -1
- package/front_end/core/sdk/CSSRule.ts +29 -0
- package/front_end/core/sdk/DebuggerModel.ts +5 -1
- package/front_end/core/sdk/NetworkManager.ts +2 -0
- package/front_end/core/sdk/NetworkRequest.ts +63 -4
- package/front_end/core/sdk/NetworkRequestAccess.ts +191 -0
- package/front_end/core/sdk/ResourceTreeModel.ts +72 -23
- package/front_end/core/sdk/SecurityOrigin.ts +97 -12
- package/front_end/core/sdk/Target.ts +18 -0
- package/front_end/core/sdk/sdk.ts +4 -0
- package/front_end/entrypoints/main/MainImpl.ts +8 -1
- package/front_end/foundation/Universe.ts +14 -11
- package/front_end/generated/Deprecation.ts +8 -0
- package/front_end/generated/InspectorBackendCommands.ts +9 -8
- package/front_end/generated/SupportedCSSProperties.ts +14 -4
- package/front_end/generated/protocol.ts +24 -0
- package/front_end/models/ai_assistance/AiAgent2.ts +46 -10
- package/front_end/models/ai_assistance/AiConversation.ts +35 -24
- package/front_end/models/ai_assistance/README.md +5 -3
- package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +1 -0
- package/front_end/models/ai_assistance/agents/AiAgent.ts +28 -34
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +13 -17
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +5 -3
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +16 -10
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +3 -4
- package/front_end/models/ai_assistance/ai_assistance.ts +0 -2
- package/front_end/models/ai_assistance/contexts/AccessibilityContext.ts +11 -2
- package/front_end/models/ai_assistance/contexts/DOMNodeContext.ts +17 -5
- package/front_end/models/ai_assistance/contexts/FileContext.ts +13 -6
- package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +52 -25
- package/front_end/models/ai_assistance/contexts/RequestContext.ts +18 -34
- package/front_end/models/ai_assistance/contexts/StorageContext.ts +14 -3
- package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +2 -5
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +135 -58
- package/front_end/models/ai_assistance/tools/CookieUtils.ts +25 -35
- package/front_end/models/ai_assistance/tools/DOMStorageUtils.ts +6 -3
- package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +9 -2
- package/front_end/models/ai_assistance/tools/GetCookieValues.ts +1 -1
- package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +3 -2
- package/front_end/models/ai_assistance/tools/GetFunctionCode.ts +3 -5
- package/front_end/models/ai_assistance/tools/GetInsightDetails.ts +1 -1
- package/front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts +8 -11
- package/front_end/models/ai_assistance/tools/GetResourceContent.ts +2 -4
- package/front_end/models/ai_assistance/tools/GetSourceContent.ts +6 -13
- package/front_end/models/ai_assistance/tools/GetStorageBreakdown.ts +1 -1
- package/front_end/models/ai_assistance/tools/GetStorageValues.ts +9 -9
- package/front_end/models/ai_assistance/tools/GetStyles.ts +3 -2
- package/front_end/models/ai_assistance/tools/ListCookies.ts +1 -1
- package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +6 -14
- package/front_end/models/ai_assistance/tools/ListPageOrigins.ts +10 -15
- package/front_end/models/ai_assistance/tools/ListSources.ts +5 -7
- package/front_end/models/ai_assistance/tools/ListStorageKeys.ts +9 -9
- package/front_end/models/ai_assistance/tools/README.md +4 -2
- package/front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts +3 -2
- package/front_end/models/ai_assistance/tools/Tool.ts +27 -3
- package/front_end/models/comment_manager/CD4ABridge.ts +128 -0
- package/front_end/models/comment_manager/CommentManager.ts +50 -8
- package/front_end/models/comment_manager/comment_manager.ts +2 -0
- package/front_end/models/emulation/DeviceModeModel.ts +37 -47
- package/front_end/models/javascript_metadata/NativeFunctions.ts +9 -1
- package/front_end/models/live-metrics/web-vitals-injected/README.md +1 -1
- package/front_end/models/source_map_scopes/NamesResolver.ts +9 -7
- package/front_end/models/trace/ModelImpl.ts +2 -0
- package/front_end/models/trace/Processor.ts +6 -4
- package/front_end/models/trace/handlers/LayerTreeHandler.ts +3 -3
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -1
- package/front_end/models/trace/helpers/SyntheticEvents.ts +23 -1
- package/front_end/models/trace/types/Configuration.ts +7 -0
- package/front_end/models/trace/types/TraceEvents.ts +20 -4
- package/front_end/panels/accessibility/ARIAAttributesView.ts +3 -0
- package/front_end/panels/accessibility/AccessibilityAnnouncementRecordingListView.ts +177 -0
- package/front_end/panels/accessibility/accessibility.ts +2 -0
- package/front_end/panels/accessibility/accessibilityAnnouncementRecordingListView.css +33 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +25 -15
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +6 -35
- package/front_end/panels/ai_assistance/components/DisabledWidget.ts +4 -3
- package/front_end/panels/ai_assistance/components/chatMessage.css +3 -1
- package/front_end/panels/animation/AnimationTimeline.ts +1 -0
- package/front_end/panels/application/CrashReportContextView.ts +0 -1
- package/front_end/panels/application/FrameDetailsView.ts +5 -4
- package/front_end/panels/application/IndexedDBViews.ts +4 -4
- package/front_end/panels/application/components/BackForwardCacheView.ts +1 -1
- package/front_end/panels/application/components/EndpointsGrid.ts +2 -1
- package/front_end/panels/application/components/PermissionsPolicySection.ts +1 -1
- package/front_end/panels/application/components/ServiceWorkerRouterView.ts +1 -1
- package/front_end/panels/application/components/TrustTokensView.ts +1 -1
- package/front_end/panels/application/indexedDBViews.css +0 -14
- package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +2 -1
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +2 -1
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +1 -1
- package/front_end/panels/common/CPUThrottlingOption.ts +12 -6
- package/front_end/panels/common/DOMLinkifier.ts +1 -1
- package/front_end/panels/common/ExtensionView.ts +2 -1
- package/front_end/panels/console/ConsoleContextSelector.ts +12 -5
- package/front_end/panels/console/ConsolePinPane.ts +4 -2
- package/front_end/panels/console/ConsoleSidebar.ts +6 -2
- package/front_end/panels/console/ConsoleViewMessage.ts +12 -8
- package/front_end/panels/console/PromptBuilder.ts +1 -1
- package/front_end/panels/coverage/CoverageListView.ts +1 -1
- package/front_end/panels/coverage/CoverageModel.ts +6 -4
- package/front_end/panels/coverage/coverageView.css +8 -8
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +13 -14
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +3 -3
- package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +2 -2
- package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +3 -3
- package/front_end/panels/css_overview/CSSOverviewStartView.ts +3 -3
- package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
- package/front_end/panels/developer_resources/developerResourcesView.css +3 -3
- package/front_end/panels/elements/ComputedStyleWidget.ts +1 -1
- package/front_end/panels/elements/ElementsTreeElement.ts +43 -15
- package/front_end/panels/elements/ElementsTreeOutline.ts +185 -109
- package/front_end/panels/elements/MetricsSidebarPane.ts +1 -1
- package/front_end/panels/elements/PropertyNameCategories.ts +1 -1
- package/front_end/panels/elements/ShortcutTreeElement.ts +6 -1
- package/front_end/panels/elements/StandaloneStylesContainer.ts +1 -1
- package/front_end/panels/elements/StylePropertiesSection.ts +2 -35
- package/front_end/panels/elements/StylesSidebarPane.ts +3 -2
- package/front_end/panels/elements/components/CSSPropertyIconResolver.ts +5 -4
- package/front_end/panels/elements/components/StylePropertyEditor.ts +161 -148
- package/front_end/panels/elements/components/computedStyleProperty.css +5 -5
- package/front_end/panels/elements/components/computedStyleTrace.css +5 -5
- package/front_end/panels/elements/components/cssHintDetailsView.css +1 -1
- package/front_end/panels/elements/components/cssPropertyDocsView.css +3 -3
- package/front_end/panels/elements/components/cssVariableValueView.css +4 -4
- package/front_end/panels/elements/components/elementsBreadcrumbs.css +3 -3
- package/front_end/panels/elements/components/elementsTreeExpandButton.css +5 -5
- package/front_end/panels/elements/components/queryContainer.css +2 -2
- package/front_end/panels/elements/elementsTreeOutline.css +20 -4
- package/front_end/panels/emulation/MediaQueryInspector.ts +2 -1
- package/front_end/panels/event_listeners/eventListenersView.css +1 -1
- package/front_end/panels/issues/AffectedElementsView.ts +3 -0
- package/front_end/panels/issues/AffectedLazyLoadImagesView.ts +1 -1
- package/front_end/panels/issues/issues.ts +2 -0
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +12 -10
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +1 -0
- package/front_end/panels/layer_viewer/Layers3DView.ts +13 -11
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspectorUtils.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/linearMemoryHighlightChipList.css +11 -11
- package/front_end/panels/linear_memory_inspector/components/linearMemoryInspector.css +2 -2
- package/front_end/panels/linear_memory_inspector/components/linearMemoryNavigator.css +1 -1
- package/front_end/panels/linear_memory_inspector/components/linearMemoryValueInterpreter.css +5 -5
- package/front_end/panels/linear_memory_inspector/components/linearMemoryViewer.css +6 -6
- package/front_end/panels/linear_memory_inspector/components/valueInterpreterDisplay.css +6 -6
- package/front_end/panels/linear_memory_inspector/components/valueInterpreterSettings.css +2 -2
- package/front_end/panels/media/PlayerPropertiesView.ts +1 -1
- package/front_end/panels/media/TickingFlameChart.ts +3 -2
- package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +2 -1
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +1 -1
- package/front_end/panels/mobile_throttling/ThrottlingPresets.ts +2 -1
- package/front_end/panels/network/NetworkDataGridNode.ts +11 -9
- package/front_end/panels/network/NetworkLogView.ts +4 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +5 -2
- package/front_end/panels/network/RequestConditionsDrawer.ts +2 -2
- package/front_end/panels/network/RequestHeadersView.ts +47 -11
- package/front_end/panels/network/RequestPayloadView.ts +1 -1
- package/front_end/panels/network/RequestResponseView.ts +1 -1
- package/front_end/panels/network/RequestTimingView.ts +1 -1
- package/front_end/panels/network/ShowMoreDetailsWidget.ts +1 -1
- package/front_end/panels/network/components/RequestHeadersView.css +12 -0
- package/front_end/panels/network/components/ResponseHeaderSection.ts +1 -1
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +3 -3
- package/front_end/panels/profiler/HeapProfileView.ts +1 -1
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +1 -1
- package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +3 -3
- package/front_end/panels/recorder/RecordingListView.ts +0 -6
- package/front_end/panels/recorder/RecordingView.ts +0 -6
- package/front_end/panels/recorder/controlButton.css +10 -10
- package/front_end/panels/recorder/startView.css +1 -1
- package/front_end/panels/screencast/ScreencastView.ts +4 -2
- package/front_end/panels/search/SearchView.ts +1 -1
- package/front_end/panels/security/SecurityPanel.ts +46 -35
- package/front_end/panels/sources/BreakpointEditDialog.ts +1 -1
- package/front_end/panels/sources/CallStackSidebarPane.ts +1 -1
- package/front_end/panels/sources/DebuggerPausedMessage.ts +8 -6
- package/front_end/panels/sources/ProfilePlugin.ts +2 -1
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +1 -1
- package/front_end/panels/timeline/IsolateSelector.ts +1 -1
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +1 -1
- package/front_end/panels/timeline/NetworkTrackAppender.ts +1 -1
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +1 -1
- package/front_end/panels/timeline/TimelineFlameChartView.ts +0 -32
- package/front_end/panels/timeline/TimelineHistoryManager.ts +1 -1
- package/front_end/panels/timeline/TimelinePaintProfilerView.ts +7 -3
- package/front_end/panels/timeline/TimelinePanel.ts +3 -20
- package/front_end/panels/timeline/TimelineTreeView.ts +1 -1
- package/front_end/panels/timeline/TimelineUIUtils.ts +4 -4
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +4 -3
- package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +25 -24
- package/front_end/panels/timeline/components/RelatedInsightChips.ts +4 -3
- package/front_end/panels/timeline/components/Sidebar.ts +1 -1
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +4 -3
- package/front_end/panels/timeline/components/cwvMetrics.css +2 -2
- package/front_end/panels/timeline/components/insights/checklist.css +1 -1
- package/front_end/panels/timeline/components/insights/table.css +3 -3
- package/front_end/panels/timeline/overlays/components/entriesLinkOverlay.css +4 -4
- package/front_end/panels/timeline/overlays/components/entryLabelOverlay.css +4 -4
- package/front_end/panels/timeline/overlays/components/timeRangeOverlay.css +2 -2
- package/front_end/panels/timeline/overlays/components/timespanBreakdownOverlay.css +4 -4
- package/front_end/panels/timeline/timelinePanel.css +0 -74
- package/front_end/panels/timeline/utils/Helpers.ts +1 -1
- package/front_end/panels/timeline/utils/ImageCache.ts +5 -3
- package/front_end/panels/web_audio/WebAudioView.ts +3 -3
- package/front_end/panels/web_audio/webAudio.css +5 -5
- package/front_end/panels/webauthn/WebauthnPane.ts +5 -11
- package/front_end/third_party/acorn/acorn.ts +3 -3
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/chromium/ahem/ahem.d.ts +1 -0
- package/front_end/third_party/csp_evaluator/package/csp.ts +4 -4
- package/front_end/third_party/csp_evaluator/package/parser.ts +3 -1
- package/front_end/third_party/csp_evaluator/package/tsconfig.json +1 -0
- package/front_end/third_party/csp_evaluator/package/utils.ts +1 -1
- package/front_end/third_party/diff/DiffWrapper.ts +1 -8
- package/front_end/third_party/diff/diff_match_patch.d.ts +10 -0
- package/front_end/third_party/json5/json5.ts +2 -2
- 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 +183 -4
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +708 -122
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts +85 -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 +84 -11
- 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/ScreenRecording.d.ts +75 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ScreenRecording.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ScreenRecording.js +102 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ScreenRecording.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/api.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/api.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/api.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/api.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.d.ts +6 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ScreenRecording.d.ts +31 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ScreenRecording.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ScreenRecording.js +138 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ScreenRecording.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/bidi.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/bidi.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/bidi.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/bidi.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.d.ts +6 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.js +23 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.d.ts +6 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ScreenRecording.d.ts +31 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ScreenRecording.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ScreenRecording.js +131 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ScreenRecording.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/cdp.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/cdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/cdp.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/cdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js +7 -4
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.d.ts +4 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.js +5 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts +42 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Device.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Device.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Device.js +265 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Device.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js +24 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.d.ts +23 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.js +49 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.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/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +183 -4
- package/front_end/third_party/puppeteer/package/package.json +4 -4
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +143 -11
- package/front_end/third_party/puppeteer/package/src/api/ScreenRecording.ts +145 -0
- package/front_end/third_party/puppeteer/package/src/api/api.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +11 -0
- package/front_end/third_party/puppeteer/package/src/bidi/ScreenRecording.ts +106 -0
- package/front_end/third_party/puppeteer/package/src/bidi/bidi.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +41 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +11 -0
- package/front_end/third_party/puppeteer/package/src/cdp/ScreenRecording.ts +101 -0
- package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +17 -9
- package/front_end/third_party/puppeteer/package/src/common/BrowserWebSocketTransport.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +46 -0
- package/front_end/third_party/puppeteer/package/src/common/Device.ts +287 -1
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +30 -1
- package/front_end/third_party/puppeteer/package/src/node/NodeWebSocketTransport.ts +73 -2
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +3 -0
- package/front_end/tsconfig.json +1 -2
- package/front_end/ui/comments/CommentAnchorResolver.ts +8 -3
- package/front_end/ui/comments/CommentOverlayManager.ts +53 -12
- package/front_end/ui/comments/CommentsOverlayWidget.ts +3 -3
- package/front_end/ui/comments/CommentsStatusBarPill.ts +96 -0
- package/front_end/ui/comments/comments-meta.ts +21 -0
- package/front_end/ui/comments/comments.ts +2 -0
- package/front_end/ui/comments/commentsOverlay.css +22 -3
- package/front_end/ui/components/buttons/floatingButton.css +25 -0
- package/front_end/ui/components/markdown_view/MarkdownView.ts +31 -1
- package/front_end/ui/components/srgb_overlay/SrgbOverlay.ts +1 -1
- package/front_end/ui/components/suggestion_input/SuggestionInput.ts +45 -25
- package/front_end/ui/kit/icons/Icon.ts +0 -1
- package/front_end/ui/kit/link/Link.ts +8 -1
- package/front_end/ui/legacy/ContextMenu.ts +2 -2
- package/front_end/ui/legacy/DropTarget.ts +6 -1
- package/front_end/ui/legacy/EmptyWidget.ts +1 -1
- package/front_end/ui/legacy/GlassPane.ts +1 -1
- package/front_end/ui/legacy/InspectorView.ts +17 -1
- package/front_end/ui/legacy/ShortcutRegistry.ts +2 -2
- package/front_end/ui/legacy/SplitWidget.ts +18 -3
- package/front_end/ui/legacy/StackedPane.ts +1 -1
- package/front_end/ui/legacy/StatusBar.ts +78 -0
- package/front_end/ui/legacy/TargetCrashedScreen.ts +1 -1
- package/front_end/ui/legacy/TextPrompt.ts +2 -1
- package/front_end/ui/legacy/Toolbar.ts +5 -1
- package/front_end/ui/legacy/Treeoutline.ts +91 -48
- package/front_end/ui/legacy/UIUtils.ts +8 -4
- package/front_end/ui/legacy/ViewManager.ts +1 -1
- package/front_end/ui/legacy/ViewRegistration.ts +1 -0
- package/front_end/ui/legacy/Widget.ts +1 -1
- package/front_end/ui/legacy/components/color_picker/Spectrum.ts +7 -1
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +1 -1
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +3 -2
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +23 -23
- package/front_end/ui/legacy/components/inline_editor/AnimationTimingModel.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +48 -44
- package/front_end/ui/legacy/components/inline_editor/CSSAngleUtils.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/PositionAreaEditor.docs.ts +83 -0
- package/front_end/ui/legacy/components/inline_editor/PositionAreaEditor.ts +600 -0
- package/front_end/ui/legacy/components/inline_editor/animationNameSwatch.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/colorMixSwatch.css +4 -4
- package/front_end/ui/legacy/components/inline_editor/cssAngleSwatch.css +3 -3
- package/front_end/ui/legacy/components/inline_editor/inline_editor.ts +2 -0
- package/front_end/ui/legacy/components/inline_editor/linkSwatch.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/positionAreaEditor.css +154 -0
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +224 -127
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +10 -7
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +25 -106
- package/front_end/ui/legacy/components/object_ui/customPreviewComponent.css +7 -3
- package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +1 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +0 -66
- package/front_end/ui/legacy/components/perf_ui/perf_ui.ts +0 -2
- package/front_end/ui/legacy/components/perf_ui/pieChart.css +7 -5
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +8 -5
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +1 -1
- package/front_end/ui/legacy/components/utils/Linkifier.ts +5 -5
- package/front_end/ui/legacy/inspectorCommon.css +41 -6
- package/front_end/ui/legacy/legacy.ts +2 -0
- package/front_end/ui/legacy/statusBar.css +18 -0
- package/front_end/ui/visual_logging/Debugging.ts +2 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +3 -1
- package/front_end/ui/visual_logging/LoggingDriver.ts +3 -3
- package/front_end/ui/visual_logging/LoggingEvents.ts +5 -5
- package/front_end/ui/visual_logging/LoggingState.ts +1 -1
- package/front_end/ui/visual_logging/visual_logging.ts +67 -56
- package/inspector_overlay/main.ts +8 -8
- package/mcp/mcp.ts +5 -0
- package/package.json +2 -8
- package/front_end/Images/generate-css-vars.js +0 -52
- package/front_end/Images/rollup.config.mjs +0 -36
- package/front_end/models/ai_assistance/AiOrigins.ts +0 -107
- package/front_end/models/live-metrics/web-vitals-injected/rollup.config.mjs +0 -20
- package/front_end/panels/recorder/injected/rollup.config.mjs +0 -20
- package/front_end/panels/timeline/EasterEgg.d.ts +0 -6
- package/front_end/panels/timeline/easter-egg-tsconfig.json +0 -8
- package/front_end/panels/timeline/enable-easter-egg.js +0 -20
- package/front_end/third_party/acorn/acorn-tsconfig.json +0 -12
- package/front_end/third_party/acorn/estree-tsconfig.json +0 -8
- package/front_end/third_party/chromium/client-variations/client-variations-tsconfig.json +0 -8
- package/front_end/third_party/codemirror/codemirror-legacy-types-tsconfig.json +0 -8
- package/front_end/third_party/codemirror/codemirror-tsconfig.json +0 -15
- package/front_end/third_party/codemirror.next/bundle-tsconfig.json +0 -24
- package/front_end/third_party/intl-messageformat/intl-messageformat-tsconfig.json +0 -16
- package/front_end/third_party/json5/json5-tsconfig.json +0 -8
- package/front_end/third_party/legacy-javascript/legacy-javascript-tsconfig.json +0 -8
- package/front_end/third_party/lighthouse/lighthouse-tsconfig.json +0 -11
- package/front_end/third_party/lighthouse/report/bundle-tsconfig.json +0 -8
- package/front_end/third_party/lit/lit-tsconfig.json +0 -15
- package/front_end/third_party/marked/marked-tsconfig.json +0 -8
- package/front_end/third_party/puppeteer-replay/puppeteer-replay-tsconfig.json +0 -8
- package/front_end/third_party/third-party-web/third-party-web-tsconfig.json +0 -8
- package/front_end/third_party/wasmparser/wasmparser-tsconfig.json +0 -9
- package/front_end/third_party/web-vitals/web-vitals-tsconfig.json +0 -47
- package/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts +0 -606
- package/inspector_overlay/loadCSS.rollup.js +0 -29
|
@@ -94,13 +94,10 @@ export async function _connectToBrowser(
|
|
|
94
94
|
async function getConnectionTransport(
|
|
95
95
|
options: ConnectOptions & {logger: Logger},
|
|
96
96
|
): Promise<{connectionTransport: ConnectionTransport; endpointUrl: string}> {
|
|
97
|
-
const {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
transport,
|
|
102
|
-
headers = {},
|
|
103
|
-
} = options;
|
|
97
|
+
const {browserWSEndpoint, browserURL, channel, transport} = options;
|
|
98
|
+
// `wsOptions.headers` supersedes the deprecated top-level `headers`.
|
|
99
|
+
const headers = options.wsOptions?.headers ?? options.headers ?? {};
|
|
100
|
+
const wsOptions = options.wsOptions ?? {};
|
|
104
101
|
|
|
105
102
|
assert(
|
|
106
103
|
Number(!!browserWSEndpoint) +
|
|
@@ -116,7 +113,12 @@ async function getConnectionTransport(
|
|
|
116
113
|
} else if (browserWSEndpoint) {
|
|
117
114
|
const WebSocketClass = await getWebSocketTransportClass();
|
|
118
115
|
const connectionTransport: ConnectionTransport =
|
|
119
|
-
await WebSocketClass.create(
|
|
116
|
+
await WebSocketClass.create(
|
|
117
|
+
browserWSEndpoint,
|
|
118
|
+
headers,
|
|
119
|
+
options.logger,
|
|
120
|
+
wsOptions,
|
|
121
|
+
);
|
|
120
122
|
return {
|
|
121
123
|
connectionTransport: connectionTransport,
|
|
122
124
|
endpointUrl: browserWSEndpoint,
|
|
@@ -125,7 +127,12 @@ async function getConnectionTransport(
|
|
|
125
127
|
const connectionURL = await getWSEndpoint(browserURL, headers);
|
|
126
128
|
const WebSocketClass = await getWebSocketTransportClass();
|
|
127
129
|
const connectionTransport: ConnectionTransport =
|
|
128
|
-
await WebSocketClass.create(
|
|
130
|
+
await WebSocketClass.create(
|
|
131
|
+
connectionURL,
|
|
132
|
+
headers,
|
|
133
|
+
options.logger,
|
|
134
|
+
wsOptions,
|
|
135
|
+
);
|
|
129
136
|
return {
|
|
130
137
|
connectionTransport: connectionTransport,
|
|
131
138
|
endpointUrl: connectionURL,
|
|
@@ -169,6 +176,7 @@ async function getConnectionTransport(
|
|
|
169
176
|
browserWSEndpoint,
|
|
170
177
|
headers,
|
|
171
178
|
options.logger,
|
|
179
|
+
wsOptions,
|
|
172
180
|
);
|
|
173
181
|
return {
|
|
174
182
|
connectionTransport: connectionTransport,
|
|
@@ -14,6 +14,10 @@ export class BrowserWebSocketTransport implements ConnectionTransport {
|
|
|
14
14
|
url: string,
|
|
15
15
|
_headers: Record<string, string> | undefined,
|
|
16
16
|
logger: Logger,
|
|
17
|
+
// Accepted so this stays call-compatible with NodeWebSocketTransport, which
|
|
18
|
+
// BrowserConnector picks between at runtime. The keep-alive options are
|
|
19
|
+
// Node-only: the browser WebSocket API exposes no ping frame.
|
|
20
|
+
_options?: {keepAlive?: boolean; keepAliveIntervalMs?: number},
|
|
17
21
|
): Promise<BrowserWebSocketTransport> {
|
|
18
22
|
return new Promise((resolve, reject) => {
|
|
19
23
|
const ws = new WebSocket(url);
|
|
@@ -45,6 +45,39 @@ export interface SupportedWebDriverCapabilities {
|
|
|
45
45
|
export type ChromeReleaseChannel =
|
|
46
46
|
'chrome' | 'chrome-beta' | 'chrome-canary' | 'chrome-dev';
|
|
47
47
|
|
|
48
|
+
/**
|
|
49
|
+
* Options for the WebSocket connection to the browser.
|
|
50
|
+
*
|
|
51
|
+
* @remarks
|
|
52
|
+
* Only used in the Node.js environment.
|
|
53
|
+
*
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
export interface WsOptions {
|
|
57
|
+
/**
|
|
58
|
+
* Headers to use for the web socket connection.
|
|
59
|
+
*/
|
|
60
|
+
headers?: Record<string, string>;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Whether to send WebSocket pings and drop the connection when a pong does
|
|
64
|
+
* not come back within the same interval. Detects a connection that died
|
|
65
|
+
* without a close frame, which otherwise leaves calls hanging until
|
|
66
|
+
* `protocolTimeout`.
|
|
67
|
+
*
|
|
68
|
+
* @defaultValue `false`
|
|
69
|
+
*/
|
|
70
|
+
keepAlive?: boolean;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Ping period in milliseconds. Only used when {@link WsOptions.keepAlive} is
|
|
74
|
+
* set.
|
|
75
|
+
*
|
|
76
|
+
* @defaultValue `30_000`
|
|
77
|
+
*/
|
|
78
|
+
keepAliveIntervalMs?: number;
|
|
79
|
+
}
|
|
80
|
+
|
|
48
81
|
/**
|
|
49
82
|
* Generic browser options that can be passed when launching any browser or when
|
|
50
83
|
* connecting to an existing browser instance.
|
|
@@ -134,6 +167,15 @@ export interface ConnectOptions {
|
|
|
134
167
|
*/
|
|
135
168
|
protocolTimeout?: number;
|
|
136
169
|
|
|
170
|
+
/**
|
|
171
|
+
* Options for the WebSocket connection to the browser.
|
|
172
|
+
*
|
|
173
|
+
* @remarks
|
|
174
|
+
* Only used in the Node.js environment. The browser build has no ping frame
|
|
175
|
+
* API, so the keep-alive options are ignored there.
|
|
176
|
+
*/
|
|
177
|
+
wsOptions?: WsOptions;
|
|
178
|
+
|
|
137
179
|
browserWSEndpoint?: string;
|
|
138
180
|
browserURL?: string;
|
|
139
181
|
transport?: ConnectionTransport;
|
|
@@ -149,6 +191,10 @@ export interface ConnectOptions {
|
|
|
149
191
|
* Headers to use for the web socket connection.
|
|
150
192
|
* @remarks
|
|
151
193
|
* Only works in the Node.js environment.
|
|
194
|
+
*
|
|
195
|
+
* @deprecated Use {@link WsOptions.headers} via
|
|
196
|
+
* {@link ConnectOptions.wsOptions} instead. When both are set,
|
|
197
|
+
* `wsOptions.headers` wins.
|
|
152
198
|
*/
|
|
153
199
|
headers?: Record<string, string>;
|
|
154
200
|
|
|
@@ -639,6 +639,32 @@ const knownDevices = [
|
|
|
639
639
|
isLandscape: true,
|
|
640
640
|
},
|
|
641
641
|
},
|
|
642
|
+
{
|
|
643
|
+
name: 'iPhone SE (3rd gen)',
|
|
644
|
+
userAgent:
|
|
645
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/26.5 Mobile/19E241 Safari/602.1',
|
|
646
|
+
viewport: {
|
|
647
|
+
width: 375,
|
|
648
|
+
height: 667,
|
|
649
|
+
deviceScaleFactor: 2,
|
|
650
|
+
isMobile: true,
|
|
651
|
+
hasTouch: true,
|
|
652
|
+
isLandscape: false,
|
|
653
|
+
},
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
name: 'iPhone SE (3rd gen) landscape',
|
|
657
|
+
userAgent:
|
|
658
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/26.5 Mobile/19E241 Safari/602.1',
|
|
659
|
+
viewport: {
|
|
660
|
+
width: 667,
|
|
661
|
+
height: 375,
|
|
662
|
+
deviceScaleFactor: 2,
|
|
663
|
+
isMobile: true,
|
|
664
|
+
hasTouch: true,
|
|
665
|
+
isLandscape: true,
|
|
666
|
+
},
|
|
667
|
+
},
|
|
642
668
|
{
|
|
643
669
|
name: 'iPhone X',
|
|
644
670
|
userAgent:
|
|
@@ -1185,6 +1211,266 @@ const knownDevices = [
|
|
|
1185
1211
|
isLandscape: true,
|
|
1186
1212
|
},
|
|
1187
1213
|
},
|
|
1214
|
+
{
|
|
1215
|
+
name: 'iPhone 16',
|
|
1216
|
+
userAgent:
|
|
1217
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1218
|
+
viewport: {
|
|
1219
|
+
width: 393,
|
|
1220
|
+
height: 659,
|
|
1221
|
+
deviceScaleFactor: 3,
|
|
1222
|
+
isMobile: true,
|
|
1223
|
+
hasTouch: true,
|
|
1224
|
+
isLandscape: false,
|
|
1225
|
+
},
|
|
1226
|
+
},
|
|
1227
|
+
{
|
|
1228
|
+
name: 'iPhone 16 landscape',
|
|
1229
|
+
userAgent:
|
|
1230
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1231
|
+
viewport: {
|
|
1232
|
+
width: 734,
|
|
1233
|
+
height: 343,
|
|
1234
|
+
deviceScaleFactor: 3,
|
|
1235
|
+
isMobile: true,
|
|
1236
|
+
hasTouch: true,
|
|
1237
|
+
isLandscape: true,
|
|
1238
|
+
},
|
|
1239
|
+
},
|
|
1240
|
+
{
|
|
1241
|
+
name: 'iPhone 16 Plus',
|
|
1242
|
+
userAgent:
|
|
1243
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1244
|
+
viewport: {
|
|
1245
|
+
width: 430,
|
|
1246
|
+
height: 739,
|
|
1247
|
+
deviceScaleFactor: 3,
|
|
1248
|
+
isMobile: true,
|
|
1249
|
+
hasTouch: true,
|
|
1250
|
+
isLandscape: false,
|
|
1251
|
+
},
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
name: 'iPhone 16 Plus landscape',
|
|
1255
|
+
userAgent:
|
|
1256
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1257
|
+
viewport: {
|
|
1258
|
+
width: 814,
|
|
1259
|
+
height: 380,
|
|
1260
|
+
deviceScaleFactor: 3,
|
|
1261
|
+
isMobile: true,
|
|
1262
|
+
hasTouch: true,
|
|
1263
|
+
isLandscape: true,
|
|
1264
|
+
},
|
|
1265
|
+
},
|
|
1266
|
+
{
|
|
1267
|
+
name: 'iPhone 16 Pro',
|
|
1268
|
+
userAgent:
|
|
1269
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1270
|
+
viewport: {
|
|
1271
|
+
width: 402,
|
|
1272
|
+
height: 681,
|
|
1273
|
+
deviceScaleFactor: 3,
|
|
1274
|
+
isMobile: true,
|
|
1275
|
+
hasTouch: true,
|
|
1276
|
+
isLandscape: false,
|
|
1277
|
+
},
|
|
1278
|
+
},
|
|
1279
|
+
{
|
|
1280
|
+
name: 'iPhone 16 Pro landscape',
|
|
1281
|
+
userAgent:
|
|
1282
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1283
|
+
viewport: {
|
|
1284
|
+
width: 756,
|
|
1285
|
+
height: 352,
|
|
1286
|
+
deviceScaleFactor: 3,
|
|
1287
|
+
isMobile: true,
|
|
1288
|
+
hasTouch: true,
|
|
1289
|
+
isLandscape: true,
|
|
1290
|
+
},
|
|
1291
|
+
},
|
|
1292
|
+
{
|
|
1293
|
+
name: 'iPhone 16 Pro Max',
|
|
1294
|
+
userAgent:
|
|
1295
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1296
|
+
viewport: {
|
|
1297
|
+
width: 440,
|
|
1298
|
+
height: 763,
|
|
1299
|
+
deviceScaleFactor: 3,
|
|
1300
|
+
isMobile: true,
|
|
1301
|
+
hasTouch: true,
|
|
1302
|
+
isLandscape: false,
|
|
1303
|
+
},
|
|
1304
|
+
},
|
|
1305
|
+
{
|
|
1306
|
+
name: 'iPhone 16 Pro Max landscape',
|
|
1307
|
+
userAgent:
|
|
1308
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1309
|
+
viewport: {
|
|
1310
|
+
width: 838,
|
|
1311
|
+
height: 390,
|
|
1312
|
+
deviceScaleFactor: 3,
|
|
1313
|
+
isMobile: true,
|
|
1314
|
+
hasTouch: true,
|
|
1315
|
+
isLandscape: true,
|
|
1316
|
+
},
|
|
1317
|
+
},
|
|
1318
|
+
{
|
|
1319
|
+
name: 'iPhone 16e',
|
|
1320
|
+
userAgent:
|
|
1321
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1322
|
+
viewport: {
|
|
1323
|
+
width: 390,
|
|
1324
|
+
height: 651,
|
|
1325
|
+
deviceScaleFactor: 3,
|
|
1326
|
+
isMobile: true,
|
|
1327
|
+
hasTouch: true,
|
|
1328
|
+
isLandscape: false,
|
|
1329
|
+
},
|
|
1330
|
+
},
|
|
1331
|
+
{
|
|
1332
|
+
name: 'iPhone 16e landscape',
|
|
1333
|
+
userAgent:
|
|
1334
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1335
|
+
viewport: {
|
|
1336
|
+
width: 726,
|
|
1337
|
+
height: 340,
|
|
1338
|
+
deviceScaleFactor: 3,
|
|
1339
|
+
isMobile: true,
|
|
1340
|
+
hasTouch: true,
|
|
1341
|
+
isLandscape: true,
|
|
1342
|
+
},
|
|
1343
|
+
},
|
|
1344
|
+
{
|
|
1345
|
+
name: 'iPhone 17',
|
|
1346
|
+
userAgent:
|
|
1347
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1348
|
+
viewport: {
|
|
1349
|
+
width: 402,
|
|
1350
|
+
height: 681,
|
|
1351
|
+
deviceScaleFactor: 3,
|
|
1352
|
+
isMobile: true,
|
|
1353
|
+
hasTouch: true,
|
|
1354
|
+
isLandscape: false,
|
|
1355
|
+
},
|
|
1356
|
+
},
|
|
1357
|
+
{
|
|
1358
|
+
name: 'iPhone 17 landscape',
|
|
1359
|
+
userAgent:
|
|
1360
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1361
|
+
viewport: {
|
|
1362
|
+
width: 756,
|
|
1363
|
+
height: 352,
|
|
1364
|
+
deviceScaleFactor: 3,
|
|
1365
|
+
isMobile: true,
|
|
1366
|
+
hasTouch: true,
|
|
1367
|
+
isLandscape: true,
|
|
1368
|
+
},
|
|
1369
|
+
},
|
|
1370
|
+
{
|
|
1371
|
+
name: 'iPhone Air',
|
|
1372
|
+
userAgent:
|
|
1373
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1374
|
+
viewport: {
|
|
1375
|
+
width: 420,
|
|
1376
|
+
height: 719,
|
|
1377
|
+
deviceScaleFactor: 3,
|
|
1378
|
+
isMobile: true,
|
|
1379
|
+
hasTouch: true,
|
|
1380
|
+
isLandscape: false,
|
|
1381
|
+
},
|
|
1382
|
+
},
|
|
1383
|
+
{
|
|
1384
|
+
name: 'iPhone Air landscape',
|
|
1385
|
+
userAgent:
|
|
1386
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1387
|
+
viewport: {
|
|
1388
|
+
width: 794,
|
|
1389
|
+
height: 370,
|
|
1390
|
+
deviceScaleFactor: 3,
|
|
1391
|
+
isMobile: true,
|
|
1392
|
+
hasTouch: true,
|
|
1393
|
+
isLandscape: true,
|
|
1394
|
+
},
|
|
1395
|
+
},
|
|
1396
|
+
{
|
|
1397
|
+
name: 'iPhone 17 Pro',
|
|
1398
|
+
userAgent:
|
|
1399
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1400
|
+
viewport: {
|
|
1401
|
+
width: 402,
|
|
1402
|
+
height: 681,
|
|
1403
|
+
deviceScaleFactor: 3,
|
|
1404
|
+
isMobile: true,
|
|
1405
|
+
hasTouch: true,
|
|
1406
|
+
isLandscape: false,
|
|
1407
|
+
},
|
|
1408
|
+
},
|
|
1409
|
+
{
|
|
1410
|
+
name: 'iPhone 17 Pro landscape',
|
|
1411
|
+
userAgent:
|
|
1412
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1413
|
+
viewport: {
|
|
1414
|
+
width: 756,
|
|
1415
|
+
height: 352,
|
|
1416
|
+
deviceScaleFactor: 3,
|
|
1417
|
+
isMobile: true,
|
|
1418
|
+
hasTouch: true,
|
|
1419
|
+
isLandscape: true,
|
|
1420
|
+
},
|
|
1421
|
+
},
|
|
1422
|
+
{
|
|
1423
|
+
name: 'iPhone 17 Pro Max',
|
|
1424
|
+
userAgent:
|
|
1425
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1426
|
+
viewport: {
|
|
1427
|
+
width: 440,
|
|
1428
|
+
height: 763,
|
|
1429
|
+
deviceScaleFactor: 3,
|
|
1430
|
+
isMobile: true,
|
|
1431
|
+
hasTouch: true,
|
|
1432
|
+
isLandscape: false,
|
|
1433
|
+
},
|
|
1434
|
+
},
|
|
1435
|
+
{
|
|
1436
|
+
name: 'iPhone 17 Pro Max landscape',
|
|
1437
|
+
userAgent:
|
|
1438
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1439
|
+
viewport: {
|
|
1440
|
+
width: 838,
|
|
1441
|
+
height: 390,
|
|
1442
|
+
deviceScaleFactor: 3,
|
|
1443
|
+
isMobile: true,
|
|
1444
|
+
hasTouch: true,
|
|
1445
|
+
isLandscape: true,
|
|
1446
|
+
},
|
|
1447
|
+
},
|
|
1448
|
+
{
|
|
1449
|
+
name: 'iPhone 17e',
|
|
1450
|
+
userAgent:
|
|
1451
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1452
|
+
viewport: {
|
|
1453
|
+
width: 390,
|
|
1454
|
+
height: 651,
|
|
1455
|
+
deviceScaleFactor: 3,
|
|
1456
|
+
isMobile: true,
|
|
1457
|
+
hasTouch: true,
|
|
1458
|
+
isLandscape: false,
|
|
1459
|
+
},
|
|
1460
|
+
},
|
|
1461
|
+
{
|
|
1462
|
+
name: 'iPhone 17e landscape',
|
|
1463
|
+
userAgent:
|
|
1464
|
+
'Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Mobile/15E148 Safari/604.1',
|
|
1465
|
+
viewport: {
|
|
1466
|
+
width: 726,
|
|
1467
|
+
height: 340,
|
|
1468
|
+
deviceScaleFactor: 3,
|
|
1469
|
+
isMobile: true,
|
|
1470
|
+
hasTouch: true,
|
|
1471
|
+
isLandscape: true,
|
|
1472
|
+
},
|
|
1473
|
+
},
|
|
1188
1474
|
{
|
|
1189
1475
|
name: 'JioPhone 2',
|
|
1190
1476
|
userAgent:
|
|
@@ -1736,7 +2022,7 @@ for (const device of knownDevices) {
|
|
|
1736
2022
|
*
|
|
1737
2023
|
* ```ts
|
|
1738
2024
|
* import {KnownDevices} from 'puppeteer';
|
|
1739
|
-
* const iPhone = KnownDevices['iPhone
|
|
2025
|
+
* const iPhone = KnownDevices['iPhone 17 Pro'];
|
|
1740
2026
|
*
|
|
1741
2027
|
* const browser = await puppeteer.launch();
|
|
1742
2028
|
* const page = await browser.newPage();
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2017 Google Inc.
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {existsSync} from 'node:fs';
|
|
6
|
+
import {accessSync, constants, existsSync} from 'node:fs';
|
|
7
7
|
import {tmpdir} from 'node:os';
|
|
8
8
|
import {join} from 'node:path';
|
|
9
9
|
|
|
@@ -27,6 +27,7 @@ import type {Browser, BrowserCloseCallback} from '../api/Browser.js';
|
|
|
27
27
|
import {CdpBrowser} from '../cdp/Browser.js';
|
|
28
28
|
import {Connection} from '../cdp/Connection.js';
|
|
29
29
|
import {assertSupportedUrlRestrictions} from '../common/BrowserConnector.js';
|
|
30
|
+
import type {WsOptions} from '../common/ConnectOptions.js';
|
|
30
31
|
import {DEBUG_PREFIXES, type Logger} from '../common/Debug.js';
|
|
31
32
|
import {TimeoutError} from '../common/Errors.js';
|
|
32
33
|
import type {SupportedBrowser} from '../common/SupportedBrowser.js';
|
|
@@ -52,6 +53,21 @@ export interface ResolvedLaunchArgs {
|
|
|
52
53
|
args: string[];
|
|
53
54
|
}
|
|
54
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Whether the profile directory exists and the current process can write to it.
|
|
58
|
+
* A missing directory counts as writable: the browser creates it on launch.
|
|
59
|
+
*
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
function isWritableDirectory(directory: string): boolean {
|
|
63
|
+
try {
|
|
64
|
+
accessSync(directory, constants.W_OK);
|
|
65
|
+
return true;
|
|
66
|
+
} catch {
|
|
67
|
+
return !existsSync(directory);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
55
71
|
/**
|
|
56
72
|
* @internal
|
|
57
73
|
*/
|
|
@@ -291,6 +307,14 @@ export abstract class BrowserLauncher {
|
|
|
291
307
|
(process.platform === 'win32' &&
|
|
292
308
|
existsSync(join(launchArgs.userDataDir, 'lockfile')))
|
|
293
309
|
) {
|
|
310
|
+
// The browser reports the same ProcessSingleton failure whether another
|
|
311
|
+
// instance holds the lock or it simply cannot write to the profile
|
|
312
|
+
// directory, so check for the latter before blaming a running browser.
|
|
313
|
+
if (!isWritableDirectory(launchArgs.userDataDir)) {
|
|
314
|
+
throw new Error(
|
|
315
|
+
`The browser cannot write to ${launchArgs.userDataDir}. Make the \`userDataDir\` writable or use a different one.`,
|
|
316
|
+
);
|
|
317
|
+
}
|
|
294
318
|
throw new Error(
|
|
295
319
|
`The browser is already running for ${launchArgs.userDataDir}. Use a different \`userDataDir\` or stop the running browser first.`,
|
|
296
320
|
);
|
|
@@ -407,6 +431,7 @@ export abstract class BrowserLauncher {
|
|
|
407
431
|
slowMo: number;
|
|
408
432
|
idGenerator: GetIdFn;
|
|
409
433
|
logger: Logger;
|
|
434
|
+
wsOptions?: WsOptions;
|
|
410
435
|
},
|
|
411
436
|
): Promise<Connection> {
|
|
412
437
|
const browserWSEndpoint = await browserProcess.waitForLineOutput(
|
|
@@ -417,6 +442,7 @@ export abstract class BrowserLauncher {
|
|
|
417
442
|
browserWSEndpoint,
|
|
418
443
|
undefined,
|
|
419
444
|
opts.logger,
|
|
445
|
+
opts.wsOptions,
|
|
420
446
|
);
|
|
421
447
|
return new Connection(
|
|
422
448
|
browserWSEndpoint,
|
|
@@ -440,6 +466,7 @@ export abstract class BrowserLauncher {
|
|
|
440
466
|
slowMo: number;
|
|
441
467
|
idGenerator: GetIdFn;
|
|
442
468
|
logger: Logger;
|
|
469
|
+
wsOptions?: WsOptions;
|
|
443
470
|
},
|
|
444
471
|
): Promise<Connection> {
|
|
445
472
|
// stdio was assigned during start(), and the 'pipe' option there adds the
|
|
@@ -513,6 +540,7 @@ export abstract class BrowserLauncher {
|
|
|
513
540
|
networkEnabled?: boolean;
|
|
514
541
|
issuesEnabled?: boolean;
|
|
515
542
|
logger: Logger;
|
|
543
|
+
wsOptions?: WsOptions;
|
|
516
544
|
},
|
|
517
545
|
): Promise<Browser> {
|
|
518
546
|
const browserWSEndpoint =
|
|
@@ -524,6 +552,7 @@ export abstract class BrowserLauncher {
|
|
|
524
552
|
browserWSEndpoint,
|
|
525
553
|
undefined,
|
|
526
554
|
opts.logger,
|
|
555
|
+
opts.wsOptions,
|
|
527
556
|
);
|
|
528
557
|
const BiDi = await import(/* webpackIgnore: true */ '../bidi/bidi.js');
|
|
529
558
|
const bidiConnection = new BiDi.BidiConnection(
|
|
@@ -9,6 +9,29 @@ import type {ConnectionTransport} from '../common/ConnectionTransport.js';
|
|
|
9
9
|
import {DEBUG_PREFIXES, type Logger} from '../common/Debug.js';
|
|
10
10
|
import {packageVersion} from '../util/version.js';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* How often to ping the browser when keep-alive is enabled, and how long to
|
|
14
|
+
* wait for the matching pong before treating the connection as dead.
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export const DEFAULT_KEEP_ALIVE_INTERVAL_MS = 30_000;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export interface NodeWebSocketTransportOptions {
|
|
24
|
+
/**
|
|
25
|
+
* Detect a connection that died without a TCP close by exchanging
|
|
26
|
+
* WebSocket ping/pong frames.
|
|
27
|
+
*/
|
|
28
|
+
keepAlive?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Ping period in milliseconds. Only used when `keepAlive` is set.
|
|
31
|
+
*/
|
|
32
|
+
keepAliveIntervalMs?: number;
|
|
33
|
+
}
|
|
34
|
+
|
|
12
35
|
/**
|
|
13
36
|
* @internal
|
|
14
37
|
*/
|
|
@@ -17,6 +40,7 @@ export class NodeWebSocketTransport implements ConnectionTransport {
|
|
|
17
40
|
url: string,
|
|
18
41
|
headers: Record<string, string> | undefined,
|
|
19
42
|
logger: Logger,
|
|
43
|
+
options: NodeWebSocketTransportOptions = {},
|
|
20
44
|
): Promise<NodeWebSocketTransport> {
|
|
21
45
|
return new Promise((resolve, reject) => {
|
|
22
46
|
const ws = new NodeWebSocket(url, [], {
|
|
@@ -31,7 +55,7 @@ export class NodeWebSocketTransport implements ConnectionTransport {
|
|
|
31
55
|
});
|
|
32
56
|
|
|
33
57
|
ws.addEventListener('open', () => {
|
|
34
|
-
return resolve(new NodeWebSocketTransport(ws, logger));
|
|
58
|
+
return resolve(new NodeWebSocketTransport(ws, logger, options));
|
|
35
59
|
});
|
|
36
60
|
ws.addEventListener('error', reject);
|
|
37
61
|
});
|
|
@@ -39,10 +63,15 @@ export class NodeWebSocketTransport implements ConnectionTransport {
|
|
|
39
63
|
|
|
40
64
|
#ws: NodeWebSocket;
|
|
41
65
|
#logger: Logger;
|
|
66
|
+
#keepAliveTimer?: NodeJS.Timeout;
|
|
42
67
|
onmessage?: (message: NodeWebSocket.Data) => void;
|
|
43
68
|
onclose?: () => void;
|
|
44
69
|
|
|
45
|
-
constructor(
|
|
70
|
+
constructor(
|
|
71
|
+
ws: NodeWebSocket,
|
|
72
|
+
logger: Logger,
|
|
73
|
+
options: NodeWebSocketTransportOptions = {},
|
|
74
|
+
) {
|
|
46
75
|
this.#ws = ws;
|
|
47
76
|
this.#logger = logger;
|
|
48
77
|
this.#ws.addEventListener('message', event => {
|
|
@@ -51,6 +80,7 @@ export class NodeWebSocketTransport implements ConnectionTransport {
|
|
|
51
80
|
}
|
|
52
81
|
});
|
|
53
82
|
this.#ws.addEventListener('close', () => {
|
|
83
|
+
this.#stopKeepAlive();
|
|
54
84
|
if (this.onclose) {
|
|
55
85
|
this.onclose.call(null);
|
|
56
86
|
}
|
|
@@ -59,6 +89,46 @@ export class NodeWebSocketTransport implements ConnectionTransport {
|
|
|
59
89
|
this.#ws.addEventListener('error', err => {
|
|
60
90
|
this.#logger?.(DEBUG_PREFIXES.error)?.(err);
|
|
61
91
|
});
|
|
92
|
+
if (options.keepAlive) {
|
|
93
|
+
this.#startKeepAlive(
|
|
94
|
+
options.keepAliveIntervalMs ?? DEFAULT_KEEP_ALIVE_INTERVAL_MS,
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The `ws` client only reports a close when the peer sends a TCP FIN. A
|
|
101
|
+
* connection dropped by a proxy, a load balancer reaping an idle socket or a
|
|
102
|
+
* killed remote browser leaves a half-open socket that never emits `close`,
|
|
103
|
+
* so the transport keeps reporting itself as connected until the next
|
|
104
|
+
* command fails. Ping periodically and terminate when the pong for the
|
|
105
|
+
* previous ping never arrived.
|
|
106
|
+
*/
|
|
107
|
+
#startKeepAlive(intervalMs: number): void {
|
|
108
|
+
let awaitingPong = false;
|
|
109
|
+
this.#ws.on('pong', () => {
|
|
110
|
+
awaitingPong = false;
|
|
111
|
+
});
|
|
112
|
+
this.#keepAliveTimer = setInterval(() => {
|
|
113
|
+
if (awaitingPong) {
|
|
114
|
+
// terminate() rather than close(): the peer is not answering, so a
|
|
115
|
+
// close handshake would hang. This emits `close` locally, which is
|
|
116
|
+
// what surfaces the dead connection to the rest of Puppeteer.
|
|
117
|
+
this.#ws.terminate();
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
awaitingPong = true;
|
|
121
|
+
this.#ws.ping();
|
|
122
|
+
}, intervalMs);
|
|
123
|
+
// Never hold the process open just to keep pinging.
|
|
124
|
+
this.#keepAliveTimer.unref?.();
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
#stopKeepAlive(): void {
|
|
128
|
+
if (this.#keepAliveTimer !== undefined) {
|
|
129
|
+
clearInterval(this.#keepAliveTimer);
|
|
130
|
+
this.#keepAliveTimer = undefined;
|
|
131
|
+
}
|
|
62
132
|
}
|
|
63
133
|
|
|
64
134
|
send(message: string): void {
|
|
@@ -66,6 +136,7 @@ export class NodeWebSocketTransport implements ConnectionTransport {
|
|
|
66
136
|
}
|
|
67
137
|
|
|
68
138
|
close(): void {
|
|
139
|
+
this.#stopKeepAlive();
|
|
69
140
|
this.#ws.close();
|
|
70
141
|
}
|
|
71
142
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
10
|
export const PUPPETEER_REVISIONS = Object.freeze({
|
|
11
|
-
chrome: '152.0.7977.
|
|
12
|
-
'chrome-headless-shell': '152.0.7977.
|
|
13
|
-
firefox: '
|
|
11
|
+
chrome: '152.0.7977.75',
|
|
12
|
+
'chrome-headless-shell': '152.0.7977.75',
|
|
13
|
+
firefox: 'stable_155.0',
|
|
14
14
|
});
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"package/lib/puppeteer/api/JSHandle.js",
|
|
23
23
|
"package/lib/puppeteer/api/Page.js",
|
|
24
24
|
"package/lib/puppeteer/api/Realm.js",
|
|
25
|
+
"package/lib/puppeteer/api/ScreenRecording.js",
|
|
25
26
|
"package/lib/puppeteer/api/Target.js",
|
|
26
27
|
"package/lib/puppeteer/api/WebWorker.js",
|
|
27
28
|
"package/lib/puppeteer/api/api.js",
|
|
@@ -45,6 +46,7 @@
|
|
|
45
46
|
"package/lib/puppeteer/bidi/JSHandle.js",
|
|
46
47
|
"package/lib/puppeteer/bidi/Page.js",
|
|
47
48
|
"package/lib/puppeteer/bidi/Realm.js",
|
|
49
|
+
"package/lib/puppeteer/bidi/ScreenRecording.js",
|
|
48
50
|
"package/lib/puppeteer/bidi/Serializer.js",
|
|
49
51
|
"package/lib/puppeteer/bidi/Target.js",
|
|
50
52
|
"package/lib/puppeteer/bidi/WebWorker.js",
|
|
@@ -93,6 +95,7 @@
|
|
|
93
95
|
"package/lib/puppeteer/cdp/NetworkManager.js",
|
|
94
96
|
"package/lib/puppeteer/cdp/Page.js",
|
|
95
97
|
"package/lib/puppeteer/cdp/PredefinedNetworkConditions.js",
|
|
98
|
+
"package/lib/puppeteer/cdp/ScreenRecording.js",
|
|
96
99
|
"package/lib/puppeteer/cdp/Target.js",
|
|
97
100
|
"package/lib/puppeteer/cdp/TargetManageEvents.js",
|
|
98
101
|
"package/lib/puppeteer/cdp/TargetManager.js",
|