This file is indexed.

/usr/share/php/Horde/Log/Handler/Firebug.php is in php-horde-log 2.2.0-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?php
/**
 * Horde Log package
 *
 * @author     Mike Naberezny <mike@maintainable.com>
 * @author     Chuck Hagenbuch <chuck@horde.org>
 * @category   Horde
 * @license    http://www.horde.org/licenses/bsd BSD
 * @package    Log
 * @subpackage Handlers
 */

/**
 * @author     Mike Naberezny <mike@maintainable.com>
 * @author     Chuck Hagenbuch <chuck@horde.org>
 * @category   Horde
 * @license    http://www.horde.org/licenses/bsd BSD
 * @package    Log
 * @subpackage Handlers
 */
class Horde_Log_Handler_Firebug extends Horde_Log_Handler_Base
{
    /**
     * Formats the log message before writing.
     *
     * @var Horde_Log_Formatter
     */
    protected $_formatter;

    /**
     * Options to be set by setOption().
     *
     * @var array
     */
    protected $_options = array(
        'buffering' => false,
        'ident' => ''
    );

    /**
     * Array of buffered output.
     *
     * @var string
     */
    protected $_buffer = array();

    /**
     * Mapping of log priorities to Firebug methods.
     *
     * @var array
     */
    protected static $_methods = array(
        Horde_Log::EMERG   => 'error',
        Horde_Log::ALERT   => 'error',
        Horde_Log::CRIT    => 'error',
        Horde_Log::ERR     => 'error',
        Horde_Log::WARN    => 'warn',
        Horde_Log::NOTICE  => 'info',
        Horde_Log::INFO    => 'info',
        Horde_Log::DEBUG   => 'debug',
    );

    /**
     * Class Constructor
     *
     * @param Horde_Log_Formatter $formatter  Log formatter.
     */
    public function __construct(Horde_Log_Formatter $formatter = null)
    {
        $this->_formatter = is_null($formatter)
            ? new Horde_Log_Formatter_Simple()
            : $formatter;
    }

    /**
     * Write a message to the firebug console.  This function really just
     * writes the message to the buffer.  If buffering is enabled, the
     * message won't be output until the buffer is flushed. If
     * buffering is not enabled, the buffer will be flushed
     * immediately.
     *
     * @param array $event  Log event.
     *
     * @return boolean  True.
     */
    public function write($event)
    {
        if (!empty($this->_options['ident'])) {
            $event['message'] = $this->_options['ident'] . ' ' . $event['message'];
        }

        $this->_buffer[] = $event;

        if (empty($this->_options['buffering'])) {
            $this->flush();
        }

        return true;
    }

    /**
     * Flush the buffer.
     */
    public function flush()
    {
        if (!count($this->_buffer)) {
            return true;
        }

        $output = array();
        foreach ($this->_buffer as $event) {
            $line = trim($this->_formatter->format($event));

            // Normalize line breaks.
            $line = str_replace("\r\n", "\n", $line);

            // Escape line breaks
            $line = str_replace("\n", "\\n\\\n", $line);

            // Escape quotes.
            $line = str_replace('"', '\\"', $line);

            // Firebug call.
            $method = isset(self::$_methods[$event['level']])
                ? self::$_methods[$event['level']]
                : 'log';
            $output[] = 'console.' . $method . '("' . $line . '");';
        }

        echo '<script type="text/javascript">'
            . "\nif (('console' in window) || ('firebug' in console)) {\n"
            . implode("\n", $output) . "\n"
            . "}\n"
            . "</script>\n";

        $this->_buffer = array();
    }

}