4 var noscript_service = Cc["@maone.net/noscript-service;1"]
5 .createInstance().wrappedJSObject;
9 o:for (var i = 0, n = a.length; i < n; i++) {
10 for (var x = 0, y = r.length; x < y; x++) {
19 function hideObject (p, o) {
20 if (!p.mimeRx.test(o.type))
22 var r = p.document.createElement("object");
23 r.style.width = o.offsetWidth + "px";
24 r.style.height = o.offsetHeight + "px";
25 r.style.display = "inline-block";
26 o.className += " " + p.className;
27 o.parentNode.insertBefore(r, o);
30 function showObject (p, o) {
32 cs = cs.replace(p.classRx, '');
33 if (cs != o.className) {
35 var r = o.previousSibling;
36 if (r instanceof HTMLObjectElement)
37 r.parentNode.removeChild(r);
41 function setObjectVisibility (document, callback) {
42 var tags = ["object", "embed"];
43 var ns = noscript_service;
44 var rx = ns.hideOnUnloadRegExp;
50 classRx: ns.hideObjClassNameRx,
51 className: ns.hideObjClassName
54 for each (var tag in tags) {
55 var local_objects = document.getElementsByTagName(tag);
56 var count = local_objects.count;
58 objects = objects || [local_objects[--count]];
60 objects.push(local_objects[count]);
65 for (var counter = objects.length; counter-- > 0;) {
66 callback(params, objects[counter]);
72 function ns_allow_temp (url, buffer, P, allow) {
73 var ns = noscript_service;
76 var temp = ns.getPref("toggle.temp");
77 ns.setTemp(url, enabled && temp);
78 ns.setJSEnabled(url, enabled, false, ns.mustCascadeTrust(url, temp));
79 setObjectVisibility(buffer.document,showObject);
82 temp = ns.getPref("toggle.temp");
83 ns.setTemp(url, enabled && temp);
84 ns.setJSEnabled(url, enabled, false, ns.mustCascadeTrust(url, temp));
85 setObjectVisibility(buffer.document,hideObject);
89 interactive("ns-toggle-temp",
90 "Allow a site temporary access to javascript",
92 var ns = noscript_service;
94 var level = ns.getPref("toolbarToggle", 3);
97 var url = ns.getQuickSite(I.buffer.document.documentURI, level);
101 var scripts = I.buffer.document.getElementsByTagName("script");
102 for (var i = 0, n = scripts.length; i < n; i++) {
103 if (scripts[i].getAttribute("src")) {
104 var matches = scripts[i].getAttribute("src").split("/");
105 if (matches[0] == "http:")
106 urls.push(matches[2]);
110 urls = urls.filter(function (u) { return !ns.isJSEnabled(u); });
111 while ((url2 = urls.pop())) {
112 ns_allow_temp(url2, I.buffer, I.P,
113 "y" == (yield I.minibuffer.read_single_character_option(
114 $prompt = "Allow " + url2 + "? [y/[n]]",
115 $options = ["y", "n"])));
117 reload(I.buffer, I.P);