diff options
Diffstat (limited to 'webkit/extensions')
-rw-r--r-- | webkit/extensions/v8/benchmarking_extension.cc | 164 | ||||
-rw-r--r-- | webkit/extensions/v8/benchmarking_extension.h | 25 |
2 files changed, 0 insertions, 189 deletions
diff --git a/webkit/extensions/v8/benchmarking_extension.cc b/webkit/extensions/v8/benchmarking_extension.cc deleted file mode 100644 index f3f4c72..0000000 --- a/webkit/extensions/v8/benchmarking_extension.cc +++ /dev/null @@ -1,164 +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/benchmarking_extension.h" - -#include "base/metrics/stats_table.h" -#include "base/time.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/WebCache.h" -#include "v8/include/v8.h" -#include "webkit/glue/webkit_glue.h" - -using WebKit::WebCache; - -const char kBenchmarkingExtensionName[] = "v8/Benchmarking"; - -namespace extensions_v8 { - -class BenchmarkingWrapper : public v8::Extension { - public: - BenchmarkingWrapper() : - v8::Extension(kBenchmarkingExtensionName, - "if (typeof(chrome) == 'undefined') {" - " chrome = {};" - "};" - "if (typeof(chrome.benchmarking) == 'undefined') {" - " chrome.benchmarking = {};" - "};" - "chrome.benchmarking.clearCache = function(preserve_ssl_entries) {" - " native function ClearCache();" - " ClearCache(preserve_ssl_entries);" - "};" - "chrome.benchmarking.clearHostResolverCache = function() {" - " native function ClearHostResolverCache();" - " ClearHostResolverCache();" - "};" - "chrome.benchmarking.clearPredictorCache = function() {" - " native function ClearPredictorCache();" - " ClearPredictorCache();" - "};" - "chrome.benchmarking.closeConnections = function() {" - " native function CloseConnections();" - " CloseConnections();" - "};" - "chrome.benchmarking.counter = function(name) {" - " native function GetCounter();" - " return GetCounter(name);" - "};" - "chrome.benchmarking.enableSpdy = function(name) {" - " native function EnableSpdy();" - " EnableSpdy(name);" - "};" - "chrome.benchmarking.isSingleProcess = function() {" - " native function IsSingleProcess();" - " return IsSingleProcess();" - "};" - "chrome.Interval = function() {" - " var start_ = 0;" - " var stop_ = 0;" - " native function HiResTime();" - " this.start = function() {" - " stop_ = 0;" - " start_ = HiResTime();" - " };" - " this.stop = function() {" - " stop_ = HiResTime();" - " if (start_ == 0)" - " stop_ = 0;" - " };" - " this.microseconds = function() {" - " var stop = stop_;" - " if (stop == 0 && start_ != 0)" - " stop = HiResTime();" - " return Math.ceil(stop - start_);" - " };" - "}" - ) {} - - virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction( - v8::Handle<v8::String> name) { - if (name->Equals(v8::String::New("CloseConnections"))) { - return v8::FunctionTemplate::New(CloseConnections); - } else if (name->Equals(v8::String::New("ClearCache"))) { - return v8::FunctionTemplate::New(ClearCache); - } else if (name->Equals(v8::String::New("ClearHostResolverCache"))) { - return v8::FunctionTemplate::New(ClearHostResolverCache); - } else if (name->Equals(v8::String::New("ClearPredictorCache"))) { - return v8::FunctionTemplate::New(ClearPredictorCache); - } else if (name->Equals(v8::String::New("EnableSpdy"))) { - return v8::FunctionTemplate::New(EnableSpdy); - } else if (name->Equals(v8::String::New("GetCounter"))) { - return v8::FunctionTemplate::New(GetCounter); - } else if (name->Equals(v8::String::New("IsSingleProcess"))) { - return v8::FunctionTemplate::New(IsSingleProcess); - } else if (name->Equals(v8::String::New("HiResTime"))) { - return v8::FunctionTemplate::New(HiResTime); - } - - return v8::Handle<v8::FunctionTemplate>(); - } - - static v8::Handle<v8::Value> CloseConnections(const v8::Arguments& args) { - webkit_glue::CloseCurrentConnections(); - return v8::Undefined(); - } - - static v8::Handle<v8::Value> ClearCache(const v8::Arguments& args) { - bool preserve_ssl_host_entries = false; - if (args.Length() && args[0]->IsBoolean()) - preserve_ssl_host_entries = args[0]->BooleanValue(); - webkit_glue::ClearCache(preserve_ssl_host_entries); - WebCache::clear(); - return v8::Undefined(); - } - - static v8::Handle<v8::Value> ClearHostResolverCache( - const v8::Arguments& args) { - webkit_glue::ClearHostResolverCache(); - return v8::Undefined(); - } - - static v8::Handle<v8::Value> ClearPredictorCache( - const v8::Arguments& args) { - webkit_glue::ClearPredictorCache(); - return v8::Undefined(); - } - - static v8::Handle<v8::Value> EnableSpdy(const v8::Arguments& args) { - if (!args.Length() || !args[0]->IsBoolean()) - return v8::Undefined(); - - webkit_glue::EnableSpdy(args[0]->BooleanValue()); - return v8::Undefined(); - } - - static v8::Handle<v8::Value> GetCounter(const v8::Arguments& args) { - if (!args.Length() || !args[0]->IsString() || !base::StatsTable::current()) - return v8::Undefined(); - - // Extract the name argument - char name[256]; - name[0] = 'c'; - name[1] = ':'; - args[0]->ToString()->WriteAscii(&name[2], 0, sizeof(name) - 3); - - int counter = base::StatsTable::current()->GetCounterValue(name); - return v8::Integer::New(counter); - } - - static v8::Handle<v8::Value> IsSingleProcess(const v8::Arguments& args) { - return v8::Boolean::New(webkit_glue::IsSingleProcess()); - } - - static v8::Handle<v8::Value> HiResTime(const v8::Arguments& args) { - return v8::Number::New( - static_cast<double>(base::TimeTicks::HighResNow().ToInternalValue())); - } -}; - -v8::Extension* BenchmarkingExtension::Get() { - return new BenchmarkingWrapper(); -} - -} // namespace extensions_v8 diff --git a/webkit/extensions/v8/benchmarking_extension.h b/webkit/extensions/v8/benchmarking_extension.h deleted file mode 100644 index 3aa5cee..0000000 --- a/webkit/extensions/v8/benchmarking_extension.h +++ /dev/null @@ -1,25 +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. - -#ifndef WEBKIT_EXTENSIONS_V8_BENCHMARKING_EXTENSION_H_ -#define WEBKIT_EXTENSIONS_V8_BENCHMARKING_EXTENSION_H_ -#pragma once - -namespace v8 { -class Extension; -} - -namespace extensions_v8 { - -// Profiler is an extension to allow javascript access to the API for -// an external profiler program (such as Quantify). The "External" part of the -// name is to distinguish it from the built-in V8 Profiler. -class BenchmarkingExtension { - public: - static v8::Extension* Get(); -}; - -} // namespace extensions_v8 - -#endif // WEBKIT_EXTENSIONS_V8_BENCHMARKING_EXTENSION_H_ |