~ubuntu-branches/ubuntu/maverick/firebug/maverick

« back to all changes in this revision

Viewing changes to content/firebug/consoleInjected.js

  • Committer: Bazaar Package Importer
  • Author(s): Benjamin Drung
  • Date: 2010-01-25 23:54:10 UTC
  • mfrom: (1.1.7 upstream) (0.8.5 sid)
  • Revision ID: james.westby@ubuntu.com-20100125235410-9kywcykhnx3of5w8
Tags: 1.5.0-2ubuntu1
* Merge from Debian unstable, remaining changes:
  - Rename transitional package from iceweasel-firebug to firebug.
* Works with Firefox 3.5 (LP: #434816).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* See license.txt for terms of usage */
 
2
function _FirebugConsole()
 
3
{
 
4
    this.log = function() { window._firebug.notifyFirebug(arguments, 'log', 'firebugAppendConsole'); }
 
5
    this.debug = function() { window._firebug.notifyFirebug(arguments, 'debug', 'firebugAppendConsole'); }
 
6
    this.info = function() { window._firebug.notifyFirebug(arguments, 'info', 'firebugAppendConsole'); }
 
7
    this.warn = function() { window._firebug.notifyFirebug(arguments, 'warn', 'firebugAppendConsole'); }
 
8
    this.error = function() { window._firebug.notifyFirebug(arguments, 'error', 'firebugAppendConsole'); }
 
9
    this.exception = function() { window._firebug.notifyFirebug(arguments, 'exception', 'firebugAppendConsole'); }
 
10
    this.assert = function() { window._firebug.notifyFirebug(arguments, 'assert', 'firebugAppendConsole'); }
 
11
    this.dir = function() { window._firebug.notifyFirebug(arguments, 'dir', 'firebugAppendConsole'); }
 
12
    this.dirxml = function() { window._firebug.notifyFirebug(arguments, 'dirxml', 'firebugAppendConsole'); }
 
13
    this.trace = function firebugDebuggerTracer() { debugger; }
 
14
    this.group = function() { window._firebug.notifyFirebug(arguments, 'group', 'firebugAppendConsole'); }
 
15
    this.groupEnd = function() { window._firebug.notifyFirebug(arguments, 'groupEnd', 'firebugAppendConsole'); }
 
16
    this.groupCollapsed = function() { window._firebug.notifyFirebug(arguments, 'groupCollapsed', 'firebugAppendConsole'); }
 
17
    this.time = function() { window._firebug.notifyFirebug(arguments, 'time', 'firebugAppendConsole'); }
 
18
    this.timeEnd = function() { window._firebug.notifyFirebug(arguments, 'timeEnd', 'firebugAppendConsole'); }
 
19
    this.profile = function() { window._firebug.notifyFirebug(arguments, 'profile', 'firebugAppendConsole'); }
 
20
    this.profileEnd = function() { window._firebug.notifyFirebug(arguments, 'profileEnd', 'firebugAppendConsole'); }
 
21
    this.count = function() { window._firebug.notifyFirebug(arguments, 'count', 'firebugAppendConsole'); }
 
22
    this.clear = function() { window._firebug.notifyFirebug(arguments, 'clear', 'firebugAppendConsole'); }
 
23
 
 
24
    // DBG this.uid = Math.random();
 
25
 
 
26
    this.notifyFirebug = function(objs, methodName, eventID)
 
27
    {
 
28
        var element = this.getFirebugElement();
 
29
 
 
30
        var event = document.createEvent("Events");
 
31
        event.initEvent(eventID, true, false);
 
32
 
 
33
        window._firebug.userObjects = [];
 
34
        for (var i=0; i<objs.length; i++)
 
35
            window._firebug.userObjects.push(objs[i]);
 
36
 
 
37
        var length = window._firebug.userObjects.length;
 
38
        element.setAttribute("methodName", methodName);
 
39
 
 
40
        // DBG element.setAttribute("uid", this.uid);
 
41
 
 
42
        // DBG if (length > 0)
 
43
        // DBG  element.setAttribute("checkUserObjects", this.userObjects[0].toString());
 
44
        // DBG else
 
45
        // DBG  element.setAttribute("checkUserObjects", "no userObjects");
 
46
 
 
47
        // DBG dump("FirebugConsole("+this.uid+") dispatching event "+methodName+" via "+eventID+" with "+length+ " user objects, [0]:"+this.userObjects[0]+"\n");
 
48
        //debugger;
 
49
 
 
50
        element.dispatchEvent(event);
 
51
 
 
52
        // DBG dump("FirebugConsole dispatched event "+methodName+" via "+eventID+" with "+length+ " user objects, [0]:"+this.userObjects[0]+"\n");
 
53
 
 
54
        var result;
 
55
        if (element.getAttribute("retValueType") == "array")
 
56
            result = [];
 
57
 
 
58
        if (!result && this.userObjects.length == length+1)
 
59
            return this.userObjects[length];
 
60
 
 
61
        for (var i=length; i<this.userObjects.length && result; i++)
 
62
            result.push(this.userObjects[i]);
 
63
 
 
64
        return result;
 
65
    };
 
66
 
 
67
    this.getFirebugElement = function()
 
68
    {
 
69
        if (!this.element)
 
70
            this.element = window._getFirebugConsoleElement();
 
71
        return this.element;
 
72
    },
 
73
 
 
74
    // ***********************************************************************
 
75
    // Console API
 
76
 
 
77
    this.__defineGetter__("firebug", function(){
 
78
        return this.getFirebugElement().getAttribute("FirebugVersion");
 
79
    });
 
80
}
 
81
 
 
82
window._getFirebugConsoleElement = function()  // could this be done in extension code? but only after load....
 
83
{
 
84
    var element = document.getElementById("_firebugConsole");
 
85
    if (!element)
 
86
    {
 
87
        if (document.documentElement.nodeName == document.documentElement.nodeName.toUpperCase())
 
88
            element = document.createElement("div");
 
89
        else
 
90
            element = document.createElementNS("http://www.w3.org/1999/xhtml","html:div"); // NS for XML/svg
 
91
 
 
92
        element.setAttribute("id", "_firebugConsole");
 
93
        element.firebugIgnore = true;
 
94
        element.setAttribute("style", "display:none");
 
95
 
 
96
        var body = document.body ? document.body : document.getElementsByTagName("body")[0];
 
97
        if (!body)
 
98
            body = document.documentElement;  // For non-HTML docs
 
99
 
 
100
        body.appendChild(element);
 
101
    }
 
102
    return element;
 
103
};