OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/files/file_path.h" | 5 #include "base/files/file_path.h" |
6 #include "base/files/file_util.h" | 6 #include "base/files/file_util.h" |
7 #include "chrome/browser/extensions/chrome_extension_test_notification_observer.
h" | 7 #include "chrome/browser/extensions/chrome_extension_test_notification_observer.
h" |
8 #include "chrome/browser/extensions/chrome_extensions_browser_client.h" | 8 #include "chrome/browser/extensions/chrome_extensions_browser_client.h" |
9 #include "chrome/browser/extensions/chrome_test_extension_loader.h" | 9 #include "chrome/browser/extensions/chrome_test_extension_loader.h" |
10 #include "chrome/browser/extensions/extension_apitest.h" | 10 #include "chrome/browser/extensions/extension_apitest.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 EXPECT_FALSE(event_router->ExtensionHasEventListener( | 68 EXPECT_FALSE(event_router->ExtensionHasEventListener( |
69 id, "webNavigation.onBeforeNavigate")); | 69 id, "webNavigation.onBeforeNavigate")); |
70 EXPECT_FALSE( | 70 EXPECT_FALSE( |
71 event_router->ExtensionHasEventListener(id, "webNavigation.onCommitted")); | 71 event_router->ExtensionHasEventListener(id, "webNavigation.onCommitted")); |
72 EXPECT_FALSE(event_router->ExtensionHasEventListener( | 72 EXPECT_FALSE(event_router->ExtensionHasEventListener( |
73 id, "webNavigation.onDOMContentLoaded")); | 73 id, "webNavigation.onDOMContentLoaded")); |
74 EXPECT_FALSE( | 74 EXPECT_FALSE( |
75 event_router->ExtensionHasEventListener(id, "webNavigation.onCompleted")); | 75 event_router->ExtensionHasEventListener(id, "webNavigation.onCompleted")); |
76 } | 76 } |
77 | 77 |
| 78 // Test that listeners for webview-related events are not stored (even for lazy |
| 79 // contexts). See crbug.com/736381. |
| 80 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, WebViewEventRegistration) { |
| 81 ASSERT_TRUE(RunPlatformAppTest("events/webview_events")) << message_; |
| 82 EventRouter* event_router = EventRouter::Get(profile()); |
| 83 // We should not register lazy listeners for any webview-related events. |
| 84 EXPECT_FALSE( |
| 85 event_router->HasLazyEventListenerForTesting("webViewInternal.onClose")); |
| 86 EXPECT_FALSE(event_router->HasLazyEventListenerForTesting("webview.close")); |
| 87 EXPECT_FALSE(event_router->HasLazyEventListenerForTesting( |
| 88 "chromeWebViewInternal.onContextMenuShow")); |
| 89 EXPECT_FALSE(event_router->HasLazyEventListenerForTesting( |
| 90 "chromeWebViewInternal.onClicked")); |
| 91 // Chrome webview context menu events also use a "subevent" pattern, so we |
| 92 // need to look for suffixed events. These seem to always be suffixed with |
| 93 // "3" and "4", but look for the first 10 to be a bit safer. |
| 94 for (int i = 0; i < 10; ++i) { |
| 95 EXPECT_FALSE(event_router->HasLazyEventListenerForTesting( |
| 96 base::StringPrintf("chromeWebViewInternal.onClicked/%d", i))); |
| 97 EXPECT_FALSE(event_router->HasLazyEventListenerForTesting( |
| 98 base::StringPrintf("chromeWebViewInternal.onContextMenuShow/%d", i))); |
| 99 } |
| 100 |
| 101 // Sanity check: app.runtime.onLaunched should have a lazy listener. |
| 102 EXPECT_TRUE( |
| 103 event_router->HasLazyEventListenerForTesting("app.runtime.onLaunched")); |
| 104 } |
| 105 |
78 class EventsApiTest : public ExtensionApiTest { | 106 class EventsApiTest : public ExtensionApiTest { |
79 public: | 107 public: |
80 EventsApiTest() {} | 108 EventsApiTest() {} |
81 | 109 |
82 protected: | 110 protected: |
83 void SetUpOnMainThread() override { | 111 void SetUpOnMainThread() override { |
84 ExtensionApiTest::SetUpOnMainThread(); | 112 ExtensionApiTest::SetUpOnMainThread(); |
85 EXPECT_TRUE(scoped_temp_dir_.CreateUniqueTempDir()); | 113 EXPECT_TRUE(scoped_temp_dir_.CreateUniqueTempDir()); |
86 } | 114 } |
87 | 115 |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 EXPECT_TRUE(observed_extension_names().count("chrome updates listener")); | 334 EXPECT_TRUE(observed_extension_names().count("chrome updates listener")); |
307 EXPECT_FALSE(observed_extension_names().count("chrome updates non listener")); | 335 EXPECT_FALSE(observed_extension_names().count("chrome updates non listener")); |
308 | 336 |
309 EXPECT_TRUE(updates_listener()->WaitUntilSatisfied()); | 337 EXPECT_TRUE(updates_listener()->WaitUntilSatisfied()); |
310 content::RunAllPendingInMessageLoop(); | 338 content::RunAllPendingInMessageLoop(); |
311 content::RunAllBlockingPoolTasksUntilIdle(); | 339 content::RunAllBlockingPoolTasksUntilIdle(); |
312 EXPECT_FALSE(failure_listener()->was_satisfied()); | 340 EXPECT_FALSE(failure_listener()->was_satisfied()); |
313 } | 341 } |
314 | 342 |
315 } // namespace extensions | 343 } // namespace extensions |
OLD | NEW |