summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_page_handler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_page_handler.cc')
-rw-r--r--chromium/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_page_handler.cc47
1 files changed, 31 insertions, 16 deletions
diff --git a/chromium/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_page_handler.cc b/chromium/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_page_handler.cc
index 0565f5c038f..4fe6dd97648 100644
--- a/chromium/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_page_handler.cc
+++ b/chromium/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_page_handler.cc
@@ -47,7 +47,7 @@ ReadAnythingUntrustedPageHandler::ReadAnythingUntrustedPageHandler(
mojo::PendingRemote<UntrustedPage> page,
mojo::PendingReceiver<UntrustedPageHandler> receiver,
content::WebUI* web_ui)
- : browser_(chrome::FindLastActive()),
+ : browser_(chrome::FindLastActive()->AsWeakPtr()),
web_ui_(web_ui),
receiver_(this, std::move(receiver)),
page_(std::move(page)) {
@@ -56,7 +56,7 @@ ReadAnythingUntrustedPageHandler::ReadAnythingUntrustedPageHandler(
ax_action_handler_observer_.Observe(
ui::AXActionHandlerRegistry::GetInstance());
- coordinator_ = ReadAnythingCoordinator::FromBrowser(browser_);
+ coordinator_ = ReadAnythingCoordinator::FromBrowser(browser_.get());
if (coordinator_) {
coordinator_->AddObserver(this);
coordinator_->AddModelObserver(this);
@@ -125,30 +125,40 @@ void ReadAnythingUntrustedPageHandler::OnCopy() {
void ReadAnythingUntrustedPageHandler::OnLineSpaceChange(
read_anything::mojom::LineSpacing line_spacing) {
- browser_->profile()->GetPrefs()->SetInteger(
- prefs::kAccessibilityReadAnythingLineSpacing,
- static_cast<size_t>(line_spacing));
+ if (browser_) {
+ browser_->profile()->GetPrefs()->SetInteger(
+ prefs::kAccessibilityReadAnythingLineSpacing,
+ static_cast<size_t>(line_spacing));
+ }
}
void ReadAnythingUntrustedPageHandler::OnLetterSpaceChange(
read_anything::mojom::LetterSpacing letter_spacing) {
- browser_->profile()->GetPrefs()->SetInteger(
- prefs::kAccessibilityReadAnythingLetterSpacing,
- static_cast<size_t>(letter_spacing));
+ if (browser_) {
+ browser_->profile()->GetPrefs()->SetInteger(
+ prefs::kAccessibilityReadAnythingLetterSpacing,
+ static_cast<size_t>(letter_spacing));
+ }
}
void ReadAnythingUntrustedPageHandler::OnFontChange(const std::string& font) {
- browser_->profile()->GetPrefs()->SetString(
- prefs::kAccessibilityReadAnythingFontName, font);
+ if (browser_) {
+ browser_->profile()->GetPrefs()->SetString(
+ prefs::kAccessibilityReadAnythingFontName, font);
+ }
}
void ReadAnythingUntrustedPageHandler::OnFontSizeChange(double font_size) {
double saved_font_size = std::min(font_size, kReadAnythingMaximumFontScale);
- browser_->profile()->GetPrefs()->SetDouble(
- prefs::kAccessibilityReadAnythingFontScale, saved_font_size);
+ if (browser_) {
+ browser_->profile()->GetPrefs()->SetDouble(
+ prefs::kAccessibilityReadAnythingFontScale, saved_font_size);
+ }
}
void ReadAnythingUntrustedPageHandler::OnColorChange(
read_anything::mojom::Colors color) {
- browser_->profile()->GetPrefs()->SetInteger(
- prefs::kAccessibilityReadAnythingColorInfo, static_cast<size_t>(color));
+ if (browser_) {
+ browser_->profile()->GetPrefs()->SetInteger(
+ prefs::kAccessibilityReadAnythingColorInfo, static_cast<size_t>(color));
+ }
}
void ReadAnythingUntrustedPageHandler::OnLinkClicked(
@@ -245,7 +255,8 @@ void ReadAnythingUntrustedPageHandler::StateChanged(
DCHECK(features::IsReadAnythingWithScreen2xEnabled());
// If Screen AI library is downloaded but not initialized yet, ensure it is
// loadable and initializes without any problems.
- if (state == screen_ai::ScreenAIInstallState::State::kDownloaded) {
+ if (state == screen_ai::ScreenAIInstallState::State::kDownloaded &&
+ browser_) {
screen_ai::ScreenAIServiceRouterFactory::GetForBrowserContext(
browser_->profile())
->InitializeMainContentExtractionIfNeeded();
@@ -304,7 +315,7 @@ void ReadAnythingUntrustedPageHandler::OnActiveWebContentsChanged() {
// 2. Set an AXContext on the web contents with web contents only mode
// enabled.
content::WebContents* web_contents = nullptr;
- if (active_) {
+ if (active_ && browser_) {
web_contents = browser_->tab_strip_model()->GetActiveWebContents();
}
Observe(web_contents);
@@ -337,6 +348,10 @@ void ReadAnythingUntrustedPageHandler::OnActiveAXTreeIDChanged() {
}
void ReadAnythingUntrustedPageHandler::LogTextStyle() {
+ if (!browser_) {
+ return;
+ }
+
// This is called when the side panel closes, so retrieving the values from
// preferences won't happen very often.
PrefService* prefs = browser_->profile()->GetPrefs();