diff options
-rw-r--r-- | webkit/glue/chromium_bridge_impl.cc | 32 | ||||
-rw-r--r-- | webkit/port/bindings/v8/npruntime.cpp | 9 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_proxy.cpp | 14 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_proxy.h | 4 | ||||
-rw-r--r-- | webkit/port/platform/chromium/ChromiumBridge.h | 10 |
5 files changed, 53 insertions, 16 deletions
diff --git a/webkit/glue/chromium_bridge_impl.cc b/webkit/glue/chromium_bridge_impl.cc index eece6dd..9ba3624 100644 --- a/webkit/glue/chromium_bridge_impl.cc +++ b/webkit/glue/chromium_bridge_impl.cc @@ -21,7 +21,10 @@ #undef LOG #include "base/clipboard.h" +#include "base/stats_counters.h" #include "base/string_util.h" +#include "base/trace_event.h" +#include <v8.h> #include "webkit/glue/chrome_client_impl.h" #include "webkit/glue/glue_util.h" #include "webkit/glue/scoped_clipboard_writer_glue.h" @@ -290,7 +293,34 @@ IntRect ChromiumBridge::screenAvailableRect(Widget* widget) { webkit_glue::GetScreenInfo(ToPlatform(widget)).available_rect); } -// URL ---------------------------------------------------------------- +// StatsCounters -------------------------------------------------------------- +void ChromiumBridge::decrementStatsCounter(const wchar_t* name) { + StatsCounter(name).Decrement(); +} + +void ChromiumBridge::incrementStatsCounter(const wchar_t* name) { + StatsCounter(name).Increment(); +} + +void ChromiumBridge::initV8CounterFunction() { + v8::V8::SetCounterFunction(StatsTable::FindLocation); +} + +// Trace Event ---------------------------------------------------------------- +void ChromiumBridge::traceEventBegin(const char* name, + void* id, + const char* extra) { + TRACE_EVENT_BEGIN(name, id, extra); +} + +void ChromiumBridge::traceEventEnd(const char* name, + void* id, + const char* extra) { + TRACE_EVENT_END(name, id, extra); +} + + +// URL ------------------------------------------------------------------------ KURL ChromiumBridge::inspectorURL() { return webkit_glue::GURLToKURL(webkit_glue::GetInspectorURL()); } diff --git a/webkit/port/bindings/v8/npruntime.cpp b/webkit/port/bindings/v8/npruntime.cpp index df30e13..1c1007b 100644 --- a/webkit/port/bindings/v8/npruntime.cpp +++ b/webkit/port/bindings/v8/npruntime.cpp @@ -30,9 +30,10 @@ #include <set> #include <string> #include <v8.h> -#include "base/stats_counters.h" + #include "base/string_piece.h" #include "bindings/npruntime.h" +#include "ChromiumBridge.h" #include "np_v8object.h" #include "npruntime_priv.h" #include "v8_npobject.h" @@ -168,7 +169,7 @@ void NPN_ReleaseVariantValue(NPVariant* variant) { variant->type = NPVariantType_Void; } -static StatsCounter global_npobjects(L"NPObjects"); +static const wchar_t* kCounterNPObjects = L"NPObjects"; NPObject *NPN_CreateObject(NPP npp, NPClass* aClass) { ASSERT(aClass); @@ -183,7 +184,7 @@ NPObject *NPN_CreateObject(NPP npp, NPClass* aClass) { obj->_class = aClass; obj->referenceCount = 1; - global_npobjects.Increment(); + WebCore::ChromiumBridge::incrementStatsCounter(kCounterNPObjects); return obj; } @@ -208,7 +209,7 @@ void _NPN_DeallocateObject(NPObject *obj) { ASSERT(obj->referenceCount >= 0); if (obj) { - global_npobjects.Decrement(); + WebCore::ChromiumBridge::decrementStatsCounter(kCounterNPObjects); // NPObjects that remain in pure C++ may never have wrappers. // Hence, if it's not already alive, don't unregister it. diff --git a/webkit/port/bindings/v8/v8_proxy.cpp b/webkit/port/bindings/v8/v8_proxy.cpp index 93d639a..822c298 100644 --- a/webkit/port/bindings/v8/v8_proxy.cpp +++ b/webkit/port/bindings/v8/v8_proxy.cpp @@ -110,10 +110,6 @@ #include "XPathEvaluator.h" #endif -#undef LOG -#include "base/stats_table.h" -#include "base/trace_event.h" - namespace WebCore { @@ -1039,16 +1035,16 @@ v8::Local<v8::Value> V8Proxy::Evaluate(const String& fileName, int baseLine, // Compile the script. v8::Local<v8::String> code = v8ExternalString(str); - TRACE_EVENT_BEGIN("v8.compile", n, ""); + ChromiumBridge::traceEventBegin("v8.compile", n, ""); v8::Handle<v8::Script> script = CompileScript(code, fileName, baseLine); - TRACE_EVENT_END("v8.compile", n, ""); + ChromiumBridge::traceEventEnd("v8.compile", n, ""); // Set inlineCode to true for <a href="javascript:doSomething()"> // and false for <script>doSomething</script>. For some reason, fileName // gives us this information. - TRACE_EVENT_BEGIN("v8.run", n, ""); + ChromiumBridge::traceEventBegin("v8.run", n, ""); v8::Local<v8::Value> result = RunScript(script, fileName.isNull()); - TRACE_EVENT_END("v8.run", n, ""); + ChromiumBridge::traceEventEnd("v8.run", n, ""); return result; } @@ -1787,7 +1783,7 @@ void V8Proxy::initContextIfNeeded() // Install counters handler with V8. static bool v8_counters_initialized = false; if (!v8_counters_initialized) { - v8::V8::SetCounterFunction(StatsTable::FindLocation); + ChromiumBridge::initV8CounterFunction(); v8_counters_initialized = true; } diff --git a/webkit/port/bindings/v8/v8_proxy.h b/webkit/port/bindings/v8/v8_proxy.h index 4a1aa9f..05c3315 100644 --- a/webkit/port/bindings/v8/v8_proxy.h +++ b/webkit/port/bindings/v8/v8_proxy.h @@ -9,6 +9,7 @@ #include "v8_index.h" #include "v8_custom.h" #include "v8_utility.h" +#include "ChromiumBridge.h" #include "Node.h" #include "NodeFilter.h" #include "SecurityOrigin.h" // for WebCore::SecurityOrigin @@ -21,8 +22,7 @@ #include <list> #ifdef ENABLE_DOM_STATS_COUNTERS -#include "base/stats_counters.h" -#define INC_STATS(name) StatsCounter(name).Increment() +#define INC_STATS(name) ChromiumBridge::incrementStatsCounter(name) #else #define INC_STATS(name) #endif diff --git a/webkit/port/platform/chromium/ChromiumBridge.h b/webkit/port/platform/chromium/ChromiumBridge.h index 50b58aa..a2a2834 100644 --- a/webkit/port/platform/chromium/ChromiumBridge.h +++ b/webkit/port/platform/chromium/ChromiumBridge.h @@ -104,6 +104,16 @@ namespace WebCore { static IntRect screenRect(Widget*); static IntRect screenAvailableRect(Widget*); + // StatsCounters ------------------------------------------------------ + // TODO(erikkay): WebKit doesn't use wchar_t - change to use UTF8 + static void decrementStatsCounter(const wchar_t* name); + static void incrementStatsCounter(const wchar_t* name); + static void initV8CounterFunction(); + + // Trace Event -------------------------------------------------------- + static void traceEventBegin(const char* name, void* id, const char* extra); + static void traceEventEnd(const char* name, void* id, const char* extra); + // URL ---------------------------------------------------------------- static KURL inspectorURL(); |