Left: | ||
Right: |
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 {Services} = Cu.import("resource://gre/modules/Services.jsm", {}); | |
8 | |
7 let {Prefs} = require("prefs"); | 9 let {Prefs} = require("prefs"); |
8 | 10 |
9 // Make sure to stop selection when we are uninstalled | 11 // Make sure to stop selection when we are uninstalled |
10 onShutdown.add(() => Aardvark.quit()); | 12 onShutdown.add(() => Aardvark.quit()); |
11 | 13 |
12 // To be replaced when selection starts | 14 // To be replaced when selection starts |
13 function E(id) {return null;} | 15 function E(id) {return null;} |
14 | 16 |
15 let messageCounter = 0; | 17 let messageCounter = 0; |
16 | 18 |
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
689 Aardvark.viewSourceTimer = null; | 691 Aardvark.viewSourceTimer = null; |
690 }, 500, Ci.nsITimer.TYPE_ONE_SHOT); | 692 }, 500, Ci.nsITimer.TYPE_ONE_SHOT); |
691 return true; | 693 return true; |
692 }, | 694 }, |
693 | 695 |
694 viewSourceWindow: function(elem) | 696 viewSourceWindow: function(elem) |
695 { | 697 { |
696 if (!elem) | 698 if (!elem) |
697 return false; | 699 return false; |
698 | 700 |
699 var range = elem.ownerDocument.createRange(); | 701 if (Services.vc.compare(Services.appinfo.platformVersion, "43.0") >= 0) |
700 range.selectNodeContents(elem); | 702 { |
701 var selection = {rangeCount: 1, getRangeAt: function() {return range}}; | 703 // After https://bugzilla.mozilla.org/show_bug.cgi?id=1134585 landed, pass |
702 | 704 // a single object as parameter. |
703 this.window.openDialog("chrome://global/content/viewPartialSource.xul", "_bl ank", "scrollbars,resizable,chrome,dialog=no", | 705 this.window.openDialog( |
704 null, null, selection, "selection"); | 706 "chrome://global/content/viewPartialSource.xul", |
707 "_blank", "scrollbars,resizable,chrome,dialog=no", | |
708 { | |
709 URI: "view-source:data:text/html;charset=utf-8," + encodeURIComponent( elem.outerHTML), | |
kzar
2016/09/13 09:49:26
How come URI, drawSelection and baseURI are added
Wladimir Palant
2016/09/13 10:32:08
You have to look at the changes introduced in http
kzar
2016/09/13 12:06:50
That makes sense, thanks for explaining. (I tried
| |
710 drawSelection: false, | |
711 baseURI: elem.ownerDocument.baseURI | |
712 } | |
713 ); | |
714 } | |
715 else | |
716 { | |
717 // Before Gecko 43, use positional parameters and a fake selection object. | |
718 var range = elem.ownerDocument.createRange(); | |
719 range.selectNodeContents(elem); | |
720 var selection = {rangeCount: 1, getRangeAt: function() {return range}}; | |
721 this.window.openDialog( | |
722 "chrome://global/content/viewPartialSource.xul", | |
723 "_blank", "scrollbars,resizable,chrome,dialog=no", | |
724 null, null, selection, "selection" | |
725 ); | |
726 } | |
705 return true; | 727 return true; |
706 }, | 728 }, |
707 | 729 |
708 getOuterHtmlFormatted: function(node, container) | 730 getOuterHtmlFormatted: function(node, container) |
709 { | 731 { |
710 var type = null; | 732 var type = null; |
711 switch (node.nodeType) | 733 switch (node.nodeType) |
712 { | 734 { |
713 case node.ELEMENT_NODE: | 735 case node.ELEMENT_NODE: |
714 var box = this.window.document.createElement("vbox"); | 736 var box = this.window.document.createElement("vbox"); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
797 // Show help box | 819 // Show help box |
798 helpBox.showPopup(this.browser, -1, -1, "tooltip", "topleft", "topleft"); | 820 helpBox.showPopup(this.browser, -1, -1, "tooltip", "topleft", "topleft"); |
799 return true; | 821 return true; |
800 } | 822 } |
801 } | 823 } |
802 | 824 |
803 // Makes sure event handlers like Aardvark.onKeyPress always have the correct | 825 // Makes sure event handlers like Aardvark.onKeyPress always have the correct |
804 // this pointer set. | 826 // this pointer set. |
805 for (let method of ["onMouseClick", "onMouseScroll", "onKeyPress", "onPageHide", "onMouseMove", "onAfterPaint", "quit"]) | 827 for (let method of ["onMouseClick", "onMouseScroll", "onKeyPress", "onPageHide", "onMouseMove", "onAfterPaint", "quit"]) |
806 Aardvark[method] = Aardvark[method].bind(Aardvark); | 828 Aardvark[method] = Aardvark[method].bind(Aardvark); |
OLD | NEW |