Bug 470455 - test_database_sync_embed_visits.js leaks, r=sdwilsh
[wine-gecko.git] / toolkit / components / console / content / console.js
blob3d4588140879a3f1a60592983ac953fcfeab4f29
1 # -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 # ***** BEGIN LICENSE BLOCK *****
3 # Version: MPL 1.1/GPL 2.0/LGPL 2.1
5 # The contents of this file are subject to the Mozilla Public License Version
6 # 1.1 (the "License"); you may not use this file except in compliance with
7 # the License. You may obtain a copy of the License at
8 # http://www.mozilla.org/MPL/
10 # Software distributed under the License is distributed on an "AS IS" basis,
11 # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 # for the specific language governing rights and limitations under the
13 # License.
15 # The Original Code is mozilla.org code.
17 # The Initial Developer of the Original Code is
18 # Netscape Communications Corporation.
19 # Portions created by the Initial Developer are Copyright (C) 1998
20 # the Initial Developer. All Rights Reserved.
22 # Contributor(s):
23 #   Joe Hewitt <hewitt@netscape.com>
24 #   Simon Bünzli <zeniko@gmail.com>
26 # Alternatively, the contents of this file may be used under the terms of
27 # either the GNU General Public License Version 2 or later (the "GPL"), or
28 # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
29 # in which case the provisions of the GPL or the LGPL are applicable instead
30 # of those above. If you wish to allow use of your version of this file only
31 # under the terms of either the GPL or the LGPL, and not to allow others to
32 # use your version of this file under the terms of the MPL, indicate your
33 # decision by deleting the provisions above and replace them with the notice
34 # and other provisions required by the GPL or the LGPL. If you do not delete
35 # the provisions above, a recipient may use your version of this file under
36 # the terms of any one of the MPL, the GPL or the LGPL.
38 # ***** END LICENSE BLOCK *****
40 var gConsole, gConsoleBundle, gTextBoxEval, gEvaluator, gCodeToEvaluate;
42 /* :::::::: Console Initialization ::::::::::::::: */
44 window.onload = function()
46   gConsole = document.getElementById("ConsoleBox");
47   gConsoleBundle = document.getElementById("ConsoleBundle");
48   gTextBoxEval = document.getElementById("TextboxEval")  
49   gEvaluator = document.getElementById("Evaluator");
50   
51   updateSortCommand(gConsole.sortOrder);
52   updateModeCommand(gConsole.mode);
54   gEvaluator.addEventListener("load", loadOrDisplayResult, true);
57 /* :::::::: Console UI Functions ::::::::::::::: */
59 function changeMode(aMode)
61   switch (aMode) {
62     case "Errors":
63     case "Warnings":
64     case "Messages":
65       gConsole.mode = aMode;
66       break;
67     case "All":
68       gConsole.mode = null;
69   }
70   
71   document.persist("ConsoleBox", "mode");
74 function clearConsole()
76   gConsole.clear();
79 function changeSortOrder(aOrder)
81   updateSortCommand(gConsole.sortOrder = aOrder);
84 function updateSortCommand(aOrder)
86   var orderString = aOrder == 'reverse' ? "Descend" : "Ascend";
87   var bc = document.getElementById("Console:sort"+orderString);
88   bc.setAttribute("checked", true);  
90   orderString = aOrder == 'reverse' ? "Ascend" : "Descend";
91   bc = document.getElementById("Console:sort"+orderString);
92   bc.setAttribute("checked", false);
95 function updateModeCommand(aMode)
97   var bc = document.getElementById("Console:mode" + aMode);
98   bc.setAttribute("checked", true);
101 function onEvalKeyPress(aEvent)
103   if (aEvent.keyCode == 13)
104     evaluateTypein();
107 function evaluateTypein()
109   gCodeToEvaluate = gTextBoxEval.value;
110   // reset the iframe first; the code will be evaluated in loadOrDisplayResult
111   // below, once about:blank has completed loading (see bug 385092)
112   gEvaluator.contentWindow.location = "about:blank";
115 function loadOrDisplayResult()
117   if (gCodeToEvaluate) {
118     gEvaluator.contentWindow.location = "javascript: " +
119                                         gCodeToEvaluate.replace(/%/g, "%25");
120     gCodeToEvaluate = "";
121     return;
122   }
124   var resultRange = gEvaluator.contentDocument.createRange();
125   resultRange.selectNode(gEvaluator.contentDocument.documentElement);
126   var result = resultRange.toString();
127   if (result)
128     gConsole.mCService.logStringMessage(result);
129     // or could use appendMessage which doesn't persist
132 // XXX DEBUG
133 function debug(aText)
135   var csClass = Components.classes['@mozilla.org/consoleservice;1'];
136   var cs = csClass.getService(Components.interfaces.nsIConsoleService);
137   cs.logStringMessage(aText);