[Pkg-mozext-commits] [firebug] 53/68: Backport Issue 5453: Remove getUserData and setUserData usage from Firebug 1.12

David Prévot taffit at moszumanska.debian.org
Mon Mar 31 22:45:54 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to tag fbtest-1.11.4
in repository firebug.

commit f1f05e36fe2e9a9dca1e1f2c95067697a3698c6a
Author: Jan Odvarko <odvarko at gmail.com>
Date:   Wed May 8 17:23:18 2013 +0200

    Backport Issue 5453: Remove getUserData and setUserData usage from Firebug 1.12
---
 extension/content/firebug/console/commandLine.js   | 17 ++++----
 .../content/firebug/console/commandLineExposed.js  | 12 +++---
 .../content/firebug/console/consoleInjector.js     | 11 ++---
 extension/content/firebug/lib/dom.js               | 49 +++++++++++++++++++++-
 4 files changed, 69 insertions(+), 20 deletions(-)

diff --git a/extension/content/firebug/console/commandLine.js b/extension/content/firebug/console/commandLine.js
index 0528761..43dc445 100644
--- a/extension/content/firebug/console/commandLine.js
+++ b/extension/content/firebug/console/commandLine.js
@@ -167,7 +167,7 @@ Firebug.CommandLine = Obj.extend(Firebug.Module,
             else
             {
                 Firebug.Console.logFormatted(["Firebug cannot find firebug-CommandLineAttached " +
-                    "through document.getUserData, it is too early for command line",
+                    "through Dom.getMappedData, it is too early for command line",
                      win], context, "error", true);
             }
             return;
@@ -175,12 +175,12 @@ Firebug.CommandLine = Obj.extend(Firebug.Module,
 
         var event = document.createEvent("Events");
         event.initEvent("firebugCommandLine", true, false);
-        win.document.setUserData("firebug-methodName", "evaluate", null);
+        Dom.setMappedData(win.document, "firebug-methodName", "evaluate");
 
         origExpr = "with(_FirebugCommandLine){\n" + (origExpr || expr) + "\n};";
         expr = "with(_FirebugCommandLine){\n" + expr + "\n};";
-        win.document.setUserData("firebug-expr-orig", origExpr, null);
-        win.document.setUserData("firebug-expr", expr, null);
+        Dom.setMappedData(win.document, "firebug-expr-orig", origExpr);
+        Dom.setMappedData(win.document, "firebug-expr", expr);
 
         var consoleHandler = Firebug.Console.injector.getConsoleHandler(context, win);
 
@@ -949,7 +949,7 @@ Firebug.CommandLine.CommandHandler = Obj.extend(Object,
     handle: function(event, api, win)
     {
         var element = event.target;
-        var methodName = win.document.getUserData("firebug-methodName");
+        var methodName = Dom.getMappedData(win.document, "firebug-methodName");
 
         // We create this array in the page using JS, so we need to look on the
         // wrappedJSObject for it.
@@ -967,13 +967,13 @@ Firebug.CommandLine.CommandHandler = Obj.extend(Object,
         if (!subHandler)
             return false;
 
-        win.document.setUserData("firebug-retValueType", null, null);
+        Dom.deleteMappedData(win.document, "firebug-retValueType"); 
         var result = subHandler.apply(api, userObjects);
         if (typeof result != "undefined")
         {
             if (result instanceof window.Array)
             {
-                win.document.setUserData("firebug-retValueType", "array", null);
+                Dom.setMappedData(win.document, "firebug-retValueType", "array");
                 for (var item in result)
                     hosed_userObjects.push(result[item]);
             }
@@ -1427,7 +1427,7 @@ function CommandLineHandler(context, win)
 
         if (!Firebug.CommandLine.CommandHandler.handle(event, this.api, win))
         {
-            var methodName = win.document.getUserData("firebug-methodName");
+            var methodName = Dom.getMappedData(win.document, "firebug-methodName");
             Firebug.Console.log(Locale.$STRF("commandline.MethodNotSupported", [methodName]));
         }
     };
@@ -1442,7 +1442,6 @@ function getNoScript()
     return this.noscript;
 }
 
-
 // ********************************************************************************************* //
 // Registration
 
diff --git a/extension/content/firebug/console/commandLineExposed.js b/extension/content/firebug/console/commandLineExposed.js
index adb9f39..134561c 100644
--- a/extension/content/firebug/console/commandLineExposed.js
+++ b/extension/content/firebug/console/commandLineExposed.js
@@ -5,8 +5,10 @@
 define([
     "firebug/lib/wrapper",
     "firebug/lib/events",
+    "firebug/lib/dom",
 ],
-function(Wrapper, Events) {
+function(Wrapper, Events, Dom) {
+
 "use strict";
 
 // ********************************************************************************************* //
@@ -173,8 +175,8 @@ function createFirebugCommandLine(context, win)
             FBTrace.sysout("commandLine.Exposed.firebugEvalEvent " + window.location);
 
         // see commandLine.js
-        var expr = contentView.document.getUserData("firebug-expr");
-        var origExpr = contentView.document.getUserData("firebug-expr-orig");
+        var expr = Dom.getMappedData(contentView.document, "firebug-expr");
+        var origExpr = Dom.getMappedData(contentView.document, "firebug-expr-orig");
         evaluate(expr, origExpr);
 
         if (FBTrace.DBG_COMMANDLINE)
@@ -254,7 +256,7 @@ function createFirebugCommandLine(context, win)
             commandLine.userObjects.push(objs[i]);
 
         var length = commandLine.userObjects.length;
-        contentView.document.setUserData("firebug-methodName", methodName, null);
+        Dom.setMappedData(contentView.document, "firebug-methodName", methodName);
 
         contentView.document.dispatchEvent(event);
 
@@ -265,7 +267,7 @@ function createFirebugCommandLine(context, win)
         }
 
         var result;
-        if (contentView.document.getUserData("firebug-retValueType") === "array")
+        if (Dom.getMappedData(contentView.document, "firebug-retValueType") == "array")
             result = [];
 
         if (!result && commandLine.userObjects.length === length + 1)
diff --git a/extension/content/firebug/console/consoleInjector.js b/extension/content/firebug/console/consoleInjector.js
index e846d1d..2a66e1b 100644
--- a/extension/content/firebug/console/consoleInjector.js
+++ b/extension/content/firebug/console/consoleInjector.js
@@ -11,10 +11,11 @@ define([
     "firebug/chrome/window",
     "firebug/console/console",
     "firebug/lib/array",
+    "firebug/lib/dom",
     "firebug/console/consoleExposed",
     "firebug/console/errors",
 ],
-function(Obj, Firebug, FirebugReps, Locale, Events, Url, StackFrame, Win, Console, Arr) {
+function(Obj, Firebug, FirebugReps, Locale, Events, Url, StackFrame, Win, Console, Arr, Dom) {
 
 // ********************************************************************************************* //
 // Constants
@@ -109,7 +110,7 @@ Firebug.Console.injector =
         var handler = createConsoleHandler(context, win);
 
         // Initialize Firebug token
-        win.document.setUserData("firebug-Token", handler.token, null);
+        Dom.setMappedData(win.document, "firebug-Token", handler.token);
 
         this.setConsoleHandler(context, win, handler);
 
@@ -128,7 +129,7 @@ Firebug.Console.injector =
             return null;
         }
 
-        var attachedToken = win.document.getUserData("firebug-Token");
+        var attachedToken = Dom.getMappedData(win.document, "firebug-Token");
         if (context.activeConsoleHandlers)
         {
             for(var i = 0; i < context.activeConsoleHandlers.length; i++)
@@ -218,14 +219,14 @@ function createConsoleHandler(context, win)
     {
         if (FBTrace.DBG_CONSOLE)
             FBTrace.sysout("FirebugConsoleHandler(" + this.handler_name + ") " +
-                win.document.getUserData("firebug-methodName") + ", event", event);
+                Dom.getMappedData(win.document, "firebug-methodName") + ", event", event);
 
         if (!Firebug.CommandLine.CommandHandler.handle(event, this.console, win))
         {
             if (FBTrace.DBG_CONSOLE)
                 FBTrace.sysout("FirebugConsoleHandler", this);
 
-            var methodName = win.document.getUserData("firebug-methodName");
+            var methodName = Dom.getMappedData(win.document, "firebug-methodName");
             Firebug.Console.log(Locale.$STRF("console.MethodNotSupported", [methodName]));
         }
     };
diff --git a/extension/content/firebug/lib/dom.js b/extension/content/firebug/lib/dom.js
index d2bcdf1..d538bd1 100644
--- a/extension/content/firebug/lib/dom.js
+++ b/extension/content/firebug/lib/dom.js
@@ -6,8 +6,9 @@ define([
     "firebug/lib/css",
     "firebug/lib/array",
     "firebug/lib/xml",
+    "firebug/lib/wrapper",
 ],
-function(FBTrace, Deprecated, Css, Arr, Xml) {
+function(FBTrace, Deprecated, Css, Arr, Xml, Wrapper) {
 
 // ********************************************************************************************* //
 // Constants
@@ -18,6 +19,7 @@ var Cc = Components.classes;
 var Dom = {};
 var domMemberCache = null;
 var domMemberMap = {};
+var domMappedData = new WeakMap();
 
 Dom.domUtils = Cc["@mozilla.org/inspector/dom-utils;1"].getService(Ci.inIDOMUtils);
 
@@ -750,6 +752,51 @@ Dom.scrollMenupopup = function(popup, item)
 }
 
 // ********************************************************************************************* //
+// MappedData
+
+function getElementData(element)
+{
+    var elementData;
+
+    // force element to be wrapped:
+    element = new XPCNativeWrapper(element);
+
+    if (!domMappedData.has(element))
+    {
+        elementData = {};
+        domMappedData.set(element, elementData);
+    }
+    else
+        elementData = domMappedData.get(element);
+
+    return elementData;
+}
+
+Dom.getMappedData = function(element, key)
+{
+    var elementData = getElementData(element);
+    return elementData[key];
+}
+
+Dom.setMappedData = function(element, key, value)
+{
+    if (!Dom.isNode(element))
+        throw new TypeError("expected an element as the first argument");
+
+    if (typeof key !== "string")
+        throw new TypeError("the key argument must be a string");
+
+    var elementData = getElementData(element);
+    elementData[key] = value;
+}
+
+Dom.deleteMappedData = function(element, key)
+{
+    var elementData = getElementData(element);
+    delete elementData[key];
+}
+
+// ********************************************************************************************* //
 // DOM Members
 
 Dom.getDOMMembers = function(object)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firebug.git



More information about the Pkg-mozext-commits mailing list