CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
chromium: updated to 64.0.3282.119
[ports/opt-arm.git] / chromium / chromium-omnibox-unescape-fragment.patch
1 commit 03f9a90d8a783f9d1a94935ac298338a1e694380
2 Author: Eric Lawrence <elawrence@chromium.org>
3 Date: Sat Dec 16 04:48:11 2017 +0000
4
5 Reland of 'Unescape fragment for display in Omnibox'
6
7 The original landing broke EGTests for iOS Simulator and Device which
8 were not run by the CQ. This change includes updated EGTests.
9
10 TBR=pkasting@chromium.org
11
12 Bug: 789163, 643458
13 Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
14 Change-Id: Ie30afcb7bcba5affc7266d72a10b7f8dc0074314
15 Reviewed-on: https://chromium-review.googlesource.com/830093
16 Reviewed-by: Eric Lawrence <elawrence@chromium.org>
17 Reviewed-by: Peter Kasting <pkasting@chromium.org>
18 Reviewed-by: Eugene But <eugenebut@chromium.org>
19 Commit-Queue: Eric Lawrence <elawrence@chromium.org>
20 Cr-Commit-Position: refs/heads/master@{#524591}
21
22 diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
23 index 6e5dff47f7ec..24f1056d49d5 100644
24 --- a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
25 +++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
26 @@ -462,3 +462,13 @@ IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, TextElideStatus) {
27 EXPECT_EQ(omnibox_view_views->GetRenderText()->elide_behavior(),
28 gfx::NO_ELIDE);
29 }
30 +
31 +IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, FragmentUnescapedForDisplay) {
32 + OmniboxView* view = nullptr;
33 + ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &view));
34 + ui_test_utils::NavigateToURL(browser(),
35 + GURL("https://www.google.com/#%E2%98%83"));
36 +
37 + EXPECT_EQ(view->GetText(),
38 + base::UTF8ToUTF16("https://www.google.com/#\u2603"));
39 +}
40 diff --git a/components/url_formatter/elide_url_unittest.cc b/components/url_formatter/elide_url_unittest.cc
41 index 5e0384af72a2..d403ce065f45 100644
42 --- a/components/url_formatter/elide_url_unittest.cc
43 +++ b/components/url_formatter/elide_url_unittest.cc
44 @@ -347,15 +347,16 @@ TEST(TextEliderTest, TestElisionSpecialCases) {
45 kEllipsisStr + "berkeley.edu:4430/" + kEllipsisStr + "/arbitfilename"},
46
47 // Unescaping.
48 - {"http://www/%E4%BD%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0",
49 - "www/\xe4\xbd\xa0\xe5\xa5\xbd?q=\xe4\xbd\xa0\xe5\xa5\xbd#" +
50 + {"http://www/%E4%BD%A0%E5%A5%BD?"
51 + "q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0\xe4\xbd\xa0\xe4\xbd\xa0",
52 + "www/\xe4\xbd\xa0\xe5\xa5\xbd?q=\xe4\xbd\xa0\xe5\xa5\xbd#\xe4\xbd\xa0" +
53 kEllipsisStr},
54
55 // Invalid unescaping for path. The ref will always be valid UTF-8. We
56 // don't bother to do too many edge cases, since these are handled by the
57 // escaper unittest.
58 {"http://www/%E4%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0",
59 - "www/%E4%A0%E5%A5%BD?q=\xe4\xbd\xa0\xe5\xa5\xbd#" + kEllipsisStr},
60 + "www/%E4%A0%E5%A5%BD?q=\xe4\xbd\xa0\xe5\xa5\xbd#\xe4\xbd\xa0"},
61 };
62
63 RunElisionTest(testcases);
64 diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
65 index d5c0d314a5de..c422e3d98a72 100644
66 --- a/components/url_formatter/url_formatter.cc
67 +++ b/components/url_formatter/url_formatter.cc
68 @@ -586,11 +586,10 @@ base::string16 FormatUrlWithAdjustments(
69 NonHostComponentTransform(unescape_rules),
70 &url_string, &new_parsed->query, adjustments);
71
72 - // Ref. This is valid, unescaped UTF-8, so we can just convert.
73 if (parsed.ref.is_valid())
74 url_string.push_back('#');
75 AppendFormattedComponent(spec, parsed.ref,
76 - NonHostComponentTransform(net::UnescapeRule::NONE),
77 + NonHostComponentTransform(unescape_rules),
78 &url_string, &new_parsed->ref, adjustments);
79 }
80
81 diff --git a/components/url_formatter/url_formatter_unittest.cc b/components/url_formatter/url_formatter_unittest.cc
82 index 6fd3ece50f7d..5aaf31105a43 100644
83 --- a/components/url_formatter/url_formatter_unittest.cc
84 +++ b/components/url_formatter/url_formatter_unittest.cc
85 @@ -828,7 +828,7 @@ TEST(UrlFormatterTest, FormatUrl) {
86
87 {"With a port number and a reference",
88 "http://www.google.com:8080/#\xE3\x82\xB0", default_format_type,
89 - net::UnescapeRule::NORMAL, L"http://www.google.com:8080/#%E3%82%B0", 7},
90 + net::UnescapeRule::NORMAL, L"http://www.google.com:8080/#\x30B0", 7},
91
92 // -------- IDN tests --------
93 {"Japanese IDN with ja", "http://xn--l8jvb1ey91xtjb.jp",
94 @@ -1119,7 +1119,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
95 kFormatUrlOmitNothing, net::UnescapeRule::NORMAL, &parsed,
96 nullptr, nullptr);
97 EXPECT_EQ(WideToUTF16(L"http://\x30B0:\x30FC@\x30B0\x30FC\x30B0\x30EB.jp:8080"
98 - L"/\x30B0/?q=\x30B0#%E3%82%B0"),
99 + L"/\x30B0/?q=\x30B0#\x30B0"),
100 formatted);
101 EXPECT_EQ(WideToUTF16(L"\x30B0"),
102 formatted.substr(parsed.username.begin, parsed.username.len));
103 @@ -1133,7 +1133,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
104 formatted.substr(parsed.path.begin, parsed.path.len));
105 EXPECT_EQ(WideToUTF16(L"q=\x30B0"),
106 formatted.substr(parsed.query.begin, parsed.query.len));
107 - EXPECT_EQ(WideToUTF16(L"%E3%82%B0"),
108 + EXPECT_EQ(WideToUTF16(L"\x30B0"),
109 formatted.substr(parsed.ref.begin, parsed.ref.len));
110
111 // Omit_username_password + unescape case.
112 @@ -1143,7 +1143,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
113 kFormatUrlOmitUsernamePassword, net::UnescapeRule::NORMAL,
114 &parsed, nullptr, nullptr);
115 EXPECT_EQ(WideToUTF16(L"http://\x30B0\x30FC\x30B0\x30EB.jp:8080"
116 - L"/\x30B0/?q=\x30B0#%E3%82%B0"),
117 + L"/\x30B0/?q=\x30B0#\x30B0"),
118 formatted);
119 EXPECT_FALSE(parsed.username.is_valid());
120 EXPECT_FALSE(parsed.password.is_valid());
121 @@ -1155,7 +1155,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
122 formatted.substr(parsed.path.begin, parsed.path.len));
123 EXPECT_EQ(WideToUTF16(L"q=\x30B0"),
124 formatted.substr(parsed.query.begin, parsed.query.len));
125 - EXPECT_EQ(WideToUTF16(L"%E3%82%B0"),
126 + EXPECT_EQ(WideToUTF16(L"\x30B0"),
127 formatted.substr(parsed.ref.begin, parsed.ref.len));
128
129 // View-source case.
130 @@ -1389,9 +1389,12 @@ TEST(UrlFormatterTest, FormatUrlWithOffsets) {
131 kFormatUrlOmitNothing, net::UnescapeRule::SPACES, unescape_offsets);
132
133 const size_t ref_offsets[] = {
134 - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
135 - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
136 - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49};
137 + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
138 + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
139 + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
140 + 30, 31, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
141 + 32, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 33};
142 +
143 // Unescape to "http://www.google.com/foo.html#\x30B0\x30B0z".
144 CheckAdjustedOffsets("http://www.google.com/foo.html#%E3%82%B0%E3%82%B0z",
145 kFormatUrlOmitNothing, net::UnescapeRule::NORMAL,
146 diff --git a/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm b/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm
147 index b67f2a08d0a0..431ad368f07d 100644
148 --- a/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm
149 +++ b/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm
150 @@ -59,40 +59,42 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
151 // Push 3 URLs. Verify that the URL changed and the status was updated.
152 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashWithObject"];
153 [self assertStatusText:@"pushStateHashWithObject"
154 - withURL:pushStateHashWithObjectURL
155 + withOmniboxText:pushStateHashWithObjectURL.GetContent()
156 pageLoaded:NO];
157
158 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateRootPath"];
159 [self assertStatusText:@"pushStateRootPath"
160 - withURL:pushStateRootPathURL
161 + withOmniboxText:pushStateRootPathURL.GetContent()
162 pageLoaded:NO];
163
164 [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePathSpace"];
165 [self assertStatusText:@"pushStatePathSpace"
166 - withURL:pushStatePathSpaceURL
167 + withOmniboxText:pushStatePathSpaceURL.GetContent()
168 pageLoaded:NO];
169
170 // Go back and check that the page doesn't load and the status text is updated
171 // by the popstate event.
172 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
173 [self assertStatusText:@"pushStateRootPath"
174 - withURL:pushStateRootPathURL
175 + withOmniboxText:pushStateRootPathURL.GetContent()
176 pageLoaded:NO];
177
178 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
179 [self assertStatusText:@"pushStateHashWithObject"
180 - withURL:pushStateHashWithObjectURL
181 + withOmniboxText:pushStateHashWithObjectURL.GetContent()
182 pageLoaded:NO];
183
184 [ChromeEarlGrey tapWebViewElementWithID:@"goBack"];
185 const GURL historyTestURL = web::test::HttpServer::MakeUrl(kHistoryTestUrl);
186 - [self assertStatusText:NULL withURL:historyTestURL pageLoaded:NO];
187 + [self assertStatusText:nil
188 + withOmniboxText:historyTestURL.GetContent()
189 + pageLoaded:NO];
190
191 // Go forward 2 pages and check that the page doesn't load and the status text
192 // is updated by the popstate event.
193 [ChromeEarlGrey tapWebViewElementWithID:@"goForward2"];
194 [self assertStatusText:@"pushStateRootPath"
195 - withURL:pushStateRootPathURL
196 + withOmniboxText:pushStateRootPathURL.GetContent()
197 pageLoaded:NO];
198 }
199
200 @@ -108,7 +110,7 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
201 web::test::HttpServer::MakeUrl(kReplaceStateHashWithObjectURL);
202 [ChromeEarlGrey tapWebViewElementWithID:@"replaceStateHashWithObject"];
203 [self assertStatusText:@"replaceStateHashWithObject"
204 - withURL:replaceStateHashWithObjectURL
205 + withOmniboxText:replaceStateHashWithObjectURL.GetContent()
206 pageLoaded:NO];
207
208 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
209 @@ -119,7 +121,7 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
210 [[EarlGrey selectElementWithMatcher:ForwardButton()]
211 performAction:grey_tap()];
212 [self assertStatusText:@"replaceStateHashWithObject"
213 - withURL:replaceStateHashWithObjectURL
214 + withOmniboxText:replaceStateHashWithObjectURL.GetContent()
215 pageLoaded:YES];
216
217 // Push URL then replace it. Do this twice.
218 @@ -127,44 +129,44 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
219 web::test::HttpServer::MakeUrl(kPushStateHashStringURL);
220 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
221 [self assertStatusText:@"pushStateHashString"
222 - withURL:pushStateHashStringURL
223 + withOmniboxText:pushStateHashStringURL.GetContent()
224 pageLoaded:NO];
225
226 const GURL replaceStateHashStringURL =
227 web::test::HttpServer::MakeUrl(kReplaceStateHashStringURL);
228 [ChromeEarlGrey tapWebViewElementWithID:@"replaceStateHashString"];
229 [self assertStatusText:@"replaceStateHashString"
230 - withURL:replaceStateHashStringURL
231 + withOmniboxText:replaceStateHashStringURL.GetContent()
232 pageLoaded:NO];
233
234 const GURL pushStatePathURL =
235 web::test::HttpServer::MakeUrl(kPushStatePathURL);
236 [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePath"];
237 [self assertStatusText:@"pushStatePath"
238 - withURL:pushStatePathURL
239 + withOmniboxText:pushStatePathURL.GetContent()
240 pageLoaded:NO];
241
242 const GURL replaceStateRootPathSpaceURL =
243 web::test::HttpServer::MakeUrl(kReplaceStateRootPathSpaceURL);
244 [ChromeEarlGrey tapWebViewElementWithID:@"replaceStateRootPathSpace"];
245 [self assertStatusText:@"replaceStateRootPathSpace"
246 - withURL:replaceStateRootPathSpaceURL
247 + withOmniboxText:replaceStateRootPathSpaceURL.GetContent()
248 pageLoaded:NO];
249
250 // Go back and check URLs.
251 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
252 [self assertStatusText:@"replaceStateHashString"
253 - withURL:replaceStateHashStringURL
254 + withOmniboxText:replaceStateHashStringURL.GetContent()
255 pageLoaded:NO];
256 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
257 [self assertStatusText:@"replaceStateHashWithObject"
258 - withURL:replaceStateHashWithObjectURL
259 + withOmniboxText:replaceStateHashWithObjectURL.GetContent()
260 pageLoaded:NO];
261
262 // Go forward and check URL.
263 [ChromeEarlGrey tapWebViewElementWithID:@"goForward2"];
264 [self assertStatusText:@"replaceStateRootPathSpace"
265 - withURL:replaceStateRootPathSpaceURL
266 + withOmniboxText:replaceStateRootPathSpaceURL.GetContent()
267 pageLoaded:NO];
268 }
269
270 @@ -180,11 +182,11 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
271 web::test::HttpServer::MakeUrl(kPushStateHashStringURL);
272 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
273 [self assertStatusText:@"pushStateHashString"
274 - withURL:pushStateHashStringURL
275 + withOmniboxText:pushStateHashStringURL.GetContent()
276 pageLoaded:NO];
277 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
278 [self assertStatusText:@"pushStateHashString"
279 - withURL:pushStateHashStringURL
280 + withOmniboxText:pushStateHashStringURL.GetContent()
281 pageLoaded:NO];
282
283 // Load a non-pushed URL.
284 @@ -194,7 +196,7 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
285 [ChromeEarlGrey loadURL:historyTestURL];
286 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
287 [self assertStatusText:@"pushStateHashString"
288 - withURL:pushStateHashStringURL
289 + withOmniboxText:pushStateHashStringURL.GetContent()
290 pageLoaded:NO];
291
292 // At this point the history looks like this:
293 @@ -202,38 +204,54 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
294
295 // Go back (to second history.html) and verify page did not load.
296 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
297 - [self assertStatusText:nil withURL:historyTestURL pageLoaded:NO];
298 + [self assertStatusText:nil
299 + withOmniboxText:historyTestURL.GetContent()
300 + pageLoaded:NO];
301
302 // Go back twice (to second #string) and verify page did load.
303 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
304 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
305 - [self assertStatusText:nil withURL:pushStateHashStringURL pageLoaded:YES];
306 + [self assertStatusText:nil
307 + withOmniboxText:pushStateHashStringURL.GetContent()
308 + pageLoaded:YES];
309
310 // Go back once (to first #string) and verify page did not load.
311 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
312 [self assertStatusText:@"pushStateHashString"
313 - withURL:pushStateHashStringURL
314 + withOmniboxText:pushStateHashStringURL.GetContent()
315 pageLoaded:NO];
316
317 // Go forward 4 entries at once (to third #string) and verify page did load.
318 [ChromeEarlGrey tapWebViewElementWithID:@"goForward4"];
319
320 - [self assertStatusText:nil withURL:pushStateHashStringURL pageLoaded:YES];
321 + [self assertStatusText:nil
322 + withOmniboxText:pushStateHashStringURL.GetContent()
323 + pageLoaded:YES];
324
325 // Go back 4 entries at once (to first #string) and verify page did load.
326 [ChromeEarlGrey tapWebViewElementWithID:@"goBack4"];
327
328 - [self assertStatusText:NULL withURL:pushStateHashStringURL pageLoaded:YES];
329 + [self assertStatusText:nil
330 + withOmniboxText:pushStateHashStringURL.GetContent()
331 + pageLoaded:YES];
332 }
333
334 // Tests calling pushState with unicode characters.
335 - (void)testHtml5HistoryPushUnicodeCharacters {
336 - const GURL pushStateUnicodeURLEncoded = web::test::HttpServer::MakeUrl(
337 - "http://ios/testing/data/http_server_files/"
338 - "history.html#unicode%E1%84%91");
339 - const GURL pushStateUnicode2URLEncoded = web::test::HttpServer::MakeUrl(
340 - "http://ios/testing/data/http_server_files/"
341 - "history.html#unicode2%E2%88%A2");
342 + // The GURL object %-escapes Unicode characters in the URL's fragment,
343 + // but the omnibox decodes them back to Unicode for display.
344 + std::string pushStateUnicode =
345 + web::test::HttpServer::MakeUrl(
346 + "http://ios/testing/data/http_server_files/"
347 + "history.html#unicode")
348 + .GetContent() +
349 + "\xe1\x84\x91";
350 + std::string pushStateUnicode2 =
351 + web::test::HttpServer::MakeUrl(
352 + "http://ios/testing/data/http_server_files/"
353 + "history.html#unicode2")
354 + .GetContent() +
355 + "\xe2\x88\xa2";
356 const char pushStateUnicodeLabel[] = "Action: pushStateUnicodeá„‘";
357 NSString* pushStateUnicodeStatus = @"pushStateUnicodeá„‘";
358 const char pushStateUnicode2Label[] = "Action: pushStateUnicode2∢";
359 @@ -242,21 +260,16 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
360 web::test::SetUpFileBasedHttpServer();
361 [ChromeEarlGrey loadURL:web::test::HttpServer::MakeUrl(kHistoryTestUrl)];
362
363 - // TODO(crbug.com/643458): The fact that the URL shows %-escaped is due to
364 - // NSURL escaping to make UIWebView/JS happy. See if it's possible to
365 - // represent differently such that it displays unescaped.
366 // Do 2 push states with unicode characters.
367 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateUnicode"];
368 [[EarlGrey
369 - selectElementWithMatcher:chrome_test_util::OmniboxText(
370 - pushStateUnicodeURLEncoded.GetContent())]
371 + selectElementWithMatcher:chrome_test_util::OmniboxText(pushStateUnicode)]
372 assertWithMatcher:grey_notNil()];
373 [ChromeEarlGrey waitForWebViewContainingText:pushStateUnicodeLabel];
374
375 [ChromeEarlGrey tapWebViewElementWithID:@"pushStateUnicode2"];
376 [[EarlGrey
377 - selectElementWithMatcher:chrome_test_util::OmniboxText(
378 - pushStateUnicode2URLEncoded.GetContent())]
379 + selectElementWithMatcher:chrome_test_util::OmniboxText(pushStateUnicode2)]
380 assertWithMatcher:grey_notNil()];
381 [ChromeEarlGrey waitForWebViewContainingText:pushStateUnicode2Label];
382
383 @@ -266,18 +279,18 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
384 [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePath"];
385
386 [self assertStatusText:@"pushStatePath"
387 - withURL:pushStatePathURL
388 + withOmniboxText:pushStatePathURL.GetContent()
389 pageLoaded:NO];
390
391 // Go back and check the unicode in the URL and status.
392 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
393 [self assertStatusText:pushStateUnicode2Status
394 - withURL:pushStateUnicode2URLEncoded
395 + withOmniboxText:pushStateUnicode2
396 pageLoaded:NO];
397
398 [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
399 [self assertStatusText:pushStateUnicodeStatus
400 - withURL:pushStateUnicodeURLEncoded
401 + withOmniboxText:pushStateUnicode
402 pageLoaded:NO];
403 }
404
405 @@ -321,10 +334,11 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
406
407 #pragma mark - Utility methods
408
409 -// Assert that status text |status| is displayed in the webview, that "onloaded"
410 -// text is displayed if pageLoaded is YES, and that the URL is as expected.
411 +// Assert that status text |status|, if non-nil, is displayed in the webview,
412 +// that the omnibox text is as expected, and that "onload" text is displayed if
413 +// pageLoaded is YES.
414 - (void)assertStatusText:(NSString*)status
415 - withURL:(const GURL&)urlToVerify
416 + withOmniboxText:(const std::string&)omniboxText
417 pageLoaded:(BOOL)pageLoaded {
418 if (pageLoaded) {
419 [ChromeEarlGrey waitForWebViewContainingText:"onload"];
420 @@ -332,14 +346,14 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
421 [ChromeEarlGrey waitForWebViewNotContainingText:"onload"];
422 }
423
424 - if (status != NULL) {
425 + if (status != nil) {
426 NSString* statusLabel = [NSString stringWithFormat:@"Action: %@", status];
427 [ChromeEarlGrey
428 waitForWebViewContainingText:base::SysNSStringToUTF8(statusLabel)];
429 }
430
431 - [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText(
432 - urlToVerify.GetContent())]
433 + [[EarlGrey
434 + selectElementWithMatcher:chrome_test_util::OmniboxText(omniboxText)]
435 assertWithMatcher:grey_notNil()];
436 }
437