зеркало из https://github.com/mozilla/gecko-dev.git
107 строки
3.0 KiB
JavaScript
107 строки
3.0 KiB
JavaScript
/* 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";
|
|
|
|
const {
|
|
Arg,
|
|
RetVal,
|
|
generateActorSpec,
|
|
types,
|
|
} = require("devtools/shared/protocol");
|
|
|
|
/**
|
|
* Sent with the eval and reload requests, used to inform the
|
|
* webExtensionInspectedWindowActor about the caller information
|
|
* to be able to evaluate code as being executed from the caller
|
|
* WebExtension sources, or log errors with information that can
|
|
* help the addon developer to more easily identify the affected
|
|
* lines in his own addon code.
|
|
*/
|
|
types.addDictType("webExtensionCallerInfo", {
|
|
// Information related to the line of code that has originated
|
|
// the request.
|
|
url: "string",
|
|
lineNumber: "nullable:number",
|
|
|
|
// The called addonId.
|
|
addonId: "string",
|
|
});
|
|
|
|
/**
|
|
* RDP type related to the inspectedWindow.eval method request.
|
|
*/
|
|
types.addDictType("webExtensionEvalOptions", {
|
|
frameURL: "nullable:string",
|
|
contextSecurityOrigin: "nullable:string",
|
|
useContentScriptContext: "nullable:boolean",
|
|
});
|
|
|
|
/**
|
|
* RDP type related to the inspectedWindow.eval method result errors.
|
|
*
|
|
* This type has been modelled on the same data format
|
|
* used in the corresponding chrome API method.
|
|
*/
|
|
types.addDictType("webExtensionEvalExceptionInfo", {
|
|
// The following properties are set if the error has not occurred
|
|
// in the evaluated JS code.
|
|
isError: "nullable:boolean",
|
|
code: "nullable:string",
|
|
description: "nullable:string",
|
|
details: "nullable:array:json",
|
|
|
|
// The following properties are set if the error has occurred
|
|
// in the evaluated JS code.
|
|
isException: "nullable:string",
|
|
value: "nullable:string",
|
|
});
|
|
|
|
/**
|
|
* RDP type related to the inspectedWindow.eval method result.
|
|
*/
|
|
types.addDictType("webExtensionEvalResult", {
|
|
// The following properties are set if the evaluation has been
|
|
// completed successfully.
|
|
value: "nullable:json",
|
|
// The following properties are set if the evalutation has been
|
|
// completed with errors.
|
|
exceptionInfo: "nullable:webExtensionEvalExceptionInfo",
|
|
});
|
|
|
|
/**
|
|
* RDP type related to the inspectedWindow.reload method request.
|
|
*/
|
|
types.addDictType("webExtensionReloadOptions", {
|
|
ignoreCache: "nullable:boolean",
|
|
userAgent: "nullable:string",
|
|
injectedScript: "nullable:string",
|
|
});
|
|
|
|
const webExtensionInspectedWindowSpec = generateActorSpec({
|
|
typeName: "webExtensionInspectedWindow",
|
|
|
|
methods: {
|
|
reload: {
|
|
request: {
|
|
webExtensionCallerInfo: Arg(0, "webExtensionCallerInfo"),
|
|
options: Arg(1, "webExtensionReloadOptions"),
|
|
},
|
|
},
|
|
eval: {
|
|
request: {
|
|
webExtensionCallerInfo: Arg(0, "webExtensionCallerInfo"),
|
|
expression: Arg(1, "string"),
|
|
options: Arg(2, "webExtensionEvalOptions"),
|
|
},
|
|
|
|
response: {
|
|
evalResult: RetVal("webExtensionEvalResult"),
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
exports.webExtensionInspectedWindowSpec = webExtensionInspectedWindowSpec;
|