Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: lib/main.js

Issue 5684127030312960: Issue 1091 - Implement a better templating approach for Element Hiding Helper (Closed)
Patch Set: Created July 21, 2014, 7:27 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * This Source Code is subject to the terms of the Mozilla Public License 2 * This Source Code is subject to the terms of the Mozilla Public License
3 * version 2.0 (the "License"). You can obtain a copy of the License at 3 * version 2.0 (the "License"). You can obtain a copy of the License at
4 * http://mozilla.org/MPL/2.0/. 4 * http://mozilla.org/MPL/2.0/.
5 */ 5 */
6 6
7 Cu.import("resource://gre/modules/Services.jsm"); 7 Cu.import("resource://gre/modules/Services.jsm");
8 8
9 let {Prefs} = require("prefs"); 9 let {Prefs} = require("prefs");
10 let {WindowObserver} = require("windowObserver"); 10 let {WindowObserver} = require("windowObserver");
(...skipping 15 matching lines...) Expand all
26 // Use random marker class 26 // Use random marker class
27 let elementMarkerClass = null; 27 let elementMarkerClass = null;
28 { 28 {
29 let rnd = []; 29 let rnd = [];
30 let offset = "a".charCodeAt(0); 30 let offset = "a".charCodeAt(0);
31 for (let i = 0; i < 20; i++) 31 for (let i = 0; i < 20; i++)
32 rnd.push(offset + Math.random() * 26); 32 rnd.push(offset + Math.random() * 26);
33 33
34 elementMarkerClass = String.fromCharCode.apply(String, rnd); 34 elementMarkerClass = String.fromCharCode.apply(String, rnd);
35 } 35 }
36 exports.elementMarkerClass = elementMarkerClass;
36 37
37 // Load CSS asynchronously 38 // Load CSS asynchronously
38 let request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.ns IXMLHttpRequest); 39 let request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.ns IXMLHttpRequest);
39 request.open("GET", "chrome://elemhidehelper/content/elementmarker.css"); 40 request.open("GET", "chrome://elemhidehelper/content/elementmarker.css");
40 request.overrideMimeType("text/plain"); 41 request.overrideMimeType("text/plain");
41 request.addEventListener("load", function(event) 42 request.addEventListener("load", function(event)
42 { 43 {
43 if (onShutdown.done) 44 if (onShutdown.done)
44 return; 45 return;
45 46
(...skipping 22 matching lines...) Expand all
68 { 69 {
69 let type = window.document.documentElement.getAttribute("windowtype"); 70 let type = window.document.documentElement.getAttribute("windowtype");
70 if (!(type in knownWindowTypes) || window._ehhWrapper) 71 if (!(type in knownWindowTypes) || window._ehhWrapper)
71 return; 72 return;
72 73
73 window.document.documentElement.appendChild(overlay.cloneNode(true)); 74 window.document.documentElement.appendChild(overlay.cloneNode(true));
74 75
75 let style = window.document.createProcessingInstruction("xml-stylesheet", 'class="elemhidehelper-node" href="chrome://elemhidehelper/skin/overlay.css" typ e="text/css"'); 76 let style = window.document.createProcessingInstruction("xml-stylesheet", 'class="elemhidehelper-node" href="chrome://elemhidehelper/skin/overlay.css" typ e="text/css"');
76 window.document.insertBefore(style, window.document.firstChild); 77 window.document.insertBefore(style, window.document.firstChild);
77 78
78 window._ehhWrapper = new WindowWrapper(window, elementMarkerClass); 79 window._ehhWrapper = new WindowWrapper(window);
79 }, 80 },
80 81
81 removeFromWindow: function(window) 82 removeFromWindow: function(window)
82 { 83 {
83 if (!window._ehhWrapper) 84 if (!window._ehhWrapper)
84 return; 85 return;
85 86
86 window._ehhWrapper.shutdown(); 87 window._ehhWrapper.shutdown();
87 delete window._ehhWrapper; 88 delete window._ehhWrapper;
88 89
89 let element = window.document.getElementById(overlay.getAttribute("id")); 90 let element = window.document.getElementById(overlay.getAttribute("id"));
90 if (element) 91 if (element)
91 element.parentNode.removeChild(element); 92 element.parentNode.removeChild(element);
92 93
93 for (let child = window.document.firstChild; child; child = child.nextSibl ing) 94 for (let child = window.document.firstChild; child; child = child.nextSibl ing)
94 if (child.nodeType == child.PROCESSING_INSTRUCTION_NODE && child.data.in dexOf("elemhidehelper-node") >= 0) 95 if (child.nodeType == child.PROCESSING_INSTRUCTION_NODE && child.data.in dexOf("elemhidehelper-node") >= 0)
95 child.parentNode.removeChild(child); 96 child.parentNode.removeChild(child);
96 } 97 }
97 }); 98 });
98 }, false); 99 }, false);
99 request.send(null); 100 request.send(null);
OLDNEW
« lib/aardvark.js ('K') | « lib/aardvark.js ('k') | lib/windowWrapper.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld