| 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 let {Prefs} = require("prefs"); | 7 let {Prefs} = require("prefs"); |
| 8 | 8 |
| 9 // Make sure to stop selection when we are uninstalled | 9 // Make sure to stop selection when we are uninstalled |
| 10 onShutdown.add(() => Aardvark.quit()); | 10 onShutdown.add(() => Aardvark.quit()); |
| 11 | 11 |
| 12 // To be replaced when selection starts | 12 // To be replaced when selection starts |
| 13 function E(id) {return null;} | 13 function E(id) {return null;} |
| 14 | 14 |
| 15 let messageCounter = 0; |
| 16 |
| 15 /********************************* | 17 /********************************* |
| 16 * Minimal element creation code * | 18 * Minimal element creation code * |
| 17 *********************************/ | 19 *********************************/ |
| 18 | 20 |
| 19 function createElement(doc, tagName, attrs, children) | 21 function createElement(doc, tagName, attrs, children) |
| 20 { | 22 { |
| 21 let el = doc.createElement(tagName); | 23 let el = doc.createElement(tagName); |
| 22 if (attrs) | 24 if (attrs) |
| 23 for (let key in attrs) | 25 for (let key in attrs) |
| 24 el.setAttribute(key, attrs[key]); | 26 el.setAttribute(key, attrs[key]); |
| (...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 583 this.boxElem = null; | 585 this.boxElem = null; |
| 584 E = id => null; | 586 E = id => null; |
| 585 return false; | 587 return false; |
| 586 }, | 588 }, |
| 587 | 589 |
| 588 select: function(elem) | 590 select: function(elem) |
| 589 { | 591 { |
| 590 if (!elem) | 592 if (!elem) |
| 591 return false; | 593 return false; |
| 592 | 594 |
| 595 let messageId = ++messageCounter; |
| 596 let callback = (message) => |
| 597 { |
| 598 let response = message.data; |
| 599 if (response.messageId != messageId) |
| 600 return; |
| 601 |
| 602 this.browser.selectedBrowser.messageManager.removeMessageListener( |
| 603 "ElemHideHelper:GetNodeInfo:Response", |
| 604 callback |
| 605 ); |
| 606 |
| 607 if (!response.nodeData) |
| 608 return; |
| 609 |
| 610 this.window.openDialog("chrome://elemhidehelper/content/composer.xul", |
| 611 "_blank", "chrome,centerscreen,resizable,dialog=no", response); |
| 612 this.quit(); |
| 613 }; |
| 614 |
| 615 this.browser.selectedBrowser.messageManager.addMessageListener( |
| 616 "ElemHideHelper:GetNodeInfo:Response", |
| 617 callback |
| 618 ); |
| 593 this.browser.selectedBrowser.messageManager.sendAsyncMessage( | 619 this.browser.selectedBrowser.messageManager.sendAsyncMessage( |
| 594 "ElemHideHelper:GetNodeInfo", | 620 "ElemHideHelper:GetNodeInfo", |
| 595 null, | 621 messageId, |
| 596 { | 622 { |
| 597 element: elem, | 623 element: elem |
| 598 callback: (response) => | |
| 599 { | |
| 600 response = JSON.parse(response); | |
| 601 if (!response.nodeData) | |
| 602 return; | |
| 603 | |
| 604 this.window.openDialog("chrome://elemhidehelper/content/composer.xul", | |
| 605 "_blank", "chrome,centerscreen,resizable,dialog=no", response); | |
| 606 this.quit(); | |
| 607 } | |
| 608 } | 624 } |
| 609 ); | 625 ); |
| 610 return false; | 626 return false; |
| 611 }, | 627 }, |
| 612 | 628 |
| 613 blinkElement: function(elem) | 629 blinkElement: function(elem) |
| 614 { | 630 { |
| 615 if (!elem) | 631 if (!elem) |
| 616 return false; | 632 return false; |
| 617 | 633 |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 779 // Show help box | 795 // Show help box |
| 780 helpBox.showPopup(this.browser, -1, -1, "tooltip", "topleft", "topleft"); | 796 helpBox.showPopup(this.browser, -1, -1, "tooltip", "topleft", "topleft"); |
| 781 return true; | 797 return true; |
| 782 } | 798 } |
| 783 } | 799 } |
| 784 | 800 |
| 785 // Makes sure event handlers like Aardvark.onKeyPress always have the correct | 801 // Makes sure event handlers like Aardvark.onKeyPress always have the correct |
| 786 // this pointer set. | 802 // this pointer set. |
| 787 for (let method of ["onMouseClick", "onMouseScroll", "onKeyPress", "onPageHide",
"onMouseMove", "onAfterPaint", "quit"]) | 803 for (let method of ["onMouseClick", "onMouseScroll", "onKeyPress", "onPageHide",
"onMouseMove", "onAfterPaint", "quit"]) |
| 788 Aardvark[method] = Aardvark[method].bind(Aardvark); | 804 Aardvark[method] = Aardvark[method].bind(Aardvark); |
| OLD | NEW |