diff options
author | New Tobin Paradigm <email@mattatobin.com> | 2018-06-03 08:07:20 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-03 08:07:20 -0400 |
commit | 83394569a1e3c6a48a5c0dbd380a1a7cf741d17a (patch) | |
tree | 18933e3ecae894c3137b103694cc211dc1f4f2e2 /toolkit/components/reader/JSDOMParser.js | |
parent | dd7046209e4e2e51f48e1499366692e7e8b78ff3 (diff) | |
parent | 984dad43ae49ba1cfa236af5567bf4c934e59263 (diff) | |
download | UXP-83394569a1e3c6a48a5c0dbd380a1a7cf741d17a.tar UXP-83394569a1e3c6a48a5c0dbd380a1a7cf741d17a.tar.gz UXP-83394569a1e3c6a48a5c0dbd380a1a7cf741d17a.tar.lz UXP-83394569a1e3c6a48a5c0dbd380a1a7cf741d17a.tar.xz UXP-83394569a1e3c6a48a5c0dbd380a1a7cf741d17a.zip |
Merge pull request #436 from Ascrod/readerview
Update Readability from mozilla-central release branch (FF 60.0).
Diffstat (limited to 'toolkit/components/reader/JSDOMParser.js')
-rw-r--r-- | toolkit/components/reader/JSDOMParser.js | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/toolkit/components/reader/JSDOMParser.js b/toolkit/components/reader/JSDOMParser.js index 38f59c4ea..dd9d37230 100644 --- a/toolkit/components/reader/JSDOMParser.js +++ b/toolkit/components/reader/JSDOMParser.js @@ -560,7 +560,8 @@ }, }; - var Document = function () { + var Document = function (url) { + this.documentURI = url; this.styleSheets = []; this.childNodes = []; this.children = []; @@ -600,6 +601,20 @@ node.textContent = text; return node; }, + + get baseURI() { + if (!this.hasOwnProperty("_baseURI")) { + this._baseURI = this.documentURI; + var baseElements = this.getElementsByTagName("base"); + var href = baseElements[0] && baseElements[0].getAttribute("href"); + if (href) { + try { + this._baseURI = (new URL(href, this._baseURI)).href; + } catch (ex) {/* Just fall back to documentURI */} + } + } + return this._baseURI; + }, }; var Element = function (tag) { @@ -1118,9 +1133,9 @@ /** * Parses an HTML string and returns a JS implementation of the Document. */ - parse: function (html) { + parse: function (html, url) { this.html = html; - var doc = this.doc = new Document(); + var doc = this.doc = new Document(url); this.readChildren(doc); // If this is an HTML document, remove root-level children except for the |