1 // Copyright 2014 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 EXTENSIONS_RENDERER_CONSOLE_H_ 6 #define EXTENSIONS_RENDERER_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 // EXTENSIONS_RENDERER_CONSOLE_H_ 59