Home | History | Annotate | Download | only in extensions
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_RENDERER_EXTENSIONS_CONSOLE_H_
      6 #define CHROME_RENDERER_EXTENSIONS_CONSOLE_H_
      7 
      8 #include <string>
      9 
     10 #include "content/public/common/console_message_level.h"
     11 #include "v8/include/v8.h"
     12 
     13 namespace content {
     14 class RenderView;
     15 }
     16 
     17 namespace extensions {
     18 
     19 // Utility for logging messages to RenderViews.
     20 namespace console {
     21 
     22 // Adds |message| to the console of |render_view| at various log levels.
     23 void Debug(content::RenderView* render_view, const std::string& message);
     24 void Log(content::RenderView* render_view, const std::string& message);
     25 void Warn(content::RenderView* render_view, const std::string& message);
     26 void Error(content::RenderView* render_view, const std::string& message);
     27 
     28 // Logs an Error then crashes the current process.
     29 void Fatal(content::RenderView* render_view, const std::string& message);
     30 
     31 void AddMessage(content::RenderView* render_view,
     32                 content::ConsoleMessageLevel level,
     33                 const std::string& message);
     34 
     35 // Adds |message| to the console that hosts |context|, if any.
     36 void Debug(v8::Handle<v8::Context> context, const std::string& message);
     37 void Log(v8::Handle<v8::Context> context, const std::string& message);
     38 void Warn(v8::Handle<v8::Context> context, const std::string& message);
     39 void Error(v8::Handle<v8::Context> context, const std::string& message);
     40 
     41 // Logs an Error then crashes the current process.
     42 void Fatal(v8::Handle<v8::Context> context, const std::string& message);
     43 
     44 void AddMessage(v8::Handle<v8::Context> context,
     45                 content::ConsoleMessageLevel level,
     46                 const std::string& message);
     47 
     48 // Returns a new v8::Object with each standard log method (Debug/Log/Warn/Error)
     49 // bound to respective debug/log/warn/error methods. This is a direct drop-in
     50 // replacement for the standard devtools console.* methods usually accessible
     51 // from JS.
     52 v8::Local<v8::Object> AsV8Object();
     53 
     54 }  // namespace console
     55 
     56 }  // namespace extensions
     57 
     58 #endif  // CHROME_RENDERER_EXTENSIONS_CONSOLE_H_
     59