diff --git a/components/brave_shields/browser/ad_block_service.cc b/components/brave_shields/browser/ad_block_service.cc index c9e3b79ef7ec..b82ff6b36286 100644 --- a/components/brave_shields/browser/ad_block_service.cc +++ b/components/brave_shields/browser/ad_block_service.cc @@ -73,7 +73,7 @@ void AdBlockService::SourceProviderObserver::OnChanged() { void AdBlockService::SourceProviderObserver::OnFilterSetLoaded( std::unique_ptr> filter_set) { - filter_set_ = absl::make_optional(std::move(*filter_set)); + filter_set_ = std::move(filter_set); // multiple AddObserver calls are ignored resource_provider_->AddObserver(this); resource_provider_->LoadResources(base::BindOnce( @@ -90,14 +90,13 @@ void AdBlockService::SourceProviderObserver::OnResourcesLoaded( } else { auto engine_load_callback = base::BindOnce( [](base::WeakPtr engine, - rust::Box filter_set, + std::unique_ptr> filter_set, const std::string& resources_json) { if (engine) { - engine->Load(std::move(filter_set), resources_json); + engine->Load(std::move(*filter_set.get()), resources_json); } }, - adblock_engine_->AsWeakPtr(), std::move(*filter_set_), resources_json); - filter_set_.reset(); + adblock_engine_->AsWeakPtr(), std::move(filter_set_), resources_json); task_runner_->PostTask(FROM_HERE, std::move(engine_load_callback)); } } diff --git a/components/brave_shields/browser/ad_block_service.h b/components/brave_shields/browser/ad_block_service.h index 61752edfd2e0..569becbd3041 100644 --- a/components/brave_shields/browser/ad_block_service.h +++ b/components/brave_shields/browser/ad_block_service.h @@ -75,7 +75,7 @@ class AdBlockService { // AdBlockResourceProvider::Observer void OnResourcesLoaded(const std::string& resources_json) override; - absl::optional> filter_set_; + std::unique_ptr> filter_set_; raw_ptr adblock_engine_; raw_ptr filters_provider_; // not owned raw_ptr resource_provider_; // not owned