Skip to content

Commit

Permalink
Merge pull request #26978 from brave/pr26970_emerick-dont-show-link-o…
Browse files Browse the repository at this point in the history
…r-image-toasts_1.74.x

Don't show toast notifications when copying links or images (uplift to 1.74.x)
  • Loading branch information
LaurenWags authored Dec 12, 2024
2 parents b156def + 0aa8fea commit af054fc
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 0 deletions.
18 changes: 18 additions & 0 deletions chromium_src/chrome/browser/ui/toasts/toast_controller.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/* Copyright (c) 2024 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at https://mozilla.org/MPL/2.0/. */

#include "chrome/browser/ui/toasts/toast_controller.h"

#define MaybeShowToast MaybeShowToast_ChromiumImpl
#include "src/chrome/browser/ui/toasts/toast_controller.cc"
#undef MaybeShowToast

bool ToastController::MaybeShowToast(ToastParams params) {
if (params.toast_id == ToastId::kLinkCopied ||
params.toast_id == ToastId::kImageCopied) {
return false;
}
return MaybeShowToast_ChromiumImpl(std::move(params));
}
17 changes: 17 additions & 0 deletions chromium_src/chrome/browser/ui/toasts/toast_controller.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/* Copyright (c) 2024 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at https://mozilla.org/MPL/2.0/. */

#ifndef BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_TOASTS_TOAST_CONTROLLER_H_
#define BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_TOASTS_TOAST_CONTROLLER_H_

#define MaybeShowToast \
MaybeShowToast_ChromiumImpl(ToastParams params); \
bool MaybeShowToast

#include "src/chrome/browser/ui/toasts/toast_controller.h" // IWYU pragma: export

#undef MaybeShowToast

#endif // BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_TOASTS_TOAST_CONTROLLER_H_
43 changes: 43 additions & 0 deletions chromium_src/chrome/browser/ui/toasts/toast_controller_unittest.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/* Copyright (c) 2024 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at https://mozilla.org/MPL/2.0/. */

#include "chrome/browser/ui/toasts/api/toast_id.h"

// All of the upstream unit tests use kLinkCopied or kImageCopied when creating
// test toasts, but those are the two notifications we want to hide so redefine
// their identifiers here so we can continue to run the upstream tests.
#define kLinkCopied kLinkToHighlightCopied
#define kImageCopied kAddedToReadingList
#include "src/chrome/browser/ui/toasts/toast_controller_unittest.cc"
#undef kImageCopied
#undef kLinkCopied

TEST_F(ToastControllerUnitTest, NeverShowToastForLinkCopied) {
ToastRegistry* const registry = toast_registry();
registry->RegisterToast(
ToastId::kLinkCopied,
ToastSpecification::Builder(vector_icons::kEmailIcon, 0).Build());

auto controller = std::make_unique<TestToastController>(registry);

EXPECT_FALSE(controller->IsShowingToast());
EXPECT_TRUE(controller->CanShowToast(ToastId::kLinkCopied));
EXPECT_FALSE(controller->MaybeShowToast(ToastParams(ToastId::kLinkCopied)));
EXPECT_FALSE(controller->IsShowingToast());
}

TEST_F(ToastControllerUnitTest, NeverShowToastForImageCopied) {
ToastRegistry* const registry = toast_registry();
registry->RegisterToast(
ToastId::kImageCopied,
ToastSpecification::Builder(vector_icons::kEmailIcon, 0).Build());

auto controller = std::make_unique<TestToastController>(registry);

EXPECT_FALSE(controller->IsShowingToast());
EXPECT_TRUE(controller->CanShowToast(ToastId::kImageCopied));
EXPECT_FALSE(controller->MaybeShowToast(ToastParams(ToastId::kImageCopied)));
EXPECT_FALSE(controller->IsShowingToast());
}
5 changes: 5 additions & 0 deletions test/filters/browser_tests.filter
Original file line number Diff line number Diff line change
Expand Up @@ -1939,6 +1939,11 @@
-ComponentManagerUpdateCheckBrowserTest.RegisterAndUnregisterTranslateKitLanguagePackComponent
-ComponentManagerUpdateCheckBrowserTest.RegisterTranslateKitComponent

# We disable the ImageCopied/LinkCopied toast notifications
-All/ContextMenuBrowserTest.ShowsToastOnImageCopied/*
-All/ContextMenuBrowserTest.ShowsToastOnLinkCopied/*
-BrowserCommandsTest.CopyingUrlOpensToast

# Tests below this point have not been diagnosed or had issues created yet.
-_/WebrtcLoggingPrivateApiStartEventLoggingTestFeatureAndPolicyEnabled.*
-AccessCodeCastHandlerBrowserTest.*
Expand Down

0 comments on commit af054fc

Please sign in to comment.