chrome-devtools-frontend 1.0.948445 → 1.0.948916
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/config/gni/devtools_grd_files.gni +0 -6
- package/front_end/core/i18n/locales/en-US.json +15 -30
- package/front_end/core/i18n/locales/en-XL.json +15 -30
- package/front_end/core/sdk/RemoteObject.ts +15 -1
- package/front_end/entrypoints/devtools_app/devtools_app.ts +0 -1
- package/front_end/entrypoints/visibility.gni +3 -1
- package/front_end/entrypoints/worker_app/worker_app.ts +0 -1
- package/front_end/generated/InspectorBackendCommands.js +8 -1
- package/front_end/generated/protocol-mapping.d.ts +4 -0
- package/front_end/generated/protocol-proxy-api.d.ts +6 -0
- package/front_end/generated/protocol.d.ts +9 -0
- package/front_end/models/issues_manager/AttributionReportingIssue.ts +27 -2
- package/front_end/panels/console/ConsolePrompt.ts +0 -4
- package/front_end/panels/elements/AccessibilityTreeUtils.ts +1 -7
- package/front_end/panels/elements/PropertiesWidget.ts +109 -4
- package/front_end/panels/elements/propertiesWidget.css +34 -0
- package/front_end/panels/emulation/DeviceModeToolbar.ts +5 -1
- package/package.json +1 -1
- package/scripts/eslint_rules/lib/ban_a_tags_in_lit_html.js +2 -11
- package/scripts/eslint_rules/lib/ban_literal_devtools_component_tag_names.js +2 -11
- package/scripts/eslint_rules/lib/ban_self_closing_custom_element_tagnames.js +2 -11
- package/scripts/eslint_rules/lib/ban_style_tags_in_lit_html.js +2 -11
- package/scripts/eslint_rules/lib/lit_html_data_as_type.js +2 -11
- package/scripts/eslint_rules/lib/lit_html_no_attribute_quotes.js +1 -13
- package/scripts/eslint_rules/lib/lit_no_style_interpolation.js +2 -11
- package/scripts/eslint_rules/lib/static_tag_must_be_static_property.js +2 -11
- package/scripts/eslint_rules/lib/utils.js +29 -0
- package/scripts/eslint_rules/tests/.eslintrc.js +4 -0
- package/scripts/eslint_rules/tests/utils_test.js +40 -0
- package/front_end/panels/help/HelpImpl.ts +0 -141
- package/front_end/panels/help/ReleaseNoteText.ts +0 -1496
- package/front_end/panels/help/ReleaseNoteView.ts +0 -107
- package/front_end/panels/help/help-meta.ts +0 -145
- package/front_end/panels/help/help.ts +0 -13
- package/front_end/panels/help/releaseNote.css +0 -115
|
@@ -356,8 +356,6 @@ grd_files_release_sources = [
|
|
|
356
356
|
"front_end/panels/emulation/emulation-meta.js",
|
|
357
357
|
"front_end/panels/emulation/emulation.js",
|
|
358
358
|
"front_end/panels/event_listeners/event_listeners.js",
|
|
359
|
-
"front_end/panels/help/help-meta.js",
|
|
360
|
-
"front_end/panels/help/help.js",
|
|
361
359
|
"front_end/panels/input/input-meta.js",
|
|
362
360
|
"front_end/panels/input/input.js",
|
|
363
361
|
"front_end/panels/issues/components/components.js",
|
|
@@ -957,10 +955,6 @@ grd_files_debug_sources = [
|
|
|
957
955
|
"front_end/panels/event_listeners/EventListenersUtils.js",
|
|
958
956
|
"front_end/panels/event_listeners/EventListenersView.js",
|
|
959
957
|
"front_end/panels/event_listeners/eventListenersView.css.js",
|
|
960
|
-
"front_end/panels/help/HelpImpl.js",
|
|
961
|
-
"front_end/panels/help/ReleaseNoteText.js",
|
|
962
|
-
"front_end/panels/help/ReleaseNoteView.js",
|
|
963
|
-
"front_end/panels/help/releaseNote.css.js",
|
|
964
958
|
"front_end/panels/input/InputModel.js",
|
|
965
959
|
"front_end/panels/input/InputTimeline.js",
|
|
966
960
|
"front_end/panels/input/inputTimeline.css.js",
|
|
@@ -4664,6 +4664,21 @@
|
|
|
4664
4664
|
"panels/elements/PlatformFontsWidget.ts | renderedFonts": {
|
|
4665
4665
|
"message": "Rendered Fonts"
|
|
4666
4666
|
},
|
|
4667
|
+
"panels/elements/PropertiesWidget.ts | filter": {
|
|
4668
|
+
"message": "Filter"
|
|
4669
|
+
},
|
|
4670
|
+
"panels/elements/PropertiesWidget.ts | filterProperties": {
|
|
4671
|
+
"message": "Filter Properties"
|
|
4672
|
+
},
|
|
4673
|
+
"panels/elements/PropertiesWidget.ts | noMatchingProperty": {
|
|
4674
|
+
"message": "No matching property"
|
|
4675
|
+
},
|
|
4676
|
+
"panels/elements/PropertiesWidget.ts | showAll": {
|
|
4677
|
+
"message": "Show all"
|
|
4678
|
+
},
|
|
4679
|
+
"panels/elements/PropertiesWidget.ts | showAllTooltip": {
|
|
4680
|
+
"message": "When unchecked, only properties whose values are neither null nor undefined will be shown"
|
|
4681
|
+
},
|
|
4667
4682
|
"panels/elements/StylePropertyTreeElement.ts | copyAllCssDeclarationsAsJs": {
|
|
4668
4683
|
"message": "Copy all declarations as JS"
|
|
4669
4684
|
},
|
|
@@ -4958,36 +4973,6 @@
|
|
|
4958
4973
|
"panels/event_listeners/EventListenersView.ts | toggleWhetherEventListenerIs": {
|
|
4959
4974
|
"message": "Toggle whether event listener is passive or blocking"
|
|
4960
4975
|
},
|
|
4961
|
-
"panels/help/help-meta.ts | bug": {
|
|
4962
|
-
"message": "bug"
|
|
4963
|
-
},
|
|
4964
|
-
"panels/help/help-meta.ts | doNotShowWhatsNewAfterEachUpdate": {
|
|
4965
|
-
"message": "Do not show What's New after each update"
|
|
4966
|
-
},
|
|
4967
|
-
"panels/help/help-meta.ts | releaseNotes": {
|
|
4968
|
-
"message": "Release notes"
|
|
4969
|
-
},
|
|
4970
|
-
"panels/help/help-meta.ts | reportADevtoolsIssue": {
|
|
4971
|
-
"message": "Report a DevTools issue"
|
|
4972
|
-
},
|
|
4973
|
-
"panels/help/help-meta.ts | reportTranslationIssue": {
|
|
4974
|
-
"message": "Report a translation issue"
|
|
4975
|
-
},
|
|
4976
|
-
"panels/help/help-meta.ts | showWhatsNew": {
|
|
4977
|
-
"message": "Show What's New"
|
|
4978
|
-
},
|
|
4979
|
-
"panels/help/help-meta.ts | showWhatsNewAfterEachUpdate": {
|
|
4980
|
-
"message": "Show What's New after each update"
|
|
4981
|
-
},
|
|
4982
|
-
"panels/help/help-meta.ts | whatsNew": {
|
|
4983
|
-
"message": "What's New"
|
|
4984
|
-
},
|
|
4985
|
-
"panels/help/ReleaseNoteView.ts | close": {
|
|
4986
|
-
"message": "Close"
|
|
4987
|
-
},
|
|
4988
|
-
"panels/help/ReleaseNoteView.ts | learnMore": {
|
|
4989
|
-
"message": "Learn more"
|
|
4990
|
-
},
|
|
4991
4976
|
"panels/input/input-meta.ts | inputs": {
|
|
4992
4977
|
"message": "Inputs"
|
|
4993
4978
|
},
|
|
@@ -4664,6 +4664,21 @@
|
|
|
4664
4664
|
"panels/elements/PlatformFontsWidget.ts | renderedFonts": {
|
|
4665
4665
|
"message": "R̂én̂d́êŕêd́ F̂ón̂t́ŝ"
|
|
4666
4666
|
},
|
|
4667
|
+
"panels/elements/PropertiesWidget.ts | filter": {
|
|
4668
|
+
"message": "F̂íl̂t́êŕ"
|
|
4669
|
+
},
|
|
4670
|
+
"panels/elements/PropertiesWidget.ts | filterProperties": {
|
|
4671
|
+
"message": "F̂íl̂t́êŕ P̂ŕôṕêŕt̂íêś"
|
|
4672
|
+
},
|
|
4673
|
+
"panels/elements/PropertiesWidget.ts | noMatchingProperty": {
|
|
4674
|
+
"message": "N̂ó m̂át̂ćĥín̂ǵ p̂ŕôṕêŕt̂ý"
|
|
4675
|
+
},
|
|
4676
|
+
"panels/elements/PropertiesWidget.ts | showAll": {
|
|
4677
|
+
"message": "Ŝh́ôẃ âĺl̂"
|
|
4678
|
+
},
|
|
4679
|
+
"panels/elements/PropertiesWidget.ts | showAllTooltip": {
|
|
4680
|
+
"message": "Ŵh́êń ûńĉh́êćk̂éd̂, ón̂ĺŷ ṕr̂óp̂ér̂t́îéŝ ẃĥóŝé v̂ál̂úêś âŕê ńêít̂h́êŕ n̂úl̂ĺ n̂ór̂ ún̂d́êf́îńêd́ ŵíl̂ĺ b̂é ŝh́ôẃn̂"
|
|
4681
|
+
},
|
|
4667
4682
|
"panels/elements/StylePropertyTreeElement.ts | copyAllCssDeclarationsAsJs": {
|
|
4668
4683
|
"message": "Ĉóp̂ý âĺl̂ d́êćl̂ár̂át̂íôńŝ áŝ J́Ŝ"
|
|
4669
4684
|
},
|
|
@@ -4958,36 +4973,6 @@
|
|
|
4958
4973
|
"panels/event_listeners/EventListenersView.ts | toggleWhetherEventListenerIs": {
|
|
4959
4974
|
"message": "T̂óĝǵl̂é ŵh́êt́ĥér̂ év̂én̂t́ l̂íŝt́êńêŕ îś p̂áŝśîv́ê ór̂ b́l̂óĉḱîńĝ"
|
|
4960
4975
|
},
|
|
4961
|
-
"panels/help/help-meta.ts | bug": {
|
|
4962
|
-
"message": "b̂úĝ"
|
|
4963
|
-
},
|
|
4964
|
-
"panels/help/help-meta.ts | doNotShowWhatsNewAfterEachUpdate": {
|
|
4965
|
-
"message": "D̂ó n̂ót̂ śĥóŵ Ẃĥát̂'ś N̂éŵ áf̂t́êŕ êáĉh́ ûṕd̂át̂é"
|
|
4966
|
-
},
|
|
4967
|
-
"panels/help/help-meta.ts | releaseNotes": {
|
|
4968
|
-
"message": "R̂él̂éâśê ńôt́êś"
|
|
4969
|
-
},
|
|
4970
|
-
"panels/help/help-meta.ts | reportADevtoolsIssue": {
|
|
4971
|
-
"message": "R̂ép̂ór̂t́ â D́êv́T̂óôĺŝ íŝśûé"
|
|
4972
|
-
},
|
|
4973
|
-
"panels/help/help-meta.ts | reportTranslationIssue": {
|
|
4974
|
-
"message": "R̂ép̂ór̂t́ â t́r̂án̂śl̂át̂íôń îśŝúê"
|
|
4975
|
-
},
|
|
4976
|
-
"panels/help/help-meta.ts | showWhatsNew": {
|
|
4977
|
-
"message": "Ŝh́ôẃ Ŵh́ât́'ŝ Ńêẃ"
|
|
4978
|
-
},
|
|
4979
|
-
"panels/help/help-meta.ts | showWhatsNewAfterEachUpdate": {
|
|
4980
|
-
"message": "Ŝh́ôẃ Ŵh́ât́'ŝ Ńêẃ âf́t̂ér̂ éâćĥ úp̂d́ât́ê"
|
|
4981
|
-
},
|
|
4982
|
-
"panels/help/help-meta.ts | whatsNew": {
|
|
4983
|
-
"message": "Ŵh́ât́'ŝ Ńêẃ"
|
|
4984
|
-
},
|
|
4985
|
-
"panels/help/ReleaseNoteView.ts | close": {
|
|
4986
|
-
"message": "Ĉĺôśê"
|
|
4987
|
-
},
|
|
4988
|
-
"panels/help/ReleaseNoteView.ts | learnMore": {
|
|
4989
|
-
"message": "L̂éâŕn̂ ḿôŕê"
|
|
4990
|
-
},
|
|
4991
4976
|
"panels/input/input-meta.ts | inputs": {
|
|
4992
4977
|
"message": "Îńp̂út̂ś"
|
|
4993
4978
|
},
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
35
|
import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
|
|
36
|
-
import
|
|
36
|
+
import * as Protocol from '../../generated/protocol.js';
|
|
37
37
|
|
|
38
38
|
import type {DebuggerModel, FunctionDetails} from './DebuggerModel.js';
|
|
39
39
|
import type {RuntimeModel} from './RuntimeModel.js';
|
|
@@ -62,6 +62,20 @@ export class RemoteObject {
|
|
|
62
62
|
return remoteObject.type;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
static isNullOrUndefined(remoteObject: RemoteObject|null|undefined): boolean {
|
|
66
|
+
if (remoteObject === null || remoteObject === undefined) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
switch (remoteObject.type) {
|
|
70
|
+
case Protocol.Runtime.RemoteObjectType.Object:
|
|
71
|
+
return remoteObject.subtype === Protocol.Runtime.RemoteObjectSubtype.Null;
|
|
72
|
+
case Protocol.Runtime.RemoteObjectType.Undefined:
|
|
73
|
+
return true;
|
|
74
|
+
default:
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
65
79
|
static arrayNameFromDescription(description: string): string {
|
|
66
80
|
return description.replace(_descriptionLengthParenRegex, '').replace(_descriptionLengthSquareRegex, '');
|
|
67
81
|
}
|
|
@@ -15,7 +15,6 @@ import '../../panels/developer_resources/developer_resources-meta.js';
|
|
|
15
15
|
import '../inspector_main/inspector_main-meta.js';
|
|
16
16
|
import '../../panels/application/application-meta.js';
|
|
17
17
|
import '../../panels/issues/issues-meta.js';
|
|
18
|
-
import '../../panels/help/help-meta.js';
|
|
19
18
|
import '../../panels/layers/layers-meta.js';
|
|
20
19
|
import '../../panels/lighthouse/lighthouse-meta.js';
|
|
21
20
|
import '../../panels/media/media-meta.js';
|
|
@@ -5,7 +5,6 @@ import '../shell/shell.js';
|
|
|
5
5
|
import '../../panels/browser_debugger/browser_debugger-meta.js';
|
|
6
6
|
import '../../panels/developer_resources/developer_resources-meta.js';
|
|
7
7
|
import '../../panels/elements/elements-meta.js';
|
|
8
|
-
import '../../panels/help/help-meta.js';
|
|
9
8
|
import '../../panels/issues/issues-meta.js';
|
|
10
9
|
import '../../panels/layer_viewer/layer_viewer-meta.js';
|
|
11
10
|
import '../../panels/mobile_throttling/mobile_throttling-meta.js';
|
|
@@ -270,7 +270,12 @@ export function registerCommands(inspectorBackend) {
|
|
|
270
270
|
AttributionSourceUntrustworthyOrigin: 'AttributionSourceUntrustworthyOrigin',
|
|
271
271
|
AttributionUntrustworthyOrigin: 'AttributionUntrustworthyOrigin',
|
|
272
272
|
AttributionTriggerDataTooLarge: 'AttributionTriggerDataTooLarge',
|
|
273
|
-
AttributionEventSourceTriggerDataTooLarge: 'AttributionEventSourceTriggerDataTooLarge'
|
|
273
|
+
AttributionEventSourceTriggerDataTooLarge: 'AttributionEventSourceTriggerDataTooLarge',
|
|
274
|
+
InvalidAttributionSourceExpiry: 'InvalidAttributionSourceExpiry',
|
|
275
|
+
InvalidAttributionSourcePriority: 'InvalidAttributionSourcePriority',
|
|
276
|
+
InvalidEventSourceTriggerData: 'InvalidEventSourceTriggerData',
|
|
277
|
+
InvalidTriggerPriority: 'InvalidTriggerPriority',
|
|
278
|
+
InvalidTriggerDedupKey: 'InvalidTriggerDedupKey'
|
|
274
279
|
});
|
|
275
280
|
inspectorBackend.registerEnum(
|
|
276
281
|
'Audits.GenericIssueErrorType', {CrossOriginPortalPostMessageError: 'CrossOriginPortalPostMessageError'});
|
|
@@ -591,6 +596,8 @@ export function registerCommands(inspectorBackend) {
|
|
|
591
596
|
inspectorBackend.registerCommand('Cast.disable', [], []);
|
|
592
597
|
inspectorBackend.registerCommand(
|
|
593
598
|
'Cast.setSinkToUse', [{'name': 'sinkName', 'type': 'string', 'optional': false}], []);
|
|
599
|
+
inspectorBackend.registerCommand(
|
|
600
|
+
'Cast.startDesktopMirroring', [{'name': 'sinkName', 'type': 'string', 'optional': false}], []);
|
|
594
601
|
inspectorBackend.registerCommand(
|
|
595
602
|
'Cast.startTabMirroring', [{'name': 'sinkName', 'type': 'string', 'optional': false}], []);
|
|
596
603
|
inspectorBackend.registerCommand('Cast.stopCasting', [{'name': 'sinkName', 'type': 'string', 'optional': false}], []);
|
|
@@ -1086,6 +1086,10 @@ export namespace ProtocolMapping {
|
|
|
1086
1086
|
* sink via Presentation API, Remote Playback API, or Cast SDK.
|
|
1087
1087
|
*/
|
|
1088
1088
|
'Cast.setSinkToUse': {paramsType: [Protocol.Cast.SetSinkToUseRequest]; returnType: void;};
|
|
1089
|
+
/**
|
|
1090
|
+
* Starts mirroring the desktop to the sink.
|
|
1091
|
+
*/
|
|
1092
|
+
'Cast.startDesktopMirroring': {paramsType: [Protocol.Cast.StartDesktopMirroringRequest]; returnType: void;};
|
|
1089
1093
|
/**
|
|
1090
1094
|
* Starts mirroring the tab to the sink.
|
|
1091
1095
|
*/
|
|
@@ -751,6 +751,12 @@ declare namespace ProtocolProxyApi {
|
|
|
751
751
|
*/
|
|
752
752
|
invoke_setSinkToUse(params: Protocol.Cast.SetSinkToUseRequest): Promise<Protocol.ProtocolResponseWithError>;
|
|
753
753
|
|
|
754
|
+
/**
|
|
755
|
+
* Starts mirroring the desktop to the sink.
|
|
756
|
+
*/
|
|
757
|
+
invoke_startDesktopMirroring(params: Protocol.Cast.StartDesktopMirroringRequest):
|
|
758
|
+
Promise<Protocol.ProtocolResponseWithError>;
|
|
759
|
+
|
|
754
760
|
/**
|
|
755
761
|
* Starts mirroring the tab to the sink.
|
|
756
762
|
*/
|
|
@@ -967,6 +967,11 @@ declare namespace Protocol {
|
|
|
967
967
|
AttributionUntrustworthyOrigin = 'AttributionUntrustworthyOrigin',
|
|
968
968
|
AttributionTriggerDataTooLarge = 'AttributionTriggerDataTooLarge',
|
|
969
969
|
AttributionEventSourceTriggerDataTooLarge = 'AttributionEventSourceTriggerDataTooLarge',
|
|
970
|
+
InvalidAttributionSourceExpiry = 'InvalidAttributionSourceExpiry',
|
|
971
|
+
InvalidAttributionSourcePriority = 'InvalidAttributionSourcePriority',
|
|
972
|
+
InvalidEventSourceTriggerData = 'InvalidEventSourceTriggerData',
|
|
973
|
+
InvalidTriggerPriority = 'InvalidTriggerPriority',
|
|
974
|
+
InvalidTriggerDedupKey = 'InvalidTriggerDedupKey',
|
|
970
975
|
}
|
|
971
976
|
|
|
972
977
|
/**
|
|
@@ -2773,6 +2778,10 @@ declare namespace Protocol {
|
|
|
2773
2778
|
sinkName: string;
|
|
2774
2779
|
}
|
|
2775
2780
|
|
|
2781
|
+
export interface StartDesktopMirroringRequest {
|
|
2782
|
+
sinkName: string;
|
|
2783
|
+
}
|
|
2784
|
+
|
|
2776
2785
|
export interface StartTabMirroringRequest {
|
|
2777
2786
|
sinkName: string;
|
|
2778
2787
|
}
|
|
@@ -17,8 +17,13 @@ export const enum IssueCode {
|
|
|
17
17
|
AttributionSourceUntrustworthyOrigin = 'AttributionReportingIssue::AttributionSourceUntrustworthyOrigin',
|
|
18
18
|
AttributionUntrustworthyFrameOrigin = 'AttributionReportingIssue::AttributionUntrustworthyFrameOrigin',
|
|
19
19
|
AttributionUntrustworthyOrigin = 'AttributionReportingIssue::AttributionUntrustworthyOrigin',
|
|
20
|
-
AttributionTriggerDataTooLarge = '
|
|
21
|
-
AttributionEventSourceTriggerDataTooLarge = '
|
|
20
|
+
AttributionTriggerDataTooLarge = 'AttributionReportingIssue::AttributionTriggerDataTooLarge',
|
|
21
|
+
AttributionEventSourceTriggerDataTooLarge = 'AttributionReportingIssue::AttributionEventSourceTriggerDataTooLarge',
|
|
22
|
+
InvalidAttributionSourceExpiry = 'AttributionReportingIssue::InvalidAttributionSourceExpiry',
|
|
23
|
+
InvalidAttributionSourcePriority = 'AttributionReportingIssue::InvalidAttributionSourcePriority',
|
|
24
|
+
InvalidEventSourceTriggerData = 'AttributionReportingIssue::InvalidEventSourceTriggerData',
|
|
25
|
+
InvalidTriggerPriority = 'AttributionReportingIssue::InvalidTriggerPriority',
|
|
26
|
+
InvalidTriggerDedupKey = 'AttributionReportingIssue::InvalidTriggerDedupKey',
|
|
22
27
|
}
|
|
23
28
|
|
|
24
29
|
function getIssueCode(details: Protocol.Audits.AttributionReportingIssueDetails): IssueCode {
|
|
@@ -40,6 +45,16 @@ function getIssueCode(details: Protocol.Audits.AttributionReportingIssueDetails)
|
|
|
40
45
|
return IssueCode.AttributionTriggerDataTooLarge;
|
|
41
46
|
case Protocol.Audits.AttributionReportingIssueType.AttributionEventSourceTriggerDataTooLarge:
|
|
42
47
|
return IssueCode.AttributionEventSourceTriggerDataTooLarge;
|
|
48
|
+
case Protocol.Audits.AttributionReportingIssueType.InvalidAttributionSourceExpiry:
|
|
49
|
+
return IssueCode.InvalidAttributionSourceExpiry;
|
|
50
|
+
case Protocol.Audits.AttributionReportingIssueType.InvalidAttributionSourcePriority:
|
|
51
|
+
return IssueCode.InvalidAttributionSourcePriority;
|
|
52
|
+
case Protocol.Audits.AttributionReportingIssueType.InvalidEventSourceTriggerData:
|
|
53
|
+
return IssueCode.InvalidEventSourceTriggerData;
|
|
54
|
+
case Protocol.Audits.AttributionReportingIssueType.InvalidTriggerPriority:
|
|
55
|
+
return IssueCode.InvalidTriggerPriority;
|
|
56
|
+
case Protocol.Audits.AttributionReportingIssueType.InvalidTriggerDedupKey:
|
|
57
|
+
return IssueCode.InvalidTriggerDedupKey;
|
|
43
58
|
}
|
|
44
59
|
}
|
|
45
60
|
|
|
@@ -108,6 +123,16 @@ export class AttributionReportingIssue extends Issue<IssueCode> {
|
|
|
108
123
|
file: 'arAttributionEventSourceTriggerDataTooLarge.md',
|
|
109
124
|
links: [],
|
|
110
125
|
};
|
|
126
|
+
case IssueCode.InvalidAttributionSourceExpiry:
|
|
127
|
+
return null;
|
|
128
|
+
case IssueCode.InvalidAttributionSourcePriority:
|
|
129
|
+
return null;
|
|
130
|
+
case IssueCode.InvalidEventSourceTriggerData:
|
|
131
|
+
return null;
|
|
132
|
+
case IssueCode.InvalidTriggerPriority:
|
|
133
|
+
return null;
|
|
134
|
+
case IssueCode.InvalidTriggerDedupKey:
|
|
135
|
+
return null;
|
|
111
136
|
}
|
|
112
137
|
}
|
|
113
138
|
|
|
@@ -259,7 +259,6 @@ export class ConsolePrompt extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
259
259
|
} else {
|
|
260
260
|
this.editor.dispatch({scrollIntoView: true});
|
|
261
261
|
}
|
|
262
|
-
this.enterProcessedForTest();
|
|
263
262
|
return true;
|
|
264
263
|
}
|
|
265
264
|
|
|
@@ -283,9 +282,6 @@ export class ConsolePrompt extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
283
282
|
}
|
|
284
283
|
}
|
|
285
284
|
|
|
286
|
-
private enterProcessedForTest(): void {
|
|
287
|
-
}
|
|
288
|
-
|
|
289
285
|
private editorUpdate(update: CodeMirror.ViewUpdate): void {
|
|
290
286
|
if (update.docChanged ||
|
|
291
287
|
CodeMirror.selectedCompletion(update.state) !== CodeMirror.selectedCompletion(update.startState)) {
|
|
@@ -86,13 +86,7 @@ async function getChildren(node: SDK.AccessibilityModel.AccessibilityNode):
|
|
|
86
86
|
const localRoot = await getRootNode(frameId);
|
|
87
87
|
return [localRoot];
|
|
88
88
|
}
|
|
89
|
-
|
|
90
|
-
await node.accessibilityModel().requestAXChildren(node.id(), node.getFrameId() || undefined);
|
|
91
|
-
if (node.numChildren() !== node.children().length) {
|
|
92
|
-
throw new Error('Once loaded, number of children and length of children must match.');
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return node.children();
|
|
89
|
+
return node.accessibilityModel().requestAXChildren(node.id(), node.getFrameId() || undefined);
|
|
96
90
|
}
|
|
97
91
|
|
|
98
92
|
export async function sdkNodeToAXTreeNodes(sdkNode: SDK.AccessibilityModel.AccessibilityNode): Promise<AXTreeNode[]> {
|
|
@@ -31,25 +31,67 @@
|
|
|
31
31
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
32
32
|
*/
|
|
33
33
|
|
|
34
|
-
import
|
|
35
|
-
import type * as Common from '../../core/common/common.js';
|
|
34
|
+
import * as Common from '../../core/common/common.js';
|
|
36
35
|
import * as Host from '../../core/host/host.js';
|
|
36
|
+
import * as i18n from '../../core/i18n/i18n.js';
|
|
37
37
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
38
|
+
import * as Protocol from '../../generated/protocol.js';
|
|
38
39
|
import * as ObjectUI from '../../ui/legacy/components/object_ui/object_ui.js';
|
|
39
40
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
40
41
|
|
|
42
|
+
import propertiesWidgetStyles from './propertiesWidget.css.js';
|
|
43
|
+
import {StylesSidebarPane} from './StylesSidebarPane.js';
|
|
44
|
+
|
|
41
45
|
const OBJECT_GROUP_NAME = 'properties-sidebar-pane';
|
|
42
46
|
|
|
47
|
+
const UIStrings = {
|
|
48
|
+
/**
|
|
49
|
+
* @description Placeholder text for a text input used to filter which DOM element properties show up in
|
|
50
|
+
* the Properties tab of the Elements panel.
|
|
51
|
+
*/
|
|
52
|
+
filter: 'Filter',
|
|
53
|
+
/**
|
|
54
|
+
* @description ARIA accessible name for the text input used to filter which DOM element properties show up
|
|
55
|
+
* in the Properties tab of the Elements panel.
|
|
56
|
+
*/
|
|
57
|
+
filterProperties: 'Filter Properties',
|
|
58
|
+
/**
|
|
59
|
+
* @description Text on the checkbox in the Properties tab of the Elements panel, which controls whether
|
|
60
|
+
* all properties of the currently selected DOM element are shown, or only meaningful properties (i.e.
|
|
61
|
+
* excluding properties whose values aren't set for example).
|
|
62
|
+
*/
|
|
63
|
+
showAll: 'Show all',
|
|
64
|
+
/**
|
|
65
|
+
* @description Tooltip on the checkbox in the Properties tab of the Elements panel, which controls whether
|
|
66
|
+
* all properties of the currently selected DOM element are shown, or only meaningful properties (i.e.
|
|
67
|
+
* excluding properties whose values aren't set for example).
|
|
68
|
+
*/
|
|
69
|
+
showAllTooltip: 'When unchecked, only properties whose values are neither null nor undefined will be shown',
|
|
70
|
+
/**
|
|
71
|
+
* @description Text shown to the user when a filter is applied in the Properties tab of the Elements panel, but
|
|
72
|
+
* no properties matched the filter and thus no results were returned.
|
|
73
|
+
*/
|
|
74
|
+
noMatchingProperty: 'No matching property',
|
|
75
|
+
};
|
|
76
|
+
const str_ = i18n.i18n.registerUIStrings('panels/elements/PropertiesWidget.ts', UIStrings);
|
|
77
|
+
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
78
|
+
|
|
43
79
|
let propertiesWidgetInstance: PropertiesWidget;
|
|
44
80
|
|
|
45
81
|
export class PropertiesWidget extends UI.ThrottledWidget.ThrottledWidget {
|
|
46
82
|
private node: SDK.DOMModel.DOMNode|null;
|
|
83
|
+
private readonly showAllPropertiesSetting: Common.Settings.Setting<boolean>;
|
|
84
|
+
private filterRegex: RegExp|null = null;
|
|
85
|
+
private readonly noMatchesElement: HTMLElement;
|
|
47
86
|
private readonly treeOutline: ObjectUI.ObjectPropertiesSection.ObjectPropertiesSectionsTreeOutline;
|
|
48
87
|
private readonly expandController: ObjectUI.ObjectPropertiesSection.ObjectPropertiesSectionsTreeExpandController;
|
|
49
88
|
private lastRequestedNode?: SDK.DOMModel.DOMNode;
|
|
50
89
|
constructor() {
|
|
51
90
|
super(true /* isWebComponent */);
|
|
52
91
|
|
|
92
|
+
this.showAllPropertiesSetting = Common.Settings.Settings.instance().createSetting('showAllProperties', false);
|
|
93
|
+
this.showAllPropertiesSetting.addChangeListener(this.filterList.bind(this));
|
|
94
|
+
|
|
53
95
|
SDK.TargetManager.TargetManager.instance().addModelListener(
|
|
54
96
|
SDK.DOMModel.DOMModel, SDK.DOMModel.Events.AttrModified, this.onNodeChange, this);
|
|
55
97
|
SDK.TargetManager.TargetManager.instance().addModelListener(
|
|
@@ -61,6 +103,20 @@ export class PropertiesWidget extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
61
103
|
UI.Context.Context.instance().addFlavorChangeListener(SDK.DOMModel.DOMNode, this.setNode, this);
|
|
62
104
|
this.node = UI.Context.Context.instance().flavor(SDK.DOMModel.DOMNode);
|
|
63
105
|
|
|
106
|
+
const hbox = this.contentElement.createChild('div', 'hbox properties-widget-toolbar');
|
|
107
|
+
const filterContainerElement = hbox.createChild('div', 'properties-widget-filter-box');
|
|
108
|
+
const filterInput = StylesSidebarPane.createPropertyFilterElement(
|
|
109
|
+
i18nString(UIStrings.filter), hbox, this.filterProperties.bind(this));
|
|
110
|
+
UI.ARIAUtils.setAccessibleName(filterInput, i18nString(UIStrings.filterProperties));
|
|
111
|
+
filterContainerElement.appendChild(filterInput);
|
|
112
|
+
|
|
113
|
+
const toolbar = new UI.Toolbar.Toolbar('styles-pane-toolbar', hbox);
|
|
114
|
+
toolbar.appendToolbarItem(new UI.Toolbar.ToolbarSettingCheckbox(
|
|
115
|
+
this.showAllPropertiesSetting, i18nString(UIStrings.showAllTooltip), i18nString(UIStrings.showAll)));
|
|
116
|
+
|
|
117
|
+
this.noMatchesElement = this.contentElement.createChild('div', 'gray-info-message hidden');
|
|
118
|
+
this.noMatchesElement.textContent = i18nString(UIStrings.noMatchingProperty);
|
|
119
|
+
|
|
64
120
|
this.treeOutline = new ObjectUI.ObjectPropertiesSection.ObjectPropertiesSectionsTreeOutline({readOnly: true});
|
|
65
121
|
this.treeOutline.setShowSelectionOnKeyboardFocus(/* show */ true, /* preventTabOrder */ false);
|
|
66
122
|
this.expandController =
|
|
@@ -73,6 +129,7 @@ export class PropertiesWidget extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
73
129
|
|
|
74
130
|
this.update();
|
|
75
131
|
}
|
|
132
|
+
|
|
76
133
|
static instance(opts: {
|
|
77
134
|
forceNew: boolean|null,
|
|
78
135
|
}|undefined = {forceNew: null}): PropertiesWidget {
|
|
@@ -84,6 +141,46 @@ export class PropertiesWidget extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
84
141
|
return propertiesWidgetInstance;
|
|
85
142
|
}
|
|
86
143
|
|
|
144
|
+
private filterProperties(this: PropertiesWidget, regex: RegExp|null): void {
|
|
145
|
+
this.filterRegex = regex;
|
|
146
|
+
this.filterList();
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
private filterList(): void {
|
|
150
|
+
const isHidden = (property: SDK.RemoteObject.RemoteObjectProperty): boolean => {
|
|
151
|
+
if (!this.showAllPropertiesSetting.get()) {
|
|
152
|
+
if (SDK.RemoteObject.RemoteObject.isNullOrUndefined(property.value)) {
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
if (property.value?.type === Protocol.Runtime.RemoteObjectType.Undefined ||
|
|
156
|
+
(property.value?.type === Protocol.Runtime.RemoteObjectType.Object &&
|
|
157
|
+
property.value.subtype === Protocol.Runtime.RemoteObjectSubtype.Null)) {
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (this.filterRegex !== null) {
|
|
162
|
+
if (this.filterRegex.test(property.name)) {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
if (this.filterRegex.test(property.value?.description ?? '')) {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
return false;
|
|
171
|
+
};
|
|
172
|
+
let noMatches = true;
|
|
173
|
+
for (const element of this.treeOutline.rootElement().children()) {
|
|
174
|
+
const {property} = element as ObjectUI.ObjectPropertiesSection.ObjectPropertyTreeElement;
|
|
175
|
+
const hidden = isHidden(property);
|
|
176
|
+
if (!hidden) {
|
|
177
|
+
noMatches = false;
|
|
178
|
+
}
|
|
179
|
+
element.hidden = hidden;
|
|
180
|
+
}
|
|
181
|
+
this.noMatchesElement.classList.toggle('hidden', !noMatches);
|
|
182
|
+
}
|
|
183
|
+
|
|
87
184
|
private setNode(event: Common.EventTarget.EventTargetEvent<SDK.DOMModel.DOMNode|null>): void {
|
|
88
185
|
this.node = event.data;
|
|
89
186
|
this.update();
|
|
@@ -106,8 +203,15 @@ export class PropertiesWidget extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
106
203
|
return;
|
|
107
204
|
}
|
|
108
205
|
|
|
109
|
-
|
|
110
|
-
|
|
206
|
+
const treeElement = this.treeOutline.rootElement();
|
|
207
|
+
let {properties} = await SDK.RemoteObject.RemoteObject.loadFromObjectPerProto(object, true /* generatePreview */);
|
|
208
|
+
treeElement.removeChildren();
|
|
209
|
+
if (properties === null) {
|
|
210
|
+
properties = [];
|
|
211
|
+
}
|
|
212
|
+
ObjectUI.ObjectPropertiesSection.ObjectPropertyTreeElement.populateWithProperties(
|
|
213
|
+
treeElement, properties, null, true /* skipProto */, true /* skipGettersAndSetters */, object);
|
|
214
|
+
this.filterList();
|
|
111
215
|
}
|
|
112
216
|
|
|
113
217
|
private onNodeChange(event: Common.EventTarget
|
|
@@ -122,6 +226,7 @@ export class PropertiesWidget extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
122
226
|
}
|
|
123
227
|
this.update();
|
|
124
228
|
}
|
|
229
|
+
|
|
125
230
|
wasShown(): void {
|
|
126
231
|
super.wasShown();
|
|
127
232
|
this.registerCSSFiles([propertiesWidgetStyles]);
|
|
@@ -8,3 +8,37 @@
|
|
|
8
8
|
padding: 2px 0 2px 5px;
|
|
9
9
|
flex: none;
|
|
10
10
|
}
|
|
11
|
+
|
|
12
|
+
.properties-widget-toolbar {
|
|
13
|
+
border-bottom: 1px solid var(--color-details-hairline-light);
|
|
14
|
+
flex-shrink: 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.properties-widget-filter-box {
|
|
18
|
+
flex: auto;
|
|
19
|
+
display: flex;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.properties-widget-filter-box > input {
|
|
23
|
+
outline: none !important; /* stylelint-disable-line declaration-no-important */
|
|
24
|
+
border: none;
|
|
25
|
+
width: 100%;
|
|
26
|
+
background: var(--color-background);
|
|
27
|
+
padding-left: 4px;
|
|
28
|
+
margin: 3px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.properties-widget-filter-box > input:focus,
|
|
32
|
+
.properties-widget-filter-box > input:not(:placeholder-shown) {
|
|
33
|
+
box-shadow: var(--legacy-focus-ring-active-shadow);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.properties-widget-filter-box > input::placeholder {
|
|
37
|
+
color: var(--color-text-disabled);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@media (forced-colors: active) {
|
|
41
|
+
.properties-widget-filter-box > input {
|
|
42
|
+
border: 1px solid ButtonText;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -402,7 +402,7 @@ export class DeviceModeToolbar {
|
|
|
402
402
|
private appendScaleMenuItems(contextMenu: UI.ContextMenu.ContextMenu): void {
|
|
403
403
|
if (this.model.type() === EmulationModel.DeviceModeModel.Type.Device) {
|
|
404
404
|
contextMenu.footerSection().appendItem(
|
|
405
|
-
i18nString(UIStrings.fitToWindowF, {PH1: this.
|
|
405
|
+
i18nString(UIStrings.fitToWindowF, {PH1: this.getPrettyFitZoomPercentage()}),
|
|
406
406
|
this.onScaleMenuChanged.bind(this, this.model.fitScale()), false);
|
|
407
407
|
}
|
|
408
408
|
contextMenu.footerSection().appendCheckboxItem(
|
|
@@ -693,6 +693,10 @@ export class DeviceModeToolbar {
|
|
|
693
693
|
}
|
|
694
694
|
}
|
|
695
695
|
|
|
696
|
+
private getPrettyFitZoomPercentage(): string {
|
|
697
|
+
return `${(this.model.fitScale() * 100).toFixed(0)}`;
|
|
698
|
+
}
|
|
699
|
+
|
|
696
700
|
private getPrettyZoomPercentage(): string {
|
|
697
701
|
return `${(this.model.scale() * 100).toFixed(0)}`;
|
|
698
702
|
}
|
package/package.json
CHANGED
|
@@ -3,16 +3,7 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
if (taggedTemplateExpression.name) {
|
|
8
|
-
// Call to html`` and we assume that html = LitHtml's html function.
|
|
9
|
-
return taggedTemplateExpression.name === 'html';
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
// Match calls to LitHtml.html``
|
|
13
|
-
return taggedTemplateExpression.object && taggedTemplateExpression.object.name === 'LitHtml' &&
|
|
14
|
-
taggedTemplateExpression.property.name === 'html';
|
|
15
|
-
}
|
|
6
|
+
const {isLitHtmlTemplateCall} = require('./utils.js');
|
|
16
7
|
|
|
17
8
|
module.exports = {
|
|
18
9
|
meta: {
|
|
@@ -27,7 +18,7 @@ module.exports = {
|
|
|
27
18
|
create: function(context) {
|
|
28
19
|
return {
|
|
29
20
|
TaggedTemplateExpression(node) {
|
|
30
|
-
const isLitHtmlCall = isLitHtmlTemplateCall(node
|
|
21
|
+
const isLitHtmlCall = isLitHtmlTemplateCall(node);
|
|
31
22
|
if (!isLitHtmlCall) {
|
|
32
23
|
return;
|
|
33
24
|
}
|
|
@@ -3,16 +3,7 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
if (taggedTemplateExpression.name) {
|
|
8
|
-
// Call to html`` and we assume that html = LitHtml's html function.
|
|
9
|
-
return taggedTemplateExpression.name === 'html';
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
// Match calls to LitHtml.html``
|
|
13
|
-
return taggedTemplateExpression.object && taggedTemplateExpression.object.name === 'LitHtml' &&
|
|
14
|
-
taggedTemplateExpression.property.name === 'html';
|
|
15
|
-
}
|
|
6
|
+
const {isLitHtmlTemplateCall} = require('./utils.js');
|
|
16
7
|
|
|
17
8
|
module.exports = {
|
|
18
9
|
meta: {
|
|
@@ -28,7 +19,7 @@ module.exports = {
|
|
|
28
19
|
create: function(context) {
|
|
29
20
|
return {
|
|
30
21
|
TaggedTemplateExpression(node) {
|
|
31
|
-
const isLitHtmlCall = isLitHtmlTemplateCall(node
|
|
22
|
+
const isLitHtmlCall = isLitHtmlTemplateCall(node);
|
|
32
23
|
if (!isLitHtmlCall) {
|
|
33
24
|
return;
|
|
34
25
|
}
|