| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * This Source Code is subject to the terms of the Mozilla Public License | 2  * This Source Code is subject to the terms of the Mozilla Public License | 
| 3  * version 2.0 (the "License"). You can obtain a copy of the License at | 3  * version 2.0 (the "License"). You can obtain a copy of the License at | 
| 4  * http://mozilla.org/MPL/2.0/. | 4  * http://mozilla.org/MPL/2.0/. | 
| 5  */ | 5  */ | 
| 6 | 6 | 
| 7 "use strict"; | 7 "use strict"; | 
| 8 | 8 | 
| 9 let messageManager = require("messageManager"); | 9 let messageManager = require("messageManager"); | 
| 10 let {getNodeInfo} = require("./nodeInfo"); | 10 let {getNodeInfo} = require("./nodeInfo"); | 
| 11 let { | 11 let { | 
| 12   state, selectElement, setAnchorElement, stopSelection | 12   state, selectElement, setAnchorElement, stopSelection | 
| 13 } = require("./selection"); | 13 } = require("./selection"); | 
| 14 let {getParentElement} = require("./utils"); | 14 let {getParentElement} = require("./utils"); | 
| 15 | 15 | 
| 16 messageManager.addMessageListener("ElemHideHelper:Command", onCommand); | 16 messageManager.addMessageListener("ElemHideHelper:Command", onCommand); | 
|  | 17 messageManager.addMessageListener("ElemHideHelper:SerializeSelected", | 
|  | 18                                   serializeSelected); | 
| 17 | 19 | 
| 18 onShutdown.add(() => | 20 onShutdown.add(() => | 
| 19 { | 21 { | 
| 20   messageManager.removeMessageListener("ElemHideHelper:Command", onCommand); | 22   messageManager.removeMessageListener("ElemHideHelper:Command", onCommand); | 
|  | 23   messageManager.removeMessageListener("ElemHideHelper:SerializeSelected", | 
|  | 24                                        serializeSelected); | 
| 21 }); | 25 }); | 
| 22 | 26 | 
| 23 function onCommand(message) | 27 function onCommand(message) | 
| 24 { | 28 { | 
| 25   let command = message.data; | 29   let command = message.data; | 
| 26   if (typeof exports[command] == "function") | 30   if (typeof exports[command] == "function") | 
| 27     exports[command](); | 31     exports[command](); | 
| 28 } | 32 } | 
| 29 | 33 | 
|  | 34 function serializeNode(node) | 
|  | 35 { | 
|  | 36   let result = null; | 
|  | 37   switch (node.nodeType) | 
|  | 38   { | 
|  | 39     case node.ELEMENT_NODE: | 
|  | 40       result = { | 
|  | 41         type: "element", | 
|  | 42         tagName: node.localName, | 
|  | 43         attributes: [], | 
|  | 44         children: [] | 
|  | 45       }; | 
|  | 46       for (let {name, value} of node.attributes) | 
|  | 47         result.attributes.push({name, value}); | 
|  | 48       for (let child = node.firstChild; child; child = child.nextSibling) | 
|  | 49       { | 
|  | 50         let serialized = serializeNode(child); | 
|  | 51         if (serialized) | 
|  | 52           result.children.push(serialized); | 
|  | 53       } | 
|  | 54       break; | 
|  | 55     case node.TEXT_NODE: | 
|  | 56     case node.COMMENT_NODE: | 
|  | 57       result= { | 
|  | 58         type: node.nodeType == node.TEXT_NODE ? "text" : "comment", | 
|  | 59         text: node.textContent | 
|  | 60       }; | 
|  | 61       break; | 
|  | 62   } | 
|  | 63   return result; | 
|  | 64 } | 
|  | 65 | 
|  | 66 function serializeSelected(message) | 
|  | 67 { | 
|  | 68   messageManager.sendAsyncMessage("ElemHideHelper:Response", { | 
|  | 69     messageId: message.data.messageId, | 
|  | 70     serialized: serializeNode(state.selectedElement) | 
|  | 71   }); | 
|  | 72 } | 
|  | 73 | 
| 30 function quit() | 74 function quit() | 
| 31 { | 75 { | 
| 32   stopSelection(); | 76   stopSelection(); | 
| 33 } | 77 } | 
| 34 exports.quit = quit; | 78 exports.quit = quit; | 
| 35 | 79 | 
| 36 function select() | 80 function select() | 
| 37 { | 81 { | 
| 38   if (!state.selectedElement) | 82   if (!state.selectedElement) | 
| 39     return; | 83     return; | 
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 138     counter: 0, | 182     counter: 0, | 
| 139     element: state.selectedElement, | 183     element: state.selectedElement, | 
| 140     origVisibility: state.selectedElement.style.visibility, | 184     origVisibility: state.selectedElement.style.visibility, | 
| 141     timer: Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer) | 185     timer: Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer) | 
| 142   }; | 186   }; | 
| 143 | 187 | 
| 144   blinkState.timer.initWithCallback(doBlink, 250, | 188   blinkState.timer.initWithCallback(doBlink, 250, | 
| 145       Ci.nsITimer.TYPE_REPEATING_SLACK); | 189       Ci.nsITimer.TYPE_REPEATING_SLACK); | 
| 146 } | 190 } | 
| 147 exports.blinkElement = blinkElement; | 191 exports.blinkElement = blinkElement; | 
| OLD | NEW | 
|---|