| Index: android_webview/tools/automated_ui_tests/javatests/src/org/chromium/webview_ui_test/test/ActionModeTest.java
|
| diff --git a/android_webview/tools/automated_ui_tests/javatests/src/org/chromium/webview_ui_test/test/ActionModeTest.java b/android_webview/tools/automated_ui_tests/javatests/src/org/chromium/webview_ui_test/test/ActionModeTest.java
|
| index eb9dc56bc4b389020ff62243c9584f0ffb4e2378..fc10cc372690a093b71722169d72b3ad6f960ecb 100644
|
| --- a/android_webview/tools/automated_ui_tests/javatests/src/org/chromium/webview_ui_test/test/ActionModeTest.java
|
| +++ b/android_webview/tools/automated_ui_tests/javatests/src/org/chromium/webview_ui_test/test/ActionModeTest.java
|
| @@ -293,6 +293,7 @@ public class ActionModeTest {
|
| private class ActionBarIdlingResource implements IdlingResource {
|
| private boolean mActionStarting;
|
| private ResourceCallback mResourceCallback;
|
| + private boolean mPreviousActionBarDisplayed;
|
|
|
| @Override
|
| public String getName() {
|
| @@ -302,10 +303,17 @@ public class ActionModeTest {
|
| @Override
|
| public boolean isIdleNow() {
|
| if (!mActionStarting) return true;
|
| - if (mWebViewActivityRule.isActionBarDisplayed()) {
|
| + boolean currentActionBarDisplayed = mWebViewActivityRule.isActionBarDisplayed();
|
| + /* Only transition to idle when action bar is displayed fully for
|
| + * 2 consecutive checks. This avoids false transitions
|
| + * in cases where the action bar was already displayed but is due
|
| + * to be updated immediately after a previous action
|
| + */
|
| + if (mPreviousActionBarDisplayed && currentActionBarDisplayed) {
|
| mActionStarting = false;
|
| if (mResourceCallback != null) mResourceCallback.onTransitionToIdle();
|
| }
|
| + mPreviousActionBarDisplayed = currentActionBarDisplayed;
|
| return !mActionStarting;
|
| }
|
|
|
| @@ -316,6 +324,7 @@ public class ActionModeTest {
|
|
|
| public void start() {
|
| mActionStarting = true;
|
| + mPreviousActionBarDisplayed = false;
|
| }
|
| }
|
| }
|
|
|