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

Unified Diff: lib/objectTabs.js

Issue 9251039: Get rid of nested functions declarations that are not on top level (causes strict mode warnings) (Closed)
Patch Set: Created Jan. 23, 2013, 12:52 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/io.js ('k') | lib/requestNotifier.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/objectTabs.js
===================================================================
--- a/lib/objectTabs.js
+++ b/lib/objectTabs.js
@@ -109,55 +109,55 @@ var objTabs =
*/
hideTargetTime: 0,
/**
* Initializes object tabs (generates random classes and registers stylesheet).
*/
_initCSS: function()
{
+ function processCSSData(request)
+ {
+ if (onShutdown.done)
+ return;
+
+ let data = request.responseText;
+
+ let rnd = [];
+ let offset = "a".charCodeAt(0);
+ for (let i = 0; i < 60; i++)
+ rnd.push(offset + Math.random() * 26);
+
+ this.objTabClassVisibleTop = String.fromCharCode.apply(String, rnd.slice(0, 20));
+ this.objTabClassVisibleBottom = String.fromCharCode.apply(String, rnd.slice(20, 40));
+ this.objTabClassHidden = String.fromCharCode.apply(String, rnd.slice(40, 60));
+
+ let {Utils} = require("utils");
+ let url = Utils.makeURI("data:text/css," + encodeURIComponent(data.replace(/%%CLASSVISIBLETOP%%/g, this.objTabClassVisibleTop)
+ .replace(/%%CLASSVISIBLEBOTTOM%%/g, this.objTabClassVisibleBottom)
+ .replace(/%%CLASSHIDDEN%%/g, this.objTabClassHidden)));
+ Utils.styleService.loadAndRegisterSheet(url, Ci.nsIStyleSheetService.USER_SHEET);
+ onShutdown.add(function()
+ {
+ Utils.styleService.unregisterSheet(url, Ci.nsIStyleSheetService.USER_SHEET);
+ });
+
+ this.initializing = false;
+ this.initialized = true;
+
+ if (this.delayedShowParams)
+ this._showTab.apply(this, this.delayedShowParams);
+ }
+
this.delayedShowParams = arguments;
if (!this.initializing)
{
this.initializing = true;
- function processCSSData(request)
- {
- if (onShutdown.done)
- return;
-
- let data = request.responseText;
-
- let rnd = [];
- let offset = "a".charCodeAt(0);
- for (let i = 0; i < 60; i++)
- rnd.push(offset + Math.random() * 26);
-
- this.objTabClassVisibleTop = String.fromCharCode.apply(String, rnd.slice(0, 20));
- this.objTabClassVisibleBottom = String.fromCharCode.apply(String, rnd.slice(20, 40));
- this.objTabClassHidden = String.fromCharCode.apply(String, rnd.slice(40, 60));
-
- let {Utils} = require("utils");
- let url = Utils.makeURI("data:text/css," + encodeURIComponent(data.replace(/%%CLASSVISIBLETOP%%/g, this.objTabClassVisibleTop)
- .replace(/%%CLASSVISIBLEBOTTOM%%/g, this.objTabClassVisibleBottom)
- .replace(/%%CLASSHIDDEN%%/g, this.objTabClassHidden)));
- Utils.styleService.loadAndRegisterSheet(url, Ci.nsIStyleSheetService.USER_SHEET);
- onShutdown.add(function()
- {
- Utils.styleService.unregisterSheet(url, Ci.nsIStyleSheetService.USER_SHEET);
- });
-
- this.initializing = false;
- this.initialized = true;
-
- if (this.delayedShowParams)
- this._showTab.apply(this, this.delayedShowParams);
- }
-
// Load CSS asynchronously
try {
let request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIXMLHttpRequest);
request.mozBackgroundRequest = true;
request.open("GET", "chrome://adblockplus/content/objtabs.css");
request.overrideMimeType("text/plain");
request.addEventListener("load", processCSSData.bind(this, request), false);
@@ -360,17 +360,17 @@ var objTabs =
function intersectRect(rect, wnd)
{
// Cannot use wnd.innerWidth/Height because they won't account for scrollbars
let doc = wnd.document;
let wndWidth = doc.documentElement.clientWidth;
let wndHeight = doc.documentElement.clientHeight;
if (doc.compatMode == "BackCompat") // clientHeight will be bogus in quirks mode
wndHeight = Math.max(doc.documentElement.offsetHeight, doc.body.offsetHeight) - wnd.scrollMaxY - 1;
-
+
rect.left = Math.max(rect.left, 0);
rect.top = Math.max(rect.top, 0);
rect.right = Math.min(rect.right, wndWidth);
rect.bottom = Math.min(rect.bottom, wndHeight);
}
let rect = element.getBoundingClientRect();
let wnd = element.ownerDocument.defaultView;
« no previous file with comments | « lib/io.js ('k') | lib/requestNotifier.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld