summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-15 21:53:34 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-15 21:53:34 +0000
commit040bb3131856d2ba69c0c50390c4c3ec64983c3b (patch)
tree9c5a6c64a210ce2112e2fca5b5ef2fb163656d6a
parent06e639cdc5cf9b7d3e97c7d7c57920b56b4b6e17 (diff)
downloadchromium_src-040bb3131856d2ba69c0c50390c4c3ec64983c3b.zip
chromium_src-040bb3131856d2ba69c0c50390c4c3ec64983c3b.tar.gz
chromium_src-040bb3131856d2ba69c0c50390c4c3ec64983c3b.tar.bz2
Prepare for WebKitClient rename setSharedTimerFireTime->setSharedTimerFireInterval
WebKit side is https://bugs.webkit.org/show_bug.cgi?id=64544 BUG=71256 TEST=none Review URL: http://codereview.chromium.org/7388003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92750 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--webkit/glue/webkitclient_impl.cc27
-rw-r--r--webkit/glue/webkitclient_impl.h5
2 files changed, 23 insertions, 9 deletions
diff --git a/webkit/glue/webkitclient_impl.cc b/webkit/glue/webkitclient_impl.cc
index 157b3d7..8dc0d3a 100644
--- a/webkit/glue/webkitclient_impl.cc
+++ b/webkit/glue/webkitclient_impl.cc
@@ -498,8 +498,18 @@ void WebKitClientImpl::setSharedTimerFiredFunction(void (*func)()) {
shared_timer_func_ = func;
}
+#ifndef WEBKIT_USE_MONOTONIC_CLOCK_FOR_TIMER_SCHEDULING
void WebKitClientImpl::setSharedTimerFireTime(double fire_time) {
- shared_timer_fire_time_ = fire_time;
+ setSharedTimerFireInterval(fire_time - currentTime());
+}
+#endif
+
+void WebKitClientImpl::setSharedTimerFireInterval(double interval_seconds) {
+#ifdef WEBKIT_USE_MONOTONIC_CLOCK_FOR_TIMER_SCHEDULING
+ shared_timer_fire_time_ = interval_seconds + monotonicallyIncreasingTime();
+#else
+ shared_timer_fire_time_ = interval_seconds + currentTime();
+#endif
if (shared_timer_suspended_)
return;
@@ -513,14 +523,10 @@ void WebKitClientImpl::setSharedTimerFireTime(double fire_time) {
// needlessly looping if sleep times are too short even by small amounts.
// This results in measurable performance degradation unless we use ceil() to
// always round up the sleep times.
-#ifdef WEBKIT_USE_MONOTONIC_CLOCK_FOR_TIMER_SCHEDULING
- double intervalSeconds = fire_time - monotonicallyIncreasingTime();
int64 interval = static_cast<int64>(
- ceil(intervalSeconds) * base::Time::kMicrosecondsPerSecond);
-#else
- int64 interval = static_cast<int64>(
- ceil((fire_time - currentTime()) * base::Time::kMicrosecondsPerSecond));
-#endif
+ ceil(interval_seconds * base::Time::kMillisecondsPerSecond)
+ * base::Time::kMicrosecondsPerMillisecond);
+
if (interval < 0)
interval = 0;
@@ -644,7 +650,12 @@ void WebKitClientImpl::SuspendSharedTimer() {
void WebKitClientImpl::ResumeSharedTimer() {
// The shared timer may have fired or been adjusted while we were suspended.
if (--shared_timer_suspended_ == 0 && !shared_timer_.IsRunning())
+#ifdef WEBKIT_USE_MONOTONIC_CLOCK_FOR_TIMER_SCHEDULING
+ setSharedTimerFireInterval(
+ monotonicallyIncreasingTime() - shared_timer_fire_time_);
+#else
setSharedTimerFireTime(shared_timer_fire_time_);
+#endif
}
} // namespace webkit_glue
diff --git a/webkit/glue/webkitclient_impl.h b/webkit/glue/webkitclient_impl.h
index 6761a27..eb8f484 100644
--- a/webkit/glue/webkitclient_impl.h
+++ b/webkit/glue/webkitclient_impl.h
@@ -74,7 +74,10 @@ class WebKitClientImpl : public WebKit::WebKitClient {
virtual void cryptographicallyRandomValues(
unsigned char* buffer, size_t length);
virtual void setSharedTimerFiredFunction(void (*func)());
- virtual void setSharedTimerFireTime(double fireTime);
+ virtual void setSharedTimerFireInterval(double interval_seconds);
+#ifndef WEBKIT_USE_MONOTONIC_CLOCK_FOR_TIMER_SCHEDULING
+ virtual void setSharedTimerFireTime(double fire_time);
+#endif
virtual void stopSharedTimer();
virtual void callOnMainThread(void (*func)(void*), void* context);