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", {}); | 7 let {Services} = Cu.import("resource://gre/modules/Services.jsm", {}); |
8 | 8 |
9 let {Prefs} = require("prefs"); | 9 let {Prefs} = require("prefs"); |
10 | 10 |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
322 this.viewSourceTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITim er); | 322 this.viewSourceTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITim er); |
323 this.viewSourceTimer.initWithCallback(function() | 323 this.viewSourceTimer.initWithCallback(function() |
324 { | 324 { |
325 sourceBox.showPopup(anchor, x, y, "tooltip", "topleft", "topleft"); | 325 sourceBox.showPopup(anchor, x, y, "tooltip", "topleft", "topleft"); |
326 Aardvark.viewSourceTimer = null; | 326 Aardvark.viewSourceTimer = null; |
327 }, 500, Ci.nsITimer.TYPE_ONE_SHOT); | 327 }, 500, Ci.nsITimer.TYPE_ONE_SHOT); |
328 }); | 328 }); |
329 return true; | 329 return true; |
330 }, | 330 }, |
331 | 331 |
332 viewSourceWindow: function(elem) | 332 viewSourceWindow: function() |
333 { | 333 { |
334 if (!elem) | 334 sendMessageWithResponse("ElemHideHelper:GetHTML", null, data => |
335 return false; | |
336 | |
337 if (Services.vc.compare(Services.appinfo.platformVersion, "43.0") >= 0) | |
338 { | 335 { |
339 // After https://bugzilla.mozilla.org/show_bug.cgi?id=1134585 landed, pass | |
340 // a single object as parameter. | |
341 this.window.openDialog( | 336 this.window.openDialog( |
342 "chrome://global/content/viewPartialSource.xul", | 337 "chrome://global/content/viewPartialSource.xul", |
343 "_blank", "scrollbars,resizable,chrome,dialog=no", | 338 "_blank", "scrollbars,resizable,chrome,dialog=no", |
344 { | 339 { |
345 URI: "view-source:data:text/html;charset=utf-8," + encodeURIComponent( elem.outerHTML), | 340 URI: "view-source:data:text/html;charset=utf-8," + |
341 encodeURIComponent(data.html), | |
346 drawSelection: false, | 342 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.
| |
347 baseURI: elem.ownerDocument.baseURI | 343 baseURI: data.baseURI |
348 } | 344 } |
349 ); | 345 ); |
350 } | 346 }); |
351 else | |
352 { | |
353 // Before Gecko 43, use positional parameters and a fake selection object. | |
354 var range = elem.ownerDocument.createRange(); | |
355 range.selectNodeContents(elem); | |
356 var selection = {rangeCount: 1, getRangeAt: function() {return range}}; | |
357 this.window.openDialog( | |
358 "chrome://global/content/viewPartialSource.xul", | |
359 "_blank", "scrollbars,resizable,chrome,dialog=no", | |
360 null, null, selection, "selection" | |
361 ); | |
362 } | |
363 return true; | 347 return true; |
364 }, | 348 }, |
365 | 349 |
366 getOuterHtmlFormatted: function(node, container) | 350 getOuterHtmlFormatted: function(node, container) |
367 { | 351 { |
368 let type = node.type; | 352 let type = node.type; |
369 if (type == "element") | 353 if (type == "element") |
370 { | 354 { |
371 let box = this.window.document.createElement("vbox"); | 355 let box = this.window.document.createElement("vbox"); |
372 box.className = "elementBox"; | 356 box.className = "elementBox"; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
436 // Show help box | 420 // Show help box |
437 helpBox.showPopup(this.browser, -1, -1, "tooltip", "topleft", "topleft"); | 421 helpBox.showPopup(this.browser, -1, -1, "tooltip", "topleft", "topleft"); |
438 return true; | 422 return true; |
439 } | 423 } |
440 } | 424 } |
441 | 425 |
442 // Makes sure event handlers like Aardvark.onKeyPress always have the correct | 426 // Makes sure event handlers like Aardvark.onKeyPress always have the correct |
443 // this pointer set. | 427 // this pointer set. |
444 for (let method of ["onKeyPress", "onMouseMove", "onTabSelect"]) | 428 for (let method of ["onKeyPress", "onMouseMove", "onTabSelect"]) |
445 Aardvark[method] = Aardvark[method].bind(Aardvark); | 429 Aardvark[method] = Aardvark[method].bind(Aardvark); |
430 | |
431 if (Services.vc.compare(Services.appinfo.platformVersion, "43.0") < 0) | |
432 { | |
433 // View source window expected the actual node before | |
434 // https://bugzil.la/1134585 landed, we don't have it so disable the command. | |
435 let index = Aardvark.commands.indexOf("viewSourceWindow"); | |
436 Aardvark.commands.splice(index, 1); | |
437 } | |
OLD | NEW |