OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/stringprintf.h" | 5 #include "base/stringprintf.h" |
6 #include "base/utf_string_conversions.h" | 6 #include "base/utf_string_conversions.h" |
7 #include "chrome/browser/automation/automation_util.h" | 7 #include "chrome/browser/automation/automation_util.h" |
8 #include "chrome/browser/extensions/extension_apitest.h" | 8 #include "chrome/browser/extensions/extension_apitest.h" |
9 #include "chrome/browser/extensions/extension_host.h" | 9 #include "chrome/browser/extensions/extension_host.h" |
10 #include "chrome/browser/extensions/extension_service.h" | 10 #include "chrome/browser/extensions/extension_service.h" |
11 #include "chrome/browser/profiles/profile.h" | 11 #include "chrome/browser/profiles/profile.h" |
12 #include "chrome/browser/ui/browser.h" | 12 #include "chrome/browser/ui/browser.h" |
13 #include "chrome/browser/ui/browser_commands.h" | 13 #include "chrome/browser/ui/browser_commands.h" |
14 #include "chrome/browser/ui/browser_tabstrip.h" | 14 #include "chrome/browser/ui/browser_tabstrip.h" |
15 #include "chrome/common/chrome_switches.h" | 15 #include "chrome/common/chrome_switches.h" |
16 #include "chrome/common/url_constants.h" | 16 #include "chrome/common/url_constants.h" |
17 #include "chrome/test/base/ui_test_utils.h" | 17 #include "chrome/test/base/ui_test_utils.h" |
18 #include "content/public/browser/render_process_host.h" | 18 #include "content/public/browser/render_process_host.h" |
19 #include "content/public/browser/render_view_host.h" | 19 #include "content/public/browser/render_view_host.h" |
20 #include "content/public/browser/site_instance.h" | 20 #include "content/public/browser/site_instance.h" |
21 #include "content/public/browser/web_contents.h" | 21 #include "content/public/browser/web_contents.h" |
22 #include "content/public/test/browser_test_utils.h" | 22 #include "content/public/test/browser_test_utils.h" |
23 #include "net/base/mock_host_resolver.h" | 23 #include "net/base/mock_host_resolver.h" |
24 | 24 |
25 using content::ExecuteJavaScript; | 25 using content::ExecuteScript; |
26 using content::ExecuteJavaScriptAndExtractString; | 26 using content::ExecuteScriptAndExtractString; |
27 using content::NavigationController; | 27 using content::NavigationController; |
28 using content::WebContents; | 28 using content::WebContents; |
29 using content::RenderViewHost; | 29 using content::RenderViewHost; |
30 | 30 |
31 namespace { | 31 namespace { |
32 | 32 |
33 std::string WrapForJavascriptAndExtract(const char* javascript_expression) { | 33 std::string WrapForJavascriptAndExtract(const char* javascript_expression) { |
34 return std::string("window.domAutomationController.send(") + | 34 return std::string("window.domAutomationController.send(") + |
35 javascript_expression + ")"; | 35 javascript_expression + ")"; |
36 } | 36 } |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 | 108 |
109 // We also need to test script-initialized navigation (document.location.href) | 109 // We also need to test script-initialized navigation (document.location.href) |
110 // happened after page finishes loading. This one will also triggered the | 110 // happened after page finishes loading. This one will also triggered the |
111 // willPerformClientRedirect hook in RenderViewImpl but should not replace | 111 // willPerformClientRedirect hook in RenderViewImpl but should not replace |
112 // the previous history entry. | 112 // the previous history entry. |
113 ui_test_utils::NavigateToURLWithDisposition( | 113 ui_test_utils::NavigateToURLWithDisposition( |
114 browser(), base_url.Resolve("non_app/main.html"), | 114 browser(), base_url.Resolve("non_app/main.html"), |
115 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 115 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
116 | 116 |
117 WebContents* tab0 = chrome::GetWebContentsAt(browser(), 1); | 117 WebContents* tab0 = chrome::GetWebContentsAt(browser(), 1); |
118 RenderViewHost* rvh = tab0->GetRenderViewHost(); | |
119 | 118 |
120 // Using JavaScript to navigate to app2 page, | 119 // Using JavaScript to navigate to app2 page, |
121 // after the non_app page has finished loading. | 120 // after the non_app page has finished loading. |
122 content::WindowedNotificationObserver observer1( | 121 content::WindowedNotificationObserver observer1( |
123 content::NOTIFICATION_LOAD_STOP, | 122 content::NOTIFICATION_LOAD_STOP, |
124 content::Source<NavigationController>( | 123 content::Source<NavigationController>( |
125 &chrome::GetActiveWebContents(browser())->GetController())); | 124 &chrome::GetActiveWebContents(browser())->GetController())); |
126 std::string script = base::StringPrintf( | 125 std::string script = base::StringPrintf( |
127 "document.location.href=\"%s\";", | 126 "document.location.href=\"%s\";", |
128 base_url.Resolve("app2/main.html").spec().c_str()); | 127 base_url.Resolve("app2/main.html").spec().c_str()); |
129 EXPECT_TRUE(ExecuteJavaScript(rvh, "", script)); | 128 EXPECT_TRUE(ExecuteScript(tab0, script)); |
130 observer1.Wait(); | 129 observer1.Wait(); |
131 | 130 |
132 // This kind of navigation should not replace previous navigation entry. | 131 // This kind of navigation should not replace previous navigation entry. |
133 EXPECT_TRUE(chrome::CanGoBack(browser())); | 132 EXPECT_TRUE(chrome::CanGoBack(browser())); |
134 chrome::GoBack(browser(), CURRENT_TAB); | 133 chrome::GoBack(browser(), CURRENT_TAB); |
135 EXPECT_FALSE(chrome::CanGoBack(browser())); | 134 EXPECT_FALSE(chrome::CanGoBack(browser())); |
136 } | 135 } |
137 | 136 |
138 // Tests that cookies set within an isolated app are not visible to normal | 137 // Tests that cookies set within an isolated app are not visible to normal |
139 // pages or other apps. | 138 // pages or other apps. |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 // Ensure first two tabs have installed apps. | 170 // Ensure first two tabs have installed apps. |
172 WebContents* tab0 = chrome::GetWebContentsAt(browser(), 0); | 171 WebContents* tab0 = chrome::GetWebContentsAt(browser(), 0); |
173 WebContents* tab1 = chrome::GetWebContentsAt(browser(), 1); | 172 WebContents* tab1 = chrome::GetWebContentsAt(browser(), 1); |
174 WebContents* tab2 = chrome::GetWebContentsAt(browser(), 2); | 173 WebContents* tab2 = chrome::GetWebContentsAt(browser(), 2); |
175 ASSERT_TRUE(GetInstalledApp(tab0)); | 174 ASSERT_TRUE(GetInstalledApp(tab0)); |
176 ASSERT_TRUE(GetInstalledApp(tab1)); | 175 ASSERT_TRUE(GetInstalledApp(tab1)); |
177 ASSERT_TRUE(!GetInstalledApp(tab2)); | 176 ASSERT_TRUE(!GetInstalledApp(tab2)); |
178 | 177 |
179 // Check that tabs see cannot each other's localStorage even though they are | 178 // Check that tabs see cannot each other's localStorage even though they are |
180 // in the same origin. | 179 // in the same origin. |
181 RenderViewHost* app1_rvh = tab0->GetRenderViewHost(); | 180 ASSERT_TRUE(ExecuteScript( |
182 RenderViewHost* app2_rvh = tab1->GetRenderViewHost(); | 181 tab0, "window.localStorage.setItem('testdata', 'ls_app1');")); |
183 RenderViewHost* non_app_rvh = tab2->GetRenderViewHost(); | 182 ASSERT_TRUE(ExecuteScript( |
184 ASSERT_TRUE(ExecuteJavaScript( | 183 tab1, "window.localStorage.setItem('testdata', 'ls_app2');")); |
185 app1_rvh, "", "window.localStorage.setItem('testdata', 'ls_app1');")); | 184 ASSERT_TRUE(ExecuteScript( |
186 ASSERT_TRUE(ExecuteJavaScript( | 185 tab2, "window.localStorage.setItem('testdata', 'ls_normal');")); |
187 app2_rvh, "", "window.localStorage.setItem('testdata', 'ls_app2');")); | |
188 ASSERT_TRUE(ExecuteJavaScript( | |
189 non_app_rvh, | |
190 "", | |
191 "window.localStorage.setItem('testdata', 'ls_normal');")); | |
192 | 186 |
193 const std::string& kRetrieveLocalStorage = | 187 const std::string& kRetrieveLocalStorage = |
194 WrapForJavascriptAndExtract( | 188 WrapForJavascriptAndExtract( |
195 "window.localStorage.getItem('testdata') || 'badval'"); | 189 "window.localStorage.getItem('testdata') || 'badval'"); |
196 std::string result; | 190 std::string result; |
197 ASSERT_TRUE(ExecuteJavaScriptAndExtractString( | 191 ASSERT_TRUE(ExecuteScriptAndExtractString( |
198 app1_rvh, "", kRetrieveLocalStorage.c_str(), &result)); | 192 tab0, kRetrieveLocalStorage.c_str(), &result)); |
199 EXPECT_EQ("ls_app1", result); | 193 EXPECT_EQ("ls_app1", result); |
200 ASSERT_TRUE(ExecuteJavaScriptAndExtractString( | 194 ASSERT_TRUE(ExecuteScriptAndExtractString( |
201 app2_rvh, "", kRetrieveLocalStorage.c_str(), &result)); | 195 tab1, kRetrieveLocalStorage.c_str(), &result)); |
202 EXPECT_EQ("ls_app2", result); | 196 EXPECT_EQ("ls_app2", result); |
203 ASSERT_TRUE(ExecuteJavaScriptAndExtractString( | 197 ASSERT_TRUE(ExecuteScriptAndExtractString( |
204 non_app_rvh, "", kRetrieveLocalStorage.c_str(), &result)); | 198 tab2, kRetrieveLocalStorage.c_str(), &result)); |
205 EXPECT_EQ("ls_normal", result); | 199 EXPECT_EQ("ls_normal", result); |
206 | 200 |
207 // Check that each tab sees its own cookie. | 201 // Check that each tab sees its own cookie. |
208 EXPECT_TRUE(HasCookie(tab0, "app1=3")); | 202 EXPECT_TRUE(HasCookie(tab0, "app1=3")); |
209 EXPECT_TRUE(HasCookie(tab1, "app2=4")); | 203 EXPECT_TRUE(HasCookie(tab1, "app2=4")); |
210 EXPECT_TRUE(HasCookie(tab2, "normalPage=5")); | 204 EXPECT_TRUE(HasCookie(tab2, "normalPage=5")); |
211 | 205 |
212 // Check that app1 tab cannot see the other cookies. | 206 // Check that app1 tab cannot see the other cookies. |
213 EXPECT_FALSE(HasCookie(tab0, "app2")); | 207 EXPECT_FALSE(HasCookie(tab0, "app2")); |
214 EXPECT_FALSE(HasCookie(tab0, "normalPage")); | 208 EXPECT_FALSE(HasCookie(tab0, "normalPage")); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 0), "nonAppFrame=6")
); | 268 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 0), "nonAppFrame=6")
); |
275 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 1), "app1=3")); | 269 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 1), "app1=3")); |
276 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 1), "normalPage=5"))
; | 270 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 1), "normalPage=5"))
; |
277 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 1), "nonAppFrame=6")
); | 271 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 1), "nonAppFrame=6")
); |
278 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 2), "app1=3")); | 272 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 2), "app1=3")); |
279 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 2), "app2=4")); | 273 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 2), "app2=4")); |
280 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 2), "nonAppFrame=6")
); | 274 EXPECT_TRUE(HasCookie(chrome::GetWebContentsAt(browser(), 2), "nonAppFrame=6")
); |
281 | 275 |
282 // Check that all tabs share the same localStorage if they have the same | 276 // Check that all tabs share the same localStorage if they have the same |
283 // origin. | 277 // origin. |
284 RenderViewHost* app1_rvh = | 278 WebContents* app1_wc = chrome::GetWebContentsAt(browser(), 0); |
285 chrome::GetWebContentsAt(browser(), 0)->GetRenderViewHost(); | 279 WebContents* app2_wc = chrome::GetWebContentsAt(browser(), 1); |
286 RenderViewHost* app2_rvh = | 280 WebContents* non_app_wc = chrome::GetWebContentsAt(browser(), 2); |
287 chrome::GetWebContentsAt(browser(), 1)->GetRenderViewHost(); | 281 ASSERT_TRUE(ExecuteScript( |
288 RenderViewHost* non_app_rvh = | 282 app1_wc, "window.localStorage.setItem('testdata', 'ls_app1');")); |
289 chrome::GetWebContentsAt(browser(), 2)->GetRenderViewHost(); | 283 ASSERT_TRUE(ExecuteScript( |
290 ASSERT_TRUE(ExecuteJavaScript( | 284 app2_wc, "window.localStorage.setItem('testdata', 'ls_app2');")); |
291 app1_rvh, "", "window.localStorage.setItem('testdata', 'ls_app1');")); | 285 ASSERT_TRUE(ExecuteScript( |
292 ASSERT_TRUE(ExecuteJavaScript( | 286 non_app_wc, "window.localStorage.setItem('testdata', 'ls_normal');")); |
293 app2_rvh, "", "window.localStorage.setItem('testdata', 'ls_app2');")); | |
294 ASSERT_TRUE(ExecuteJavaScript( | |
295 non_app_rvh, | |
296 "", | |
297 "window.localStorage.setItem('testdata', 'ls_normal');")); | |
298 | 287 |
299 const std::string& kRetrieveLocalStorage = | 288 const std::string& kRetrieveLocalStorage = |
300 WrapForJavascriptAndExtract("window.localStorage.getItem('testdata')"); | 289 WrapForJavascriptAndExtract("window.localStorage.getItem('testdata')"); |
301 std::string result; | 290 std::string result; |
302 ASSERT_TRUE(ExecuteJavaScriptAndExtractString( | 291 ASSERT_TRUE(ExecuteScriptAndExtractString( |
303 app1_rvh, "", kRetrieveLocalStorage.c_str(), &result)); | 292 app1_wc, kRetrieveLocalStorage.c_str(), &result)); |
304 EXPECT_EQ("ls_normal", result); | 293 EXPECT_EQ("ls_normal", result); |
305 ASSERT_TRUE(ExecuteJavaScriptAndExtractString( | 294 ASSERT_TRUE(ExecuteScriptAndExtractString( |
306 app2_rvh, "", kRetrieveLocalStorage.c_str(), &result)); | 295 app2_wc, kRetrieveLocalStorage.c_str(), &result)); |
307 EXPECT_EQ("ls_normal", result); | 296 EXPECT_EQ("ls_normal", result); |
308 ASSERT_TRUE(ExecuteJavaScriptAndExtractString( | 297 ASSERT_TRUE(ExecuteScriptAndExtractString( |
309 non_app_rvh, "", kRetrieveLocalStorage.c_str(), &result)); | 298 non_app_wc, kRetrieveLocalStorage.c_str(), &result)); |
310 EXPECT_EQ("ls_normal", result); | 299 EXPECT_EQ("ls_normal", result); |
311 } | 300 } |
312 | 301 |
313 // Tests that subresource and media requests use the app's cookie store. | 302 // Tests that subresource and media requests use the app's cookie store. |
314 // See http://crbug.com/141172. | 303 // See http://crbug.com/141172. |
315 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, SubresourceCookieIsolation) { | 304 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, SubresourceCookieIsolation) { |
316 host_resolver()->AddRule("*", "127.0.0.1"); | 305 host_resolver()->AddRule("*", "127.0.0.1"); |
317 ASSERT_TRUE(test_server()->Start()); | 306 ASSERT_TRUE(test_server()->Start()); |
318 | 307 |
319 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); | 308 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 GURL::Replacements replace_host; | 436 GURL::Replacements replace_host; |
448 std::string host_str("localhost"); // Must stay in scope with replace_host. | 437 std::string host_str("localhost"); // Must stay in scope with replace_host. |
449 replace_host.SetHostStr(host_str); | 438 replace_host.SetHostStr(host_str); |
450 base_url = base_url.ReplaceComponents(replace_host); | 439 base_url = base_url.ReplaceComponents(replace_host); |
451 | 440 |
452 // Enter some state into sessionStorage three times on the same origin, but | 441 // Enter some state into sessionStorage three times on the same origin, but |
453 // for three URLs that correspond to app1, app2, and a non-isolated site. | 442 // for three URLs that correspond to app1, app2, and a non-isolated site. |
454 ui_test_utils::NavigateToURLWithDisposition( | 443 ui_test_utils::NavigateToURLWithDisposition( |
455 browser(), base_url.Resolve("app1/main.html"), | 444 browser(), base_url.Resolve("app1/main.html"), |
456 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 445 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
457 ASSERT_TRUE(ExecuteJavaScript( | 446 ASSERT_TRUE(ExecuteScript( |
458 chrome::GetWebContentsAt(browser(), 0)->GetRenderViewHost(), | 447 chrome::GetWebContentsAt(browser(), 0), |
459 "", | |
460 "window.sessionStorage.setItem('testdata', 'ss_app1');")); | 448 "window.sessionStorage.setItem('testdata', 'ss_app1');")); |
461 | 449 |
462 ui_test_utils::NavigateToURLWithDisposition( | 450 ui_test_utils::NavigateToURLWithDisposition( |
463 browser(), base_url.Resolve("app2/main.html"), | 451 browser(), base_url.Resolve("app2/main.html"), |
464 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 452 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
465 ASSERT_TRUE(ExecuteJavaScript( | 453 ASSERT_TRUE(ExecuteScript( |
466 chrome::GetWebContentsAt(browser(), 0)->GetRenderViewHost(), | 454 chrome::GetWebContentsAt(browser(), 0), |
467 "", | |
468 "window.sessionStorage.setItem('testdata', 'ss_app2');")); | 455 "window.sessionStorage.setItem('testdata', 'ss_app2');")); |
469 | 456 |
470 ui_test_utils::NavigateToURLWithDisposition( | 457 ui_test_utils::NavigateToURLWithDisposition( |
471 browser(), base_url.Resolve("non_app/main.html"), | 458 browser(), base_url.Resolve("non_app/main.html"), |
472 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 459 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
473 ASSERT_TRUE(ExecuteJavaScript( | 460 ASSERT_TRUE(ExecuteScript( |
474 chrome::GetWebContentsAt(browser(), 0)->GetRenderViewHost(), | 461 chrome::GetWebContentsAt(browser(), 0), |
475 "", | |
476 "window.sessionStorage.setItem('testdata', 'ss_normal');")); | 462 "window.sessionStorage.setItem('testdata', 'ss_normal');")); |
477 | 463 |
478 // Now, ensure that the sessionStorage is correctly partitioned, and persists | 464 // Now, ensure that the sessionStorage is correctly partitioned, and persists |
479 // when we navigate around all over the dang place. | 465 // when we navigate around all over the dang place. |
480 const std::string& kRetrieveSessionStorage = | 466 const std::string& kRetrieveSessionStorage = |
481 WrapForJavascriptAndExtract( | 467 WrapForJavascriptAndExtract( |
482 "window.sessionStorage.getItem('testdata') || 'badval'"); | 468 "window.sessionStorage.getItem('testdata') || 'badval'"); |
483 std::string result; | 469 std::string result; |
484 ui_test_utils::NavigateToURLWithDisposition( | 470 ui_test_utils::NavigateToURLWithDisposition( |
485 browser(), base_url.Resolve("app1/main.html"), | 471 browser(), base_url.Resolve("app1/main.html"), |
486 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 472 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
487 ASSERT_TRUE(ExecuteJavaScriptAndExtractString( | 473 ASSERT_TRUE(ExecuteScriptAndExtractString( |
488 chrome::GetWebContentsAt(browser(), 0)->GetRenderViewHost(), | 474 chrome::GetWebContentsAt(browser(), 0), |
489 "", kRetrieveSessionStorage.c_str(), &result)); | 475 kRetrieveSessionStorage.c_str(), &result)); |
490 EXPECT_EQ("ss_app1", result); | 476 EXPECT_EQ("ss_app1", result); |
491 | 477 |
492 ui_test_utils::NavigateToURLWithDisposition( | 478 ui_test_utils::NavigateToURLWithDisposition( |
493 browser(), base_url.Resolve("app2/main.html"), | 479 browser(), base_url.Resolve("app2/main.html"), |
494 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 480 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
495 ASSERT_TRUE(ExecuteJavaScriptAndExtractString( | 481 ASSERT_TRUE(ExecuteScriptAndExtractString( |
496 chrome::GetWebContentsAt(browser(), 0)->GetRenderViewHost(), | 482 chrome::GetWebContentsAt(browser(), 0), |
497 "", kRetrieveSessionStorage.c_str(), &result)); | 483 kRetrieveSessionStorage.c_str(), &result)); |
498 EXPECT_EQ("ss_app2", result); | 484 EXPECT_EQ("ss_app2", result); |
499 | 485 |
500 ui_test_utils::NavigateToURLWithDisposition( | 486 ui_test_utils::NavigateToURLWithDisposition( |
501 browser(), base_url.Resolve("non_app/main.html"), | 487 browser(), base_url.Resolve("non_app/main.html"), |
502 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 488 CURRENT_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
503 ASSERT_TRUE(ExecuteJavaScriptAndExtractString( | 489 ASSERT_TRUE(ExecuteScriptAndExtractString( |
504 chrome::GetWebContentsAt(browser(), 0)->GetRenderViewHost(), | 490 chrome::GetWebContentsAt(browser(), 0), |
505 "", kRetrieveSessionStorage.c_str(), &result)); | 491 kRetrieveSessionStorage.c_str(), &result)); |
506 EXPECT_EQ("ss_normal", result); | 492 EXPECT_EQ("ss_normal", result); |
507 } | 493 } |
OLD | NEW |