blob: 06bc61bc9595cd2cb934880fd0067b3c53e7100f [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/prefs/persistent_renderer_prefs_manager.h"
#include "chrome/browser/prefs/persistent_renderer_prefs_manager_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/pref_names.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
PersistentRendererPrefsManager::PersistentRendererPrefsManager(
PrefService& pref_service)
: pref_service_(pref_service) {}
PersistentRendererPrefsManager::~PersistentRendererPrefsManager() = default;
void PersistentRendererPrefsManager::SetViewSourceLineWrapping(bool value) {
pref_service_->SetBoolean(prefs::kViewSourceLineWrappingEnabled, value);
}
void PersistentRendererPrefsManager::BindFrameReceiver(
content::RenderFrameHost* frame,
mojo::PendingReceiver<blink::mojom::PersistentRendererPrefsService>
receiver) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
auto* profile = Profile::FromBrowserContext(frame->GetBrowserContext());
auto* persistent_renderer_prefs_manager =
PersistentRendererPrefsManagerFactory::GetInstance()->GetForProfile(
profile);
if (!persistent_renderer_prefs_manager) {
return;
}
persistent_renderer_prefs_manager->receivers_.Add(
persistent_renderer_prefs_manager, std::move(receiver));
}