chrome-devtools-frontend 1.0.995491 → 1.0.996595
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/AUTHORS +1 -0
- package/front_end/core/i18n/locales/af.json +96 -42
- package/front_end/core/i18n/locales/am.json +97 -43
- package/front_end/core/i18n/locales/ar.json +95 -41
- package/front_end/core/i18n/locales/as.json +95 -41
- package/front_end/core/i18n/locales/az.json +96 -42
- package/front_end/core/i18n/locales/be.json +124 -70
- package/front_end/core/i18n/locales/bg.json +96 -42
- package/front_end/core/i18n/locales/bn.json +95 -41
- package/front_end/core/i18n/locales/bs.json +95 -41
- package/front_end/core/i18n/locales/ca.json +96 -42
- package/front_end/core/i18n/locales/cs.json +95 -41
- package/front_end/core/i18n/locales/cy.json +95 -41
- package/front_end/core/i18n/locales/da.json +97 -43
- package/front_end/core/i18n/locales/de.json +96 -42
- package/front_end/core/i18n/locales/el.json +95 -41
- package/front_end/core/i18n/locales/en-GB.json +95 -41
- package/front_end/core/i18n/locales/en-US.json +26 -5
- package/front_end/core/i18n/locales/en-XL.json +26 -5
- package/front_end/core/i18n/locales/es-419.json +95 -41
- package/front_end/core/i18n/locales/es.json +101 -47
- package/front_end/core/i18n/locales/et.json +95 -41
- package/front_end/core/i18n/locales/eu.json +100 -46
- package/front_end/core/i18n/locales/fa.json +104 -50
- package/front_end/core/i18n/locales/fi.json +95 -41
- package/front_end/core/i18n/locales/fil.json +95 -41
- package/front_end/core/i18n/locales/fr-CA.json +96 -42
- package/front_end/core/i18n/locales/fr.json +95 -41
- package/front_end/core/i18n/locales/gl.json +104 -50
- package/front_end/core/i18n/locales/gu.json +95 -41
- package/front_end/core/i18n/locales/he.json +95 -41
- package/front_end/core/i18n/locales/hi.json +98 -44
- package/front_end/core/i18n/locales/hr.json +96 -42
- package/front_end/core/i18n/locales/hu.json +96 -42
- package/front_end/core/i18n/locales/hy.json +95 -41
- package/front_end/core/i18n/locales/id.json +97 -43
- package/front_end/core/i18n/locales/is.json +95 -41
- package/front_end/core/i18n/locales/it.json +96 -42
- package/front_end/core/i18n/locales/ja.json +95 -41
- package/front_end/core/i18n/locales/ka.json +95 -41
- package/front_end/core/i18n/locales/kk.json +98 -44
- package/front_end/core/i18n/locales/km.json +95 -41
- package/front_end/core/i18n/locales/kn.json +96 -42
- package/front_end/core/i18n/locales/ko.json +96 -42
- package/front_end/core/i18n/locales/ky.json +97 -43
- package/front_end/core/i18n/locales/lo.json +96 -42
- package/front_end/core/i18n/locales/lt.json +95 -41
- package/front_end/core/i18n/locales/lv.json +95 -41
- package/front_end/core/i18n/locales/mk.json +98 -44
- package/front_end/core/i18n/locales/ml.json +96 -42
- package/front_end/core/i18n/locales/mn.json +96 -42
- package/front_end/core/i18n/locales/mr.json +95 -41
- package/front_end/core/i18n/locales/ms.json +95 -41
- package/front_end/core/i18n/locales/my.json +95 -41
- package/front_end/core/i18n/locales/ne.json +100 -46
- package/front_end/core/i18n/locales/nl.json +99 -45
- package/front_end/core/i18n/locales/no.json +95 -41
- package/front_end/core/i18n/locales/or.json +98 -44
- package/front_end/core/i18n/locales/pa.json +95 -41
- package/front_end/core/i18n/locales/pl.json +95 -41
- package/front_end/core/i18n/locales/pt-PT.json +95 -41
- package/front_end/core/i18n/locales/pt.json +98 -44
- package/front_end/core/i18n/locales/ro.json +96 -42
- package/front_end/core/i18n/locales/ru.json +115 -61
- package/front_end/core/i18n/locales/si.json +96 -42
- package/front_end/core/i18n/locales/sk.json +95 -41
- package/front_end/core/i18n/locales/sl.json +95 -41
- package/front_end/core/i18n/locales/sq.json +96 -42
- package/front_end/core/i18n/locales/sr-Latn.json +96 -42
- package/front_end/core/i18n/locales/sr.json +96 -42
- package/front_end/core/i18n/locales/sv.json +96 -42
- package/front_end/core/i18n/locales/sw.json +97 -43
- package/front_end/core/i18n/locales/ta.json +96 -42
- package/front_end/core/i18n/locales/te.json +108 -54
- package/front_end/core/i18n/locales/th.json +95 -41
- package/front_end/core/i18n/locales/tr.json +95 -41
- package/front_end/core/i18n/locales/uk.json +95 -41
- package/front_end/core/i18n/locales/ur.json +95 -41
- package/front_end/core/i18n/locales/uz.json +95 -41
- package/front_end/core/i18n/locales/vi.json +104 -50
- package/front_end/core/i18n/locales/zh-HK.json +96 -42
- package/front_end/core/i18n/locales/zh-TW.json +97 -43
- package/front_end/core/i18n/locales/zh.json +99 -45
- package/front_end/core/i18n/locales/zu.json +95 -41
- package/front_end/core/sdk/CSSMatchedStyles.ts +158 -33
- package/front_end/core/sdk/CSSMetadata.ts +1 -8
- package/front_end/generated/InspectorBackendCommands.js +33 -2
- package/front_end/generated/protocol.ts +42 -7
- package/front_end/models/issues_manager/DeprecationIssue.ts +3 -3
- package/front_end/panels/changes/ChangesView.ts +25 -10
- package/front_end/panels/elements/ElementsPanel.ts +7 -6
- package/front_end/panels/elements/StylesSidebarPane.ts +39 -15
- package/front_end/panels/elements/stylesSectionTree.css +1 -0
- package/front_end/panels/elements/stylesSidebarPane.css +1 -1
- package/front_end/panels/lighthouse/LighthouseController.ts +38 -7
- package/front_end/panels/lighthouse/LighthousePanel.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseStartView.ts +15 -7
- package/front_end/panels/lighthouse/LighthouseStartViewFR.ts +77 -21
- package/front_end/panels/lighthouse/RadioSetting.ts +12 -6
- package/front_end/panels/lighthouse/lighthouseStartView.css +49 -2
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +1 -0
- package/front_end/panels/security/SecurityPanel.ts +2 -2
- package/front_end/ui/components/diff_view/diffView.css +2 -0
- package/front_end/ui/components/tree_outline/TreeOutline.ts +18 -7
- package/front_end/ui/legacy/Toolbar.ts +5 -0
- package/front_end/ui/legacy/softDropDownButton.css +4 -0
- package/package.json +2 -1
- package/scripts/eslint_rules/lib/inline_type_imports.js +158 -0
- package/scripts/eslint_rules/tests/inline_type_imports_test.js +106 -0
- package/scripts/javascript_natives/index.js +1 -2
@@ -1352,6 +1352,12 @@
|
|
1352
1352
|
"models/issues_manager/CrossOriginEmbedderPolicyIssue.ts | samesiteAndSameorigin": {
|
1353
1353
|
"message": "Indawo efanayo kanye Nomthombo ofanayo"
|
1354
1354
|
},
|
1355
|
+
"models/issues_manager/DeprecationIssue.ts | deprecationExample": {
|
1356
|
+
"message": "Lesi yisibonelo somlayezo ohunyushiwe wenkinga yokuhoxisa."
|
1357
|
+
},
|
1358
|
+
"models/issues_manager/DeprecationIssue.ts | title": {
|
1359
|
+
"message": "Isici Esihoxisiwe Esisetshenzisiwe"
|
1360
|
+
},
|
1355
1361
|
"models/issues_manager/FederatedAuthRequestIssue.ts | fedCm": {
|
1356
1362
|
"message": "I-Federated Credential Management API"
|
1357
1363
|
},
|
@@ -3032,6 +3038,12 @@
|
|
3032
3038
|
"panels/application/components/BackForwardCacheStrings.ts | enteredBackForwardCacheBeforeServiceWorkerHostAdded": {
|
3033
3039
|
"message": "Isisebenzi sesevisi senziwe sasebenza ngenkathi ikhasi likwinqolobane yasemuva/phambili."
|
3034
3040
|
},
|
3041
|
+
"panels/application/components/BackForwardCacheStrings.ts | errorDocument": {
|
3042
|
+
"message": "Inqolobane yasemuva/phambili ivaliwe ngenxa yephutha ledokhumenti."
|
3043
|
+
},
|
3044
|
+
"panels/application/components/BackForwardCacheStrings.ts | fencedFramesEmbedder": {
|
3045
|
+
"message": "Amakhasi asebenzisa i-FencedFrames awakwazi ukugcinwa ku-bfcache."
|
3046
|
+
},
|
3035
3047
|
"panels/application/components/BackForwardCacheStrings.ts | foregroundCacheLimit": {
|
3036
3048
|
"message": "Ikhasi likhishiwe kunqolobane ukuze kuvunyelwe elinye ikhasi ukuthi libe kwinqolobane."
|
3037
3049
|
},
|
@@ -3245,6 +3257,15 @@
|
|
3245
3257
|
"panels/application/components/BackForwardCacheView.ts | circumstantialExplanation": {
|
3246
3258
|
"message": "Lezi zizathu azikwazi ukusebenza okungukuthi ukugcinwa enqolobaneni kwesikhashana kuvinjwe okuthile okungaphandle kokulawula okuqondile kwekhasi."
|
3247
3259
|
},
|
3260
|
+
"panels/application/components/BackForwardCacheView.ts | framesPerIssue": {
|
3261
|
+
"message": "{n,plural, =1{Uhlaka olu-#}one{Izinhlaka ezingu-#}other{Izinhlaka ezingu-#}}"
|
3262
|
+
},
|
3263
|
+
"panels/application/components/BackForwardCacheView.ts | framesTitle": {
|
3264
|
+
"message": "Izinhlaka"
|
3265
|
+
},
|
3266
|
+
"panels/application/components/BackForwardCacheView.ts | issuesInFrames": {
|
3267
|
+
"message": "{x,plural, =1{inkinga #}one{izinkinga #}other{izinkinga #}} zitholwe ku-{y,plural, =1{uhlaka #}one{izinhlaka #}other{izinhlaka #}}."
|
3268
|
+
},
|
3248
3269
|
"panels/application/components/BackForwardCacheView.ts | learnMore": {
|
3249
3270
|
"message": "Funda kabanzi: ukufaneleka kwenqolobane yokuya emuva/phambili"
|
3250
3271
|
},
|
@@ -3677,6 +3698,12 @@
|
|
3677
3698
|
"panels/changes/ChangesView.ts | binaryData": {
|
3678
3699
|
"message": "Idatha yenambambili"
|
3679
3700
|
},
|
3701
|
+
"panels/changes/ChangesView.ts | copy": {
|
3702
|
+
"message": "Kopisha"
|
3703
|
+
},
|
3704
|
+
"panels/changes/ChangesView.ts | copyAllChangesFromCurrentFile": {
|
3705
|
+
"message": "Kopisha zonke izinguquko kwifayela lamanje"
|
3706
|
+
},
|
3680
3707
|
"panels/changes/ChangesView.ts | noChanges": {
|
3681
3708
|
"message": "Azikho izinguquko"
|
3682
3709
|
},
|
@@ -3755,6 +3782,9 @@
|
|
3755
3782
|
"panels/console/ConsoleView.ts | allLevels": {
|
3756
3783
|
"message": "Wonke amaleveli"
|
3757
3784
|
},
|
3785
|
+
"panels/console/ConsoleView.ts | autocompleteFromHistory": {
|
3786
|
+
"message": "Qedela ngokuzenzakalela kusukela kumlando"
|
3787
|
+
},
|
3758
3788
|
"panels/console/ConsoleView.ts | consoleCleared": {
|
3759
3789
|
"message": "I-console isuliwe"
|
3760
3790
|
},
|
@@ -3836,6 +3866,9 @@
|
|
3836
3866
|
"panels/console/ConsoleView.ts | logLevels": {
|
3837
3867
|
"message": "Amaleveli elogu"
|
3838
3868
|
},
|
3869
|
+
"panels/console/ConsoleView.ts | logXMLHttpRequests": {
|
3870
|
+
"message": "Ilogu ye-XMLHttpRequests"
|
3871
|
+
},
|
3839
3872
|
"panels/console/ConsoleView.ts | onlyShowMessagesFromTheCurrentContext": {
|
3840
3873
|
"message": "Bonisa kuphela imilayezo evela kungqikithi yamanje (top, iframe, worker, isandiso)"
|
3841
3874
|
},
|
@@ -3869,6 +3902,9 @@
|
|
3869
3902
|
"panels/console/ConsoleView.ts | showCorsErrorsInConsole": {
|
3870
3903
|
"message": "Bonisa amaphutha e-CORS ku-console"
|
3871
3904
|
},
|
3905
|
+
"panels/console/ConsoleView.ts | treatEvaluationAsUserActivation": {
|
3906
|
+
"message": "Thatha ukuhlolwa njengokwenziwe kwasebenza umsebenzisi"
|
3907
|
+
},
|
3872
3908
|
"panels/console/ConsoleView.ts | verbose": {
|
3873
3909
|
"message": "I-Verbose"
|
3874
3910
|
},
|
@@ -4667,6 +4703,48 @@
|
|
4667
4703
|
"panels/elements/PropertiesWidget.ts | showAllTooltip": {
|
4668
4704
|
"message": "Uma kususwe ukumaka, izakhiwo kuphela inani lazo okuyiqada noma ezingachaziwe ezizoboniswa"
|
4669
4705
|
},
|
4706
|
+
"panels/elements/StylePropertiesSection.ts | constructedStylesheet": {
|
4707
|
+
"message": "i-stylesheet eyakhiwe"
|
4708
|
+
},
|
4709
|
+
"panels/elements/StylePropertiesSection.ts | copyAllCSSChanges": {
|
4710
|
+
"message": "Kopisha zonke izinguquko ze-CSS"
|
4711
|
+
},
|
4712
|
+
"panels/elements/StylePropertiesSection.ts | copyAllDeclarations": {
|
4713
|
+
"message": "Kopisha zonke izimemezelo"
|
4714
|
+
},
|
4715
|
+
"panels/elements/StylePropertiesSection.ts | copyRule": {
|
4716
|
+
"message": "Kopisha umthetho"
|
4717
|
+
},
|
4718
|
+
"panels/elements/StylePropertiesSection.ts | copySelector": {
|
4719
|
+
"message": "Kopisha selector"
|
4720
|
+
},
|
4721
|
+
"panels/elements/StylePropertiesSection.ts | cssSelector": {
|
4722
|
+
"message": "Isikhethi se-CSS"
|
4723
|
+
},
|
4724
|
+
"panels/elements/StylePropertiesSection.ts | injectedStylesheet": {
|
4725
|
+
"message": "ijove isitayela seshidi"
|
4726
|
+
},
|
4727
|
+
"panels/elements/StylePropertiesSection.ts | insertStyleRuleBelow": {
|
4728
|
+
"message": "Faka Umthetho Wesitayela Ngezansi"
|
4729
|
+
},
|
4730
|
+
"panels/elements/StylePropertiesSection.ts | sattributesStyle": {
|
4731
|
+
"message": "{PH1}[Isitayela Sezibaluli]"
|
4732
|
+
},
|
4733
|
+
"panels/elements/StylePropertiesSection.ts | showAllPropertiesSMore": {
|
4734
|
+
"message": "Bonisa Zonke Izakhiwo ({PH1} okuningi)"
|
4735
|
+
},
|
4736
|
+
"panels/elements/StylePropertiesSection.ts | styleAttribute": {
|
4737
|
+
"message": "Isibaluli se-style"
|
4738
|
+
},
|
4739
|
+
"panels/elements/StylePropertiesSection.ts | userAgentStylesheet": {
|
4740
|
+
"message": "isitayela seshidi lethuluzi lomsebenzisi"
|
4741
|
+
},
|
4742
|
+
"panels/elements/StylePropertiesSection.ts | viaInspector": {
|
4743
|
+
"message": "ngesihloli"
|
4744
|
+
},
|
4745
|
+
"panels/elements/StylePropertyTreeElement.ts | copyAllCSSChanges": {
|
4746
|
+
"message": "Kopisha zonke izinguquko ze-CSS"
|
4747
|
+
},
|
4670
4748
|
"panels/elements/StylePropertyTreeElement.ts | copyAllCssDeclarationsAsJs": {
|
4671
4749
|
"message": "Kopisha zonke izimemezelo njenge-JS"
|
4672
4750
|
},
|
@@ -4712,36 +4790,18 @@
|
|
4712
4790
|
"panels/elements/StylePropertyTreeElement.ts | viewComputedValue": {
|
4713
4791
|
"message": "Buka inani lekhompyutha"
|
4714
4792
|
},
|
4793
|
+
"panels/elements/StylesSidebarPane.ts | automaticDarkMode": {
|
4794
|
+
"message": "Imodi emnyama ngokuzenzekelayo"
|
4795
|
+
},
|
4715
4796
|
"panels/elements/StylesSidebarPane.ts | clickToRevealLayer": {
|
4716
4797
|
"message": "Chofoza ukuze wembule isendlalelo esihlahleni sesendlalelo"
|
4717
4798
|
},
|
4718
|
-
"panels/elements/StylesSidebarPane.ts | constructedStylesheet": {
|
4719
|
-
"message": "i-stylesheet eyakhiwe"
|
4720
|
-
},
|
4721
|
-
"panels/elements/StylesSidebarPane.ts | copiedToClipboard": {
|
4722
|
-
"message": "Kukopishelwe kubhodi lokunamathisela"
|
4723
|
-
},
|
4724
|
-
"panels/elements/StylesSidebarPane.ts | copyAllCSSChanges": {
|
4725
|
-
"message": "Kopisha zonke izinguquko ze-CSS"
|
4726
|
-
},
|
4727
|
-
"panels/elements/StylesSidebarPane.ts | copyAllDeclarations": {
|
4728
|
-
"message": "Kopisha zonke izimemezelo"
|
4729
|
-
},
|
4730
|
-
"panels/elements/StylesSidebarPane.ts | copyRule": {
|
4731
|
-
"message": "Kopisha umthetho"
|
4732
|
-
},
|
4733
|
-
"panels/elements/StylesSidebarPane.ts | copySelector": {
|
4734
|
-
"message": "Kopisha selector"
|
4735
|
-
},
|
4736
4799
|
"panels/elements/StylesSidebarPane.ts | cssPropertyName": {
|
4737
4800
|
"message": "CSS igama lempahla: {PH1}"
|
4738
4801
|
},
|
4739
4802
|
"panels/elements/StylesSidebarPane.ts | cssPropertyValue": {
|
4740
4803
|
"message": "CSS inani lempahla: {PH1}"
|
4741
4804
|
},
|
4742
|
-
"panels/elements/StylesSidebarPane.ts | cssSelector": {
|
4743
|
-
"message": "Isikhethi se-CSS"
|
4744
|
-
},
|
4745
4805
|
"panels/elements/StylesSidebarPane.ts | filter": {
|
4746
4806
|
"message": "Hlunga"
|
4747
4807
|
},
|
@@ -4754,15 +4814,12 @@
|
|
4754
4814
|
"panels/elements/StylesSidebarPane.ts | incrementdecrementWithMousewheelOne": {
|
4755
4815
|
"message": "Ukunyuka/ukwehla ngesondo legudwane noma ngokhiye waphezulu/waphansi. {PH1}: R ±1, Shift: G ±1, Alt: B ±1"
|
4756
4816
|
},
|
4817
|
+
"panels/elements/StylesSidebarPane.ts | inheritedFromSPseudoOf": {
|
4818
|
+
"message": "Kuzuzwe kusukela ::{PH1} i-pseudo ye "
|
4819
|
+
},
|
4757
4820
|
"panels/elements/StylesSidebarPane.ts | inheritedFroms": {
|
4758
4821
|
"message": "Kuzuzwe njengefa lokuthi "
|
4759
4822
|
},
|
4760
|
-
"panels/elements/StylesSidebarPane.ts | injectedStylesheet": {
|
4761
|
-
"message": "ijove isitayela seshidi"
|
4762
|
-
},
|
4763
|
-
"panels/elements/StylesSidebarPane.ts | insertStyleRuleBelow": {
|
4764
|
-
"message": "Faka Umthetho Wesitayela Ngezansi"
|
4765
|
-
},
|
4766
4823
|
"panels/elements/StylesSidebarPane.ts | invalidPropertyValue": {
|
4767
4824
|
"message": "Inani lesakhiwo elingavumelekile"
|
4768
4825
|
},
|
@@ -4781,24 +4838,12 @@
|
|
4781
4838
|
"panels/elements/StylesSidebarPane.ts | pseudoSElement": {
|
4782
4839
|
"message": "I-Pseudo ::{PH1} i-element"
|
4783
4840
|
},
|
4784
|
-
"panels/elements/StylesSidebarPane.ts |
|
4785
|
-
"message": "
|
4786
|
-
},
|
4787
|
-
"panels/elements/StylesSidebarPane.ts | showAllPropertiesSMore": {
|
4788
|
-
"message": "Bonisa Zonke Izakhiwo ({PH1} okuningi)"
|
4789
|
-
},
|
4790
|
-
"panels/elements/StylesSidebarPane.ts | styleAttribute": {
|
4791
|
-
"message": "Isibaluli se-style"
|
4841
|
+
"panels/elements/StylesSidebarPane.ts | toggleRenderingEmulations": {
|
4842
|
+
"message": "Guqula ama-emulation afanayo okunikezela"
|
4792
4843
|
},
|
4793
4844
|
"panels/elements/StylesSidebarPane.ts | unknownPropertyName": {
|
4794
4845
|
"message": "Igama lempahla engaziwa"
|
4795
4846
|
},
|
4796
|
-
"panels/elements/StylesSidebarPane.ts | userAgentStylesheet": {
|
4797
|
-
"message": "isitayela seshidi lethuluzi lomsebenzisi"
|
4798
|
-
},
|
4799
|
-
"panels/elements/StylesSidebarPane.ts | viaInspector": {
|
4800
|
-
"message": "ngesihloli"
|
4801
|
-
},
|
4802
4847
|
"panels/elements/components/AccessibilityTreeNode.ts | ignored": {
|
4803
4848
|
"message": "Izitshiwe"
|
4804
4849
|
},
|
@@ -5345,6 +5390,9 @@
|
|
5345
5390
|
"panels/issues/CSPViolationsView.ts | filter": {
|
5346
5391
|
"message": "Hlunga"
|
5347
5392
|
},
|
5393
|
+
"panels/issues/ComboBoxOfCheckBoxes.ts | genericMenuLabel": {
|
5394
|
+
"message": "Imenyu"
|
5395
|
+
},
|
5348
5396
|
"panels/issues/CorsIssueDetailsView.ts | allowCredentialsValueFromHeader": {
|
5349
5397
|
"message": "Access-Control-Allow-Credentials Inani lonhlokwana"
|
5350
5398
|
},
|
@@ -6425,6 +6473,9 @@
|
|
6425
6473
|
"panels/network/NetworkConfigView.ts | enterACustomUserAgent": {
|
6426
6474
|
"message": "Faka umenzeli womsebenzisi"
|
6427
6475
|
},
|
6476
|
+
"panels/network/NetworkConfigView.ts | networkConditionsPanelShown": {
|
6477
|
+
"message": "Izimo zenethiwekhi zibonisiwe"
|
6478
|
+
},
|
6428
6479
|
"panels/network/NetworkConfigView.ts | networkThrottling": {
|
6429
6480
|
"message": "I-throttling yenethiwekhi"
|
6430
6481
|
},
|
@@ -7040,6 +7091,9 @@
|
|
7040
7091
|
"panels/network/RequestHeadersView.ts | general": {
|
7041
7092
|
"message": "Okuvamile"
|
7042
7093
|
},
|
7094
|
+
"panels/network/RequestHeadersView.ts | headerOverrides": {
|
7095
|
+
"message": "Ukukhipha unhlokweni"
|
7096
|
+
},
|
7043
7097
|
"panels/network/RequestHeadersView.ts | learnMore": {
|
7044
7098
|
"message": "Funda kabanzi"
|
7045
7099
|
},
|
@@ -2,10 +2,11 @@
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
3
3
|
// found in the LICENSE file.
|
4
4
|
|
5
|
+
import * as Protocol from '../../generated/protocol.js';
|
5
6
|
import * as TextUtils from '../../models/text_utils/text_utils.js';
|
6
|
-
import type * as Protocol from '../../generated/protocol.js';
|
7
7
|
|
8
8
|
import {cssMetadata, CustomVariableRegex, VariableRegex} from './CSSMetadata.js';
|
9
|
+
|
9
10
|
import type {CSSModel} from './CSSModel.js';
|
10
11
|
import type {CSSProperty} from './CSSProperty.js';
|
11
12
|
import {CSSKeyframesRule, CSSStyleRule} from './CSSRule.js';
|
@@ -22,6 +23,7 @@ export class CSSMatchedStyles {
|
|
22
23
|
readonly #inheritedStyles: Set<CSSStyleDeclaration>;
|
23
24
|
readonly #mainDOMCascade: DOMInheritanceCascade;
|
24
25
|
readonly #pseudoDOMCascades: Map<Protocol.DOM.PseudoType, DOMInheritanceCascade>;
|
26
|
+
readonly #customHighlightPseudoDOMCascades: Map<string, DOMInheritanceCascade>;
|
25
27
|
readonly #styleToDOMCascade: Map<CSSStyleDeclaration, DOMInheritanceCascade>;
|
26
28
|
|
27
29
|
constructor(
|
@@ -48,10 +50,13 @@ export class CSSMatchedStyles {
|
|
48
50
|
}
|
49
51
|
|
50
52
|
this.#mainDOMCascade = this.buildMainCascade(inlinePayload, attributesPayload, matchedPayload, inheritedPayload);
|
51
|
-
this.#pseudoDOMCascades
|
53
|
+
[this.#pseudoDOMCascades, this.#customHighlightPseudoDOMCascades] =
|
54
|
+
this.buildPseudoCascades(pseudoPayload, inheritedPseudoPayload);
|
52
55
|
|
53
56
|
this.#styleToDOMCascade = new Map();
|
54
|
-
for (const domCascade of Array.from(this.#
|
57
|
+
for (const domCascade of Array.from(this.#customHighlightPseudoDOMCascades.values())
|
58
|
+
.concat(Array.from(this.#pseudoDOMCascades.values()))
|
59
|
+
.concat(this.#mainDOMCascade)) {
|
55
60
|
for (const style of domCascade.styles()) {
|
56
61
|
this.#styleToDOMCascade.set(style, domCascade);
|
57
62
|
}
|
@@ -206,36 +211,133 @@ export class CSSMatchedStyles {
|
|
206
211
|
}
|
207
212
|
}
|
208
213
|
|
214
|
+
/**
|
215
|
+
* Pseudo rule matches received via the inspector protocol are grouped by pseudo type.
|
216
|
+
* For custom highlight pseudos, we need to instead group the rule matches by highlight
|
217
|
+
* name in order to produce separate cascades for each highlight name. This is necessary
|
218
|
+
* so that styles of ::highlight(foo) are not shown as overriding styles of ::highlight(bar).
|
219
|
+
*
|
220
|
+
* This helper function takes a list of rule matches and generates separate NodeCascades
|
221
|
+
* for each custom highlight name that was matched.
|
222
|
+
*/
|
223
|
+
private buildSplitCustomHighlightCascades(
|
224
|
+
rules: Protocol.CSS.RuleMatch[], node: DOMNode, isInherited: boolean,
|
225
|
+
pseudoCascades: Map<string, NodeCascade[]>): void {
|
226
|
+
const splitHighlightRules = new Map<string, CSSStyleDeclaration[]>();
|
227
|
+
|
228
|
+
for (let j = rules.length - 1; j >= 0; --j) {
|
229
|
+
const highlightNamesToMatchingSelectorIndices = this.customHighlightNamesToMatchingSelectorIndices(rules[j]);
|
230
|
+
|
231
|
+
for (const [highlightName, matchingSelectors] of highlightNamesToMatchingSelectorIndices) {
|
232
|
+
const pseudoRule = new CSSStyleRule(this.#cssModelInternal, rules[j].rule);
|
233
|
+
this.#nodeForStyleInternal.set(pseudoRule.style, node);
|
234
|
+
if (isInherited) {
|
235
|
+
this.#inheritedStyles.add(pseudoRule.style);
|
236
|
+
}
|
237
|
+
this.addMatchingSelectors(node, pseudoRule, matchingSelectors);
|
238
|
+
|
239
|
+
const ruleListForHighlightName = splitHighlightRules.get(highlightName);
|
240
|
+
if (ruleListForHighlightName) {
|
241
|
+
ruleListForHighlightName.push(pseudoRule.style);
|
242
|
+
} else {
|
243
|
+
splitHighlightRules.set(highlightName, [pseudoRule.style]);
|
244
|
+
}
|
245
|
+
}
|
246
|
+
}
|
247
|
+
|
248
|
+
for (const [highlightName, highlightStyles] of splitHighlightRules) {
|
249
|
+
const nodeCascade = new NodeCascade(this, highlightStyles, isInherited, true /* #isHighlightPseudoCascade*/);
|
250
|
+
const cascadeListForHighlightName = pseudoCascades.get(highlightName);
|
251
|
+
if (cascadeListForHighlightName) {
|
252
|
+
cascadeListForHighlightName.push(nodeCascade);
|
253
|
+
} else {
|
254
|
+
pseudoCascades.set(highlightName, [nodeCascade]);
|
255
|
+
}
|
256
|
+
}
|
257
|
+
}
|
258
|
+
|
259
|
+
/**
|
260
|
+
* Return a mapping of the highlight names in the specified RuleMatch to
|
261
|
+
* the indices of selectors in that selector list with that highlight name.
|
262
|
+
*
|
263
|
+
* For example, consider the following ruleset:
|
264
|
+
* span::highlight(foo), div, #mySpan::highlight(bar), .highlighted::highlight(foo) {
|
265
|
+
* color: blue;
|
266
|
+
* }
|
267
|
+
*
|
268
|
+
* For a <span id="mySpan" class="highlighted"></span>, a RuleMatch for that span
|
269
|
+
* would have matchingSelectors [0, 2, 3] indicating that the span
|
270
|
+
* matches all of the highlight selectors.
|
271
|
+
*
|
272
|
+
* For that RuleMatch, this function would produce the following map:
|
273
|
+
* {
|
274
|
+
* "foo": [0, 3],
|
275
|
+
* "bar": [2]
|
276
|
+
* }
|
277
|
+
*
|
278
|
+
* @param ruleMatch
|
279
|
+
* @returns A mapping of highlight names to lists of indices into the selector
|
280
|
+
* list associated with ruleMatch. The indices correspond to the selectors in the rule
|
281
|
+
* associated with the key's highlight name.
|
282
|
+
*/
|
283
|
+
private customHighlightNamesToMatchingSelectorIndices(ruleMatch: Protocol.CSS.RuleMatch): Map<string, number[]> {
|
284
|
+
const highlightNamesToMatchingSelectors = new Map<string, number[]>();
|
285
|
+
|
286
|
+
for (let i = 0; i < ruleMatch.matchingSelectors.length; i++) {
|
287
|
+
const matchingSelectorIndex = ruleMatch.matchingSelectors[i];
|
288
|
+
const selectorText = ruleMatch.rule.selectorList.selectors[matchingSelectorIndex].text;
|
289
|
+
const highlightNameMatch = selectorText.match(/::highlight\((.*)\)/);
|
290
|
+
if (highlightNameMatch) {
|
291
|
+
const highlightName = highlightNameMatch[1];
|
292
|
+
const selectorsForName = highlightNamesToMatchingSelectors.get(highlightName);
|
293
|
+
if (selectorsForName) {
|
294
|
+
selectorsForName.push(matchingSelectorIndex);
|
295
|
+
} else {
|
296
|
+
highlightNamesToMatchingSelectors.set(highlightName, [matchingSelectorIndex]);
|
297
|
+
}
|
298
|
+
}
|
299
|
+
}
|
300
|
+
return highlightNamesToMatchingSelectors;
|
301
|
+
}
|
302
|
+
|
209
303
|
private buildPseudoCascades(
|
210
304
|
pseudoPayload: Protocol.CSS.PseudoElementMatches[],
|
211
305
|
inheritedPseudoPayload: Protocol.CSS.InheritedPseudoElementMatches[]):
|
212
|
-
Map<Protocol.DOM.PseudoType, DOMInheritanceCascade> {
|
306
|
+
[Map<Protocol.DOM.PseudoType, DOMInheritanceCascade>, Map<string, DOMInheritanceCascade>] {
|
213
307
|
const pseudoInheritanceCascades = new Map<Protocol.DOM.PseudoType, DOMInheritanceCascade>();
|
308
|
+
const customHighlightPseudoInheritanceCascades = new Map<string, DOMInheritanceCascade>();
|
214
309
|
if (!pseudoPayload) {
|
215
|
-
return pseudoInheritanceCascades;
|
310
|
+
return [pseudoInheritanceCascades, customHighlightPseudoInheritanceCascades];
|
216
311
|
}
|
217
312
|
|
218
313
|
const pseudoCascades = new Map<Protocol.DOM.PseudoType, NodeCascade[]>();
|
314
|
+
const customHighlightPseudoCascades = new Map<string, NodeCascade[]>();
|
219
315
|
for (let i = 0; i < pseudoPayload.length; ++i) {
|
220
316
|
const entryPayload = pseudoPayload[i];
|
221
317
|
// PseudoElement nodes are not created unless "content" css property is set.
|
222
318
|
const pseudoElement = this.#nodeInternal.pseudoElements().get(entryPayload.pseudoType) || null;
|
223
319
|
const pseudoStyles = [];
|
224
320
|
const rules = entryPayload.matches || [];
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
321
|
+
|
322
|
+
if (entryPayload.pseudoType === Protocol.DOM.PseudoType.Highlight) {
|
323
|
+
this.buildSplitCustomHighlightCascades(
|
324
|
+
rules, this.#nodeInternal, false /* #isInherited */, customHighlightPseudoCascades);
|
325
|
+
} else {
|
326
|
+
for (let j = rules.length - 1; j >= 0; --j) {
|
327
|
+
const pseudoRule = new CSSStyleRule(this.#cssModelInternal, rules[j].rule);
|
328
|
+
pseudoStyles.push(pseudoRule.style);
|
329
|
+
const nodeForStyle =
|
330
|
+
cssMetadata().isHighlightPseudoType(entryPayload.pseudoType) ? this.#nodeInternal : pseudoElement;
|
331
|
+
this.#nodeForStyleInternal.set(pseudoRule.style, nodeForStyle);
|
332
|
+
if (nodeForStyle) {
|
333
|
+
this.addMatchingSelectors(nodeForStyle, pseudoRule, rules[j].matchingSelectors);
|
334
|
+
}
|
233
335
|
}
|
336
|
+
const isHighlightPseudoCascade = cssMetadata().isHighlightPseudoType(entryPayload.pseudoType);
|
337
|
+
const nodeCascade = new NodeCascade(
|
338
|
+
this, pseudoStyles, false /* #isInherited */, isHighlightPseudoCascade /* #isHighlightPseudoCascade*/);
|
339
|
+
pseudoCascades.set(entryPayload.pseudoType, [nodeCascade]);
|
234
340
|
}
|
235
|
-
const isHighlightPseudoCascade = cssMetadata().isHighlightPseudoType(entryPayload.pseudoType);
|
236
|
-
const nodeCascade = new NodeCascade(
|
237
|
-
this, pseudoStyles, false /* #isInherited */, isHighlightPseudoCascade /* #isHighlightPseudoCascade*/);
|
238
|
-
pseudoCascades.set(entryPayload.pseudoType, [nodeCascade]);
|
239
341
|
}
|
240
342
|
|
241
343
|
if (inheritedPseudoPayload) {
|
@@ -244,24 +346,30 @@ export class CSSMatchedStyles {
|
|
244
346
|
const inheritedPseudoMatches = inheritedPseudoPayload[i].pseudoElements;
|
245
347
|
for (let j = 0; j < inheritedPseudoMatches.length; ++j) {
|
246
348
|
const inheritedEntryPayload = inheritedPseudoMatches[j];
|
247
|
-
const pseudoStyles = [];
|
248
349
|
const rules = inheritedEntryPayload.matches || [];
|
249
|
-
for (let k = rules.length - 1; k >= 0; --k) {
|
250
|
-
const pseudoRule = new CSSStyleRule(this.#cssModelInternal, rules[k].rule);
|
251
|
-
pseudoStyles.push(pseudoRule.style);
|
252
|
-
this.#nodeForStyleInternal.set(pseudoRule.style, parentNode);
|
253
|
-
this.#inheritedStyles.add(pseudoRule.style);
|
254
|
-
this.addMatchingSelectors(parentNode, pseudoRule, rules[k].matchingSelectors);
|
255
|
-
}
|
256
350
|
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
const cascadeListForPseudoType = pseudoCascades.get(inheritedEntryPayload.pseudoType);
|
261
|
-
if (cascadeListForPseudoType) {
|
262
|
-
cascadeListForPseudoType.push(nodeCascade);
|
351
|
+
if (inheritedEntryPayload.pseudoType === Protocol.DOM.PseudoType.Highlight) {
|
352
|
+
this.buildSplitCustomHighlightCascades(
|
353
|
+
rules, parentNode, true /* #isInherited */, customHighlightPseudoCascades);
|
263
354
|
} else {
|
264
|
-
|
355
|
+
const pseudoStyles = [];
|
356
|
+
for (let k = rules.length - 1; k >= 0; --k) {
|
357
|
+
const pseudoRule = new CSSStyleRule(this.#cssModelInternal, rules[k].rule);
|
358
|
+
pseudoStyles.push(pseudoRule.style);
|
359
|
+
this.#nodeForStyleInternal.set(pseudoRule.style, parentNode);
|
360
|
+
this.#inheritedStyles.add(pseudoRule.style);
|
361
|
+
this.addMatchingSelectors(parentNode, pseudoRule, rules[k].matchingSelectors);
|
362
|
+
}
|
363
|
+
|
364
|
+
const isHighlightPseudoCascade = cssMetadata().isHighlightPseudoType(inheritedEntryPayload.pseudoType);
|
365
|
+
const nodeCascade = new NodeCascade(
|
366
|
+
this, pseudoStyles, true /* #isInherited */, isHighlightPseudoCascade /* #isHighlightPseudoCascade*/);
|
367
|
+
const cascadeListForPseudoType = pseudoCascades.get(inheritedEntryPayload.pseudoType);
|
368
|
+
if (cascadeListForPseudoType) {
|
369
|
+
cascadeListForPseudoType.push(nodeCascade);
|
370
|
+
} else {
|
371
|
+
pseudoCascades.set(inheritedEntryPayload.pseudoType, [nodeCascade]);
|
372
|
+
}
|
265
373
|
}
|
266
374
|
}
|
267
375
|
|
@@ -275,7 +383,11 @@ export class CSSMatchedStyles {
|
|
275
383
|
pseudoInheritanceCascades.set(pseudoType, new DOMInheritanceCascade(nodeCascade));
|
276
384
|
}
|
277
385
|
|
278
|
-
|
386
|
+
for (const [highlightName, nodeCascade] of customHighlightPseudoCascades.entries()) {
|
387
|
+
customHighlightPseudoInheritanceCascades.set(highlightName, new DOMInheritanceCascade(nodeCascade));
|
388
|
+
}
|
389
|
+
|
390
|
+
return [pseudoInheritanceCascades, customHighlightPseudoInheritanceCascades];
|
279
391
|
}
|
280
392
|
|
281
393
|
private addMatchingSelectors(
|
@@ -405,6 +517,15 @@ export class CSSMatchedStyles {
|
|
405
517
|
return new Set(this.#pseudoDOMCascades.keys());
|
406
518
|
}
|
407
519
|
|
520
|
+
customHighlightPseudoStyles(highlightName: string): CSSStyleDeclaration[] {
|
521
|
+
const domCascade = this.#customHighlightPseudoDOMCascades.get(highlightName);
|
522
|
+
return domCascade ? domCascade.styles() : [];
|
523
|
+
}
|
524
|
+
|
525
|
+
customHighlightPseudoNames(): Set<string> {
|
526
|
+
return new Set(this.#customHighlightPseudoDOMCascades.keys());
|
527
|
+
}
|
528
|
+
|
408
529
|
private containsInherited(style: CSSStyleDeclaration): boolean {
|
409
530
|
const properties = style.allProperties();
|
410
531
|
for (let i = 0; i < properties.length; ++i) {
|
@@ -462,6 +583,10 @@ export class CSSMatchedStyles {
|
|
462
583
|
for (const domCascade of this.#pseudoDOMCascades.values()) {
|
463
584
|
domCascade.reset();
|
464
585
|
}
|
586
|
+
|
587
|
+
for (const domCascade of this.#customHighlightPseudoDOMCascades.values()) {
|
588
|
+
domCascade.reset();
|
589
|
+
}
|
465
590
|
}
|
466
591
|
}
|
467
592
|
|
@@ -313,15 +313,8 @@ export class CSSMetadata {
|
|
313
313
|
}
|
314
314
|
|
315
315
|
isHighlightPseudoType(pseudoType: Protocol.DOM.PseudoType): boolean {
|
316
|
-
// TODO(crbug.com/1164461) Currently devtools-frontend groups all custom highlight
|
317
|
-
// pseudos together in the same pseudo cascade, regardless of highlight name. This means that
|
318
|
-
// the result of displaying "overloaded" highlight styles as crossed-out can produce
|
319
|
-
// misleading results, because properties from highlights with one name can be shown as overloaded by
|
320
|
-
// properties from highlights with another name.
|
321
|
-
// So until that is fixed, don't include custom highlights among the highlight pseudos
|
322
|
-
// for which we apply overloaded property annotations.
|
323
316
|
return (
|
324
|
-
|
317
|
+
pseudoType === Protocol.DOM.PseudoType.Highlight || pseudoType === Protocol.DOM.PseudoType.Selection ||
|
325
318
|
pseudoType === Protocol.DOM.PseudoType.TargetText || pseudoType === Protocol.DOM.PseudoType.GrammarError ||
|
326
319
|
pseudoType === Protocol.DOM.PseudoType.SpellingError);
|
327
320
|
}
|
@@ -273,38 +273,69 @@ export function registerCommands(inspectorBackend) {
|
|
273
273
|
'Audits.GenericIssueErrorType', {CrossOriginPortalPostMessageError: 'CrossOriginPortalPostMessageError'});
|
274
274
|
inspectorBackend.registerEnum('Audits.DeprecationIssueType', {
|
275
275
|
AuthorizationCoveredByWildcard: 'AuthorizationCoveredByWildcard',
|
276
|
+
BatteryStatusInsecureOrigin: 'BatteryStatusInsecureOrigin',
|
277
|
+
CanRequestURLHTTPContainingNewline: 'CanRequestURLHTTPContainingNewline',
|
278
|
+
ChromeLoadTimesConnectionInfo: 'ChromeLoadTimesConnectionInfo',
|
279
|
+
ChromeLoadTimesFirstPaintAfterLoadTime: 'ChromeLoadTimesFirstPaintAfterLoadTime',
|
280
|
+
ChromeLoadTimesWasAlternateProtocolAvailable: 'ChromeLoadTimesWasAlternateProtocolAvailable',
|
276
281
|
CookieWithTruncatingChar: 'CookieWithTruncatingChar',
|
277
282
|
CrossOriginAccessBasedOnDocumentDomain: 'CrossOriginAccessBasedOnDocumentDomain',
|
278
283
|
CrossOriginWindowAlert: 'CrossOriginWindowAlert',
|
279
284
|
CrossOriginWindowConfirm: 'CrossOriginWindowConfirm',
|
285
|
+
CSSSelectorInternalMediaControlsOverlayCastButton: 'CSSSelectorInternalMediaControlsOverlayCastButton',
|
286
|
+
CustomCursorIntersectsViewport: 'CustomCursorIntersectsViewport',
|
280
287
|
DeprecationExample: 'DeprecationExample',
|
281
288
|
DocumentDomainSettingWithoutOriginAgentClusterHeader: 'DocumentDomainSettingWithoutOriginAgentClusterHeader',
|
289
|
+
EventPath: 'EventPath',
|
282
290
|
GeolocationInsecureOrigin: 'GeolocationInsecureOrigin',
|
283
291
|
GeolocationInsecureOriginDeprecatedNotRemoved: 'GeolocationInsecureOriginDeprecatedNotRemoved',
|
284
292
|
GetUserMediaInsecureOrigin: 'GetUserMediaInsecureOrigin',
|
293
|
+
HostCandidateAttributeGetter: 'HostCandidateAttributeGetter',
|
294
|
+
InsecurePrivateNetworkSubresourceRequest: 'InsecurePrivateNetworkSubresourceRequest',
|
285
295
|
LegacyConstraintGoogCpuOveruseDetection: 'LegacyConstraintGoogCpuOveruseDetection',
|
286
296
|
LegacyConstraintGoogIPv6: 'LegacyConstraintGoogIPv6',
|
287
297
|
LegacyConstraintGoogScreencastMinBitrate: 'LegacyConstraintGoogScreencastMinBitrate',
|
288
298
|
LegacyConstraintGoogSuspendBelowMinBitrate: 'LegacyConstraintGoogSuspendBelowMinBitrate',
|
289
299
|
LocalCSSFileExtensionRejected: 'LocalCSSFileExtensionRejected',
|
300
|
+
MediaElementAudioSourceNode: 'MediaElementAudioSourceNode',
|
301
|
+
MediaSourceAbortRemove: 'MediaSourceAbortRemove',
|
302
|
+
MediaSourceDurationTruncatingBuffered: 'MediaSourceDurationTruncatingBuffered',
|
303
|
+
NoSysexWebMIDIWithoutPermission: 'NoSysexWebMIDIWithoutPermission',
|
290
304
|
NotificationInsecureOrigin: 'NotificationInsecureOrigin',
|
305
|
+
NotificationPermissionRequestedIframe: 'NotificationPermissionRequestedIframe',
|
291
306
|
ObsoleteWebRtcCipherSuite: 'ObsoleteWebRtcCipherSuite',
|
307
|
+
PaymentRequestBasicCard: 'PaymentRequestBasicCard',
|
308
|
+
PaymentRequestShowWithoutGesture: 'PaymentRequestShowWithoutGesture',
|
292
309
|
PictureSourceSrc: 'PictureSourceSrc',
|
293
310
|
PrefixedCancelAnimationFrame: 'PrefixedCancelAnimationFrame',
|
294
311
|
PrefixedRequestAnimationFrame: 'PrefixedRequestAnimationFrame',
|
312
|
+
PrefixedStorageInfo: 'PrefixedStorageInfo',
|
313
|
+
PrefixedVideoDisplayingFullscreen: 'PrefixedVideoDisplayingFullscreen',
|
314
|
+
PrefixedVideoEnterFullscreen: 'PrefixedVideoEnterFullscreen',
|
315
|
+
PrefixedVideoEnterFullScreen: 'PrefixedVideoEnterFullScreen',
|
316
|
+
PrefixedVideoExitFullscreen: 'PrefixedVideoExitFullscreen',
|
317
|
+
PrefixedVideoExitFullScreen: 'PrefixedVideoExitFullScreen',
|
318
|
+
PrefixedVideoSupportsFullscreen: 'PrefixedVideoSupportsFullscreen',
|
319
|
+
RangeExpand: 'RangeExpand',
|
320
|
+
RequestedSubresourceWithEmbeddedCredentials: 'RequestedSubresourceWithEmbeddedCredentials',
|
295
321
|
RTCConstraintEnableDtlsSrtpFalse: 'RTCConstraintEnableDtlsSrtpFalse',
|
296
322
|
RTCConstraintEnableDtlsSrtpTrue: 'RTCConstraintEnableDtlsSrtpTrue',
|
297
323
|
RTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics:
|
298
324
|
'RTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics',
|
299
325
|
RTCPeerConnectionLegacyCreateWithMediaConstraints: 'RTCPeerConnectionLegacyCreateWithMediaConstraints',
|
326
|
+
RTCPeerConnectionSdpSemanticsPlanB: 'RTCPeerConnectionSdpSemanticsPlanB',
|
327
|
+
RtcpMuxPolicyNegotiate: 'RtcpMuxPolicyNegotiate',
|
300
328
|
RTPDataChannel: 'RTPDataChannel',
|
329
|
+
SelectionAddRangeIntersect: 'SelectionAddRangeIntersect',
|
301
330
|
SharedArrayBufferConstructedWithoutIsolation: 'SharedArrayBufferConstructedWithoutIsolation',
|
331
|
+
TextToSpeech_DisallowedByAutoplay: 'TextToSpeech_DisallowedByAutoplay',
|
302
332
|
Untranslated: 'Untranslated',
|
303
333
|
V8SharedArrayBufferConstructedInExtensionWithoutIsolation:
|
304
334
|
'V8SharedArrayBufferConstructedInExtensionWithoutIsolation',
|
305
335
|
WebCodecsVideoFrameDefaultTimestamp: 'WebCodecsVideoFrameDefaultTimestamp',
|
306
336
|
XHRJSONEncodingDetection: 'XHRJSONEncodingDetection',
|
307
|
-
XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload: 'XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload'
|
337
|
+
XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload: 'XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload',
|
338
|
+
XRSupportsSession: 'XRSupportsSession'
|
308
339
|
});
|
309
340
|
inspectorBackend.registerEnum(
|
310
341
|
'Audits.ClientHintIssueReason',
|
@@ -2103,6 +2134,7 @@ export function registerCommands(inspectorBackend) {
|
|
2103
2134
|
InterestCohort: 'interest-cohort',
|
2104
2135
|
JoinAdInterestGroup: 'join-ad-interest-group',
|
2105
2136
|
KeyboardMap: 'keyboard-map',
|
2137
|
+
LocalFonts: 'local-fonts',
|
2106
2138
|
Magnetometer: 'magnetometer',
|
2107
2139
|
Microphone: 'microphone',
|
2108
2140
|
Midi: 'midi',
|
@@ -2450,7 +2482,6 @@ export function registerCommands(inspectorBackend) {
|
|
2450
2482
|
{'name': 'marginLeft', 'type': 'number', 'optional': true},
|
2451
2483
|
{'name': 'marginRight', 'type': 'number', 'optional': true},
|
2452
2484
|
{'name': 'pageRanges', 'type': 'string', 'optional': true},
|
2453
|
-
{'name': 'ignoreInvalidPageRanges', 'type': 'boolean', 'optional': true},
|
2454
2485
|
{'name': 'headerTemplate', 'type': 'string', 'optional': true},
|
2455
2486
|
{'name': 'footerTemplate', 'type': 'string', 'optional': true},
|
2456
2487
|
{'name': 'preferCSSPageSize', 'type': 'boolean', 'optional': true},
|