Brave Leo button on the toolbar toggles the sidebar AI tab. (#19937)
* Brave Leo button on the toolbar toggles the sidebar AI tab.
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#include "brave/browser/speedreader/speedreader_tab_helper.h"
|
||||
#include "brave/browser/ui/views/frame/brave_browser_view.h"
|
||||
#include "brave/browser/ui/webui/speedreader/speedreader_toolbar_data_handler_impl.h"
|
||||
#include "brave/components/ai_chat/common/buildflags/buildflags.h"
|
||||
#include "brave/components/brave_wallet/browser/brave_wallet_utils.h"
|
||||
#include "brave/components/constants/brave_paths.h"
|
||||
#include "brave/components/speedreader/common/constants.h"
|
||||
@@ -35,6 +36,7 @@
|
||||
#include "chrome/browser/ui/browser_command_controller.h"
|
||||
#include "chrome/browser/ui/browser_commands.h"
|
||||
#include "chrome/browser/ui/browser_list.h"
|
||||
#include "chrome/browser/ui/side_panel/side_panel_ui.h"
|
||||
#include "chrome/browser/ui/views/frame/browser_view.h"
|
||||
#include "chrome/browser/ui/views/frame/toolbar_button_provider.h"
|
||||
#include "chrome/browser/ui/views/page_action/page_action_icon_view.h"
|
||||
@@ -56,6 +58,10 @@
|
||||
#include "net/test/embedded_test_server/http_request.h"
|
||||
#include "net/test/embedded_test_server/http_response.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_AI_CHAT)
|
||||
#include "brave/components/ai_chat/common/features.h"
|
||||
#endif
|
||||
|
||||
const char kTestHost[] = "a.test";
|
||||
const char kTestPageSimple[] = "/simple.html";
|
||||
const char kTestPageReadable[] = "/articles/guardian.html";
|
||||
@@ -68,7 +74,12 @@ class SpeedReaderBrowserTest : public InProcessBrowserTest {
|
||||
public:
|
||||
SpeedReaderBrowserTest()
|
||||
: https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
|
||||
#if BUILDFLAG(ENABLE_AI_CHAT)
|
||||
feature_list_.InitWithFeatures(
|
||||
{speedreader::kSpeedreaderFeature, ai_chat::features::kAIChat}, {});
|
||||
#else
|
||||
feature_list_.InitAndEnableFeature(speedreader::kSpeedreaderFeature);
|
||||
#endif
|
||||
brave::RegisterPathProvider();
|
||||
base::FilePath test_data_dir;
|
||||
base::PathService::Get(brave::DIR_TEST_DATA, &test_data_dir);
|
||||
@@ -662,6 +673,20 @@ IN_PROC_BROWSER_TEST_F(SpeedReaderBrowserTest, Toolbar) {
|
||||
auto* toolbar = toolbar_view->GetWebContentsForTesting();
|
||||
WaitElement(toolbar, "appearance");
|
||||
|
||||
#if BUILDFLAG(ENABLE_AI_CHAT)
|
||||
Click(toolbar, "ai");
|
||||
auto* side_panel = SidePanelUI::GetSidePanelUIForBrowser(browser());
|
||||
while (side_panel->GetCurrentEntryId() != SidePanelEntryId::kChatUI) {
|
||||
NonBlockingDelay(base::Milliseconds(10));
|
||||
}
|
||||
EXPECT_EQ(SidePanelEntryId::kChatUI, side_panel->GetCurrentEntryId());
|
||||
Click(toolbar, "ai");
|
||||
while (side_panel->GetCurrentEntryId().has_value()) {
|
||||
NonBlockingDelay(base::Milliseconds(10));
|
||||
}
|
||||
EXPECT_FALSE(side_panel->GetCurrentEntryId().has_value());
|
||||
#endif
|
||||
|
||||
Click(toolbar, "appearance");
|
||||
{ // change theme
|
||||
Click(toolbar, "theme-light");
|
||||
|
||||
@@ -48,9 +48,6 @@ class BraveBrowserWindow : public BrowserWindow {
|
||||
speedreader::SpeedreaderBubbleLocation location);
|
||||
virtual void ShowReaderModeToolbar() {}
|
||||
virtual void HideReaderModeToolbar() {}
|
||||
#if BUILDFLAG(ENABLE_AI_CHAT)
|
||||
virtual void OpenAiChatPanel() {}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(TOOLKIT_VIEWS)
|
||||
|
||||
@@ -41,7 +41,6 @@
|
||||
#include "brave/browser/ui/views/toolbar/brave_toolbar_view.h"
|
||||
#include "brave/browser/ui/views/toolbar/wallet_button.h"
|
||||
#include "brave/browser/ui/views/window_closing_confirm_dialog_view.h"
|
||||
#include "brave/components/ai_chat/common/buildflags/buildflags.h"
|
||||
#include "brave/components/commands/common/features.h"
|
||||
#include "brave/components/constants/pref_names.h"
|
||||
#include "brave/components/speedreader/common/buildflags/buildflags.h"
|
||||
@@ -79,10 +78,6 @@
|
||||
#include "brave/browser/ui/views/speedreader/reader_mode_bubble.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_AI_CHAT)
|
||||
#include "brave/components/ai_chat/common/features.h"
|
||||
#endif
|
||||
|
||||
namespace {
|
||||
absl::optional<bool> g_download_confirm_return_allow_for_testing;
|
||||
|
||||
@@ -418,23 +413,11 @@ void BraveBrowserView::ShowReaderModeToolbar() {
|
||||
}
|
||||
|
||||
void BraveBrowserView::HideReaderModeToolbar() {
|
||||
if (reader_mode_toolbar_view_) {
|
||||
if (reader_mode_toolbar_view_ && reader_mode_toolbar_view_->GetVisible()) {
|
||||
reader_mode_toolbar_view_->SetVisible(false);
|
||||
Layout();
|
||||
}
|
||||
}
|
||||
|
||||
#if BUILDFLAG(ENABLE_AI_CHAT)
|
||||
void BraveBrowserView::OpenAiChatPanel() {
|
||||
if (!ai_chat::features::IsAIChatEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
SidePanelUI::GetSidePanelUIForBrowser(browser_.get())
|
||||
->Show(SidePanelEntryId::kChatUI);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // BUILDFLAG(ENABLE_SPEEDREADER)
|
||||
|
||||
void BraveBrowserView::ShowUpdateChromeDialog() {
|
||||
|
||||
@@ -79,9 +79,6 @@ class BraveBrowserView : public BrowserView,
|
||||
speedreader::SpeedreaderBubbleLocation location) override;
|
||||
void ShowReaderModeToolbar() override;
|
||||
void HideReaderModeToolbar() override;
|
||||
#if BUILDFLAG(ENABLE_AI_CHAT)
|
||||
void OpenAiChatPanel() override;
|
||||
#endif
|
||||
#endif
|
||||
bool GetTabStripVisible() const override;
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "chrome/browser/ui/tabs/tab_strip_model.h"
|
||||
#include "ui/color/color_provider.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_AI_CHAT)
|
||||
#include "brave/components/ai_chat/common/features.h"
|
||||
#include "chrome/browser/ui/side_panel/side_panel_ui.h"
|
||||
#endif
|
||||
|
||||
namespace {
|
||||
class TtsPlayerDelegate : public speedreader::TtsPlayer::Delegate {
|
||||
public:
|
||||
@@ -133,11 +138,21 @@ void SpeedreaderToolbarDataHandlerImpl::ViewOriginal() {
|
||||
}
|
||||
|
||||
void SpeedreaderToolbarDataHandlerImpl::AiChat() {
|
||||
if (!browser_ || !browser_->window()) {
|
||||
#if BUILDFLAG(ENABLE_AI_CHAT)
|
||||
if (!ai_chat::features::IsAIChatEnabled() || !browser_) {
|
||||
return;
|
||||
}
|
||||
#if BUILDFLAG(ENABLE_AI_CHAT)
|
||||
static_cast<BraveBrowserWindow*>(browser_->window())->OpenAiChatPanel();
|
||||
auto* side_panel = SidePanelUI::GetSidePanelUIForBrowser(browser_.get());
|
||||
if (!side_panel) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (auto entry = side_panel->GetCurrentEntryId();
|
||||
entry == SidePanelEntryId::kChatUI) {
|
||||
side_panel->Close();
|
||||
} else {
|
||||
side_panel->Show(SidePanelEntryId::kChatUI);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<message name="IDS_READER_MODE_TEXT_TO_SPEECH_FORWARD" desc="Tooltip for forward button">Forward</message>
|
||||
<message name="IDS_READER_MODE_TEXT_TO_SPEECH_SPEED_DECREASE" desc="Tooltip for decrease playback speed button">Decrease the playback speed</message>
|
||||
<message name="IDS_READER_MODE_TEXT_TO_SPEECH_SPEED_INCREASE" desc="Tooltip for increase playback speed button">Increase the playback speed</message>
|
||||
<message name="IDS_READER_MODE_AI" desc="Tooltop for AI button">Brave AI</message>
|
||||
<message name="IDS_READER_MODE_AI" desc="Tooltip for AI button">Brave Leo</message>
|
||||
</if> <!-- not is_android -->
|
||||
</if> <!-- enable_speedreader -->
|
||||
</grit-part>
|
||||
|
||||
@@ -1043,6 +1043,12 @@ test("brave_browser_tests") {
|
||||
"//brave/components/speedreader",
|
||||
"//brave/components/speedreader/common:mojom",
|
||||
]
|
||||
if (enable_ai_chat) {
|
||||
deps += [
|
||||
"//brave/components/ai_chat/common:common",
|
||||
"//brave/components/ai_chat/common/buildflags:buildflags",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
if (enable_playlist) {
|
||||
|
||||
Reference in New Issue
Block a user