chrome-devtools-frontend 1.0.1028166 → 1.0.1028626
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/front_end/core/i18n/locales/en-US.json +6 -0
- package/front_end/core/i18n/locales/en-XL.json +6 -0
- package/front_end/generated/InspectorBackendCommands.js +4 -4
- package/front_end/generated/protocol.ts +22 -4
- package/front_end/models/issues_manager/AttributionReportingIssue.ts +15 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +1 -1
- package/front_end/panels/application/components/Prerender2.ts +12 -0
- package/front_end/panels/network/components/RequestHeadersView.ts +60 -28
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +25 -7
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +22 -30
- package/package.json +1 -1
@@ -3284,6 +3284,9 @@
|
|
3284
3284
|
"panels/application/components/Prerender2.ts | EmbedderTriggeredAndSameOriginRedirected": {
|
3285
3285
|
"message": "Prerendering triggered by Chrome internal (e.g., Omnibox prerendering) is canceled because the navigation is redirected to another same-origin page."
|
3286
3286
|
},
|
3287
|
+
"panels/application/components/Prerender2.ts | FailToGetMemoryUsage": {
|
3288
|
+
"message": "Fail to get memory usage"
|
3289
|
+
},
|
3287
3290
|
"panels/application/components/Prerender2.ts | InProgressNavigation": {
|
3288
3291
|
"message": "InProgressNavigation."
|
3289
3292
|
},
|
@@ -3305,6 +3308,9 @@
|
|
3305
3308
|
"panels/application/components/Prerender2.ts | MaxNumOfRunningPrerendersExceeded": {
|
3306
3309
|
"message": "Max number of prerendering exceeded."
|
3307
3310
|
},
|
3311
|
+
"panels/application/components/Prerender2.ts | MemoryLimitExceeded": {
|
3312
|
+
"message": "Memory limit exceeded"
|
3313
|
+
},
|
3308
3314
|
"panels/application/components/Prerender2.ts | MixedContent": {
|
3309
3315
|
"message": "Prerendering is canceled by a mixed content frame."
|
3310
3316
|
},
|
@@ -3284,6 +3284,9 @@
|
|
3284
3284
|
"panels/application/components/Prerender2.ts | EmbedderTriggeredAndSameOriginRedirected": {
|
3285
3285
|
"message": "P̂ŕêŕêńd̂ér̂ín̂ǵ t̂ŕîǵĝér̂éd̂ b́ŷ Ćĥŕôḿê ín̂t́êŕn̂ál̂ (é.ĝ., Óm̂ńîb́ôx́ p̂ŕêŕêńd̂ér̂ín̂ǵ) îś ĉán̂ćêĺêd́ b̂éĉáûśê t́ĥé n̂áv̂íĝát̂íôń îś r̂éd̂ír̂éĉt́êd́ t̂ó âńôt́ĥér̂ śâḿê-ór̂íĝín̂ ṕâǵê."
|
3286
3286
|
},
|
3287
|
+
"panels/application/components/Prerender2.ts | FailToGetMemoryUsage": {
|
3288
|
+
"message": "F̂áîĺ t̂ó ĝét̂ ḿêḿôŕŷ úŝáĝé"
|
3289
|
+
},
|
3287
3290
|
"panels/application/components/Prerender2.ts | InProgressNavigation": {
|
3288
3291
|
"message": "ÎńP̂ŕôǵr̂éŝśN̂áv̂íĝát̂íôń."
|
3289
3292
|
},
|
@@ -3305,6 +3308,9 @@
|
|
3305
3308
|
"panels/application/components/Prerender2.ts | MaxNumOfRunningPrerendersExceeded": {
|
3306
3309
|
"message": "M̂áx̂ ńûḿb̂ér̂ óf̂ ṕr̂ér̂én̂d́êŕîńĝ éx̂ćêéd̂éd̂."
|
3307
3310
|
},
|
3311
|
+
"panels/application/components/Prerender2.ts | MemoryLimitExceeded": {
|
3312
|
+
"message": "M̂ém̂ór̂ý l̂ím̂ít̂ éx̂ćêéd̂éd̂"
|
3313
|
+
},
|
3308
3314
|
"panels/application/components/Prerender2.ts | MixedContent": {
|
3309
3315
|
"message": "P̂ŕêŕêńd̂ér̂ín̂ǵ îś ĉán̂ćêĺêd́ b̂ý â ḿîx́êd́ ĉón̂t́êńt̂ f́r̂ám̂é."
|
3310
3316
|
},
|
@@ -63,7 +63,7 @@ inspectorBackend.registerEnum("Audits.HeavyAdReason", {NetworkTotalLimit: "Netwo
|
|
63
63
|
inspectorBackend.registerEnum("Audits.ContentSecurityPolicyViolationType", {KInlineViolation: "kInlineViolation", KEvalViolation: "kEvalViolation", KURLViolation: "kURLViolation", KTrustedTypesSinkViolation: "kTrustedTypesSinkViolation", KTrustedTypesPolicyViolation: "kTrustedTypesPolicyViolation", KWasmEvalViolation: "kWasmEvalViolation"});
|
64
64
|
inspectorBackend.registerEnum("Audits.SharedArrayBufferIssueType", {TransferIssue: "TransferIssue", CreationIssue: "CreationIssue"});
|
65
65
|
inspectorBackend.registerEnum("Audits.TwaQualityEnforcementViolationType", {KHttpError: "kHttpError", KUnavailableOffline: "kUnavailableOffline", KDigitalAssetLinks: "kDigitalAssetLinks"});
|
66
|
-
inspectorBackend.registerEnum("Audits.AttributionReportingIssueType", {PermissionPolicyDisabled: "PermissionPolicyDisabled", AttributionSourceUntrustworthyOrigin: "AttributionSourceUntrustworthyOrigin", AttributionUntrustworthyOrigin: "AttributionUntrustworthyOrigin", InvalidHeader: "InvalidHeader"});
|
66
|
+
inspectorBackend.registerEnum("Audits.AttributionReportingIssueType", {PermissionPolicyDisabled: "PermissionPolicyDisabled", AttributionSourceUntrustworthyOrigin: "AttributionSourceUntrustworthyOrigin", AttributionUntrustworthyOrigin: "AttributionUntrustworthyOrigin", UntrustworthyReportingOrigin: "UntrustworthyReportingOrigin", InsecureContext: "InsecureContext", InvalidHeader: "InvalidHeader", InvalidRegisterTriggerHeader: "InvalidRegisterTriggerHeader"});
|
67
67
|
inspectorBackend.registerEnum("Audits.GenericIssueErrorType", {CrossOriginPortalPostMessageError: "CrossOriginPortalPostMessageError"});
|
68
68
|
inspectorBackend.registerEnum("Audits.DeprecationIssueType", {AuthorizationCoveredByWildcard: "AuthorizationCoveredByWildcard", CanRequestURLHTTPContainingNewline: "CanRequestURLHTTPContainingNewline", ChromeLoadTimesConnectionInfo: "ChromeLoadTimesConnectionInfo", ChromeLoadTimesFirstPaintAfterLoadTime: "ChromeLoadTimesFirstPaintAfterLoadTime", ChromeLoadTimesWasAlternateProtocolAvailable: "ChromeLoadTimesWasAlternateProtocolAvailable", CookieWithTruncatingChar: "CookieWithTruncatingChar", CrossOriginAccessBasedOnDocumentDomain: "CrossOriginAccessBasedOnDocumentDomain", CrossOriginWindowAlert: "CrossOriginWindowAlert", CrossOriginWindowConfirm: "CrossOriginWindowConfirm", CSSSelectorInternalMediaControlsOverlayCastButton: "CSSSelectorInternalMediaControlsOverlayCastButton", DeprecationExample: "DeprecationExample", DocumentDomainSettingWithoutOriginAgentClusterHeader: "DocumentDomainSettingWithoutOriginAgentClusterHeader", EventPath: "EventPath", ExpectCTHeader: "ExpectCTHeader", GeolocationInsecureOrigin: "GeolocationInsecureOrigin", GeolocationInsecureOriginDeprecatedNotRemoved: "GeolocationInsecureOriginDeprecatedNotRemoved", GetUserMediaInsecureOrigin: "GetUserMediaInsecureOrigin", HostCandidateAttributeGetter: "HostCandidateAttributeGetter", IdentityInCanMakePaymentEvent: "IdentityInCanMakePaymentEvent", InsecurePrivateNetworkSubresourceRequest: "InsecurePrivateNetworkSubresourceRequest", LegacyConstraintGoogIPv6: "LegacyConstraintGoogIPv6", LocalCSSFileExtensionRejected: "LocalCSSFileExtensionRejected", MediaSourceAbortRemove: "MediaSourceAbortRemove", MediaSourceDurationTruncatingBuffered: "MediaSourceDurationTruncatingBuffered", NavigateEventRestoreScroll: "NavigateEventRestoreScroll", NavigateEventTransitionWhile: "NavigateEventTransitionWhile", NoSysexWebMIDIWithoutPermission: "NoSysexWebMIDIWithoutPermission", NotificationInsecureOrigin: "NotificationInsecureOrigin", NotificationPermissionRequestedIframe: "NotificationPermissionRequestedIframe", ObsoleteWebRtcCipherSuite: "ObsoleteWebRtcCipherSuite", OpenWebDatabaseInsecureContext: "OpenWebDatabaseInsecureContext", OverflowVisibleOnReplacedElement: "OverflowVisibleOnReplacedElement", PictureSourceSrc: "PictureSourceSrc", PrefixedCancelAnimationFrame: "PrefixedCancelAnimationFrame", PrefixedRequestAnimationFrame: "PrefixedRequestAnimationFrame", PrefixedStorageInfo: "PrefixedStorageInfo", PrefixedVideoDisplayingFullscreen: "PrefixedVideoDisplayingFullscreen", PrefixedVideoEnterFullscreen: "PrefixedVideoEnterFullscreen", PrefixedVideoEnterFullScreen: "PrefixedVideoEnterFullScreen", PrefixedVideoExitFullscreen: "PrefixedVideoExitFullscreen", PrefixedVideoExitFullScreen: "PrefixedVideoExitFullScreen", PrefixedVideoSupportsFullscreen: "PrefixedVideoSupportsFullscreen", RangeExpand: "RangeExpand", RequestedSubresourceWithEmbeddedCredentials: "RequestedSubresourceWithEmbeddedCredentials", RTCConstraintEnableDtlsSrtpFalse: "RTCConstraintEnableDtlsSrtpFalse", RTCConstraintEnableDtlsSrtpTrue: "RTCConstraintEnableDtlsSrtpTrue", RTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics: "RTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics", RTCPeerConnectionSdpSemanticsPlanB: "RTCPeerConnectionSdpSemanticsPlanB", RtcpMuxPolicyNegotiate: "RtcpMuxPolicyNegotiate", SharedArrayBufferConstructedWithoutIsolation: "SharedArrayBufferConstructedWithoutIsolation", TextToSpeech_DisallowedByAutoplay: "TextToSpeech_DisallowedByAutoplay", V8SharedArrayBufferConstructedInExtensionWithoutIsolation: "V8SharedArrayBufferConstructedInExtensionWithoutIsolation", XHRJSONEncodingDetection: "XHRJSONEncodingDetection", XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload: "XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload", XRSupportsSession: "XRSupportsSession"});
|
69
69
|
inspectorBackend.registerEnum("Audits.ClientHintIssueReason", {MetaTagAllowListInvalidOrigin: "MetaTagAllowListInvalidOrigin", MetaTagModifiedHTML: "MetaTagModifiedHTML"});
|
@@ -338,8 +338,8 @@ inspectorBackend.registerCommand("IO.resolveBlob", [{"name": "objectId", "type":
|
|
338
338
|
// IndexedDB.
|
339
339
|
inspectorBackend.registerEnum("IndexedDB.KeyType", {Number: "number", String: "string", Date: "date", Array: "array"});
|
340
340
|
inspectorBackend.registerEnum("IndexedDB.KeyPathType", {Null: "null", String: "string", Array: "array"});
|
341
|
-
inspectorBackend.registerCommand("IndexedDB.clearObjectStore", [{"name": "securityOrigin", "type": "string", "optional":
|
342
|
-
inspectorBackend.registerCommand("IndexedDB.deleteDatabase", [{"name": "securityOrigin", "type": "string", "optional":
|
341
|
+
inspectorBackend.registerCommand("IndexedDB.clearObjectStore", [{"name": "securityOrigin", "type": "string", "optional": true}, {"name": "storageKey", "type": "string", "optional": true}, {"name": "databaseName", "type": "string", "optional": false}, {"name": "objectStoreName", "type": "string", "optional": false}], []);
|
342
|
+
inspectorBackend.registerCommand("IndexedDB.deleteDatabase", [{"name": "securityOrigin", "type": "string", "optional": true}, {"name": "storageKey", "type": "string", "optional": true}, {"name": "databaseName", "type": "string", "optional": false}], []);
|
343
343
|
inspectorBackend.registerCommand("IndexedDB.deleteObjectStoreEntries", [{"name": "securityOrigin", "type": "string", "optional": false}, {"name": "databaseName", "type": "string", "optional": false}, {"name": "objectStoreName", "type": "string", "optional": false}, {"name": "keyRange", "type": "object", "optional": false}], []);
|
344
344
|
inspectorBackend.registerCommand("IndexedDB.disable", [], []);
|
345
345
|
inspectorBackend.registerCommand("IndexedDB.enable", [], []);
|
@@ -567,7 +567,7 @@ inspectorBackend.registerEnum("Page.ReferrerPolicy", {NoReferrer: "noReferrer",
|
|
567
567
|
inspectorBackend.registerEnum("Page.NavigationType", {Navigation: "Navigation", BackForwardCacheRestore: "BackForwardCacheRestore"});
|
568
568
|
inspectorBackend.registerEnum("Page.BackForwardCacheNotRestoredReason", {NotPrimaryMainFrame: "NotPrimaryMainFrame", BackForwardCacheDisabled: "BackForwardCacheDisabled", RelatedActiveContentsExist: "RelatedActiveContentsExist", HTTPStatusNotOK: "HTTPStatusNotOK", SchemeNotHTTPOrHTTPS: "SchemeNotHTTPOrHTTPS", Loading: "Loading", WasGrantedMediaAccess: "WasGrantedMediaAccess", DisableForRenderFrameHostCalled: "DisableForRenderFrameHostCalled", DomainNotAllowed: "DomainNotAllowed", HTTPMethodNotGET: "HTTPMethodNotGET", SubframeIsNavigating: "SubframeIsNavigating", Timeout: "Timeout", CacheLimit: "CacheLimit", JavaScriptExecution: "JavaScriptExecution", RendererProcessKilled: "RendererProcessKilled", RendererProcessCrashed: "RendererProcessCrashed", SchedulerTrackedFeatureUsed: "SchedulerTrackedFeatureUsed", ConflictingBrowsingInstance: "ConflictingBrowsingInstance", CacheFlushed: "CacheFlushed", ServiceWorkerVersionActivation: "ServiceWorkerVersionActivation", SessionRestored: "SessionRestored", ServiceWorkerPostMessage: "ServiceWorkerPostMessage", EnteredBackForwardCacheBeforeServiceWorkerHostAdded: "EnteredBackForwardCacheBeforeServiceWorkerHostAdded", RenderFrameHostReused_SameSite: "RenderFrameHostReused_SameSite", RenderFrameHostReused_CrossSite: "RenderFrameHostReused_CrossSite", ServiceWorkerClaim: "ServiceWorkerClaim", IgnoreEventAndEvict: "IgnoreEventAndEvict", HaveInnerContents: "HaveInnerContents", TimeoutPuttingInCache: "TimeoutPuttingInCache", BackForwardCacheDisabledByLowMemory: "BackForwardCacheDisabledByLowMemory", BackForwardCacheDisabledByCommandLine: "BackForwardCacheDisabledByCommandLine", NetworkRequestDatAPIpeDrainedAsBytesConsumer: "NetworkRequestDatapipeDrainedAsBytesConsumer", NetworkRequestRedirected: "NetworkRequestRedirected", NetworkRequestTimeout: "NetworkRequestTimeout", NetworkExceedsBufferLimit: "NetworkExceedsBufferLimit", NavigationCancelledWhileRestoring: "NavigationCancelledWhileRestoring", NotMostRecentNavigationEntry: "NotMostRecentNavigationEntry", BackForwardCacheDisabledForPrerender: "BackForwardCacheDisabledForPrerender", UserAgentOverrideDiffers: "UserAgentOverrideDiffers", ForegroundCacheLimit: "ForegroundCacheLimit", BrowsingInstanceNotSwapped: "BrowsingInstanceNotSwapped", BackForwardCacheDisabledForDelegate: "BackForwardCacheDisabledForDelegate", UnloadHandlerExistsInMainFrame: "UnloadHandlerExistsInMainFrame", UnloadHandlerExistsInSubFrame: "UnloadHandlerExistsInSubFrame", ServiceWorkerUnregistration: "ServiceWorkerUnregistration", CacheControlNoStore: "CacheControlNoStore", CacheControlNoStoreCookieModified: "CacheControlNoStoreCookieModified", CacheControlNoStoreHTTPOnlyCookieModified: "CacheControlNoStoreHTTPOnlyCookieModified", NoResponseHead: "NoResponseHead", Unknown: "Unknown", ActivationNavigationsDisallowedForBug1234857: "ActivationNavigationsDisallowedForBug1234857", ErrorDocument: "ErrorDocument", FencedFramesEmbedder: "FencedFramesEmbedder", WebSocket: "WebSocket", WebTransport: "WebTransport", WebRTC: "WebRTC", MainResourceHasCacheControlNoStore: "MainResourceHasCacheControlNoStore", MainResourceHasCacheControlNoCache: "MainResourceHasCacheControlNoCache", SubresourceHasCacheControlNoStore: "SubresourceHasCacheControlNoStore", SubresourceHasCacheControlNoCache: "SubresourceHasCacheControlNoCache", ContainsPlugins: "ContainsPlugins", DocumentLoaded: "DocumentLoaded", DedicatedWorkerOrWorklet: "DedicatedWorkerOrWorklet", OutstandingNetworkRequestOthers: "OutstandingNetworkRequestOthers", OutstandingIndexedDBTransaction: "OutstandingIndexedDBTransaction", RequestedNotificationsPermission: "RequestedNotificationsPermission", RequestedMIDIPermission: "RequestedMIDIPermission", RequestedAudioCapturePermission: "RequestedAudioCapturePermission", RequestedVideoCapturePermission: "RequestedVideoCapturePermission", RequestedBackForwardCacheBlockedSensors: "RequestedBackForwardCacheBlockedSensors", RequestedBackgroundWorkPermission: "RequestedBackgroundWorkPermission", BroadcastChannel: "BroadcastChannel", IndexedDBConnection: "IndexedDBConnection", WebXR: "WebXR", SharedWorker: "SharedWorker", WebLocks: "WebLocks", WebHID: "WebHID", WebShare: "WebShare", RequestedStorageAccessGrant: "RequestedStorageAccessGrant", WebNfc: "WebNfc", OutstandingNetworkRequestFetch: "OutstandingNetworkRequestFetch", OutstandingNetworkRequestXHR: "OutstandingNetworkRequestXHR", AppBanner: "AppBanner", Printing: "Printing", WebDatabase: "WebDatabase", PictureInPicture: "PictureInPicture", Portal: "Portal", SpeechRecognizer: "SpeechRecognizer", IdleManager: "IdleManager", PaymentManager: "PaymentManager", SpeechSynthesis: "SpeechSynthesis", KeyboardLock: "KeyboardLock", WebOTPService: "WebOTPService", OutstandingNetworkRequestDirectSocket: "OutstandingNetworkRequestDirectSocket", InjectedJavascript: "InjectedJavascript", InjectedStyleSheet: "InjectedStyleSheet", Dummy: "Dummy", ContentSecurityHandler: "ContentSecurityHandler", ContentWebAuthenticationAPI: "ContentWebAuthenticationAPI", ContentFileChooser: "ContentFileChooser", ContentSerial: "ContentSerial", ContentFileSystemAccess: "ContentFileSystemAccess", ContentMediaDevicesDispatcherHost: "ContentMediaDevicesDispatcherHost", ContentWebBluetooth: "ContentWebBluetooth", ContentWebUSB: "ContentWebUSB", ContentMediaSessionService: "ContentMediaSessionService", ContentScreenReader: "ContentScreenReader", EmbedderPopupBlockerTabHelper: "EmbedderPopupBlockerTabHelper", EmbedderSafeBrowsingTriggeredPopupBlocker: "EmbedderSafeBrowsingTriggeredPopupBlocker", EmbedderSafeBrowsingThreatDetails: "EmbedderSafeBrowsingThreatDetails", EmbedderAppBannerManager: "EmbedderAppBannerManager", EmbedderDomDistillerViewerSource: "EmbedderDomDistillerViewerSource", EmbedderDomDistillerSelfDeletingRequestDelegate: "EmbedderDomDistillerSelfDeletingRequestDelegate", EmbedderOomInterventionTabHelper: "EmbedderOomInterventionTabHelper", EmbedderOfflinePage: "EmbedderOfflinePage", EmbedderChromePasswordManagerClientBindCredentialManager: "EmbedderChromePasswordManagerClientBindCredentialManager", EmbedderPermissionRequestManager: "EmbedderPermissionRequestManager", EmbedderModalDialog: "EmbedderModalDialog", EmbedderExtensions: "EmbedderExtensions", EmbedderExtensionMessaging: "EmbedderExtensionMessaging", EmbedderExtensionMessagingForOpenPort: "EmbedderExtensionMessagingForOpenPort", EmbedderExtensionSentMessageToCachedFrame: "EmbedderExtensionSentMessageToCachedFrame"});
|
569
569
|
inspectorBackend.registerEnum("Page.BackForwardCacheNotRestoredReasonType", {SupportPending: "SupportPending", PageSupportNeeded: "PageSupportNeeded", Circumstantial: "Circumstantial"});
|
570
|
-
inspectorBackend.registerEnum("Page.PrerenderFinalStatus", {Activated: "Activated", Destroyed: "Destroyed", LowEndDevice: "LowEndDevice", CrossOriginRedirect: "CrossOriginRedirect", CrossOriginNavigation: "CrossOriginNavigation", InvalidSchemeRedirect: "InvalidSchemeRedirect", InvalidSchemeNavigation: "InvalidSchemeNavigation", InProgressNavigation: "InProgressNavigation", NavigationRequestBlockedByCsp: "NavigationRequestBlockedByCsp", MainFrameNavigation: "MainFrameNavigation", MojoBinderPolicy: "MojoBinderPolicy", RendererProcessCrashed: "RendererProcessCrashed", RendererProcessKilled: "RendererProcessKilled", Download: "Download", TriggerDestroyed: "TriggerDestroyed", NavigationNotCommitted: "NavigationNotCommitted", NavigationBadHttpStatus: "NavigationBadHttpStatus", ClientCertRequested: "ClientCertRequested", NavigationRequestNetworkError: "NavigationRequestNetworkError", MaxNumOfRunningPrerendersExceeded: "MaxNumOfRunningPrerendersExceeded", CancelAllHostsForTesting: "CancelAllHostsForTesting", DidFailLoad: "DidFailLoad", Stop: "Stop", SslCertificateError: "SslCertificateError", LoginAuthRequested: "LoginAuthRequested", UaChangeRequiresReload: "UaChangeRequiresReload", BlockedByClient: "BlockedByClient", AudioOutputDeviceRequested: "AudioOutputDeviceRequested", MixedContent: "MixedContent", TriggerBackgrounded: "TriggerBackgrounded", EmbedderTriggeredAndSameOriginRedirected: "EmbedderTriggeredAndSameOriginRedirected", EmbedderTriggeredAndCrossOriginRedirected: "EmbedderTriggeredAndCrossOriginRedirected", EmbedderTriggeredAndDestroyed: "EmbedderTriggeredAndDestroyed"});
|
570
|
+
inspectorBackend.registerEnum("Page.PrerenderFinalStatus", {Activated: "Activated", Destroyed: "Destroyed", LowEndDevice: "LowEndDevice", CrossOriginRedirect: "CrossOriginRedirect", CrossOriginNavigation: "CrossOriginNavigation", InvalidSchemeRedirect: "InvalidSchemeRedirect", InvalidSchemeNavigation: "InvalidSchemeNavigation", InProgressNavigation: "InProgressNavigation", NavigationRequestBlockedByCsp: "NavigationRequestBlockedByCsp", MainFrameNavigation: "MainFrameNavigation", MojoBinderPolicy: "MojoBinderPolicy", RendererProcessCrashed: "RendererProcessCrashed", RendererProcessKilled: "RendererProcessKilled", Download: "Download", TriggerDestroyed: "TriggerDestroyed", NavigationNotCommitted: "NavigationNotCommitted", NavigationBadHttpStatus: "NavigationBadHttpStatus", ClientCertRequested: "ClientCertRequested", NavigationRequestNetworkError: "NavigationRequestNetworkError", MaxNumOfRunningPrerendersExceeded: "MaxNumOfRunningPrerendersExceeded", CancelAllHostsForTesting: "CancelAllHostsForTesting", DidFailLoad: "DidFailLoad", Stop: "Stop", SslCertificateError: "SslCertificateError", LoginAuthRequested: "LoginAuthRequested", UaChangeRequiresReload: "UaChangeRequiresReload", BlockedByClient: "BlockedByClient", AudioOutputDeviceRequested: "AudioOutputDeviceRequested", MixedContent: "MixedContent", TriggerBackgrounded: "TriggerBackgrounded", EmbedderTriggeredAndSameOriginRedirected: "EmbedderTriggeredAndSameOriginRedirected", EmbedderTriggeredAndCrossOriginRedirected: "EmbedderTriggeredAndCrossOriginRedirected", EmbedderTriggeredAndDestroyed: "EmbedderTriggeredAndDestroyed", MemoryLimitExceeded: "MemoryLimitExceeded", FailToGetMemoryUsage: "FailToGetMemoryUsage"});
|
571
571
|
inspectorBackend.registerEvent("Page.domContentEventFired", ["timestamp"]);
|
572
572
|
inspectorBackend.registerEnum("Page.FileChooserOpenedEventMode", {SelectSingle: "selectSingle", SelectMultiple: "selectMultiple"});
|
573
573
|
inspectorBackend.registerEvent("Page.fileChooserOpened", ["frameId", "mode", "backendNodeId"]);
|
@@ -965,7 +965,10 @@ export namespace Audits {
|
|
965
965
|
PermissionPolicyDisabled = 'PermissionPolicyDisabled',
|
966
966
|
AttributionSourceUntrustworthyOrigin = 'AttributionSourceUntrustworthyOrigin',
|
967
967
|
AttributionUntrustworthyOrigin = 'AttributionUntrustworthyOrigin',
|
968
|
+
UntrustworthyReportingOrigin = 'UntrustworthyReportingOrigin',
|
969
|
+
InsecureContext = 'InsecureContext',
|
968
970
|
InvalidHeader = 'InvalidHeader',
|
971
|
+
InvalidRegisterTriggerHeader = 'InvalidRegisterTriggerHeader',
|
969
972
|
}
|
970
973
|
|
971
974
|
/**
|
@@ -974,6 +977,9 @@ export namespace Audits {
|
|
974
977
|
*/
|
975
978
|
export interface AttributionReportingIssueDetails {
|
976
979
|
violationType: AttributionReportingIssueType;
|
980
|
+
/**
|
981
|
+
* TODO(apaseltiner): Remove this once it is no longer referenced by the frontend.
|
982
|
+
*/
|
977
983
|
frame?: AffectedFrame;
|
978
984
|
request?: AffectedRequest;
|
979
985
|
violatingNodeId?: DOM.BackendNodeId;
|
@@ -5858,9 +5864,14 @@ export namespace IndexedDB {
|
|
5858
5864
|
|
5859
5865
|
export interface ClearObjectStoreRequest {
|
5860
5866
|
/**
|
5867
|
+
* At least and at most one of securityOrigin, storageKey must be specified.
|
5861
5868
|
* Security origin.
|
5862
5869
|
*/
|
5863
|
-
securityOrigin
|
5870
|
+
securityOrigin?: string;
|
5871
|
+
/**
|
5872
|
+
* Storage key.
|
5873
|
+
*/
|
5874
|
+
storageKey?: string;
|
5864
5875
|
/**
|
5865
5876
|
* Database name.
|
5866
5877
|
*/
|
@@ -5873,9 +5884,14 @@ export namespace IndexedDB {
|
|
5873
5884
|
|
5874
5885
|
export interface DeleteDatabaseRequest {
|
5875
5886
|
/**
|
5887
|
+
* At least and at most one of securityOrigin, storageKey must be specified.
|
5876
5888
|
* Security origin.
|
5877
5889
|
*/
|
5878
|
-
securityOrigin
|
5890
|
+
securityOrigin?: string;
|
5891
|
+
/**
|
5892
|
+
* Storage key.
|
5893
|
+
*/
|
5894
|
+
storageKey?: string;
|
5879
5895
|
/**
|
5880
5896
|
* Database name.
|
5881
5897
|
*/
|
@@ -11110,6 +11126,8 @@ export namespace Page {
|
|
11110
11126
|
EmbedderTriggeredAndSameOriginRedirected = 'EmbedderTriggeredAndSameOriginRedirected',
|
11111
11127
|
EmbedderTriggeredAndCrossOriginRedirected = 'EmbedderTriggeredAndCrossOriginRedirected',
|
11112
11128
|
EmbedderTriggeredAndDestroyed = 'EmbedderTriggeredAndDestroyed',
|
11129
|
+
MemoryLimitExceeded = 'MemoryLimitExceeded',
|
11130
|
+
FailToGetMemoryUsage = 'FailToGetMemoryUsage',
|
11113
11131
|
}
|
11114
11132
|
|
11115
11133
|
export interface AddScriptToEvaluateOnLoadRequest {
|
@@ -15154,8 +15172,8 @@ export namespace Debugger {
|
|
15154
15172
|
*/
|
15155
15173
|
totalNumberOfLines: integer;
|
15156
15174
|
/**
|
15157
|
-
* The offsets of all function bodies
|
15158
|
-
*
|
15175
|
+
* The offsets of all function bodies, in the format [start1, end1,
|
15176
|
+
* start2, end2, ...] where all ends are exclusive.
|
15159
15177
|
*/
|
15160
15178
|
functionBodyOffsets: integer[];
|
15161
15179
|
/**
|
@@ -14,7 +14,10 @@ export const enum IssueCode {
|
|
14
14
|
AttributionSourceUntrustworthyOrigin = 'AttributionReportingIssue::AttributionSourceUntrustworthyOrigin',
|
15
15
|
AttributionUntrustworthyFrameOrigin = 'AttributionReportingIssue::AttributionUntrustworthyFrameOrigin',
|
16
16
|
AttributionUntrustworthyOrigin = 'AttributionReportingIssue::AttributionUntrustworthyOrigin',
|
17
|
+
UntrustworthyReportingOrigin = 'AttributionReportingIssue::UntrustworthyReportingOrigin',
|
18
|
+
InsecureContext = 'AttributionReportingIssue::InsecureContext',
|
17
19
|
InvalidHeader = 'AttributionReportingIssue::InvalidHeader',
|
20
|
+
InvalidRegisterTriggerHeader = 'AttributionReportingIssue::InvalidRegisterTriggerHeader',
|
18
21
|
}
|
19
22
|
|
20
23
|
function getIssueCode(details: Protocol.Audits.AttributionReportingIssueDetails): IssueCode {
|
@@ -27,8 +30,14 @@ function getIssueCode(details: Protocol.Audits.AttributionReportingIssueDetails)
|
|
27
30
|
case Protocol.Audits.AttributionReportingIssueType.AttributionUntrustworthyOrigin:
|
28
31
|
return details.frame !== undefined ? IssueCode.AttributionUntrustworthyFrameOrigin :
|
29
32
|
IssueCode.AttributionUntrustworthyOrigin;
|
33
|
+
case Protocol.Audits.AttributionReportingIssueType.UntrustworthyReportingOrigin:
|
34
|
+
return IssueCode.UntrustworthyReportingOrigin;
|
35
|
+
case Protocol.Audits.AttributionReportingIssueType.InsecureContext:
|
36
|
+
return IssueCode.InsecureContext;
|
30
37
|
case Protocol.Audits.AttributionReportingIssueType.InvalidHeader:
|
31
38
|
return IssueCode.InvalidHeader;
|
39
|
+
case Protocol.Audits.AttributionReportingIssueType.InvalidRegisterTriggerHeader:
|
40
|
+
return IssueCode.InvalidRegisterTriggerHeader;
|
32
41
|
}
|
33
42
|
}
|
34
43
|
|
@@ -83,11 +92,17 @@ export class AttributionReportingIssue extends Issue<IssueCode> {
|
|
83
92
|
file: 'arAttributionUntrustworthyOrigin.md',
|
84
93
|
links: [],
|
85
94
|
};
|
95
|
+
case IssueCode.UntrustworthyReportingOrigin:
|
96
|
+
return null;
|
97
|
+
case IssueCode.InsecureContext:
|
98
|
+
return null;
|
86
99
|
case IssueCode.InvalidHeader:
|
87
100
|
return {
|
88
101
|
file: 'arInvalidHeader.md',
|
89
102
|
links: [],
|
90
103
|
};
|
104
|
+
case IssueCode.InvalidRegisterTriggerHeader:
|
105
|
+
return null;
|
91
106
|
}
|
92
107
|
}
|
93
108
|
|
@@ -144,6 +144,16 @@ const UIStrings = {
|
|
144
144
|
*/
|
145
145
|
EmbedderTriggeredAndDestroyed:
|
146
146
|
'Prerendering triggered by Chrome internal (e.g., Omnibox prerendering) is is destroyed in the destructor.',
|
147
|
+
|
148
|
+
/**
|
149
|
+
*@description Description text for Prerender2 cancellation status MemoryLimitExceeded.
|
150
|
+
*/
|
151
|
+
MemoryLimitExceeded: 'Memory limit exceeded',
|
152
|
+
|
153
|
+
/**
|
154
|
+
*@description Description text for Prerender2 cancellation status FailToGetMemoryUsage.
|
155
|
+
*/
|
156
|
+
FailToGetMemoryUsage: 'Fail to get memory usage',
|
147
157
|
};
|
148
158
|
|
149
159
|
const str_ = i18n.i18n.registerUIStrings('panels/application/components/Prerender2.ts', UIStrings);
|
@@ -185,4 +195,6 @@ export const Prerender2ReasonDescription = {
|
|
185
195
|
'EmbedderTriggeredAndCrossOriginRedirected':
|
186
196
|
{name: i18nLazyString(UIStrings.EmbedderTriggeredAndCrossOriginRedirected)},
|
187
197
|
'EmbedderTriggeredAndDestroyed': {name: i18nLazyString(UIStrings.EmbedderTriggeredAndDestroyed)},
|
198
|
+
'MemoryLimitExceeded': {name: i18nLazyString(UIStrings.MemoryLimitExceeded)},
|
199
|
+
'FailToGetMemoryUsage': {name: i18nLazyString(UIStrings.FailToGetMemoryUsage)},
|
188
200
|
};
|
@@ -260,6 +260,18 @@ export class RequestHeadersComponent extends HTMLElement {
|
|
260
260
|
|
261
261
|
const mergedHeaders = mergeHeadersWithIssues(this.#request.sortedResponseHeaders.slice(), headersWithIssues);
|
262
262
|
|
263
|
+
const blockedResponseCookies = this.#request.blockedResponseCookies();
|
264
|
+
const blockedCookieLineToReasons = new Map<string, Protocol.Network.SetCookieBlockedReason[]>(
|
265
|
+
blockedResponseCookies?.map(c => [c.cookieLine, c.blockedReasons]));
|
266
|
+
for (const header of mergedHeaders) {
|
267
|
+
if (header.name.toLowerCase() === 'set-cookie' && header.value) {
|
268
|
+
const matchingBlockedReasons = blockedCookieLineToReasons.get(header.value.toString());
|
269
|
+
if (matchingBlockedReasons) {
|
270
|
+
header.setCookieBlockedReasons = matchingBlockedReasons;
|
271
|
+
}
|
272
|
+
}
|
273
|
+
}
|
274
|
+
|
263
275
|
const toggleShowRaw = (): void => {
|
264
276
|
this.#showResponseHeadersText = !this.#showResponseHeadersText;
|
265
277
|
this.#render();
|
@@ -367,45 +379,60 @@ export class RequestHeadersComponent extends HTMLElement {
|
|
367
379
|
</div>
|
368
380
|
` : ''}${header.name}:
|
369
381
|
</div>
|
370
|
-
${
|
382
|
+
<div class="header-value ${header.headerValueIncorrect ? 'header-warning' : ''}">
|
383
|
+
${header.value?.toString() || ''}
|
384
|
+
${this.#maybeRenderHeaderValueSuffix(header)}
|
385
|
+
</div>
|
371
386
|
</div>
|
372
|
-
${this.#
|
387
|
+
${this.#maybeRenderBlockedDetails(header.blockedDetails)}
|
373
388
|
`;
|
374
389
|
// clang-format on
|
375
390
|
}
|
376
391
|
|
377
|
-
#
|
392
|
+
#maybeRenderHeaderValueSuffix(header: HeaderDescriptor): LitHtml.LitTemplate {
|
378
393
|
const headerId = header.name.toLowerCase();
|
394
|
+
|
395
|
+
if (headerId === 'set-cookie' && header.setCookieBlockedReasons) {
|
396
|
+
const titleText =
|
397
|
+
header.setCookieBlockedReasons.map(SDK.NetworkRequest.setCookieBlockedReasonToUiString).join('\n');
|
398
|
+
// Disabled until https://crbug.com/1079231 is fixed.
|
399
|
+
// clang-format off
|
400
|
+
return html`
|
401
|
+
<${IconButton.Icon.Icon.litTagName} class="inline-icon" title=${titleText} .data=${{
|
402
|
+
iconName: 'warning_icon',
|
403
|
+
width: '12px',
|
404
|
+
height: '12px',
|
405
|
+
} as IconButton.Icon.IconData}>
|
406
|
+
</${IconButton.Icon.Icon.litTagName}>
|
407
|
+
`;
|
408
|
+
// clang-format on
|
409
|
+
}
|
410
|
+
|
379
411
|
if (headerId === 'x-client-data') {
|
380
412
|
const data = ClientVariations.parseClientVariations(header.value?.toString() || '');
|
381
413
|
const output = ClientVariations.formatClientVariations(
|
382
414
|
data, i18nString(UIStrings.activeClientExperimentVariation),
|
383
415
|
i18nString(UIStrings.activeClientExperimentVariationIds));
|
384
416
|
return html`
|
385
|
-
<div
|
386
|
-
|
387
|
-
<div>${i18nString(UIStrings.decoded)}</div>
|
388
|
-
<code>${output}</code>
|
389
|
-
</div>
|
417
|
+
<div>${i18nString(UIStrings.decoded)}</div>
|
418
|
+
<code>${output}</code>
|
390
419
|
`;
|
391
420
|
}
|
392
421
|
|
393
|
-
return
|
394
|
-
<div class="header-value ${header.headerValueIncorrect ? 'header-warning' : ''}">
|
395
|
-
${header.value?.toString() || ''}
|
396
|
-
</div>
|
397
|
-
`;
|
422
|
+
return LitHtml.nothing;
|
398
423
|
}
|
399
424
|
|
400
|
-
#
|
401
|
-
if (!
|
425
|
+
#maybeRenderBlockedDetails(blockedDetails?: BlockedDetailsDescriptor): LitHtml.LitTemplate {
|
426
|
+
if (!blockedDetails) {
|
402
427
|
return LitHtml.nothing;
|
403
428
|
}
|
429
|
+
// Disabled until https://crbug.com/1079231 is fixed.
|
430
|
+
// clang-format off
|
404
431
|
return html`
|
405
432
|
<div class="call-to-action">
|
406
433
|
<div class="call-to-action-body">
|
407
|
-
<div class="explanation">${
|
408
|
-
${
|
434
|
+
<div class="explanation">${blockedDetails.explanation()}</div>
|
435
|
+
${blockedDetails.examples.map(example => html`
|
409
436
|
<div class="example">
|
410
437
|
<code>${example.codeSnippet}</code>
|
411
438
|
${example.comment ? html`
|
@@ -413,13 +440,14 @@ export class RequestHeadersComponent extends HTMLElement {
|
|
413
440
|
` : ''}
|
414
441
|
</div>
|
415
442
|
`)}
|
416
|
-
${this.#
|
443
|
+
${this.#maybeRenderBlockedDetailsLink(blockedDetails)}
|
417
444
|
</div>
|
418
445
|
</div>
|
419
446
|
`;
|
447
|
+
// clang-format on
|
420
448
|
}
|
421
449
|
|
422
|
-
#
|
450
|
+
#maybeRenderBlockedDetailsLink(blockedDetails?: BlockedDetailsDescriptor): LitHtml.LitTemplate {
|
423
451
|
if (this.#request && IssuesManager.RelatedIssue.hasIssueOfCategory(this.#request, IssuesManager.Issue.IssueCategory.CrossOriginEmbedderPolicy)) {
|
424
452
|
const followLink = (): void => {
|
425
453
|
Host.userMetrics.issuesPanelOpenedFrom(Host.UserMetrics.IssueOpener.LearnMoreLinkCOEP);
|
@@ -441,9 +469,11 @@ export class RequestHeadersComponent extends HTMLElement {
|
|
441
469
|
</div>
|
442
470
|
`;
|
443
471
|
}
|
444
|
-
if (
|
472
|
+
if (blockedDetails?.link) {
|
473
|
+
// Disabled until https://crbug.com/1079231 is fixed.
|
474
|
+
// clang-format off
|
445
475
|
return html`
|
446
|
-
<x-link href=${
|
476
|
+
<x-link href=${blockedDetails.link.url} class="link">
|
447
477
|
<${IconButton.Icon.Icon.litTagName} class="inline-icon" .data=${{
|
448
478
|
iconName: 'link_icon',
|
449
479
|
color: 'var(--color-link)',
|
@@ -454,6 +484,7 @@ export class RequestHeadersComponent extends HTMLElement {
|
|
454
484
|
>${i18nString(UIStrings.learnMore)}
|
455
485
|
</x-link>
|
456
486
|
`;
|
487
|
+
// clang-format on
|
457
488
|
}
|
458
489
|
return LitHtml.nothing;
|
459
490
|
}
|
@@ -674,7 +705,7 @@ declare global {
|
|
674
705
|
}
|
675
706
|
}
|
676
707
|
|
677
|
-
interface
|
708
|
+
interface BlockedDetailsDescriptor {
|
678
709
|
explanation: () => string;
|
679
710
|
examples: Array<{
|
680
711
|
codeSnippet: string,
|
@@ -689,8 +720,9 @@ interface HeaderDescriptor {
|
|
689
720
|
name: string;
|
690
721
|
value: Object|null;
|
691
722
|
headerValueIncorrect?: boolean|null;
|
692
|
-
|
723
|
+
blockedDetails?: BlockedDetailsDescriptor;
|
693
724
|
headerNotSet: boolean|null;
|
725
|
+
setCookieBlockedReasons?: Protocol.Network.SetCookieBlockedReason[];
|
694
726
|
}
|
695
727
|
|
696
728
|
const BlockedReasonDetails = new Map<Protocol.Network.BlockedReason, HeaderDescriptor>([
|
@@ -700,7 +732,7 @@ const BlockedReasonDetails = new Map<Protocol.Network.BlockedReason, HeaderDescr
|
|
700
732
|
name: 'cross-origin-embedder-policy',
|
701
733
|
value: null,
|
702
734
|
headerValueIncorrect: null,
|
703
|
-
|
735
|
+
blockedDetails: {
|
704
736
|
explanation: i18nLazyString(UIStrings.toEmbedThisFrameInYourDocument),
|
705
737
|
examples: [{codeSnippet: 'Cross-Origin-Embedder-Policy: require-corp', comment: undefined}],
|
706
738
|
link: {url: 'https://web.dev/coop-coep/'},
|
@@ -714,7 +746,7 @@ const BlockedReasonDetails = new Map<Protocol.Network.BlockedReason, HeaderDescr
|
|
714
746
|
name: 'cross-origin-resource-policy',
|
715
747
|
value: null,
|
716
748
|
headerValueIncorrect: null,
|
717
|
-
|
749
|
+
blockedDetails: {
|
718
750
|
explanation: i18nLazyString(UIStrings.toUseThisResourceFromADifferent),
|
719
751
|
examples: [
|
720
752
|
{
|
@@ -737,7 +769,7 @@ const BlockedReasonDetails = new Map<Protocol.Network.BlockedReason, HeaderDescr
|
|
737
769
|
name: 'cross-origin-opener-policy',
|
738
770
|
value: null,
|
739
771
|
headerValueIncorrect: false,
|
740
|
-
|
772
|
+
blockedDetails: {
|
741
773
|
explanation: i18nLazyString(UIStrings.thisDocumentWasBlockedFrom),
|
742
774
|
examples: [],
|
743
775
|
link: {url: 'https://web.dev/coop-coep/'},
|
@@ -751,7 +783,7 @@ const BlockedReasonDetails = new Map<Protocol.Network.BlockedReason, HeaderDescr
|
|
751
783
|
name: 'cross-origin-resource-policy',
|
752
784
|
value: null,
|
753
785
|
headerValueIncorrect: true,
|
754
|
-
|
786
|
+
blockedDetails: {
|
755
787
|
explanation: i18nLazyString(UIStrings.toUseThisResourceFromADifferentSite),
|
756
788
|
examples: [
|
757
789
|
{
|
@@ -770,7 +802,7 @@ const BlockedReasonDetails = new Map<Protocol.Network.BlockedReason, HeaderDescr
|
|
770
802
|
name: 'cross-origin-resource-policy',
|
771
803
|
value: null,
|
772
804
|
headerValueIncorrect: true,
|
773
|
-
|
805
|
+
blockedDetails: {
|
774
806
|
explanation: i18nLazyString(UIStrings.toUseThisResourceFromADifferentOrigin),
|
775
807
|
examples: [
|
776
808
|
{
|
@@ -111,6 +111,7 @@ type SerializableSettings = {
|
|
111
111
|
export class LinearMemoryInspectorController extends SDK.TargetManager.SDKModelObserver<SDK.RuntimeModel.RuntimeModel> {
|
112
112
|
#paneInstance = LinearMemoryInspectorPaneImpl.instance();
|
113
113
|
#bufferIdToRemoteObject: Map<string, SDK.RemoteObject.RemoteObject> = new Map();
|
114
|
+
#bufferIdToHighlightInfo: Map<string, HighlightInfo> = new Map();
|
114
115
|
#settings: Common.Settings.Setting<SerializableSettings>;
|
115
116
|
|
116
117
|
private constructor() {
|
@@ -178,6 +179,18 @@ export class LinearMemoryInspectorController extends SDK.TargetManager.SDKModelO
|
|
178
179
|
};
|
179
180
|
}
|
180
181
|
|
182
|
+
getHighlightInfo(bufferId: string): HighlightInfo|undefined {
|
183
|
+
return this.#bufferIdToHighlightInfo.get(bufferId);
|
184
|
+
}
|
185
|
+
|
186
|
+
#setHighlightInfo(bufferId: string, highlightInfo: HighlightInfo): void {
|
187
|
+
this.#bufferIdToHighlightInfo.set(bufferId, highlightInfo);
|
188
|
+
}
|
189
|
+
|
190
|
+
#resetHighlightInfo(bufferId: string): void {
|
191
|
+
this.#bufferIdToHighlightInfo.delete(bufferId);
|
192
|
+
}
|
193
|
+
|
181
194
|
static async retrieveDWARFMemoryObjectAndAddress(obj: SDK.RemoteObject.RemoteObject):
|
182
195
|
Promise<{obj: SDK.RemoteObject.RemoteObject, address: number}|undefined> {
|
183
196
|
if (obj instanceof Bindings.DebuggerLanguagePlugins.ExtensionRemoteObject) {
|
@@ -253,8 +266,6 @@ export class LinearMemoryInspectorController extends SDK.TargetManager.SDKModelO
|
|
253
266
|
memoryObj = response.obj;
|
254
267
|
}
|
255
268
|
|
256
|
-
const highlightInfo = this.#extractHighlightInfo(obj, memoryAddress);
|
257
|
-
|
258
269
|
if (memoryAddress !== undefined) {
|
259
270
|
Host.userMetrics.linearMemoryInspectorTarget(
|
260
271
|
Host.UserMetrics.LinearMemoryInspectorTarget.DWARFInspectableAddress);
|
@@ -277,9 +288,14 @@ export class LinearMemoryInspectorController extends SDK.TargetManager.SDKModelO
|
|
277
288
|
}
|
278
289
|
const memoryProperty = internalProperties?.find(({name}) => name === '[[WebAssemblyMemory]]');
|
279
290
|
const memory = memoryProperty?.value;
|
280
|
-
|
291
|
+
const highlightInfo = LinearMemoryInspectorController.extractHighlightInfo(obj, memoryAddress);
|
292
|
+
if (highlightInfo !== undefined) {
|
293
|
+
this.#setHighlightInfo(id, highlightInfo);
|
294
|
+
} else {
|
295
|
+
this.#resetHighlightInfo(id);
|
296
|
+
}
|
281
297
|
if (this.#bufferIdToRemoteObject.has(id)) {
|
282
|
-
this.#paneInstance.reveal(id, memoryAddress
|
298
|
+
this.#paneInstance.reveal(id, memoryAddress);
|
283
299
|
void UI.ViewManager.ViewManager.instance().showView('linear-memory-inspector');
|
284
300
|
return;
|
285
301
|
}
|
@@ -288,11 +304,11 @@ export class LinearMemoryInspectorController extends SDK.TargetManager.SDKModelO
|
|
288
304
|
this.#bufferIdToRemoteObject.set(id, buffer.object());
|
289
305
|
const arrayBufferWrapper = new RemoteArrayBufferWrapper(buffer);
|
290
306
|
|
291
|
-
this.#paneInstance.create(id, title, arrayBufferWrapper, memoryAddress
|
307
|
+
this.#paneInstance.create(id, title, arrayBufferWrapper, memoryAddress);
|
292
308
|
void UI.ViewManager.ViewManager.instance().showView('linear-memory-inspector');
|
293
309
|
}
|
294
310
|
|
295
|
-
|
311
|
+
static extractHighlightInfo(obj: SDK.RemoteObject.RemoteObject, memoryAddress?: number): HighlightInfo|undefined {
|
296
312
|
let highlightInfo;
|
297
313
|
if (obj instanceof Bindings.DebuggerLanguagePlugins.ValueNode) {
|
298
314
|
try {
|
@@ -311,6 +327,7 @@ export class LinearMemoryInspectorController extends SDK.TargetManager.SDKModelO
|
|
311
327
|
for (const [bufferId, remoteObject] of this.#bufferIdToRemoteObject) {
|
312
328
|
if (model === remoteObject.runtimeModel()) {
|
313
329
|
this.#bufferIdToRemoteObject.delete(bufferId);
|
330
|
+
this.#resetHighlightInfo(bufferId);
|
314
331
|
this.#paneInstance.close(bufferId);
|
315
332
|
}
|
316
333
|
}
|
@@ -320,7 +337,7 @@ export class LinearMemoryInspectorController extends SDK.TargetManager.SDKModelO
|
|
320
337
|
const debuggerModel = event.data;
|
321
338
|
for (const [bufferId, remoteObject] of this.#bufferIdToRemoteObject) {
|
322
339
|
if (debuggerModel.runtimeModel() === remoteObject.runtimeModel()) {
|
323
|
-
this.#
|
340
|
+
this.#resetHighlightInfo(bufferId);
|
324
341
|
this.#paneInstance.refreshView(bufferId);
|
325
342
|
}
|
326
343
|
}
|
@@ -336,5 +353,6 @@ export class LinearMemoryInspectorController extends SDK.TargetManager.SDKModelO
|
|
336
353
|
remoteObj.release();
|
337
354
|
}
|
338
355
|
this.#bufferIdToRemoteObject.delete(bufferId);
|
356
|
+
this.#resetHighlightInfo(bufferId);
|
339
357
|
}
|
340
358
|
}
|
@@ -84,14 +84,13 @@ export class LinearMemoryInspectorPaneImpl extends Common.ObjectWrapper.eventMix
|
|
84
84
|
getViewForTabId(tabId: string): LinearMemoryInspectorView {
|
85
85
|
const view = this.#tabIdToInspectorView.get(tabId);
|
86
86
|
if (!view) {
|
87
|
-
throw new Error(`No linear memory inspector view for given tab id: ${tabId}`);
|
87
|
+
throw new Error(`No linear memory inspector view for the given tab id: ${tabId}`);
|
88
88
|
}
|
89
89
|
return view;
|
90
90
|
}
|
91
91
|
|
92
|
-
create(tabId: string, title: string, arrayWrapper: LazyUint8Array, address?: number
|
93
|
-
|
94
|
-
const inspectorView = new LinearMemoryInspectorView(arrayWrapper, address, highlightInfo);
|
92
|
+
create(tabId: string, title: string, arrayWrapper: LazyUint8Array, address?: number): void {
|
93
|
+
const inspectorView = new LinearMemoryInspectorView(arrayWrapper, address, tabId);
|
95
94
|
this.#tabIdToInspectorView.set(tabId, inspectorView);
|
96
95
|
this.#tabbedPane.appendTab(tabId, title, inspectorView, undefined, false, true);
|
97
96
|
this.#tabbedPane.selectTab(tabId);
|
@@ -101,15 +100,12 @@ export class LinearMemoryInspectorPaneImpl extends Common.ObjectWrapper.eventMix
|
|
101
100
|
this.#tabbedPane.closeTab(tabId, false);
|
102
101
|
}
|
103
102
|
|
104
|
-
reveal(tabId: string, address?: number
|
103
|
+
reveal(tabId: string, address?: number): void {
|
105
104
|
const view = this.getViewForTabId(tabId);
|
106
105
|
|
107
106
|
if (address !== undefined) {
|
108
107
|
view.updateAddress(address);
|
109
108
|
}
|
110
|
-
if (highlightInfo !== undefined) {
|
111
|
-
view.updateHighlightInfo(highlightInfo);
|
112
|
-
}
|
113
109
|
this.refreshView(tabId);
|
114
110
|
this.#tabbedPane.selectTab(tabId);
|
115
111
|
}
|
@@ -119,11 +115,6 @@ export class LinearMemoryInspectorPaneImpl extends Common.ObjectWrapper.eventMix
|
|
119
115
|
view.refreshData();
|
120
116
|
}
|
121
117
|
|
122
|
-
resetHighlightInfo(tabId: string): void {
|
123
|
-
const view = this.getViewForTabId(tabId);
|
124
|
-
view.updateHighlightInfo(undefined);
|
125
|
-
}
|
126
|
-
|
127
118
|
#tabClosed(event: Common.EventTarget.EventTargetEvent<UI.TabbedPane.EventData>): void {
|
128
119
|
const {tabId} = event.data;
|
129
120
|
this.#tabIdToInspectorView.delete(tabId);
|
@@ -142,10 +133,10 @@ export type EventTypes = {
|
|
142
133
|
class LinearMemoryInspectorView extends UI.Widget.VBox {
|
143
134
|
#memoryWrapper: LazyUint8Array;
|
144
135
|
#address: number;
|
145
|
-
#
|
136
|
+
#tabId: string;
|
146
137
|
#inspector: LinearMemoryInspector;
|
147
138
|
firstTimeOpen: boolean;
|
148
|
-
constructor(memoryWrapper: LazyUint8Array, address: number|undefined = 0,
|
139
|
+
constructor(memoryWrapper: LazyUint8Array, address: number|undefined = 0, tabId: string) {
|
149
140
|
super(false);
|
150
141
|
|
151
142
|
if (address < 0 || address >= memoryWrapper.length()) {
|
@@ -154,7 +145,7 @@ class LinearMemoryInspectorView extends UI.Widget.VBox {
|
|
154
145
|
|
155
146
|
this.#memoryWrapper = memoryWrapper;
|
156
147
|
this.#address = address;
|
157
|
-
this.#
|
148
|
+
this.#tabId = tabId;
|
158
149
|
this.#inspector = new LinearMemoryInspector();
|
159
150
|
this.#inspector.addEventListener('memoryrequest', (event: MemoryRequestEvent) => {
|
160
151
|
this.#memoryRequested(event);
|
@@ -186,18 +177,6 @@ class LinearMemoryInspectorView extends UI.Widget.VBox {
|
|
186
177
|
this.#address = address;
|
187
178
|
}
|
188
179
|
|
189
|
-
updateHighlightInfo(highlightInfo?: HighlightInfo): void {
|
190
|
-
if (highlightInfo !== undefined) {
|
191
|
-
if (highlightInfo.startAddress < 0 || highlightInfo.startAddress >= this.#memoryWrapper.length()) {
|
192
|
-
throw new Error('Highlight info start address is out of bounds.');
|
193
|
-
}
|
194
|
-
if (highlightInfo.size < 0) {
|
195
|
-
throw new Error('Highlight size cannot be negative.');
|
196
|
-
}
|
197
|
-
}
|
198
|
-
this.#highlightInfo = highlightInfo;
|
199
|
-
}
|
200
|
-
|
201
180
|
refreshData(): void {
|
202
181
|
void LinearMemoryInspectorController.getMemoryForAddress(this.#memoryWrapper, this.#address).then(({
|
203
182
|
memory,
|
@@ -221,7 +200,7 @@ class LinearMemoryInspectorView extends UI.Widget.VBox {
|
|
221
200
|
valueTypes,
|
222
201
|
valueTypeModes,
|
223
202
|
endianness,
|
224
|
-
highlightInfo: this.#
|
203
|
+
highlightInfo: this.#getHighlightInfo(),
|
225
204
|
};
|
226
205
|
});
|
227
206
|
}
|
@@ -238,8 +217,21 @@ class LinearMemoryInspectorView extends UI.Widget.VBox {
|
|
238
217
|
address: address,
|
239
218
|
memoryOffset: start,
|
240
219
|
outerMemoryLength: this.#memoryWrapper.length(),
|
241
|
-
highlightInfo: this.#
|
220
|
+
highlightInfo: this.#getHighlightInfo(),
|
242
221
|
};
|
243
222
|
});
|
244
223
|
}
|
224
|
+
|
225
|
+
#getHighlightInfo(): HighlightInfo|undefined {
|
226
|
+
const highlightInfo = LinearMemoryInspectorController.instance().getHighlightInfo(this.#tabId);
|
227
|
+
if (highlightInfo !== undefined) {
|
228
|
+
if (highlightInfo.startAddress < 0 || highlightInfo.startAddress >= this.#memoryWrapper.length()) {
|
229
|
+
throw new Error('Highlight info start address is out of bounds.');
|
230
|
+
}
|
231
|
+
if (highlightInfo.size <= 0) {
|
232
|
+
throw new Error('Highlight size must be a positive number.');
|
233
|
+
}
|
234
|
+
}
|
235
|
+
return highlightInfo;
|
236
|
+
}
|
245
237
|
}
|
package/package.json
CHANGED