Index: lib/aardvark.js |
=================================================================== |
--- a/lib/aardvark.js |
+++ b/lib/aardvark.js |
@@ -324,47 +324,31 @@ let Aardvark = exports.Aardvark = |
{ |
sourceBox.showPopup(anchor, x, y, "tooltip", "topleft", "topleft"); |
Aardvark.viewSourceTimer = null; |
}, 500, Ci.nsITimer.TYPE_ONE_SHOT); |
}); |
return true; |
}, |
- viewSourceWindow: function(elem) |
+ viewSourceWindow: function() |
{ |
- if (!elem) |
- return false; |
- |
- if (Services.vc.compare(Services.appinfo.platformVersion, "43.0") >= 0) |
+ sendMessageWithResponse("ElemHideHelper:GetHTML", null, data => |
{ |
- // 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), |
+ URI: "view-source:data:text/html;charset=utf-8," + |
+ encodeURIComponent(data.html), |
drawSelection: false, |
saroyanm
2016/12/05 18:02:51
Nit: not aligned with the line above.
Wladimir Palant
2016/12/08 13:04:16
It shouldn't be - the line above is indented to in
saroyanm
2016/12/20 14:32:04
Acknowledged.
|
- baseURI: elem.ownerDocument.baseURI |
+ baseURI: data.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) |
{ |
let type = node.type; |
if (type == "element") |
{ |
@@ -438,8 +422,16 @@ let Aardvark = exports.Aardvark = |
return true; |
} |
} |
// Makes sure event handlers like Aardvark.onKeyPress always have the correct |
// this pointer set. |
for (let method of ["onKeyPress", "onMouseMove", "onTabSelect"]) |
Aardvark[method] = Aardvark[method].bind(Aardvark); |
+ |
+if (Services.vc.compare(Services.appinfo.platformVersion, "43.0") < 0) |
+{ |
+ // View source window expected the actual node before |
+ // https://bugzil.la/1134585 landed, we don't have it so disable the command. |
+ let index = Aardvark.commands.indexOf("viewSourceWindow"); |
+ Aardvark.commands.splice(index, 1); |
+} |