| Index: lib/aardvark.js |
| =================================================================== |
| --- a/lib/aardvark.js |
| +++ b/lib/aardvark.js |
| @@ -1,14 +1,16 @@ |
| /* |
| * This Source Code is subject to the terms of the Mozilla Public License |
| * version 2.0 (the "License"). You can obtain a copy of the License at |
| * http://mozilla.org/MPL/2.0/. |
| */ |
| +let {Services} = Cu.import("resource://gre/modules/Services.jsm", {}); |
| + |
| let {Prefs} = require("prefs"); |
| // Make sure to stop selection when we are uninstalled |
| onShutdown.add(() => Aardvark.quit()); |
| // To be replaced when selection starts |
| function E(id) {return null;} |
| @@ -691,22 +693,42 @@ let Aardvark = exports.Aardvark = |
| return true; |
| }, |
| viewSourceWindow: function(elem) |
| { |
| if (!elem) |
| return false; |
| - var range = elem.ownerDocument.createRange(); |
| - range.selectNodeContents(elem); |
| - var selection = {rangeCount: 1, getRangeAt: function() {return range}}; |
| - |
| - this.window.openDialog("chrome://global/content/viewPartialSource.xul", "_blank", "scrollbars,resizable,chrome,dialog=no", |
| - null, null, selection, "selection"); |
| + if (Services.vc.compare(Services.appinfo.platformVersion, "43.0") >= 0) |
| + { |
| + // After https://bugzilla.mozilla.org/show_bug.cgi?id=1134585 landed, pass |
| + // a single object as parameter. |
| + this.window.openDialog( |
| + "chrome://global/content/viewPartialSource.xul", |
| + "_blank", "scrollbars,resizable,chrome,dialog=no", |
| + { |
| + 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
|
| + drawSelection: false, |
| + baseURI: elem.ownerDocument.baseURI |
| + } |
| + ); |
| + } |
| + else |
| + { |
| + // Before Gecko 43, use positional parameters and a fake selection object. |
| + var range = elem.ownerDocument.createRange(); |
| + range.selectNodeContents(elem); |
| + var selection = {rangeCount: 1, getRangeAt: function() {return range}}; |
| + this.window.openDialog( |
| + "chrome://global/content/viewPartialSource.xul", |
| + "_blank", "scrollbars,resizable,chrome,dialog=no", |
| + null, null, selection, "selection" |
| + ); |
| + } |
| return true; |
| }, |
| getOuterHtmlFormatted: function(node, container) |
| { |
| var type = null; |
| switch (node.nodeType) |
| { |