toolkit/components/console/content/console.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 // -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
     3 /* This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this
     5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 Components.utils.import("resource://gre/modules/Services.jsm");
     9 var gConsole, gConsoleBundle, gTextBoxEval, gEvaluator, gCodeToEvaluate;
    10 var gFilter;
    12 /* :::::::: Console Initialization ::::::::::::::: */
    14 window.onload = function()
    15 {
    16   gConsole = document.getElementById("ConsoleBox");
    17   gConsoleBundle = document.getElementById("ConsoleBundle");
    18   gTextBoxEval = document.getElementById("TextboxEval");
    19   gEvaluator = document.getElementById("Evaluator");
    20   gFilter = document.getElementById("Filter");
    22   updateSortCommand(gConsole.sortOrder);
    23   updateModeCommand(gConsole.mode);
    25   gEvaluator.addEventListener("load", loadOrDisplayResult, true);
    26 }
    28 /* :::::::: Console UI Functions ::::::::::::::: */
    30 function changeFilter()
    31 {
    32   gConsole.filter = gFilter.value;
    34   document.persist("ConsoleBox", "filter");
    35 }
    37 function changeMode(aMode)
    38 {
    39   switch (aMode) {
    40     case "Errors":
    41     case "Warnings":
    42     case "Messages":
    43       gConsole.mode = aMode;
    44       break;
    45     case "All":
    46       gConsole.mode = null;
    47   }
    49   document.persist("ConsoleBox", "mode");
    50 }
    52 function clearConsole()
    53 {
    54   gConsole.clear();
    55 }
    57 function changeSortOrder(aOrder)
    58 {
    59   updateSortCommand(gConsole.sortOrder = aOrder);
    60 }
    62 function updateSortCommand(aOrder)
    63 {
    64   var orderString = aOrder == 'reverse' ? "Descend" : "Ascend";
    65   var bc = document.getElementById("Console:sort"+orderString);
    66   bc.setAttribute("checked", true);  
    68   orderString = aOrder == 'reverse' ? "Ascend" : "Descend";
    69   bc = document.getElementById("Console:sort"+orderString);
    70   bc.setAttribute("checked", false);
    71 }
    73 function updateModeCommand(aMode)
    74 {
    75   /* aMode can end up invalid if it set by an extension that replaces */
    76   /* mode and then it is uninstalled or disabled */
    77   var bc = document.getElementById("Console:mode" + aMode) ||
    78            document.getElementById("Console:modeAll");
    79   bc.setAttribute("checked", true);
    80 }
    82 function onEvalKeyPress(aEvent)
    83 {
    84   if (aEvent.keyCode == 13)
    85     evaluateTypein();
    86 }
    88 function evaluateTypein()
    89 {
    90   gCodeToEvaluate = gTextBoxEval.value;
    91   // reset the iframe first; the code will be evaluated in loadOrDisplayResult
    92   // below, once about:blank has completed loading (see bug 385092)
    93   gEvaluator.contentWindow.location = "about:blank";
    94 }
    96 function loadOrDisplayResult()
    97 {
    98   if (gCodeToEvaluate) {
    99     gEvaluator.contentWindow.location = "javascript: " +
   100                                         gCodeToEvaluate.replace(/%/g, "%25");
   101     gCodeToEvaluate = "";
   102     return;
   103   }
   105   var resultRange = gEvaluator.contentDocument.createRange();
   106   resultRange.selectNode(gEvaluator.contentDocument.documentElement);
   107   var result = resultRange.toString();
   108   if (result)
   109     Services.console.logStringMessage(result);
   110     // or could use appendMessage which doesn't persist
   111 }

mercurial