зеркало из https://github.com/mozilla/gecko-dev.git
Bug 784055 - Remove all code dealing with offsetWidth in Readability.js (r=bnicholson)
This commit is contained in:
Родитель
a315aa941d
Коммит
5c83107603
|
@ -89,32 +89,10 @@ Readability.prototype = {
|
|||
* @return void
|
||||
**/
|
||||
_postProcessContent: function(articleContent) {
|
||||
this._fixImageFloats(articleContent);
|
||||
|
||||
// Readability cannot open relative uris so we convert them to absolute uris.
|
||||
this._fixRelativeUris(articleContent);
|
||||
},
|
||||
|
||||
/**
|
||||
* Some content ends up looking ugly if the image is too large to be floated.
|
||||
* If the image is wider than a threshold (currently 55%), no longer float it,
|
||||
* center it instead.
|
||||
*
|
||||
* @param Element
|
||||
* @return void
|
||||
**/
|
||||
_fixImageFloats: function(articleContent) {
|
||||
let imageWidthThreshold = Math.min(articleContent.offsetWidth, 800) * 0.55;
|
||||
let images = articleContent.getElementsByTagName('img');
|
||||
|
||||
for (let i = 0, il = images.length; i < il; i += 1) {
|
||||
let image = images[i];
|
||||
|
||||
if (image.offsetWidth > imageWidthThreshold)
|
||||
image.className += " blockImage";
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts each <a> and <img> uri in the given element to an absolute URI.
|
||||
*
|
||||
|
@ -230,51 +208,6 @@ Readability.prototype = {
|
|||
}
|
||||
}
|
||||
|
||||
let frames = doc.getElementsByTagName('frame');
|
||||
if (frames.length > 0) {
|
||||
let bestFrame = null;
|
||||
|
||||
// The frame to try to run readability upon. Must be on same domain.
|
||||
let bestFrameSize = 0;
|
||||
|
||||
// Used for the error message. Can be on any domain.
|
||||
let biggestFrameSize = 0;
|
||||
|
||||
for (let frameIndex = 0; frameIndex < frames.length; frameIndex += 1) {
|
||||
let frameSize = frames[frameIndex].offsetWidth + frames[frameIndex].offsetHeight;
|
||||
|
||||
let canAccessFrame = false;
|
||||
try {
|
||||
let frameBody = frames[frameIndex].contentWindow.document.body;
|
||||
canAccessFrame = true;
|
||||
} catch(eFrames) {
|
||||
this.log(eFrames);
|
||||
}
|
||||
|
||||
if (frameSize > biggestFrameSize) {
|
||||
biggestFrameSize = frameSize;
|
||||
this._biggestFrame = frames[frameIndex];
|
||||
}
|
||||
|
||||
if (canAccessFrame && frameSize > bestFrameSize) {
|
||||
bestFrame = frames[frameIndex];
|
||||
bestFrameSize = frameSize;
|
||||
}
|
||||
}
|
||||
|
||||
if (bestFrame) {
|
||||
let newBody = doc.createElement('body');
|
||||
newBody.innerHTML = bestFrame.contentWindow.document.body.innerHTML;
|
||||
newBody.style.overflow = 'scroll';
|
||||
doc.body = newBody;
|
||||
|
||||
let frameset = doc.getElementsByTagName('frameset')[0];
|
||||
if (frameset) {
|
||||
frameset.parentNode.removeChild(frameset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this._replaceBrs(doc.body);
|
||||
|
||||
doc.body.innerHTML = doc.body.innerHTML.replace(this.REGEXPS.replaceFonts, '<$1span>');
|
||||
|
|
Загрузка…
Ссылка в новой задаче