diff --git a/app/brave_generated_resources.grd b/app/brave_generated_resources.grd
index 46cebe805ac..e623104d01e 100644
--- a/app/brave_generated_resources.grd
+++ b/app/brave_generated_resources.grd
@@ -1168,7 +1168,7 @@ By installing this extension, you are agreeing to the Google Widevine Terms of U
in Speedreader
-
+
Reader Mode
diff --git a/browser/speedreader/speedreader_tab_helper.cc b/browser/speedreader/speedreader_tab_helper.cc
index 7e1e9004e64..c56d3740c0e 100644
--- a/browser/speedreader/speedreader_tab_helper.cc
+++ b/browser/speedreader/speedreader_tab_helper.cc
@@ -135,14 +135,21 @@ void SpeedreaderTabHelper::OnBubbleClosed() {
browser->window()->UpdatePageActionIcon(PageActionIconType::kReaderMode);
}
-// Displays speedreader information
-void SpeedreaderTabHelper::ShowBubble() {
+void SpeedreaderTabHelper::ShowSpeedreaderBubble() {
+ ShowBubble(true);
+}
+
+void SpeedreaderTabHelper::ShowReaderModeBubble() {
+ ShowBubble(false);
+}
+
+void SpeedreaderTabHelper::ShowBubble(bool is_bubble_speedreader) {
auto* contents = web_contents();
Browser* browser = chrome::FindBrowserWithWebContents(contents);
DCHECK(browser);
- const bool enabled = distill_state_ == DistillState::kSpeedreaderMode;
- speedreader_bubble_ = static_cast(browser->window())
- ->ShowSpeedreaderBubble(this, enabled);
+ speedreader_bubble_ =
+ static_cast(browser->window())
+ ->ShowSpeedreaderBubble(this, is_bubble_speedreader);
browser->window()->UpdatePageActionIcon(PageActionIconType::kReaderMode);
}
diff --git a/browser/speedreader/speedreader_tab_helper.h b/browser/speedreader/speedreader_tab_helper.h
index 05d2f187a6e..1a83ce72772 100644
--- a/browser/speedreader/speedreader_tab_helper.h
+++ b/browser/speedreader/speedreader_tab_helper.h
@@ -56,7 +56,10 @@ class SpeedreaderTabHelper
SpeedreaderBubbleView* speedreader_bubble_view() const;
// Displays speedreader information
- void ShowBubble();
+ void ShowSpeedreaderBubble();
+
+ // Displays reader mode information
+ void ShowReaderModeBubble();
// Hides speedreader information
void HideBubble();
@@ -68,6 +71,11 @@ class SpeedreaderTabHelper
friend class content::WebContentsUserData;
explicit SpeedreaderTabHelper(content::WebContents* web_contents);
+ // Called by ShowSpeedreaderBubble and ShowReaderModeBubble.
+ // |is_bubble_speedreader| will show a bubble for pages in Speedreader if set
+ // to true, otherwise pages in reader mode.
+ void ShowBubble(bool is_bubble_speedreader);
+
void UpdateActiveState(content::NavigationHandle* handle);
// content::WebContentsObserver
diff --git a/browser/ui/browser_commands.cc b/browser/ui/browser_commands.cc
index 36e64941aca..4fbdd1879b3 100644
--- a/browser/ui/browser_commands.cc
+++ b/browser/ui/browser_commands.cc
@@ -110,22 +110,22 @@ void ShowSpeedreaderBubble(Browser* browser) {
if (!tab_helper)
return;
+ const bool speedreader_enabled = tab_helper->IsSpeedreaderEnabled();
const DistillState state = tab_helper->PageDistillState();
if (state == DistillState::kNone) {
// If this is called on an undistilled page, we single shot it.
tab_helper->SingleShotSpeedreader();
-
- if (tab_helper->IsSpeedreaderEnabled())
- return;
}
- // If Speedreader is already enabled, don't show the bubble.
- // fixme: we need to |or| with an "asked" counter
- if (state == DistillState::kNone || state == DistillState::kReaderMode) {
- if (tab_helper->IsSpeedreaderEnabled())
- return;
+ if (state == DistillState::kSpeedreaderMode) {
+ tab_helper->ShowSpeedreaderBubble();
+ } else {
+ if (speedreader_enabled && !tab_helper->IsEnabledForSite()) {
+ tab_helper->ShowSpeedreaderBubble();
+ } else {
+ tab_helper->ShowReaderModeBubble();
+ }
}
- tab_helper->ShowBubble();
}
}
#endif // BUILDFLAG(ENABLE_SPEEDREADER)
diff --git a/browser/ui/speedreader/speedreader_bubble_browsertest.cc b/browser/ui/speedreader/speedreader_bubble_browsertest.cc
index b2d468d6335..6c872d9c75f 100644
--- a/browser/ui/speedreader/speedreader_bubble_browsertest.cc
+++ b/browser/ui/speedreader/speedreader_bubble_browsertest.cc
@@ -23,7 +23,12 @@ class SpeedreaderBubbleBrowserTest : public DialogBrowserTest {
delete;
// DialogBrowserTest:
- void ShowUi(const std::string& name) override { tab_helper()->ShowBubble(); }
+ void ShowUi(const std::string& name) override {
+ if (tab_helper()->IsSpeedreaderEnabled())
+ tab_helper()->ShowSpeedreaderBubble();
+ else
+ tab_helper()->ShowReaderModeBubble();
+ }
protected:
bool NavigateToNewTab() {
diff --git a/browser/ui/views/speedreader/speedreader_icon_view.cc b/browser/ui/views/speedreader/speedreader_icon_view.cc
index 534843fd6cb..4d9abb52ea2 100644
--- a/browser/ui/views/speedreader/speedreader_icon_view.cc
+++ b/browser/ui/views/speedreader/speedreader_icon_view.cc
@@ -145,7 +145,6 @@ SkColor SpeedreaderIconView::GetIconLabelBubbleSurroundingForegroundColor()
SkColor SpeedreaderIconView::GetIconLabelBubbleInkDropColor() const {
return kReaderIconColor;
- // return icon_label_bubble_delegate_->GetIconLabelBubbleBackgroundColor();
}
SkColor SpeedreaderIconView::GetIconLabelBubbleBackgroundColor() const {
diff --git a/components/speedreader/BUILD.gn b/components/speedreader/BUILD.gn
index 490d85e0766..47b22720270 100644
--- a/components/speedreader/BUILD.gn
+++ b/components/speedreader/BUILD.gn
@@ -1,5 +1,3 @@
-import("//brave/components/speedreader/buildflags/buildflags.gni")
-
source_set("speedreader") {
public_deps = [
"rust/ffi",