diff options
Diffstat (limited to 'devtools/client/jsonview/main.js')
-rw-r--r-- | devtools/client/jsonview/main.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/devtools/client/jsonview/main.js b/devtools/client/jsonview/main.js new file mode 100644 index 000000000..a438e2e34 --- /dev/null +++ b/devtools/client/jsonview/main.js @@ -0,0 +1,62 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ +/* 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/. */ +/* globals JsonViewUtils*/ + +"use strict"; + +const { Cu } = require("chrome"); +const Services = require("Services"); + +const { XPCOMUtils } = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {}); + +XPCOMUtils.defineLazyGetter(this, "JsonViewUtils", function () { + return require("devtools/client/jsonview/utils"); +}); + +/** + * Singleton object that represents the JSON View in-content tool. + * It has the same lifetime as the browser. Initialization done by + * DevTools() object from devtools/client/framework/devtools.js + */ +var JsonView = { + initialize: function () { + // Load JSON converter module. This converter is responsible + // for handling 'application/json' documents and converting + // them into a simple web-app that allows easy inspection + // of the JSON data. + Services.ppmm.loadProcessScript( + "resource://devtools/client/jsonview/converter-observer.js", + true); + + this.onSaveListener = this.onSave.bind(this); + + // Register for messages coming from the child process. + Services.ppmm.addMessageListener( + "devtools:jsonview:save", this.onSaveListener); + }, + + destroy: function () { + Services.ppmm.removeMessageListener( + "devtools:jsonview:save", this.onSaveListener); + }, + + // Message handlers for events from child processes + + /** + * Save JSON to a file needs to be implemented here + * in the parent process. + */ + onSave: function (message) { + let value = message.data; + let file = JsonViewUtils.getTargetFile(); + if (file) { + JsonViewUtils.saveToFile(file, value); + } + } +}; + +// Exports from this module +module.exports.JsonView = JsonView; |