Index: chrome/browser/ui/views/constrained_window_views_browsertest.cc |
diff --git a/chrome/browser/ui/views/constrained_window_views_browsertest.cc b/chrome/browser/ui/views/constrained_window_views_browsertest.cc |
index 5ac984644c7305afaaa935be0333298b700fd4a4..d055046e67edf3bde2d017f90f5a2883ca4717e4 100644 |
--- a/chrome/browser/ui/views/constrained_window_views_browsertest.cc |
+++ b/chrome/browser/ui/views/constrained_window_views_browsertest.cc |
@@ -17,6 +17,7 @@ |
#include "chrome/test/base/in_process_browser_test.h" |
#include "chrome/test/base/ui_test_utils.h" |
#include "content/public/browser/native_web_keyboard_event.h" |
+#include "content/public/browser/navigation_controller.h" |
#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/browser/web_contents_view.h" |
@@ -329,16 +330,25 @@ IN_PROC_BROWSER_TEST_F(ConstrainedWindowViewTest, |
NULL, |
web_contents); |
+ content::WindowedNotificationObserver back_observer( |
+ content::NOTIFICATION_LOAD_STOP, |
+ content::Source<content::NavigationController>( |
+ &web_contents->GetController())); |
content::RenderViewHost* render_view_host = |
cwdd->GetWebContents()->GetRenderViewHost(); |
ForwardKeyEvent(render_view_host, ui::VKEY_BACK); |
// Backspace is not processed as accelerator before it's sent to web contents. |
+ EXPECT_FALSE(web_contents->GetController().GetPendingEntry()); |
EXPECT_EQ(about_url.spec(), web_contents->GetURL().spec()); |
+ // Backspace is processed as accelerator after it's sent to web contents. |
content::RunAllPendingInMessageLoop(); |
+ EXPECT_TRUE(web_contents->GetController().GetPendingEntry()); |
- // Backspace is processed as accelerator after it's sent to web contents. |
+ // Wait for the navigation to commit, since the URL will not be visible |
+ // until then. |
+ back_observer.Wait(); |
EXPECT_EQ(new_tab_url.spec(), web_contents->GetURL().spec()); |
} |