summaryrefslogtreecommitdiffstats
path: root/webkit/extensions/v8/heap_profiler_extension.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/extensions/v8/heap_profiler_extension.cc')
-rw-r--r--webkit/extensions/v8/heap_profiler_extension.cc112
1 files changed, 0 insertions, 112 deletions
diff --git a/webkit/extensions/v8/heap_profiler_extension.cc b/webkit/extensions/v8/heap_profiler_extension.cc
deleted file mode 100644
index 17f9110..0000000
--- a/webkit/extensions/v8/heap_profiler_extension.cc
+++ /dev/null
@@ -1,112 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "webkit/extensions/v8/heap_profiler_extension.h"
-
-#include "base/basictypes.h"
-#include "v8/include/v8.h"
-
-#if defined(USE_TCMALLOC) && !defined(OS_WIN)
-#include "third_party/tcmalloc/chromium/src/gperftools/heap-profiler.h"
-#endif
-
-namespace extensions_v8 {
-
-namespace {
-
-const char kHeapProfilerExtensionName[] = "v8/HeapProfiler";
-
-class HeapProfilerWrapper : public v8::Extension {
- public:
- HeapProfilerWrapper()
- : v8::Extension(kHeapProfilerExtensionName,
- "if (typeof(chromium) == 'undefined') {"
- " chromium = {};"
- "}"
- "(function() {"
- " native function HeapProfilerStart();"
- " native function HeapProfilerStop();"
- " native function HeapProfilerDump();"
- " chromium.HeapProfiler = {};"
- " chromium.HeapProfiler.start = function(opt_prefix) {"
- " var prefix = opt_prefix;"
- " if (!prefix) {"
- " var d = new Date();"
- " prefix = \"chromium-\" + "
- " (1900 + d.getYear()) + "
- " \"-\" + d.getMonth() + "
- " \"-\" + d.getDay() + "
- " \"-\" + d.getTime();"
- " }"
- " HeapProfilerStart(prefix);"
- " };"
- " chromium.HeapProfiler.stop = function() {"
- " HeapProfilerStop();"
- " };"
- " chromium.HeapProfiler.dump = function(opt_reason) {"
- " HeapProfilerDump(opt_reason || \"\");"
- " };"
- "})();") {}
-
- virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction(
- v8::Handle<v8::String> name) {
- if (name->Equals(v8::String::New("HeapProfilerStart"))) {
- return v8::FunctionTemplate::New(HeapProfilerStart);
- } else if (name->Equals(v8::String::New("HeapProfilerStop"))) {
- return v8::FunctionTemplate::New(HeapProfilerStop);
- } else if (name->Equals(v8::String::New("HeapProfilerDump"))) {
- return v8::FunctionTemplate::New(HeapProfilerDump);
- }
- return v8::Handle<v8::FunctionTemplate>();
- }
-
-#if defined(USE_TCMALLOC) && !defined(OS_WIN)
- static v8::Handle<v8::Value> HeapProfilerStart(const v8::Arguments& args) {
- if (args.Length() >= 1 && args[0]->IsString()) {
- v8::Local<v8::String> js_prefix = args[0]->ToString();
- char prefix[256];
- js_prefix->WriteAscii(prefix, 0, arraysize(prefix) - 1);
- ::HeapProfilerStart(prefix);
- }
- return v8::Undefined();
- }
-
- static v8::Handle<v8::Value> HeapProfilerStop(const v8::Arguments& args) {
- ::HeapProfilerStop();
- return v8::Undefined();
- }
-
- static v8::Handle<v8::Value> HeapProfilerDump(const v8::Arguments& args) {
- if (args.Length() >= 1 && args[0]->IsString()) {
- v8::Local<v8::String> js_reason = args[0]->ToString();
- char reason[256];
- js_reason->WriteAscii(reason, 0, arraysize(reason) - 1);
- ::HeapProfilerDump(reason);
- }
- return v8::Undefined();
- }
-
-#else
-
- static v8::Handle<v8::Value> HeapProfilerStart(const v8::Arguments& args) {
- return v8::Undefined();
- }
-
- static v8::Handle<v8::Value> HeapProfilerStop(const v8::Arguments& args) {
- return v8::Undefined();
- }
-
- static v8::Handle<v8::Value> HeapProfilerDump(const v8::Arguments& args) {
- return v8::Undefined();
- }
-#endif
-};
-
-} // namespace
-
-v8::Extension* HeapProfilerExtension::Get() {
- return new HeapProfilerWrapper;
-}
-
-} // namespace extensions_v8