summaryrefslogtreecommitdiffstats
path: root/devtools/shared/fronts/call-watcher.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/fronts/call-watcher.js')
-rw-r--r--devtools/shared/fronts/call-watcher.js226
1 files changed, 226 insertions, 0 deletions
diff --git a/devtools/shared/fronts/call-watcher.js b/devtools/shared/fronts/call-watcher.js
new file mode 100644
index 000000000..5f41c2fbd
--- /dev/null
+++ b/devtools/shared/fronts/call-watcher.js
@@ -0,0 +1,226 @@
+/* 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 { functionCallSpec, callWatcherSpec } = require("devtools/shared/specs/call-watcher");
+const protocol = require("devtools/shared/protocol");
+
+/**
+ * The corresponding Front object for the FunctionCallActor.
+ */
+const FunctionCallFront = protocol.FrontClassWithSpec(functionCallSpec, {
+ initialize: function (client, form) {
+ protocol.Front.prototype.initialize.call(this, client, form);
+ },
+
+ /**
+ * Adds some generic information directly to this instance,
+ * to avoid extra roundtrips.
+ */
+ form: function (form) {
+ this.actorID = form.actor;
+ this.type = form.type;
+ this.name = form.name;
+ this.file = form.file;
+ this.line = form.line;
+ this.timestamp = form.timestamp;
+ this.callerPreview = form.callerPreview;
+ this.argsPreview = form.argsPreview;
+ this.resultPreview = form.resultPreview;
+ }
+});
+
+exports.FunctionCallFront = FunctionCallFront;
+
+/**
+ * The corresponding Front object for the CallWatcherActor.
+ */
+var CallWatcherFront =
+exports.CallWatcherFront =
+protocol.FrontClassWithSpec(callWatcherSpec, {
+ initialize: function (client, { callWatcherActor }) {
+ protocol.Front.prototype.initialize.call(this, client, { actor: callWatcherActor });
+ this.manage(this);
+ }
+});
+
+/**
+ * Constants.
+ */
+CallWatcherFront.METHOD_FUNCTION = 0;
+CallWatcherFront.GETTER_FUNCTION = 1;
+CallWatcherFront.SETTER_FUNCTION = 2;
+
+CallWatcherFront.KNOWN_METHODS = {};
+
+CallWatcherFront.KNOWN_METHODS.CanvasRenderingContext2D = {
+ asyncDrawXULElement: {
+ enums: new Set([6]),
+ },
+ drawWindow: {
+ enums: new Set([6])
+ },
+};
+
+CallWatcherFront.KNOWN_METHODS.WebGLRenderingContext = {
+ activeTexture: {
+ enums: new Set([0]),
+ },
+ bindBuffer: {
+ enums: new Set([0]),
+ },
+ bindFramebuffer: {
+ enums: new Set([0]),
+ },
+ bindRenderbuffer: {
+ enums: new Set([0]),
+ },
+ bindTexture: {
+ enums: new Set([0]),
+ },
+ blendEquation: {
+ enums: new Set([0]),
+ },
+ blendEquationSeparate: {
+ enums: new Set([0, 1]),
+ },
+ blendFunc: {
+ enums: new Set([0, 1]),
+ },
+ blendFuncSeparate: {
+ enums: new Set([0, 1, 2, 3]),
+ },
+ bufferData: {
+ enums: new Set([0, 1, 2]),
+ },
+ bufferSubData: {
+ enums: new Set([0, 1]),
+ },
+ checkFramebufferStatus: {
+ enums: new Set([0]),
+ },
+ clear: {
+ enums: new Set([0]),
+ },
+ compressedTexImage2D: {
+ enums: new Set([0, 2]),
+ },
+ compressedTexSubImage2D: {
+ enums: new Set([0, 6]),
+ },
+ copyTexImage2D: {
+ enums: new Set([0, 2]),
+ },
+ copyTexSubImage2D: {
+ enums: new Set([0]),
+ },
+ createShader: {
+ enums: new Set([0]),
+ },
+ cullFace: {
+ enums: new Set([0]),
+ },
+ depthFunc: {
+ enums: new Set([0]),
+ },
+ disable: {
+ enums: new Set([0]),
+ },
+ drawArrays: {
+ enums: new Set([0]),
+ },
+ drawElements: {
+ enums: new Set([0, 2]),
+ },
+ enable: {
+ enums: new Set([0]),
+ },
+ framebufferRenderbuffer: {
+ enums: new Set([0, 1, 2]),
+ },
+ framebufferTexture2D: {
+ enums: new Set([0, 1, 2]),
+ },
+ frontFace: {
+ enums: new Set([0]),
+ },
+ generateMipmap: {
+ enums: new Set([0]),
+ },
+ getBufferParameter: {
+ enums: new Set([0, 1]),
+ },
+ getParameter: {
+ enums: new Set([0]),
+ },
+ getFramebufferAttachmentParameter: {
+ enums: new Set([0, 1, 2]),
+ },
+ getProgramParameter: {
+ enums: new Set([1]),
+ },
+ getRenderbufferParameter: {
+ enums: new Set([0, 1]),
+ },
+ getShaderParameter: {
+ enums: new Set([1]),
+ },
+ getShaderPrecisionFormat: {
+ enums: new Set([0, 1]),
+ },
+ getTexParameter: {
+ enums: new Set([0, 1]),
+ },
+ getVertexAttrib: {
+ enums: new Set([1]),
+ },
+ getVertexAttribOffset: {
+ enums: new Set([1]),
+ },
+ hint: {
+ enums: new Set([0, 1]),
+ },
+ isEnabled: {
+ enums: new Set([0]),
+ },
+ pixelStorei: {
+ enums: new Set([0]),
+ },
+ readPixels: {
+ enums: new Set([4, 5]),
+ },
+ renderbufferStorage: {
+ enums: new Set([0, 1]),
+ },
+ stencilFunc: {
+ enums: new Set([0]),
+ },
+ stencilFuncSeparate: {
+ enums: new Set([0, 1]),
+ },
+ stencilMaskSeparate: {
+ enums: new Set([0]),
+ },
+ stencilOp: {
+ enums: new Set([0, 1, 2]),
+ },
+ stencilOpSeparate: {
+ enums: new Set([0, 1, 2, 3]),
+ },
+ texImage2D: {
+ enums: args => args.length > 6 ? new Set([0, 2, 6, 7]) : new Set([0, 2, 3, 4]),
+ },
+ texParameterf: {
+ enums: new Set([0, 1]),
+ },
+ texParameteri: {
+ enums: new Set([0, 1, 2]),
+ },
+ texSubImage2D: {
+ enums: args => args.length === 9 ? new Set([0, 6, 7]) : new Set([0, 4, 5]),
+ },
+ vertexAttribPointer: {
+ enums: new Set([2])
+ },
+};