summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/extensions/api/extension_action
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-03 13:42:47 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-15 10:27:51 +0000
commit8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec (patch)
treed29d987c4d7b173cf853279b79a51598f104b403 /chromium/chrome/browser/extensions/api/extension_action
parent830c9e163d31a9180fadca926b3e1d7dfffb5021 (diff)
BASELINE: Update Chromium to 66.0.3359.156
Change-Id: I0c9831ad39911a086b6377b16f995ad75a51e441 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'chromium/chrome/browser/extensions/api/extension_action')
-rw-r--r--chromium/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc4
-rw-r--r--chromium/chrome/browser/extensions/api/extension_action/browser_action_interactive_test.cc39
-rw-r--r--chromium/chrome/browser/extensions/api/extension_action/extension_action_api.cc45
-rw-r--r--chromium/chrome/browser/extensions/api/extension_action/extension_action_apitest.cc2
4 files changed, 49 insertions, 41 deletions
diff --git a/chromium/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc b/chromium/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc
index c057b5bebfb..35432dbe223 100644
--- a/chromium/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc
+++ b/chromium/chrome/browser/extensions/api/extension_action/browser_action_apitest.cc
@@ -12,7 +12,6 @@
#include "base/threading/thread_restrictions.h"
#include "build/build_config.h"
#include "chrome/browser/extensions/api/extension_action/extension_action_api.h"
-#include "chrome/browser/extensions/browser_action_test_util.h"
#include "chrome/browser/extensions/extension_action.h"
#include "chrome/browser/extensions/extension_action_icon_factory.h"
#include "chrome/browser/extensions/extension_action_manager.h"
@@ -26,6 +25,7 @@
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_navigator_params.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/browser_action_test_util.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
@@ -1020,7 +1020,7 @@ IN_PROC_BROWSER_TEST_F(NavigatingExtensionPopupBrowserTest, DownloadViaPost) {
downloads_observer.WaitForFinished();
EXPECT_EQ(0u, downloads_observer.NumDangerousDownloadsSeen());
EXPECT_EQ(1u, downloads_observer.NumDownloadsSeenInState(
- content::DownloadItem::COMPLETE));
+ download::DownloadItem::COMPLETE));
EXPECT_TRUE(base::PathExists(downloads_directory->GetPath().AppendASCII(
"download-test3-attachment.gif")));
diff --git a/chromium/chrome/browser/extensions/api/extension_action/browser_action_interactive_test.cc b/chromium/chrome/browser/extensions/api/extension_action/browser_action_interactive_test.cc
index d2a853e242d..f709e6c9f33 100644
--- a/chromium/chrome/browser/extensions/api/extension_action/browser_action_interactive_test.cc
+++ b/chromium/chrome/browser/extensions/api/extension_action/browser_action_interactive_test.cc
@@ -7,7 +7,6 @@
#include "base/run_loop.h"
#include "base/test/test_timeouts.h"
#include "build/build_config.h"
-#include "chrome/browser/extensions/browser_action_test_util.h"
#include "chrome/browser/extensions/extension_action.h"
#include "chrome/browser/extensions/extension_action_manager.h"
#include "chrome/browser/extensions/extension_apitest.h"
@@ -18,6 +17,7 @@
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_window.h"
+#include "chrome/browser/ui/extensions/browser_action_test_util.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
#include "chrome/test/base/interactive_test_utils.h"
@@ -134,16 +134,23 @@ class BrowserActionInteractiveTest : public ExtensionApiTest {
}
// Open an extension popup via the chrome.browserAction.openPopup API.
+ // If |will_reply| is true, then the listener is responsible for having a
+ // test message listener that replies to the extension. Otherwise, this
+ // method will create a listener and reply to the extension before returning
+ // to avoid leaking an API function while waiting for a reply.
void OpenPopupViaAPI(bool will_reply) {
// Setup the notification observer to wait for the popup to finish loading.
content::WindowedNotificationObserver frame_observer(
content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
content::NotificationService::AllSources());
- ExtensionTestMessageListener listener("ready", will_reply);
+ std::unique_ptr<ExtensionTestMessageListener> listener;
+ if (!will_reply)
+ listener = std::make_unique<ExtensionTestMessageListener>("ready", false);
// Show first popup in first window and expect it to have loaded.
ASSERT_TRUE(RunExtensionSubtest("browser_action/open_popup",
"open_popup_succeeds.html")) << message_;
- EXPECT_TRUE(listener.WaitUntilSatisfied());
+ if (listener)
+ EXPECT_TRUE(listener->WaitUntilSatisfied());
frame_observer.Wait();
EnsurePopupActive();
}
@@ -446,21 +453,20 @@ IN_PROC_BROWSER_TEST_F(BrowserActionInteractiveTest,
}
#if defined(OS_WIN)
-// Test that forcibly closing the browser and popup HWND does not cause a crash.
-// http://crbug.com/400646
-IN_PROC_BROWSER_TEST_F(BrowserActionInteractiveTest,
- DISABLED_DestroyHWNDDoesNotCrash) {
+// Forcibly closing a browser HWND with a popup should not cause a crash.
+IN_PROC_BROWSER_TEST_F(BrowserActionInteractiveTest, DestroyHWNDDoesNotCrash) {
if (!ShouldRunPopupTest())
return;
OpenPopupViaAPI(false);
BrowserActionTestUtil test_util(browser());
- const gfx::NativeView view = test_util.GetPopupNativeView();
- EXPECT_NE(static_cast<gfx::NativeView>(NULL), view);
- const HWND hwnd = views::HWNDForNativeView(view);
- EXPECT_EQ(hwnd,
- views::HWNDForNativeView(browser()->window()->GetNativeWindow()));
- EXPECT_EQ(TRUE, ::IsWindow(hwnd));
+ const gfx::NativeView popup_view = test_util.GetPopupNativeView();
+ EXPECT_NE(static_cast<gfx::NativeView>(nullptr), popup_view);
+ const HWND popup_hwnd = views::HWNDForNativeView(popup_view);
+ EXPECT_EQ(TRUE, ::IsWindow(popup_hwnd));
+ const HWND browser_hwnd =
+ views::HWNDForNativeView(browser()->window()->GetNativeWindow());
+ EXPECT_EQ(TRUE, ::IsWindow(browser_hwnd));
// Create a new browser window to prevent the message loop from terminating.
browser()->OpenURL(content::OpenURLParams(GURL("about:"), content::Referrer(),
@@ -468,9 +474,10 @@ IN_PROC_BROWSER_TEST_F(BrowserActionInteractiveTest,
ui::PAGE_TRANSITION_TYPED, false));
// Forcibly closing the browser HWND should not cause a crash.
- EXPECT_EQ(TRUE, ::CloseWindow(hwnd));
- EXPECT_EQ(TRUE, ::DestroyWindow(hwnd));
- EXPECT_EQ(FALSE, ::IsWindow(hwnd));
+ EXPECT_EQ(TRUE, ::CloseWindow(browser_hwnd));
+ EXPECT_EQ(TRUE, ::DestroyWindow(browser_hwnd));
+ EXPECT_EQ(FALSE, ::IsWindow(browser_hwnd));
+ EXPECT_EQ(FALSE, ::IsWindow(popup_hwnd));
}
#endif // OS_WIN
diff --git a/chromium/chrome/browser/extensions/api/extension_action/extension_action_api.cc b/chromium/chrome/browser/extensions/api/extension_action/extension_action_api.cc
index 017614b8028..6466d63c75f 100644
--- a/chromium/chrome/browser/extensions/api/extension_action/extension_action_api.cc
+++ b/chromium/chrome/browser/extensions/api/extension_action/extension_action_api.cc
@@ -96,31 +96,31 @@ static base::LazyInstance<BrowserContextKeyedAPIFactory<ExtensionActionAPI>>::
ExtensionActionAPI::ExtensionActionAPI(content::BrowserContext* context)
: browser_context_(context),
extension_prefs_(nullptr) {
- ExtensionFunctionRegistry* registry =
+ ExtensionFunctionRegistry& registry =
ExtensionFunctionRegistry::GetInstance();
// Browser Actions
- registry->RegisterFunction<BrowserActionSetIconFunction>();
- registry->RegisterFunction<BrowserActionSetTitleFunction>();
- registry->RegisterFunction<BrowserActionSetBadgeTextFunction>();
- registry->RegisterFunction<BrowserActionSetBadgeBackgroundColorFunction>();
- registry->RegisterFunction<BrowserActionSetPopupFunction>();
- registry->RegisterFunction<BrowserActionGetTitleFunction>();
- registry->RegisterFunction<BrowserActionGetBadgeTextFunction>();
- registry->RegisterFunction<BrowserActionGetBadgeBackgroundColorFunction>();
- registry->RegisterFunction<BrowserActionGetPopupFunction>();
- registry->RegisterFunction<BrowserActionEnableFunction>();
- registry->RegisterFunction<BrowserActionDisableFunction>();
- registry->RegisterFunction<BrowserActionOpenPopupFunction>();
+ registry.RegisterFunction<BrowserActionSetIconFunction>();
+ registry.RegisterFunction<BrowserActionSetTitleFunction>();
+ registry.RegisterFunction<BrowserActionSetBadgeTextFunction>();
+ registry.RegisterFunction<BrowserActionSetBadgeBackgroundColorFunction>();
+ registry.RegisterFunction<BrowserActionSetPopupFunction>();
+ registry.RegisterFunction<BrowserActionGetTitleFunction>();
+ registry.RegisterFunction<BrowserActionGetBadgeTextFunction>();
+ registry.RegisterFunction<BrowserActionGetBadgeBackgroundColorFunction>();
+ registry.RegisterFunction<BrowserActionGetPopupFunction>();
+ registry.RegisterFunction<BrowserActionEnableFunction>();
+ registry.RegisterFunction<BrowserActionDisableFunction>();
+ registry.RegisterFunction<BrowserActionOpenPopupFunction>();
// Page Actions
- registry->RegisterFunction<PageActionShowFunction>();
- registry->RegisterFunction<PageActionHideFunction>();
- registry->RegisterFunction<PageActionSetIconFunction>();
- registry->RegisterFunction<PageActionSetTitleFunction>();
- registry->RegisterFunction<PageActionSetPopupFunction>();
- registry->RegisterFunction<PageActionGetTitleFunction>();
- registry->RegisterFunction<PageActionGetPopupFunction>();
+ registry.RegisterFunction<PageActionShowFunction>();
+ registry.RegisterFunction<PageActionHideFunction>();
+ registry.RegisterFunction<PageActionSetIconFunction>();
+ registry.RegisterFunction<PageActionSetTitleFunction>();
+ registry.RegisterFunction<PageActionSetPopupFunction>();
+ registry.RegisterFunction<PageActionGetTitleFunction>();
+ registry.RegisterFunction<PageActionGetPopupFunction>();
}
ExtensionActionAPI::~ExtensionActionAPI() {
@@ -226,8 +226,9 @@ void ExtensionActionAPI::DispatchExtensionActionClicked(
if (event_name) {
std::unique_ptr<base::ListValue> args(new base::ListValue());
- args->Append(
- ExtensionTabUtil::CreateTabObject(web_contents, extension)->ToValue());
+ args->Append(ExtensionTabUtil::CreateTabObject(
+ web_contents, ExtensionTabUtil::kScrubTab, extension)
+ ->ToValue());
DispatchEventToExtension(web_contents->GetBrowserContext(),
extension_action.extension_id(), histogram_value,
diff --git a/chromium/chrome/browser/extensions/api/extension_action/extension_action_apitest.cc b/chromium/chrome/browser/extensions/api/extension_action/extension_action_apitest.cc
index abc8ca885cc..8aaa5170ffd 100644
--- a/chromium/chrome/browser/extensions/api/extension_action/extension_action_apitest.cc
+++ b/chromium/chrome/browser/extensions/api/extension_action/extension_action_apitest.cc
@@ -11,12 +11,12 @@
#include "base/strings/stringprintf.h"
#include "chrome/browser/extensions/browsertest_util.h"
#include "chrome/browser/extensions/extension_apitest.h"
-#include "chrome/browser/extensions/test_extension_dir.h"
#include "chrome/browser/sessions/session_tab_helper.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "extensions/browser/state_store.h"
#include "extensions/test/extension_test_message_listener.h"
+#include "extensions/test/test_extension_dir.h"
namespace extensions {
namespace {