diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-02 17:54:34 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-02 17:54:34 +0000 |
commit | 1421207f89748c1c1cd0ed7240d4dfd1a0efc7f6 (patch) | |
tree | d8dda3094fcb311b260fe474cea3a0d8a0ac1e5e | |
parent | df6da1505fc09b8edb5a22e8455e30b112dd7ea8 (diff) | |
download | chromium_src-1421207f89748c1c1cd0ed7240d4dfd1a0efc7f6.zip chromium_src-1421207f89748c1c1cd0ed7240d4dfd1a0efc7f6.tar.gz chromium_src-1421207f89748c1c1cd0ed7240d4dfd1a0efc7f6.tar.bz2 |
Expose a method to access amount of memory used by the current process.
Patch by Anton Muhin
R=darin
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/345040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30711 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | webkit/api/public/WebKitClient.h | 8 | ||||
-rw-r--r-- | webkit/api/src/ChromiumBridge.cpp | 7 | ||||
-rw-r--r-- | webkit/glue/webkitclient_impl.cc | 9 | ||||
-rw-r--r-- | webkit/glue/webkitclient_impl.h | 1 |
4 files changed, 24 insertions, 1 deletions
diff --git a/webkit/api/public/WebKitClient.h b/webkit/api/public/WebKitClient.h index a489d04..7301563 100644 --- a/webkit/api/public/WebKitClient.h +++ b/webkit/api/public/WebKitClient.h @@ -162,6 +162,14 @@ namespace WebKit { const WebKit::WebURL& url) = 0; + + // Memory -------------------------------------------------------------- + + // Returns the current space allocated for the pagefile, in MB. + // That is committed size for Windows and virtual memory size for POSIX + virtual size_t memoryUsageMB() = 0; + + // Message Ports ------------------------------------------------------- // Creates a Message Port Channel. This can be called on any thread. diff --git a/webkit/api/src/ChromiumBridge.cpp b/webkit/api/src/ChromiumBridge.cpp index 99495ca..d55abc1 100644 --- a/webkit/api/src/ChromiumBridge.cpp +++ b/webkit/api/src/ChromiumBridge.cpp @@ -602,7 +602,7 @@ bool ChromiumBridge::isLinkVisited(LinkHash visitedLinkHash) return webKitClient()->isLinkVisited(visitedLinkHash); } -// These are temporary methoeds that the WebKit layer can use to call to the +// These are temporary methods that the WebKit layer can use to call to the // Glue layer. Once the Glue layer moves entirely into the WebKit layer, these // methods will be deleted. @@ -622,6 +622,11 @@ void ChromiumBridge::notifyJSOutOfMemory(Frame* frame) webFrame->client()->didExhaustMemoryAvailableForScript(webFrame); } +int ChromiumBridge::memoryUsageMB() +{ + return static_cast<int>(webKitClient()->memoryUsageMB()); +} + int ChromiumBridge::screenDepth(Widget* widget) { WebWidgetClient* client = toWebWidgetClient(widget); diff --git a/webkit/glue/webkitclient_impl.cc b/webkit/glue/webkitclient_impl.cc index b04df0c..0bb2edca 100644 --- a/webkit/glue/webkitclient_impl.cc +++ b/webkit/glue/webkitclient_impl.cc @@ -15,6 +15,7 @@ #include "base/file_path.h" #include "base/file_util.h" #include "base/message_loop.h" +#include "base/process_util.h" #include "base/platform_file.h" #include "base/stats_counters.h" #include "base/string_util.h" @@ -338,6 +339,14 @@ WebKit::WebString WebKitClientImpl::signedPublicKeyAndChallengeString( return WebKit::WebString(); } +size_t WebKitClientImpl::memoryUsageMB() { + using base::ProcessMetrics; + static ProcessMetrics* process_metrics = + ProcessMetrics::CreateProcessMetrics(base::GetCurrentProcessHandle()); + DCHECK(process_metrics); + return process_metrics->GetPagefileUsage() >> 20; +} + bool WebKitClientImpl::fileExists(const WebKit::WebString& path) { FilePath::StringType file_path = webkit_glue::WebStringToFilePathString(path); return file_util::PathExists(FilePath(file_path)); diff --git a/webkit/glue/webkitclient_impl.h b/webkit/glue/webkitclient_impl.h index 1eb9d8c..e190465 100644 --- a/webkit/glue/webkitclient_impl.h +++ b/webkit/glue/webkitclient_impl.h @@ -53,6 +53,7 @@ class WebKitClientImpl : public WebKit::WebKitClient { virtual WebKit::WebString signedPublicKeyAndChallengeString( unsigned key_size_index, const WebKit::WebString& challenge, const WebKit::WebURL& url); + virtual size_t memoryUsageMB(); virtual bool rawCookies(const WebKit::WebURL& url, const WebKit::WebURL& policy_url, WebKit::WebVector<WebKit::WebCookie>*); |