| Index: chrome/browser/extensions/events_apitest.cc
|
| diff --git a/chrome/browser/extensions/events_apitest.cc b/chrome/browser/extensions/events_apitest.cc
|
| index da6bf4091a6cf3a1cc3cef36e53b88380902fc5e..850dc555a9463e1e19c202ff61930a08b32e1d89 100644
|
| --- a/chrome/browser/extensions/events_apitest.cc
|
| +++ b/chrome/browser/extensions/events_apitest.cc
|
| @@ -75,6 +75,34 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, EventsAreUnregistered) {
|
| event_router->ExtensionHasEventListener(id, "webNavigation.onCompleted"));
|
| }
|
|
|
| +// Test that listeners for webview-related events are not stored (even for lazy
|
| +// contexts). See crbug.com/736381.
|
| +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, WebViewEventRegistration) {
|
| + ASSERT_TRUE(RunPlatformAppTest("events/webview_events")) << message_;
|
| + EventRouter* event_router = EventRouter::Get(profile());
|
| + // We should not register lazy listeners for any webview-related events.
|
| + EXPECT_FALSE(
|
| + event_router->HasLazyEventListenerForTesting("webViewInternal.onClose"));
|
| + EXPECT_FALSE(event_router->HasLazyEventListenerForTesting("webview.close"));
|
| + EXPECT_FALSE(event_router->HasLazyEventListenerForTesting(
|
| + "chromeWebViewInternal.onContextMenuShow"));
|
| + EXPECT_FALSE(event_router->HasLazyEventListenerForTesting(
|
| + "chromeWebViewInternal.onClicked"));
|
| + // Chrome webview context menu events also use a "subevent" pattern, so we
|
| + // need to look for suffixed events. These seem to always be suffixed with
|
| + // "3" and "4", but look for the first 10 to be a bit safer.
|
| + for (int i = 0; i < 10; ++i) {
|
| + EXPECT_FALSE(event_router->HasLazyEventListenerForTesting(
|
| + base::StringPrintf("chromeWebViewInternal.onClicked/%d", i)));
|
| + EXPECT_FALSE(event_router->HasLazyEventListenerForTesting(
|
| + base::StringPrintf("chromeWebViewInternal.onContextMenuShow/%d", i)));
|
| + }
|
| +
|
| + // Sanity check: app.runtime.onLaunched should have a lazy listener.
|
| + EXPECT_TRUE(
|
| + event_router->HasLazyEventListenerForTesting("app.runtime.onLaunched"));
|
| +}
|
| +
|
| class EventsApiTest : public ExtensionApiTest {
|
| public:
|
| EventsApiTest() {}
|
|
|