Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: src/ConsoleJsObject.cpp

Issue 10727002: Get rid of dependencies on v8.h in public header files (Closed)
Patch Set: Added helper class to make using v8 values via auto_ptr less awkward Created May 23, 2013, 4:08 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <http://adblockplus.org/>, 2 * This file is part of Adblock Plus <http://adblockplus.org/>,
3 * Copyright (C) 2006-2013 Eyeo GmbH 3 * Copyright (C) 2006-2013 Eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18 #include <AdblockPlus/JsValue.h> 18 #include <AdblockPlus/JsValue.h>
19 #include <AdblockPlus/LogSystem.h> 19 #include <AdblockPlus/LogSystem.h>
20 #include <sstream> 20 #include <sstream>
21 21
22 #include "ConsoleJsObject.h" 22 #include "ConsoleJsObject.h"
23 #include "JsContext.h"
23 #include "Utils.h" 24 #include "Utils.h"
24 25
25 namespace 26 namespace
26 { 27 {
27 v8::Handle<v8::Value> DoLog(AdblockPlus::LogSystem::LogLevel logLevel, 28 v8::Handle<v8::Value> DoLog(AdblockPlus::LogSystem::LogLevel logLevel,
28 const v8::Arguments& arguments) 29 const v8::Arguments& arguments)
29 { 30 {
30 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg uments); 31 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg uments);
31 const AdblockPlus::JsEngine::Context context(jsEngine); 32 const AdblockPlus::JsContext context(jsEngine);
32 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); 33 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments);
33 34
34 std::stringstream message; 35 std::stringstream message;
35 for (size_t i = 0; i < converted.size(); i++) 36 for (size_t i = 0; i < converted.size(); i++)
36 { 37 {
37 if (i > 0) 38 if (i > 0)
38 message << " "; 39 message << " ";
39 message << converted[i]->AsString(); 40 message << converted[i]->AsString();
40 } 41 }
41 42
(...skipping 28 matching lines...) Expand all
70 } 71 }
71 72
72 v8::Handle<v8::Value> ErrorCallback(const v8::Arguments& arguments) 73 v8::Handle<v8::Value> ErrorCallback(const v8::Arguments& arguments)
73 { 74 {
74 return DoLog(AdblockPlus::LogSystem::LOG_LEVEL_ERROR, arguments); 75 return DoLog(AdblockPlus::LogSystem::LOG_LEVEL_ERROR, arguments);
75 } 76 }
76 77
77 v8::Handle<v8::Value> TraceCallback(const v8::Arguments& arguments) 78 v8::Handle<v8::Value> TraceCallback(const v8::Arguments& arguments)
78 { 79 {
79 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg uments); 80 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg uments);
80 const AdblockPlus::JsEngine::Context context(jsEngine); 81 const AdblockPlus::JsContext context(jsEngine);
81 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); 82 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments);
82 83
83 std::stringstream traceback; 84 std::stringstream traceback;
84 v8::Local<v8::StackTrace> frames = v8::StackTrace::CurrentStackTrace(100); 85 v8::Local<v8::StackTrace> frames = v8::StackTrace::CurrentStackTrace(100);
85 for (int i = 0, l = frames->GetFrameCount(); i < l; i++) 86 for (int i = 0, l = frames->GetFrameCount(); i < l; i++)
86 { 87 {
87 v8::Local<v8::StackFrame> frame = frames->GetFrame(i); 88 v8::Local<v8::StackFrame> frame = frames->GetFrame(i);
88 traceback << (i + 1) << ": "; 89 traceback << (i + 1) << ": ";
89 std::string name = AdblockPlus::Utils::FromV8String(frame->GetFunctionName ()); 90 std::string name = AdblockPlus::Utils::FromV8String(frame->GetFunctionName ());
90 if (name.size()) 91 if (name.size())
(...skipping 16 matching lines...) Expand all
107 AdblockPlus::JsEnginePtr jsEngine, AdblockPlus::JsValuePtr obj) 108 AdblockPlus::JsEnginePtr jsEngine, AdblockPlus::JsValuePtr obj)
108 { 109 {
109 obj->SetProperty("log", jsEngine->NewCallback(::LogCallback)); 110 obj->SetProperty("log", jsEngine->NewCallback(::LogCallback));
110 obj->SetProperty("debug", jsEngine->NewCallback(::DebugCallback)); 111 obj->SetProperty("debug", jsEngine->NewCallback(::DebugCallback));
111 obj->SetProperty("info", jsEngine->NewCallback(::InfoCallback)); 112 obj->SetProperty("info", jsEngine->NewCallback(::InfoCallback));
112 obj->SetProperty("warn", jsEngine->NewCallback(::WarnCallback)); 113 obj->SetProperty("warn", jsEngine->NewCallback(::WarnCallback));
113 obj->SetProperty("error", jsEngine->NewCallback(::ErrorCallback)); 114 obj->SetProperty("error", jsEngine->NewCallback(::ErrorCallback));
114 obj->SetProperty("trace", jsEngine->NewCallback(::TraceCallback)); 115 obj->SetProperty("trace", jsEngine->NewCallback(::TraceCallback));
115 return obj; 116 return obj;
116 } 117 }
OLDNEW

Powered by Google App Engine
This is Rietveld