diff options
author | mbelshe@google.com <mbelshe@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-05 07:33:21 +0000 |
---|---|---|
committer | mbelshe@google.com <mbelshe@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-05 07:33:21 +0000 |
commit | b07f2909abb3f48f25a0e96f2a41b55199023375 (patch) | |
tree | 6fcd75248dfe672a8f9e87c4b1504ab235d7013e /chrome/renderer | |
parent | afb14af4fd9db9c357b391c1cbb6b95e25bb82a3 (diff) | |
download | chromium_src-b07f2909abb3f48f25a0e96f2a41b55199023375.zip chromium_src-b07f2909abb3f48f25a0e96f2a41b55199023375.tar.gz chromium_src-b07f2909abb3f48f25a0e96f2a41b55199023375.tar.bz2 |
Add an extension to expose some primitives to JS for doing
benchmarking from within Chrome. Because the JS resides
in the renderer and the HTTP logic resides in the browser,
this required creation of two new, control messages which
can be sent from the renderer to the browser.
These are controlled under a new commandline option
"--enable-benchmarking"
BUG=6754
TEST=none
Review URL: http://codereview.chromium.org/119191
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17722 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/render_thread.cc | 12 | ||||
-rw-r--r-- | chrome/renderer/render_thread.h | 6 | ||||
-rw-r--r-- | chrome/renderer/renderer_glue.cc | 7 |
3 files changed, 25 insertions, 0 deletions
diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc index 0072972..3a0e739 100644 --- a/chrome/renderer/render_thread.cc +++ b/chrome/renderer/render_thread.cc @@ -41,6 +41,7 @@ #include "webkit/api/public/WebCache.h" #include "webkit/api/public/WebKit.h" #include "webkit/api/public/WebString.h" +#include "webkit/extensions/v8/benchmarking_extension.h" #include "webkit/extensions/v8/gears_extension.h" #include "webkit/extensions/v8/interval_extension.h" #include "webkit/extensions/v8/playback_extension.h" @@ -296,6 +297,14 @@ void RenderThread::InformHostOfCacheStatsLater() { kCacheStatsDelayMS); } +void RenderThread::CloseIdleConnections() { + Send(new ViewHostMsg_CloseIdleConnections()); +} + +void RenderThread::SetCacheMode(bool enabled) { + Send(new ViewHostMsg_SetCacheMode(enabled)); +} + static void* CreateHistogram( const char *name, int min, int max, size_t buckets) { Histogram* histogram = new Histogram(name, min, max, buckets); @@ -350,6 +359,9 @@ void RenderThread::EnsureWebKitInitialized() { WebKit::registerExtension(RendererExtensionBindings::Get()); } + if (command_line.HasSwitch(switches::kEnableBenchmarking)) + WebKit::registerExtension(extensions_v8::BenchmarkingExtension::Get()); + if (command_line.HasSwitch(switches::kPlaybackMode) || command_line.HasSwitch(switches::kRecordMode) || command_line.HasSwitch(switches::kNoJsRandomness)) { diff --git a/chrome/renderer/render_thread.h b/chrome/renderer/render_thread.h index 0e7a3c8..7935a32 100644 --- a/chrome/renderer/render_thread.h +++ b/chrome/renderer/render_thread.h @@ -103,6 +103,12 @@ class RenderThread : public RenderThreadBase, // bookkeeping operation off the critical latency path. void InformHostOfCacheStatsLater(); + // Sends a message to the browser to close all idle connections. + void CloseIdleConnections(); + + // Sends a message to the browser to enable or disable the disk cache. + void SetCacheMode(bool enabled); + private: virtual void OnControlMessageReceived(const IPC::Message& msg); diff --git a/chrome/renderer/renderer_glue.cc b/chrome/renderer/renderer_glue.cc index e5fddd3..be7893d 100644 --- a/chrome/renderer/renderer_glue.cc +++ b/chrome/renderer/renderer_glue.cc @@ -240,5 +240,12 @@ void NotifyCacheStats() { RenderThread::current()->InformHostOfCacheStatsLater(); } +void CloseIdleConnections() { + RenderThread::current()->CloseIdleConnections(); +} + +void SetCacheMode(bool enabled) { + RenderThread::current()->SetCacheMode(enabled); +} } // namespace webkit_glue |