Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(274)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java

Issue 23983036: [Android] Provide synchronized input flush with BeginFrame (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Collapse conditionals Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/port/browser/render_widget_host_view_port.h ('k') | content/public/common/content_switches.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
index 88785c177e4d7083df2badb0f07f756141072d1b..cadb45a4d8ae03c3eaaa1bc9150a2b4255cc50c9 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
@@ -293,7 +293,7 @@ import java.util.Map;
};
if (mVSyncSubscriberCount > 0) {
- // setVSyncNotificationEnabled(true) is called before getVSyncListener.
+ // addVSyncSubscriber() is called before getVSyncListener.
vsyncProvider.registerVSyncListener(mVSyncListener);
mVSyncListenerRegistered = true;
}
@@ -302,27 +302,31 @@ import java.util.Map;
}
@CalledByNative
- void setVSyncNotificationEnabled(boolean enabled) {
- if (!isVSyncNotificationEnabled() && enabled) {
+ void addVSyncSubscriber() {
+ if (!isVSyncNotificationEnabled()) {
mDidSignalVSyncUsingInputEvent = false;
}
- if (mVSyncProvider != null) {
- if (!mVSyncListenerRegistered && enabled) {
- mVSyncProvider.registerVSyncListener(mVSyncListener);
- mVSyncListenerRegistered = true;
- } else if (mVSyncSubscriberCount == 1 && !enabled) {
- assert mVSyncListenerRegistered;
- mVSyncProvider.unregisterVSyncListener(mVSyncListener);
- mVSyncListenerRegistered = false;
- }
+ if (mVSyncProvider != null && !mVSyncListenerRegistered) {
+ mVSyncProvider.registerVSyncListener(mVSyncListener);
+ mVSyncListenerRegistered = true;
+ }
+ mVSyncSubscriberCount++;
+ }
+
+ @CalledByNative
+ void removeVSyncSubscriber() {
+ if (mVSyncProvider != null && mVSyncSubscriberCount == 1) {
+ assert mVSyncListenerRegistered;
+ mVSyncProvider.unregisterVSyncListener(mVSyncListener);
+ mVSyncListenerRegistered = false;
}
- mVSyncSubscriberCount += enabled ? 1 : -1;
+ mVSyncSubscriberCount--;
assert mVSyncSubscriberCount >= 0;
}
@CalledByNative
private void resetVSyncNotification() {
- while (isVSyncNotificationEnabled()) setVSyncNotificationEnabled(false);
+ while (isVSyncNotificationEnabled()) removeVSyncSubscriber();
mVSyncSubscriberCount = 0;
mVSyncListenerRegistered = false;
mNeedAnimate = false;
@@ -336,7 +340,7 @@ import java.util.Map;
private void setNeedsAnimate() {
if (!mNeedAnimate) {
mNeedAnimate = true;
- setVSyncNotificationEnabled(true);
+ addVSyncSubscriber();
}
}
@@ -3096,7 +3100,7 @@ import java.util.Map;
private void animateIfNecessary(long frameTimeMicros) {
if (mNeedAnimate) {
mNeedAnimate = onAnimate(frameTimeMicros);
- if (!mNeedAnimate) setVSyncNotificationEnabled(false);
+ if (!mNeedAnimate) removeVSyncSubscriber();
}
}
« no previous file with comments | « content/port/browser/render_widget_host_view_port.h ('k') | content/public/common/content_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698