speedreader: Add --speedreader-backend switch
Resolves https://github.com/brave/brave-browser/issues/14959
This commit is contained in:
@@ -8,11 +8,12 @@
|
||||
#include <utility>
|
||||
|
||||
#include "base/bind.h"
|
||||
#include "base/command_line.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "brave/components/speedreader/rust/ffi/speedreader.h"
|
||||
#include "brave/components/speedreader/speedreader_component.h"
|
||||
#include "brave/components/speedreader/speedreader_switches.h"
|
||||
#include "components/grit/brave_components_resources.h"
|
||||
#include "ui/base/resource/resource_bundle.h"
|
||||
#include "url/gurl.h"
|
||||
@@ -40,6 +41,16 @@ SpeedreaderRewriterService::SpeedreaderRewriterService(
|
||||
brave_component_updater::BraveComponent::Delegate* delegate)
|
||||
: component_(new speedreader::SpeedreaderComponent(delegate)),
|
||||
speedreader_(new speedreader::SpeedReader) {
|
||||
const base::CommandLine& cmd_line = *base::CommandLine::ForCurrentProcess();
|
||||
if (cmd_line.HasSwitch(speedreader::kSpeedreaderBackend)) {
|
||||
// @pes mentioned we might want to experiment with several backends, so this
|
||||
// will give us the most flexibility.
|
||||
std::string backend = cmd_line.GetSwitchValueASCII(kSpeedreaderBackend);
|
||||
if (backend == "heuristics") {
|
||||
backend_ = RewriterType::RewriterHeuristics;
|
||||
}
|
||||
}
|
||||
|
||||
// Load the built-in stylesheet as the default
|
||||
content_stylesheet_ =
|
||||
"<style id=\"brave_speedreader_style\">" +
|
||||
@@ -84,12 +95,14 @@ void SpeedreaderRewriterService::OnStylesheetReady(const base::FilePath& path) {
|
||||
}
|
||||
|
||||
bool SpeedreaderRewriterService::IsWhitelisted(const GURL& url) {
|
||||
return speedreader_->IsReadableURL(url.spec());
|
||||
return backend_ == RewriterType::RewriterStreaming
|
||||
? speedreader_->IsReadableURL(url.spec())
|
||||
: true;
|
||||
}
|
||||
|
||||
std::unique_ptr<Rewriter> SpeedreaderRewriterService::MakeRewriter(
|
||||
const GURL& url) {
|
||||
return speedreader_->MakeRewriter(url.spec());
|
||||
return speedreader_->MakeRewriter(url.spec(), backend_);
|
||||
}
|
||||
|
||||
const std::string& SpeedreaderRewriterService::GetContentStylesheet() {
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "base/memory/weak_ptr.h"
|
||||
#include "brave/components/brave_component_updater/browser/brave_component.h"
|
||||
#include "brave/components/brave_component_updater/browser/dat_file_util.h"
|
||||
#include "brave/components/speedreader/rust/ffi/speedreader.h"
|
||||
#include "brave/components/speedreader/speedreader_component.h"
|
||||
|
||||
namespace base {
|
||||
@@ -53,6 +54,10 @@ class SpeedreaderRewriterService : public SpeedreaderComponent::Observer {
|
||||
void OnLoadDATFileData(GetDATFileDataResult result);
|
||||
void OnLoadStylesheet(std::string stylesheet);
|
||||
|
||||
// This is currently the only backend reachable from browser code, so
|
||||
// let's make it the default.
|
||||
RewriterType backend_ = RewriterType::RewriterStreaming;
|
||||
|
||||
std::string content_stylesheet_;
|
||||
std::unique_ptr<speedreader::SpeedreaderComponent> component_;
|
||||
std::unique_ptr<speedreader::SpeedReader> speedreader_;
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace speedreader {
|
||||
|
||||
constexpr char kSpeedreaderWhitelist[] = "speedreader-whitelist";
|
||||
constexpr char kSpeedreaderWhitelistPath[] = "speedreader-whitelist-path";
|
||||
constexpr char kSpeedreaderBackend[] = "speedreader-backend";
|
||||
|
||||
} // namespace speedreader
|
||||
|
||||
|
||||
Reference in New Issue
Block a user