зеркало из https://github.com/mozilla/pjs.git
Camino only - Bug 378624: Update Flashblock to version 1.5.3. Patch by Smokey Ardisson <alqahira@ardisson.org> r/sr=mento
This commit is contained in:
Родитель
af494e34f9
Коммит
255713cfb4
|
@ -1,10 +1,10 @@
|
||||||
Flash blocking for Camino is implemented using the FlashBlock extension
|
Flash blocking for Camino is implemented using the Flashblock extension
|
||||||
from http://flashblock.mozdev.org/. FlashBlock is available under the
|
from http://flashblock.mozdev.org/. Flashblock is available under the
|
||||||
MPL/GPL/LGPL tri-license. The files necessary for operation in Camino
|
MPL/GPL/LGPL tri-license. The files necessary for operation in Camino
|
||||||
are placed in the content directory and referenced by the jar.mn
|
are placed in the content directory and referenced by the jar.mn
|
||||||
manifest. A contents.rdf file is included to allow Camino to identify
|
manifest. A contents.rdf file is included to allow Camino to identify
|
||||||
the contents of flashblock.jar.
|
the contents of flashblock.jar.
|
||||||
|
|
||||||
Camino's bundled FlashBlock extension is currently synchronized with
|
Camino's bundled Flashblock extension is currently synchronized with
|
||||||
FlashBlock 1.5.2 from
|
Flashblock 1.5.3 from
|
||||||
http://downloads.mozdev.org/flashblock/flashblock-1.5.2.xpi.
|
http://downloads.mozdev.org/flashblock/flashblock-1.5.3.xpi.
|
||||||
|
|
|
@ -56,9 +56,29 @@ function flashblockShowFlash() {
|
||||||
if(placeholder.flashblock == "frame") {
|
if(placeholder.flashblock == "frame") {
|
||||||
current.height = current.prevHeight;
|
current.height = current.prevHeight;
|
||||||
current.width = current.prevWidth;
|
current.width = current.prevWidth;
|
||||||
|
current.src = placeholder.title;
|
||||||
current.LoadMovie(0, current.src);
|
current.LoadMovie(0, current.src);
|
||||||
} else {
|
} else {
|
||||||
parent.insertBefore(current, placeholder);
|
parent.insertBefore(current, placeholder);
|
||||||
|
if (placeholder.hasAttribute("srcAttribute")) {
|
||||||
|
current.setAttribute("src", placeholder.getAttribute("srcAttribute"));
|
||||||
|
}
|
||||||
|
if (placeholder.hasAttribute("movieAttribute")) {
|
||||||
|
current.setAttribute("movie", placeholder.getAttribute("movieAttribute"));
|
||||||
|
}
|
||||||
|
if (placeholder.hasAttribute("dataAttribute")) {
|
||||||
|
current.setAttribute("data", placeholder.getAttribute("dataAttribute"));
|
||||||
|
}
|
||||||
|
if (placeholder.movieParam) {
|
||||||
|
var mparam = placeholder.movieParam;
|
||||||
|
mparam[0].value = mparam[1];
|
||||||
|
}
|
||||||
|
if (placeholder.hasAttribute("embedsrc")) {
|
||||||
|
var embeds = current.getElementsByTagName("embed");
|
||||||
|
if (embeds && embeds.length > 0) {
|
||||||
|
embeds[0].setAttribute("src", placeholder.getAttribute("embedsrc"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
parent.removeChild(placeholder);
|
parent.removeChild(placeholder);
|
||||||
}
|
}
|
||||||
|
@ -90,30 +110,46 @@ function flashblockSetImage(placeholder, type) {
|
||||||
placeholder.style.background = placeholder.bgInactive;
|
placeholder.style.background = placeholder.bgInactive;
|
||||||
}
|
}
|
||||||
|
|
||||||
function flashblockStylePlaceholder(flash, placeholder) {
|
function flashblockStylePlaceholder(flash, placeholder, isStandalone) {
|
||||||
// If object's size was relative, use that.
|
// If object's size was relative, use that.
|
||||||
// Otherwise, set size to minimum 32x32 px
|
// Otherwise, set size to minimum 32x32 px
|
||||||
placeholder.style.minWidth = "32px !important";
|
placeholder.style.minWidth = "32px !important";
|
||||||
placeholder.style.minHeight = "32px !important";
|
placeholder.style.minHeight = "32px !important";
|
||||||
// The size and positioning may come from a class
|
// The size and positioning may come from a class
|
||||||
placeholder.setAttribute("class", flash.getAttribute("class"));
|
// or from the id for id-specific CSS styles
|
||||||
|
var fId = flash.getAttribute("id");
|
||||||
|
if (fId)
|
||||||
|
placeholder.setAttribute("id", fId);
|
||||||
|
var fClass = flash.getAttribute("class");
|
||||||
|
if (fClass)
|
||||||
|
placeholder.setAttribute("class", fClass);
|
||||||
|
|
||||||
if(flash.width.match("%$")) {
|
if(flash.width.match("%$")) {
|
||||||
placeholder.style.width = current.width;
|
placeholder.style.width = current.width;
|
||||||
} else {
|
} else {
|
||||||
var width = parseInt(flash.width || flash.style.width);
|
var width = parseInt(flash.width || flash.style.width);
|
||||||
if (width && width >= 32) {
|
if (width) {
|
||||||
|
if (width >= 32) {
|
||||||
placeholder.style.width = width + "px";
|
placeholder.style.width = width + "px";
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
placeholder.style.width = "32px";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(flash.height.match("%$")) {
|
if(flash.height.match("%$")) {
|
||||||
placeholder.style.height = flash.height;
|
placeholder.style.height = flash.height;
|
||||||
} else {
|
} else {
|
||||||
var height = parseInt(flash.height || flash.style.height);
|
var height = parseInt(flash.height || flash.style.height);
|
||||||
if (height && height >= 32) {
|
if (height) {
|
||||||
|
if (height >= 32) {
|
||||||
placeholder.style.height = height + "px";
|
placeholder.style.height = height + "px";
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
placeholder.style.height = "32px";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add styling rules to placeholder div.
|
// Add styling rules to placeholder div.
|
||||||
|
@ -125,14 +161,60 @@ function flashblockStylePlaceholder(flash, placeholder) {
|
||||||
// The size of the placeholder should include borders too,
|
// The size of the placeholder should include borders too,
|
||||||
// otherwise scrollbars appear for blocked standalone objects
|
// otherwise scrollbars appear for blocked standalone objects
|
||||||
placeholder.style.MozBoxSizing = "border-box";
|
placeholder.style.MozBoxSizing = "border-box";
|
||||||
|
|
||||||
|
// Make some style adjustments since the placeholder is a <div> // element instead of a <embed>, <object>, ... element. // An <embed> will be centered if the parent has // 'text-align: center' but a <div> will not. This code fixes that. var parentStyle = window.getComputedStyle(flash.parentNode, ""); if (parentStyle.getPropertyValue("text-align") == "center") { placeholder.style.marginRight = "auto"; placeholder.style.marginLeft = "auto"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
var current = this;
|
function flashblockSetTitle(current, placeholder, isStandalone) {
|
||||||
var parent = current.parentNode;
|
if (isStandalone) {
|
||||||
|
placeholder.title = current.src;
|
||||||
|
current.src = "";
|
||||||
|
}
|
||||||
|
else if (current.hasAttribute("src") ||
|
||||||
|
current.hasAttribute("data") ||
|
||||||
|
current.hasAttribute("movie") ) {
|
||||||
|
var srcURI = current.getAttribute("src") ||
|
||||||
|
current.getAttribute("movie") ||
|
||||||
|
current.getAttribute("data") ;
|
||||||
|
placeholder.title = srcURI;
|
||||||
|
if (current.hasAttribute("src")) {
|
||||||
|
placeholder.setAttribute("srcAttribute", current.getAttribute("src"));
|
||||||
|
current.setAttribute("src", "");
|
||||||
|
}
|
||||||
|
if (current.hasAttribute("data")) {
|
||||||
|
placeholder.setAttribute("dataAttribute", current.getAttribute("data"));
|
||||||
|
current.setAttribute("data", "");
|
||||||
|
}
|
||||||
|
if (current.hasAttribute("movie")) {
|
||||||
|
placeholder.setAttribute("movieAttribute", current.getAttribute("movie"));
|
||||||
|
current.setAttribute("movie", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var params = current.getElementsByTagName("param");
|
||||||
|
for (var ii = 0; ii < params.length; ii++) {
|
||||||
|
if (params[ii].getAttribute("name") == "movie" &&
|
||||||
|
params[ii].hasAttribute("value")) {
|
||||||
|
placeholder.title = params[ii].value;
|
||||||
|
placeholder.movieParam = [ params[ii], placeholder.title ];
|
||||||
|
params[ii].value = "";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var embeds = current.getElementsByTagName("embed");
|
||||||
|
if (embeds && embeds.length > 0 && embeds[0].hasAttribute("src")) {
|
||||||
|
placeholder.setAttribute("embedsrc", embeds[0].getAttribute("src"));
|
||||||
|
embeds[0].setAttribute("src","");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(flashblockIsWhitelisted())
|
if(flashblockIsWhitelisted())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
var current = this;
|
||||||
|
var parent = current.parentNode;
|
||||||
|
|
||||||
// Check parent too (case of working EMBED inside broken OBJECT)
|
// Check parent too (case of working EMBED inside broken OBJECT)
|
||||||
if (current.overrideCTV || parent.overrideCTV) {
|
if (current.overrideCTV || parent.overrideCTV) {
|
||||||
return;
|
return;
|
||||||
|
@ -169,7 +251,9 @@ var placeholder = flashblockCreatePlaceholder(isStandalone);
|
||||||
var type = this.flashblockType ? this.flashblockType : "flash"
|
var type = this.flashblockType ? this.flashblockType : "flash"
|
||||||
flashblockSetImage(placeholder, type);
|
flashblockSetImage(placeholder, type);
|
||||||
|
|
||||||
flashblockStylePlaceholder(current, placeholder);
|
flashblockStylePlaceholder(current, placeholder, isStandalone);
|
||||||
|
|
||||||
|
flashblockSetTitle(current, placeholder, isStandalone);
|
||||||
|
|
||||||
// Change the placeholder background when the mouse enters/exits the div.
|
// Change the placeholder background when the mouse enters/exits the div.
|
||||||
placeholder.onmouseover = function()
|
placeholder.onmouseover = function()
|
||||||
|
|
Загрузка…
Ссылка в новой задаче