| Index: ios/chrome/browser/ui/reading_list/reading_list_egtest.mm
 | 
| diff --git a/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm b/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm
 | 
| index 135d8c445aeec3d7a9d0dc7200d6ad4efcc96676..97b6ec12fac7f998bc1b4fcccce64f93964a31dc 100644
 | 
| --- a/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm
 | 
| +++ b/ios/chrome/browser/ui/reading_list/reading_list_egtest.mm
 | 
| @@ -35,6 +35,7 @@
 | 
|  #import "ios/web/public/test/http_server/html_response_provider.h"
 | 
|  #import "ios/web/public/test/http_server/http_server.h"
 | 
|  #include "ios/web/public/test/http_server/http_server_util.h"
 | 
| +#import "ios/web/public/test/web_view_content_test_util.h"
 | 
|  #include "net/base/network_change_notifier.h"
 | 
|  
 | 
|  #if !defined(__has_feature) || !__has_feature(objc_arc)
 | 
| @@ -317,20 +318,17 @@ void AssertIsShowingDistillablePage(bool online) {
 | 
|    NSString* contentToKeep = base::SysUTF8ToNSString(kContentToKeep);
 | 
|    // There will be multiple reloads, wait for the page to be displayed.
 | 
|    if (online) {
 | 
| -    // TODO(crbug.com/707009): Remove use of WebViewContainingText, with a
 | 
| -    // method that is not an EarlGrey matcher.
 | 
| -    id<GREYMatcher> web_view_match = nil;
 | 
| -    web_view_match = chrome_test_util::WebViewContainingText(kContentToKeep);
 | 
| -    ConditionBlock wait_for_loading = ^{
 | 
| -      NSError* error = nil;
 | 
| -      [[EarlGrey selectElementWithMatcher:web_view_match]
 | 
| -          assertWithMatcher:grey_notNil()
 | 
| -                      error:&error];
 | 
| -      return error == nil;
 | 
| -    };
 | 
| -    GREYAssert(testing::WaitUntilConditionOrTimeout(kLoadOfflineTimeout,
 | 
| -                                                    wait_for_loading),
 | 
| -               @"Page did not load.");
 | 
| +    // Due to the reloads, a timeout longer than what is provided in
 | 
| +    // [ChromeEarlGrey waitForWebViewContainingText] is required, so call
 | 
| +    // WebViewContainingText directly.
 | 
| +    GREYAssert(testing::WaitUntilConditionOrTimeout(
 | 
| +                   kLoadOfflineTimeout,
 | 
| +                   ^bool {
 | 
| +                     return web::test::IsWebViewContainingText(
 | 
| +                         chrome_test_util::GetCurrentWebState(),
 | 
| +                         kContentToKeep);
 | 
| +                   }),
 | 
| +               @"Waiting for online page.");
 | 
|    } else {
 | 
|      [ChromeEarlGrey waitForStaticHTMLViewContainingText:contentToKeep];
 | 
|    }
 | 
| @@ -341,15 +339,16 @@ void AssertIsShowingDistillablePage(bool online) {
 | 
|                                            distillableURL.GetContent())]
 | 
|        assertWithMatcher:grey_notNil()];
 | 
|  
 | 
| -  // Test presence of online page
 | 
| -  [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText(
 | 
| -                                          kContentToKeep)]
 | 
| -      assertWithMatcher:online ? grey_notNil() : grey_nil()];
 | 
| -
 | 
| -  // Test presence of offline page.
 | 
| +  // Test that the offline and online pages are properly displayed.
 | 
|    if (online) {
 | 
| +    [ChromeEarlGrey
 | 
| +        waitForWebViewContainingText:base::SysNSStringToUTF8(contentToKeep)];
 | 
|      [ChromeEarlGrey waitForStaticHTMLViewNotContainingText:contentToKeep];
 | 
|    } else {
 | 
| +    // TODO(crbug.com/714157): Remove matcher that asserts grey_nil().
 | 
| +    [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText(
 | 
| +                                            kContentToKeep)]
 | 
| +        assertWithMatcher:grey_nil()];
 | 
|      [ChromeEarlGrey waitForStaticHTMLViewContainingText:contentToKeep];
 | 
|    }
 | 
|  
 | 
| 
 |