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:
Pavel Beloborodov
2023-09-06 00:02:55 +09:00
committed by GitHub
parent c7736b0e60
commit fa1276ff7c
7 changed files with 51 additions and 28 deletions
@@ -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");
-3
View File
@@ -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)
+1 -18
View File
@@ -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>
+6
View File
@@ -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) {