summaryrefslogtreecommitdiffstats
path: root/android_webview
diff options
context:
space:
mode:
authorhush <hush@chromium.org>2015-12-02 18:47:03 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-03 02:48:23 +0000
commitdab2bb8dfb9b2109caea4d5e26444d3407169abb (patch)
tree3300734fc54af5b74df54ba63c571952a437f9d2 /android_webview
parent0d93c1a79b3c4cc3b633e9f6e1fbae6cf1611f64 (diff)
downloadchromium_src-dab2bb8dfb9b2109caea4d5e26444d3407169abb.zip
chromium_src-dab2bb8dfb9b2109caea4d5e26444d3407169abb.tar.gz
chromium_src-dab2bb8dfb9b2109caea4d5e26444d3407169abb.tar.bz2
Android WebView: Blink Page visibility API tests.
Android WebView's view visibility will no longer affect page visibility. Update the test to reflect that. BUG= Review URL: https://codereview.chromium.org/1493873003 Cr-Commit-Position: refs/heads/master@{#362873}
Diffstat (limited to 'android_webview')
-rw-r--r--android_webview/java/src/org/chromium/android_webview/AwContents.java12
-rw-r--r--android_webview/javatests/src/org/chromium/android_webview/test/AwContentsRenderTest.java17
2 files changed, 29 insertions, 0 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index ca80b7e..ebebc65 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -2408,6 +2408,18 @@ public class AwContents implements SmartClipProvider,
}
/**
+ * Returns true if the page is visible according to DOM page visibility API.
+ * See http://www.w3.org/TR/page-visibility/
+ * This method is only called by tests and will return the supposed CVC
+ * visibility without waiting a pending mUpdateVisibilityRunnable to run.
+ */
+ @VisibleForTesting
+ public boolean isPageVisible() {
+ if (isDestroyed(NO_WARN)) return mIsContentViewCoreVisible;
+ return nativeIsVisible(mNativeAwContents);
+ }
+
+ /**
* Key for opaque state in bundle. Note this is only public for tests.
*/
public static final String SAVE_RESTORE_STATE_KEY = "WEBVIEW_CHROMIUM_STATE";
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsRenderTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsRenderTest.java
index 0b17619..a1a6c07 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsRenderTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsRenderTest.java
@@ -120,10 +120,27 @@ public class AwContentsRenderTest extends AwTestBase {
final int width = mAwContents.getContentWidthCss();
final int height = mAwContents.getContentHeightCss();
visibleBitmap = GraphicsTestUtils.drawAwContentsOnUiThread(mAwContents, width, height);
+
+ // Things that affect DOM page visibility:
+ // 1. isPaused
+ // 2. window's visibility, if the webview is attached to a window.
+ // Note android.view.View's visibility does not affect DOM page visibility.
runTestOnUiThread(new Runnable() {
@Override
public void run() {
mContainerView.setVisibility(View.INVISIBLE);
+ assertTrue(mAwContents.isPageVisible());
+
+ mAwContents.onPause();
+ assertFalse(mAwContents.isPageVisible());
+
+ mAwContents.onResume();
+ assertTrue(mAwContents.isPageVisible());
+
+ // Simulate a window visiblity change. WebView test app can't
+ // manipulate the window visibility directly.
+ mAwContents.onWindowVisibilityChanged(View.INVISIBLE);
+ assertFalse(mAwContents.isPageVisible());
}
});