/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict" ;
// Registry indexing all specs and front modules
//
// All spec and front modules should be listed here
// in order to be referenced by any other spec or front module.
// Declare in which spec module and front module a set of types are defined.
// This array should be sorted by `spec` attribute, and this is verified in the
// test devtools/shared/protocol/tests/xpcshell/test_protocol_index.js
const Types = (exports.__TypesForTests = [
{
types: [
"accessible" ,
"accessiblewalker" ,
"accessibility" ,
"parentaccessibility" ,
],
spec:
"devtools/shared/specs/accessibility" ,
front:
"devtools/client/fronts/accessibility" ,
},
{
types: [
"addons" ],
spec:
"devtools/shared/specs/addon/addons" ,
front:
"devtools/client/fronts/addon/addons" ,
},
{
types: [
"webExtensionInspectedWindow" ],
spec:
"devtools/shared/specs/addon/webextension-inspected-window" ,
front:
"devtools/client/fronts/addon/webextension-inspected-window" ,
},
{
types: [
"animationplayer" ,
"animations" ],
spec:
"devtools/shared/specs/animation" ,
front:
"devtools/client/fronts/animation" ,
},
{
types: [
"arraybuffer" ],
spec:
"devtools/shared/specs/array-buffer" ,
front:
"devtools/client/fronts/array-buffer" ,
},
{
types: [
"blackboxing" ],
spec:
"devtools/shared/specs/blackboxing" ,
front:
"devtools/client/fronts/blackboxing" ,
},
{
types: [
"breakpoint-list" ],
spec:
"devtools/shared/specs/breakpoint-list" ,
front:
"devtools/client/fronts/breakpoint-list" ,
},
{
types: [
"changes" ],
spec:
"devtools/shared/specs/changes" ,
front:
"devtools/client/fronts/changes" ,
},
{
types: [
"compatibility" ],
spec:
"devtools/shared/specs/compatibility" ,
front:
"devtools/client/fronts/compatibility" ,
},
{
types: [
"cssProperties" ],
spec:
"devtools/shared/specs/css-properties" ,
front:
"devtools/client/fronts/css-properties" ,
},
{
types: [
"processDescriptor" ],
spec:
"devtools/shared/specs/descriptors/process" ,
front:
"devtools/client/fronts/descriptors/process" ,
},
{
types: [
"tabDescriptor" ],
spec:
"devtools/shared/specs/descriptors/tab" ,
front:
"devtools/client/fronts/descriptors/tab" ,
},
{
types: [
"webExtensionDescriptor" ],
spec:
"devtools/shared/specs/descriptors/webextension" ,
front:
"devtools/client/fronts/descriptors/webextension" ,
},
{
types: [
"workerDescriptor" ],
spec:
"devtools/shared/specs/descriptors/worker" ,
front:
"devtools/client/fronts/descriptors/worker" ,
},
{
types: [
"device" ],
spec:
"devtools/shared/specs/device" ,
front:
"devtools/client/fronts/device" ,
},
{
types: [
"environment" ],
spec:
"devtools/shared/specs/environment" ,
front:
null ,
},
{
types: [
"frame" ],
spec:
"devtools/shared/specs/frame" ,
front:
"devtools/client/fronts/frame" ,
},
/* heap snapshot has old fashion client and no front */
{
types: [
"heapSnapshotFile" ],
spec:
"devtools/shared/specs/heap-snapshot-file" ,
front:
null ,
},
{
types: [
"customhighlighter" ],
spec:
"devtools/shared/specs/highlighters" ,
front:
"devtools/client/fronts/highlighters" ,
},
{
types: [
"inspector" ],
spec:
"devtools/shared/specs/inspector" ,
front:
"devtools/client/fronts/inspector" ,
},
{
types: [
"flexbox" ,
"grid" ,
"layout" ],
spec:
"devtools/shared/specs/layout" ,
front:
"devtools/client/fronts/layout" ,
},
{
types: [
"manifest" ],
spec:
"devtools/shared/specs/manifest" ,
front:
"devtools/client/fronts/manifest" ,
},
{
types: [
"memory" ],
spec:
"devtools/shared/specs/memory" ,
front:
"devtools/client/fronts/memory" ,
},
{
types: [
"networkContent" ],
spec:
"devtools/shared/specs/network-content" ,
front:
"devtools/client/fronts/network-content" ,
},
{
types: [
"netEvent" ],
spec:
"devtools/shared/specs/network-event" ,
front:
null ,
},
{
types: [
"networkParent" ],
spec:
"devtools/shared/specs/network-parent" ,
front:
"devtools/client/fronts/network-parent" ,
},
/* imageData isn't an actor but just a DictType */
{
types: [
"imageData" ,
"disconnectedNode" ,
"disconnectedNodeArray" ],
spec:
"devtools/shared/specs/node" ,
front:
null ,
},
{
types: [
"domnode" ,
"domnodelist" ],
spec:
"devtools/shared/specs/node" ,
front:
"devtools/client/fronts/node" ,
},
{
types: [
"obj" ,
"object.descriptor" ],
spec:
"devtools/shared/specs/object" ,
front:
null ,
},
{
types: [
"objects-manager" ],
spec:
"devtools/shared/specs/objects-manager" ,
front:
"devtools/client/fronts/objects-manager" ,
},
{
types: [
"pagestyle" ],
spec:
"devtools/shared/specs/page-style" ,
front:
"devtools/client/fronts/page-style" ,
},
{
types: [
"perf" ],
spec:
"devtools/shared/specs/perf" ,
front:
"devtools/client/fronts/perf" ,
},
{
types: [
"preference" ],
spec:
"devtools/shared/specs/preference" ,
front:
"devtools/client/fronts/preference" ,
},
{
types: [
"privatePropertiesIterator" ],
spec:
"devtools/shared/specs/private-properties-iterator" ,
front:
"devtools/client/fronts/private-properties-iterator" ,
},
{
types: [
"propertyIterator" ],
spec:
"devtools/shared/specs/property-iterator" ,
front:
"devtools/client/fronts/property-iterator" ,
},
{
types: [
"reflow" ],
spec:
"devtools/shared/specs/reflow" ,
front:
"devtools/client/fronts/reflow" ,
},
{
types: [
"responsive" ],
spec:
"devtools/shared/specs/responsive" ,
front:
"devtools/client/fronts/responsive" ,
},
{
types: [
"root" ],
spec:
"devtools/shared/specs/root" ,
front:
"devtools/client/fronts/root" ,
},
{
types: [
"screenshot" ],
spec:
"devtools/shared/specs/screenshot" ,
front:
"devtools/client/fronts/screenshot" ,
},
{
types: [
"screenshot-content" ],
spec:
"devtools/shared/specs/screenshot-content" ,
front:
"devtools/client/fronts/screenshot-content" ,
},
{
types: [
"source" ],
spec:
"devtools/shared/specs/source" ,
front:
"devtools/client/fronts/source" ,
},
{
types: [
"Cache" ,
"cookies" ,
"localStorage" ,
"extensionStorage" ,
"indexedDB" ,
"sessionStorage" ,
],
spec:
"devtools/shared/specs/storage" ,
front:
"devtools/client/fronts/storage" ,
},
/* longstring is special, it has a wrapper type. See its spec module */
{
types: [
"longstring" ],
spec:
"devtools/shared/specs/string" ,
front:
null ,
},
{
types: [
"longstractor" ],
spec:
"devtools/shared/specs/string" ,
front:
"devtools/client/fronts/string" ,
},
{
types: [
"domstylerule" ],
spec:
"devtools/shared/specs/style-rule" ,
front:
"devtools/client/fronts/style-rule" ,
},
{
types: [
"stylesheets" ],
spec:
"devtools/shared/specs/style-sheets" ,
front:
"devtools/client/fronts/style-sheets" ,
},
{
types: [
"symbol" ],
spec:
"devtools/shared/specs/symbol" ,
front:
null ,
},
{
types: [
"symbolIterator" ],
spec:
"devtools/shared/specs/symbol-iterator" ,
front:
"devtools/client/fronts/symbol-iterator" ,
},
{
types: [
"target-configuration" ],
spec:
"devtools/shared/specs/target-configuration" ,
front:
"devtools/client/fronts/target-configuration" ,
},
{
types: [
"contentProcessTarget" ],
spec:
"devtools/shared/specs/targets/content-process" ,
front:
null ,
},
{
types: [
"contentScriptTarget" ],
spec:
"devtools/shared/specs/targets/content-script" ,
front:
null ,
},
{
types: [
"parentProcessTarget" ],
spec:
"devtools/shared/specs/targets/parent-process" ,
front:
null ,
},
{
types: [
"windowGlobalTarget" ],
spec:
"devtools/shared/specs/targets/window-global" ,
front:
"devtools/client/fronts/targets/window-global" ,
},
{
types: [
"workerTarget" ],
spec:
"devtools/shared/specs/targets/worker" ,
front:
"devtools/client/fronts/targets/worker" ,
},
{
types: [
"thread" ],
spec:
"devtools/shared/specs/thread" ,
front:
"devtools/client/fronts/thread" ,
},
{
types: [
"thread-configuration" ],
spec:
"devtools/shared/specs/thread-configuration" ,
front:
"devtools/client/fronts/thread-configuration" ,
},
{
types: [
"tracer" ],
spec:
"devtools/shared/specs/tracer" ,
front:
"devtools/client/fronts/tracer" ,
},
{
types: [
"domwalker" ],
spec:
"devtools/shared/specs/walker" ,
front:
"devtools/client/fronts/walker" ,
},
{
types: [
"watcher" ],
spec:
"devtools/shared/specs/watcher" ,
front:
"devtools/client/fronts/watcher" ,
},
{
types: [
"console" ],
spec:
"devtools/shared/specs/webconsole" ,
front:
"devtools/client/fronts/webconsole" ,
},
{
types: [
"pushSubscription" ],
spec:
"devtools/shared/specs/worker/push-subscription" ,
front:
"devtools/client/fronts/worker/push-subscription" ,
},
{
types: [
"serviceWorker" ],
spec:
"devtools/shared/specs/worker/service-worker" ,
front:
"devtools/client/fronts/worker/service-worker" ,
},
{
types: [
"serviceWorkerRegistration" ],
spec:
"devtools/shared/specs/worker/service-worker-registration" ,
front:
"devtools/client/fronts/worker/service-worker-registration" ,
},
]);
const lazySpecs =
new Map();
const lazyFronts =
new Map();
// Convert the human readable `Types` list into efficient maps
Types.forEach(item => {
item.types.forEach(type => {
lazySpecs.set(type, item.spec);
lazyFronts.set(type, item.front);
});
});
/**
* Try lazy loading spec module for the given type.
*
* @param [string] type
* Type name
*
* @returns true, if it matched a lazy loaded type and tried to load it.
*/
function lazyLoadSpec(type) {
const modulePath = lazySpecs.get(type);
if (modulePath) {
try {
require(modulePath);
}
catch (e) {
throw new Error(
`Unable to load lazy spec module
'${modulePath}' for type
'${type}' .
Error: ${e}`
);
}
lazySpecs.
delete (type);
return true ;
}
return false ;
}
exports.lazyLoadSpec = lazyLoadSpec;
/**
* Try lazy loading front module for the given type.
*
* @param [string] type
* Type name
*
* @returns true, if it matched a lazy loaded type and tried to load it.
*/
function lazyLoadFront(type) {
const modulePath = lazyFronts.get(type);
if (modulePath) {
try {
require(modulePath);
}
catch (e) {
throw new Error(
`Unable to load lazy front module
'${modulePath}' for type
'${type}' .
Error: ${e}`
);
}
lazyFronts.
delete (type);
return true ;
}
return false ;
}
exports.lazyLoadFront = lazyLoadFront;
Messung V0.5 C=95 H=100 G=97
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland