2 var noscript_service = Cc["@maone.net/noscript-service;1"]
3 .createInstance().wrappedJSObject;
7 o:for (var i = 0, n = a.length; i < n; i++) {
8 for (var x = 0, y = r.length; x < y; x++) {
17 function hideObject (p, o) {
18 if (!p.mimeRx.test(o.type))
20 var r = p.document.createElement("object");
21 r.style.width = o.offsetWidth + "px";
22 r.style.height = o.offsetHeight + "px";
23 r.style.display = "inline-block";
24 o.className += " " + p.className;
25 o.parentNode.insertBefore(r, o);
28 function showObject (p, o) {
30 cs = cs.replace(p.classRx, '');
31 if (cs != o.className) {
33 var r = o.previousSibling;
34 if (r instanceof HTMLObjectElement)
35 r.parentNode.removeChild(r);
39 function setObjectVisibility (document, callback) {
40 var tags = ["object", "embed"];
41 var ns = noscript_service;
42 var rx = ns.hideOnUnloadRegExp;
48 classRx: ns.hideObjClassNameRx,
49 className: ns.hideObjClassName
52 for each (var tag in tags) {
53 var local_objects = document.getElementsByTagName(tag);
54 var count = local_objects.count;
56 objects = objects || [local_objects[--count]];
58 objects.push(local_objects[count]);
63 for (var counter = objects.length; counter-- > 0;) {
64 callback(params, objects[counter]);
70 function ns_allow_temp (url, buffer, P, allow) {
71 var ns = noscript_service;
74 var temp = ns.getPref("toggle.temp");
75 ns.setTemp(url, enabled && temp);
76 ns.setJSEnabled(url, enabled, false, ns.mustCascadeTrust(url, temp));
77 setObjectVisibility(buffer.document,showObject);
80 temp = ns.getPref("toggle.temp");
81 ns.setTemp(url, enabled && temp);
82 ns.setJSEnabled(url, enabled, false, ns.mustCascadeTrust(url, temp));
83 setObjectVisibility(buffer.document,hideObject);
87 interactive("ns-toggle-temp",
88 "Allow a site temporary access to javascript",
90 var ns = noscript_service;
92 var level = ns.getPref("toolbarToggle", 3);
95 var url = ns.getQuickSite(I.buffer.document.documentURI, level);
99 var scripts = I.buffer.document.getElementsByTagName("script");
100 for (var i = 0, n = scripts.length; i < n; i++) {
101 if (scripts[i].getAttribute("src")) {
102 var matches = scripts[i].getAttribute("src").split("/");
103 if (matches[0] == "http:")
104 urls.push(matches[2]);
108 urls = urls.filter(function (u) { return !ns.isJSEnabled(u); });
109 while ((url2 = urls.pop())) {
110 ns_allow_temp(url2, I.buffer, I.P,
111 "y" == (yield I.minibuffer.read_single_character_option(
112 $prompt = "Allow " + url2 + "? [y/[n]]",
113 $options = ["y", "n"])));
115 reload(I.buffer, I.P);