From 6f08af88709675d9c1b63f9b7c7383844d36386f Mon Sep 17 00:00:00 2001 From: "ananta@chromium.org" Date: Thu, 15 Sep 2011 01:19:03 +0000 Subject: Move the V8 benchmarking_extension.cc/.h files out of webkit/extensions into chrome as the functionality exposed by this extension is chrome specific. The IPCs used by this extension have all been moved to chrome to a new header file benchmarking_messages.h in chrome\common. Added a new message filter object in chrome\browser which filters the benchmarking IPCs. Most of the changes in this CL are centered around ensuring that the benchmarking stuff gets initialized in the same order as before. Continuing changes to get rid of the pattern of IPC messags spanning across content and chrome. BUG=87335 Review URL: http://codereview.chromium.org/7885013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101214 0039d316-1c4b-4281-b951-d872f2087c98 --- webkit/extensions/v8/benchmarking_extension.cc | 164 ------------------------- webkit/extensions/v8/benchmarking_extension.h | 25 ---- 2 files changed, 189 deletions(-) delete mode 100644 webkit/extensions/v8/benchmarking_extension.cc delete mode 100644 webkit/extensions/v8/benchmarking_extension.h (limited to 'webkit/extensions') 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 GetNativeFunction( - v8::Handle 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(); - } - - static v8::Handle CloseConnections(const v8::Arguments& args) { - webkit_glue::CloseCurrentConnections(); - return v8::Undefined(); - } - - static v8::Handle 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 ClearHostResolverCache( - const v8::Arguments& args) { - webkit_glue::ClearHostResolverCache(); - return v8::Undefined(); - } - - static v8::Handle ClearPredictorCache( - const v8::Arguments& args) { - webkit_glue::ClearPredictorCache(); - return v8::Undefined(); - } - - static v8::Handle 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 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 IsSingleProcess(const v8::Arguments& args) { - return v8::Boolean::New(webkit_glue::IsSingleProcess()); - } - - static v8::Handle HiResTime(const v8::Arguments& args) { - return v8::Number::New( - static_cast(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_ -- cgit v1.1