summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WebCore/bindings/v8/V8GCController.cpp3
-rw-r--r--WebCore/platform/android/PlatformBridge.h1
-rw-r--r--WebKit/android/WebCoreSupport/MemoryUsage.cpp2
-rw-r--r--WebKit/android/WebCoreSupport/MemoryUsage.h3
-rw-r--r--WebKit/android/WebCoreSupport/PlatformBridge.cpp5
-rw-r--r--WebKit/android/jni/WebViewCore.cpp3
6 files changed, 14 insertions, 3 deletions
diff --git a/WebCore/bindings/v8/V8GCController.cpp b/WebCore/bindings/v8/V8GCController.cpp
index 3eeacec..9107b51 100644
--- a/WebCore/bindings/v8/V8GCController.cpp
+++ b/WebCore/bindings/v8/V8GCController.cpp
@@ -453,8 +453,7 @@ void V8GCController::checkMemoryUsage()
// Query the PlatformBridge for memory thresholds as these vary device to device.
static const int lowUsageMB = PlatformBridge::lowMemoryUsageMB();
static const int highUsageMB = PlatformBridge::highMemoryUsageMB();
- // We use a delta of -1 to ensure that when we are in a low memory situation we always trigger a GC.
- static const int highUsageDeltaMB = -1;
+ static const int highUsageDeltaMB = PlatformBridge::highUsageDeltaMB();
#else
return;
#endif
diff --git a/WebCore/platform/android/PlatformBridge.h b/WebCore/platform/android/PlatformBridge.h
index c67c865..7d54ae5 100644
--- a/WebCore/platform/android/PlatformBridge.h
+++ b/WebCore/platform/android/PlatformBridge.h
@@ -145,6 +145,7 @@ public:
// Memory details for V8 GC
static int lowMemoryUsageMB();
static int highMemoryUsageMB();
+ static int highUsageDeltaMB();
static int memoryUsageMB();
static int actualMemoryUsageMB();
};
diff --git a/WebKit/android/WebCoreSupport/MemoryUsage.cpp b/WebKit/android/WebCoreSupport/MemoryUsage.cpp
index f799a18..32cdebf 100644
--- a/WebKit/android/WebCoreSupport/MemoryUsage.cpp
+++ b/WebKit/android/WebCoreSupport/MemoryUsage.cpp
@@ -78,4 +78,4 @@ int MemoryUsage::memoryUsageMb(bool forceFresh)
int MemoryUsage::m_lowMemoryUsageMb = 0;
int MemoryUsage::m_highMemoryUsageMb = 0;
-
+int MemoryUsage::m_highUsageDeltaMb = 0;
diff --git a/WebKit/android/WebCoreSupport/MemoryUsage.h b/WebKit/android/WebCoreSupport/MemoryUsage.h
index 899fd08..2a3d7ed 100644
--- a/WebKit/android/WebCoreSupport/MemoryUsage.h
+++ b/WebKit/android/WebCoreSupport/MemoryUsage.h
@@ -31,12 +31,15 @@ public:
static int memoryUsageMb(bool forceFresh);
static int lowMemoryUsageMb() { return m_lowMemoryUsageMb; }
static int highMemoryUsageMb() { return m_highMemoryUsageMb; }
+ static int highUsageDeltaMb() { return m_highUsageDeltaMb; }
static void setHighMemoryUsageMb(int highMemoryUsageMb) { m_highMemoryUsageMb = highMemoryUsageMb; }
static void setLowMemoryUsageMb(int lowMemoryUsageMb) { m_lowMemoryUsageMb = lowMemoryUsageMb; }
+ static void setHighUsageDeltaMb(int highUsageDeltaMb) { m_highUsageDeltaMb = highUsageDeltaMb; }
private:
static int m_lowMemoryUsageMb;
static int m_highMemoryUsageMb;
+ static int m_highUsageDeltaMb;
};
#endif
diff --git a/WebKit/android/WebCoreSupport/PlatformBridge.cpp b/WebKit/android/WebCoreSupport/PlatformBridge.cpp
index baeddb2..0bc2e3c 100644
--- a/WebKit/android/WebCoreSupport/PlatformBridge.cpp
+++ b/WebKit/android/WebCoreSupport/PlatformBridge.cpp
@@ -201,6 +201,11 @@ int PlatformBridge::highMemoryUsageMB()
return MemoryUsage::highMemoryUsageMb();
}
+int PlatformBridge::highUsageDeltaMB()
+{
+ return MemoryUsage::highUsageDeltaMb();
+}
+
int PlatformBridge::memoryUsageMB()
{
return MemoryUsage::memoryUsageMb(false);
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp
index 6fd7b9c..9abc061 100644
--- a/WebKit/android/jni/WebViewCore.cpp
+++ b/WebKit/android/jni/WebViewCore.cpp
@@ -240,6 +240,7 @@ struct WebViewCoreFields {
jfieldID m_drawIsPaused;
jfieldID m_lowMemoryUsageMb;
jfieldID m_highMemoryUsageMb;
+ jfieldID m_highUsageDeltaMb;
} gWebViewCoreFields;
// ----------------------------------------------------------------------------
@@ -400,6 +401,7 @@ WebViewCore::WebViewCore(JNIEnv* env, jobject javaWebViewCore, WebCore::Frame* m
MemoryUsage::setLowMemoryUsageMb(env->GetIntField(javaWebViewCore, gWebViewCoreFields.m_lowMemoryUsageMb));
MemoryUsage::setHighMemoryUsageMb(env->GetIntField(javaWebViewCore, gWebViewCoreFields.m_highMemoryUsageMb));
+ MemoryUsage::setHighUsageDeltaMb(env->GetIntField(javaWebViewCore, gWebViewCoreFields.m_highUsageDeltaMb));
WebViewCore::addInstance(this);
@@ -4361,6 +4363,7 @@ int registerWebViewCore(JNIEnv* env)
"Unable to find android/webkit/WebViewCore.mDrawIsPaused");
gWebViewCoreFields.m_lowMemoryUsageMb = env->GetFieldID(widget, "mLowMemoryUsageThresholdMb", "I");
gWebViewCoreFields.m_highMemoryUsageMb = env->GetFieldID(widget, "mHighMemoryUsageThresholdMb", "I");
+ gWebViewCoreFields.m_highUsageDeltaMb = env->GetFieldID(widget, "mHighUsageDeltaMb", "I");
gWebViewCoreStaticMethods.m_isSupportedMediaMimeType =
env->GetStaticMethodID(widget, "isSupportedMediaMimeType", "(Ljava/lang/String;)Z");