summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-09 17:51:19 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-09 17:51:19 +0000
commitda00a288d95a7da8f149ec0419b3e725f23d5ef7 (patch)
tree98d6645aab45e88cb420b0168b1620cf3e44b6d5
parent8ef98f0890e8ffbb4096efc517dd9310306e9c21 (diff)
downloadchromium_src-da00a288d95a7da8f149ec0419b3e725f23d5ef7.zip
chromium_src-da00a288d95a7da8f149ec0419b3e725f23d5ef7.tar.gz
chromium_src-da00a288d95a7da8f149ec0419b3e725f23d5ef7.tar.bz2
More WebKit API action (chromium side).
Adds the following methods to WebKitClient: decrementStatsTable incrementStatsTable traceEventBegin traceEventEnd The implementation of initV8CounterFunction is now a no-op. V8Proxy.cpp no longer calls it, and I moved the corresponding work out of WebKit. The embedder now calls the appropriate V8 API before initializing WebKit. Includes some cleanup to WebString and WebCString. I decided that I prefer "data" over "characters" since the latter may be confusing in some cases. For example, the elements of a WebString or WebCString may not be individual characters but may be part of a character. "data" is also consistent with basic_string<T> and so should be plenty familiar. There is wanton disregard for the Chrome+JSC build in this CL, but that's OK. We have already crossed that bridge. R=dglazkov Review URL: http://codereview.chromium.org/39288 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11254 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--DEPS2
-rw-r--r--chrome/renderer/DEPS1
-rw-r--r--chrome/renderer/render_thread.cc21
-rw-r--r--chrome/renderer/renderer_webkitclient_impl.cc27
-rw-r--r--chrome/renderer/renderer_webkitclient_impl.h5
-rw-r--r--webkit/glue/chromium_bridge_impl.cc7
-rw-r--r--webkit/glue/webkitclient_impl.cc20
-rw-r--r--webkit/glue/webkitclient_impl.h4
-rw-r--r--webkit/port/bindings/v8/v8_proxy.cpp8
-rw-r--r--webkit/tools/test_shell/test_shell_webkit_init.h8
10 files changed, 45 insertions, 58 deletions
diff --git a/DEPS b/DEPS
index 7347036..b7bd5f9 100644
--- a/DEPS
+++ b/DEPS
@@ -19,7 +19,7 @@ deps = {
"http://googletest.googlecode.com/svn/trunk@167",
"src/third_party/WebKit":
- "/trunk/deps/third_party/WebKit@11214",
+ "/trunk/deps/third_party/WebKit@11253",
"src/third_party/icu38":
"/trunk/deps/third_party/icu38@10692",
diff --git a/chrome/renderer/DEPS b/chrome/renderer/DEPS
index 8587def..098bbaa 100644
--- a/chrome/renderer/DEPS
+++ b/chrome/renderer/DEPS
@@ -13,6 +13,7 @@ include_rules = [
"+webkit/extensions",
"+webkit/glue",
"+webkit/glue/plugins",
+ "+v8/include",
# FIXME - refactor code and remove these dependencies
"+chrome/browser/net",
diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc
index f2eed65..4c0bb12 100644
--- a/chrome/renderer/render_thread.cc
+++ b/chrome/renderer/render_thread.cc
@@ -2,18 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "build/build_config.h"
+#include "chrome/renderer/render_thread.h"
-#if defined(OS_WIN)
-#include <windows.h>
-#include <objbase.h>
-#endif
#include <algorithm>
-
-#include "chrome/renderer/render_thread.h"
+#include <vector>
#include "base/command_line.h"
#include "base/shared_memory.h"
+#include "base/stats_table.h"
#include "chrome/common/chrome_plugin_lib.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/render_messages.h"
@@ -24,7 +20,6 @@
#if defined(OS_WIN)
#include "chrome/plugin/plugin_channel.h"
#else
-#include <vector>
#include "base/scoped_handle.h"
#include "chrome/plugin/plugin_channel_base.h"
#include "webkit/glue/weburlrequest.h"
@@ -35,6 +30,7 @@
#include "chrome/renderer/renderer_webkitclient_impl.h"
#include "chrome/renderer/user_script_slave.h"
#include "chrome/renderer/visitedlink_slave.h"
+#include "v8/include/v8.h"
#include "webkit/extensions/v8/gears_extension.h"
#include "webkit/extensions/v8/interval_extension.h"
#include "webkit/extensions/v8/playback_extension.h"
@@ -43,6 +39,11 @@
#include "WebKit.h"
#include "WebString.h"
+#if defined(OS_WIN)
+#include <windows.h>
+#include <objbase.h>
+#endif
+
static const unsigned int kCacheStatsDelayMS = 2000 /* milliseconds */;
@@ -246,9 +247,13 @@ void RenderThread::InformHostOfCacheStatsLater() {
void RenderThread::EnsureWebKitInitialized() {
if (webkit_client_.get())
return;
+
+ v8::V8::SetCounterFunction(StatsTable::FindLocation);
+
webkit_client_.reset(new RendererWebKitClientImpl);
WebKit::initialize(webkit_client_.get());
WebKit::registerURLSchemeAsLocal(ASCIIToUTF16(chrome::kChromeUIScheme));
+
WebKit::registerExtension(extensions_v8::GearsExtension::Get());
WebKit::registerExtension(extensions_v8::IntervalExtension::Get());
diff --git a/chrome/renderer/renderer_webkitclient_impl.cc b/chrome/renderer/renderer_webkitclient_impl.cc
index f0e5cfd..9e34a7c 100644
--- a/chrome/renderer/renderer_webkitclient_impl.cc
+++ b/chrome/renderer/renderer_webkitclient_impl.cc
@@ -8,7 +8,6 @@
#include "WebURL.h"
#include "base/command_line.h"
-#include "base/trace_event.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/render_messages.h"
#include "chrome/plugin/npobject_util.h"
@@ -45,10 +44,10 @@ void RendererWebKitClientImpl::setCookies(
WebString RendererWebKitClientImpl::cookies(
const WebURL& url, const WebURL& policy_url) {
- std::string value;
+ std::string value_utf8;
RenderThread::current()->Send(
- new ViewHostMsg_GetCookies(url, policy_url, &value));
- return WebString::fromUTF8(value);
+ new ViewHostMsg_GetCookies(url, policy_url, &value_utf8));
+ return WebString::fromUTF8(value_utf8);
}
void RendererWebKitClientImpl::prefetchHostName(const WebString& hostname) {
@@ -108,23 +107,3 @@ WebString RendererWebKitClientImpl::MimeRegistry::preferredExtensionForMIMEType(
&file_extension));
return webkit_glue::FilePathStringToWebString(file_extension);
}
-
-void RendererWebKitClientImpl::decrementStatsCounter(const char* name) {
- StatsCounter(name).Decrement();
-}
-
-void RendererWebKitClientImpl::incrementStatsCounter(const char* name) {
- StatsCounter(name).Increment();
-}
-
-void RendererWebKitClientImpl::traceEventBegin(const char* name,
- void* id,
- const char* extra) {
- TRACE_EVENT_BEGIN(name, id, extra);
-}
-
-void RendererWebKitClientImpl::traceEventEnd(const char* name,
- void* id,
- const char* extra) {
- TRACE_EVENT_END(name, id, extra);
-}
diff --git a/chrome/renderer/renderer_webkitclient_impl.h b/chrome/renderer/renderer_webkitclient_impl.h
index 58d643e..2ed397b 100644
--- a/chrome/renderer/renderer_webkitclient_impl.h
+++ b/chrome/renderer/renderer_webkitclient_impl.h
@@ -24,11 +24,6 @@ class RendererWebKitClientImpl : public webkit_glue::WebKitClientImpl {
virtual void prefetchHostName(const WebKit::WebString&);
virtual WebKit::WebString defaultLocale();
- virtual void decrementStatsCounter(const char* name);
- virtual void incrementStatsCounter(const char* name);
- virtual void traceEventBegin(const char* name, void* id, const char* extra);
- virtual void traceEventEnd(const char* name, void* id, const char* extra);
-
private:
class MimeRegistry : public webkit_glue::SimpleWebMimeRegistryImpl {
public:
diff --git a/webkit/glue/chromium_bridge_impl.cc b/webkit/glue/chromium_bridge_impl.cc
index 0767c6c..e603d96 100644
--- a/webkit/glue/chromium_bridge_impl.cc
+++ b/webkit/glue/chromium_bridge_impl.cc
@@ -29,17 +29,10 @@
#undef LOG
#include "base/file_util.h"
-#include "base/message_loop.h"
-#include "base/stats_counters.h"
#include "base/string_util.h"
-#include "base/time.h"
#include "build/build_config.h"
#include "googleurl/src/url_util.h"
#include "skia/ext/skia_utils_win.h"
-#if USE(V8)
-#include <v8.h>
-#endif
-#include "grit/webkit_resources.h"
#include "webkit/glue/chrome_client_impl.h"
#include "webkit/glue/glue_util.h"
#include "webkit/glue/plugins/plugin_instance.h"
diff --git a/webkit/glue/webkitclient_impl.cc b/webkit/glue/webkitclient_impl.cc
index 61efece..8966381 100644
--- a/webkit/glue/webkitclient_impl.cc
+++ b/webkit/glue/webkitclient_impl.cc
@@ -7,6 +7,8 @@
#include "WebCString.h"
#include "base/message_loop.h"
+#include "base/stats_counters.h"
+#include "base/trace_event.h"
#include "grit/webkit_resources.h"
#include "webkit/glue/webkit_glue.h"
@@ -21,6 +23,24 @@ WebKit::WebClipboard* WebKitClientImpl::clipboard() {
return &clipboard_;
}
+void WebKitClientImpl::decrementStatsCounter(const char* name) {
+ StatsCounter(name).Decrement();
+}
+
+void WebKitClientImpl::incrementStatsCounter(const char* name) {
+ StatsCounter(name).Increment();
+}
+
+void WebKitClientImpl::traceEventBegin(const char* name, void* id,
+ const char* extra) {
+ TRACE_EVENT_BEGIN(name, id, extra);
+}
+
+void WebKitClientImpl::traceEventEnd(const char* name, void* id,
+ const char* extra) {
+ TRACE_EVENT_END(name, id, extra);
+}
+
WebKit::WebCString WebKitClientImpl::loadResource(const char* name) {
struct {
const char* name;
diff --git a/webkit/glue/webkitclient_impl.h b/webkit/glue/webkitclient_impl.h
index e3c5aef..1b8ae85 100644
--- a/webkit/glue/webkitclient_impl.h
+++ b/webkit/glue/webkitclient_impl.h
@@ -21,6 +21,10 @@ class WebKitClientImpl : public WebKit::WebKitClient {
// WebKitClient methods (partial implementation):
virtual WebKit::WebClipboard* clipboard();
+ virtual void decrementStatsCounter(const char* name);
+ virtual void incrementStatsCounter(const char* name);
+ virtual void traceEventBegin(const char* name, void* id, const char* extra);
+ virtual void traceEventEnd(const char* name, void* id, const char* extra);
virtual WebKit::WebCString loadResource(const char* name);
virtual double currentTime();
virtual void setSharedTimerFiredFunction(void (*func)());
diff --git a/webkit/port/bindings/v8/v8_proxy.cpp b/webkit/port/bindings/v8/v8_proxy.cpp
index a399955..e4ccb5b 100644
--- a/webkit/port/bindings/v8/v8_proxy.cpp
+++ b/webkit/port/bindings/v8/v8_proxy.cpp
@@ -2303,14 +2303,6 @@ void V8Proxy::InitContextIfNeeded()
if (!m_context.IsEmpty())
return;
- // Install counters handler with V8.
- static bool v8_counters_initialized = false;
- if (!v8_counters_initialized) {
- // TODO(eroman):
- //ChromiumBridge::initV8CounterFunction();
- v8_counters_initialized = true;
- }
-
// Setup the security handlers and message listener. This only has
// to be done once.
static bool v8_initialized = false;
diff --git a/webkit/tools/test_shell/test_shell_webkit_init.h b/webkit/tools/test_shell/test_shell_webkit_init.h
index c129057..d6cead8 100644
--- a/webkit/tools/test_shell/test_shell_webkit_init.h
+++ b/webkit/tools/test_shell/test_shell_webkit_init.h
@@ -12,6 +12,7 @@
#include "webkit/extensions/v8/gears_extension.h"
#include "webkit/extensions/v8/interval_extension.h"
#include "webkit/tools/test_shell/simple_resource_loader_bridge.h"
+#include "v8/include/v8.h"
#include "WebCString.h"
#include "WebKit.h"
@@ -21,6 +22,8 @@
class TestShellWebKitInit : public webkit_glue::WebKitClientImpl {
public:
TestShellWebKitInit(bool layout_test_mode) {
+ v8::V8::SetCounterFunction(StatsTable::FindLocation);
+
WebKit::initialize(this);
WebKit::setLayoutTestMode(layout_test_mode);
WebKit::registerURLSchemeAsLocal(
@@ -83,11 +86,6 @@ class TestShellWebKitInit : public webkit_glue::WebKitClientImpl {
return ASCIIToUTF16("en-US");
}
- virtual void decrementStatsCounter(const char* name) {}
- virtual void incrementStatsCounter(const char* name) {}
- virtual void traceEventBegin(const char* name, void* id, const char* extra) {}
- virtual void traceEventEnd(const char* name, void* id, const char* extra) {}
-
private:
webkit_glue::SimpleWebMimeRegistryImpl mime_registry_;
};