114 lines
5.3 KiB
XML
114 lines
5.3 KiB
XML
<?xml version="1.0"?>
|
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
|
|
|
<!DOCTYPE bindings [
|
|
<!ENTITY % aboutPermissionsDTD SYSTEM "chrome://browser/locale/permissions/aboutPermissions.dtd" >
|
|
%aboutPermissionsDTD;
|
|
]>
|
|
|
|
<bindings xmlns="http://www.mozilla.org/xbl"
|
|
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
xmlns:xbl="http://www.mozilla.org/xbl">
|
|
<binding id="site" extends="chrome://global/content/bindings/richlistbox.xml#richlistitem">
|
|
<content>
|
|
<xul:hbox class="site-container" align="center" flex="1">
|
|
<xul:image xbl:inherits="src=favicon" class="site-favicon"/>
|
|
<xul:label xbl:inherits="value,selected" class="site-domain" crop="end" flex="1"/>
|
|
</xul:hbox>
|
|
</content>
|
|
</binding>
|
|
|
|
<binding id="pluginPermission">
|
|
<content>
|
|
<xul:hbox flex="1" align="baseline">
|
|
<xul:label xbl:inherits="value=label" class="plugins-label"/>
|
|
<xul:label xbl:inherits="value=vulnerable" class="plugins-vulnerable"/>
|
|
<xul:label xbl:inherits="value=default" anonid="plugins-default" class="plugins-default"/>
|
|
<xul:spacer flex="1"/>
|
|
<xul:menulist anonid="plugins-menulist"
|
|
class="pref-menulist"
|
|
oncommand="AboutPermissions.onPermissionCommand(event, false);">
|
|
<xul:menupopup>
|
|
<xul:menuitem anonid="ask" value="0" label="&permission.alwaysAsk;"/>
|
|
<xul:menuitem anonid="allow" value="1" label="&permission.allow;"/>
|
|
<xul:menuitem anonid="block" value="2" label="&permission.block;"/>
|
|
</xul:menupopup>
|
|
</xul:menulist>
|
|
<xul:button xbl:inherits="value=set-default"
|
|
anonid="plugins-set-default"
|
|
class="pref-set-default"
|
|
label="&permission.default;"
|
|
oncommand="AboutPermissions.onPermissionCommand(event, true);"/>
|
|
</xul:hbox>
|
|
</content>
|
|
<implementation>
|
|
<constructor><![CDATA[
|
|
let mimeType = this.getAttribute("mimeType");
|
|
let permString = this.getAttribute("permString");
|
|
let menulist = document.getAnonymousElementByAttribute(this, "anonid", "plugins-menulist");
|
|
menulist.setAttribute("id", permString + "-menulist");
|
|
menulist.setAttribute("mimeType", mimeType);
|
|
menulist.setAttribute("type", permString);
|
|
let askitem = document.getAnonymousElementByAttribute(this, "anonid", "ask");
|
|
askitem.setAttribute("id", permString + "-0");
|
|
let allowitem = document.getAnonymousElementByAttribute(this, "anonid", "allow");
|
|
allowitem.setAttribute("id", permString + "-1");
|
|
let blockitem = document.getAnonymousElementByAttribute(this, "anonid", "block");
|
|
blockitem.setAttribute("id", permString + "-2");
|
|
let _default = document.getAnonymousElementByAttribute(this, "anonid", "plugins-default");
|
|
this.setDefaultVisibility(false);
|
|
_default.setAttribute("value", "*");
|
|
let _setDefault = document.getAnonymousElementByAttribute(this, "anonid", "plugins-set-default");
|
|
_setDefault.setAttribute("id", permString + "-set-default");
|
|
_setDefault.setAttribute("class", "pref-set-default");
|
|
_setDefault.setAttribute("type", permString);
|
|
]]>
|
|
</constructor>
|
|
<method name="setDefaultVisibility">
|
|
<parameter name="visibility" />
|
|
<body><![CDATA[
|
|
let _default = document.getAnonymousElementByAttribute(this, "anonid", "plugins-default");
|
|
if (visibility) {
|
|
_default.style.visibility = "visible";
|
|
} else {
|
|
_default.style.visibility = "hidden";
|
|
}
|
|
]]>
|
|
</body>
|
|
</method>
|
|
<method name="isClickToPlay">
|
|
<body><![CDATA[
|
|
let pluginHost = Components.classes["@mozilla.org/plugin/host;1"]
|
|
.getService(Components.interfaces.nsIPluginHost);
|
|
let mimeType = this.getAttribute("mimeType");
|
|
return (pluginHost.getStateForType(mimeType)
|
|
== Components.interfaces.nsIPluginTag.STATE_CLICKTOPLAY);
|
|
]]>
|
|
</body>
|
|
</method>
|
|
<method name="isBlocklisted">
|
|
<body><![CDATA[
|
|
let pluginHost = Components.classes["@mozilla.org/plugin/host;1"]
|
|
.getService(Components.interfaces.nsIPluginHost);
|
|
let blocklistService = Components.classes["@mozilla.org/extensions/blocklist;1"]
|
|
.getService(Components.interfaces.nsIBlocklistService);
|
|
let mimeType = this.getAttribute("mimeType");
|
|
let tags = pluginHost.getPluginTags();
|
|
let blocklistState = Components.interfaces.nsIBlocklistService.STATE_NOT_BLOCKED;
|
|
for (let plugin of tags) {
|
|
if (plugin.getMimeTypes()[0] == mimeType) {
|
|
blocklistState = blocklistService.getPluginBlocklistState(plugin);
|
|
break;
|
|
}
|
|
}
|
|
return (blocklistState == Components.interfaces.nsIBlocklistService.STATE_VULNERABLE_UPDATE_AVAILABLE ||
|
|
blocklistState == Components.interfaces.nsIBlocklistService.STATE_VULNERABLE_NO_UPDATE);
|
|
]]>
|
|
</body>
|
|
</method>
|
|
</implementation>
|
|
</binding>
|
|
</bindings>
|