Skip to content

Commit

Permalink
Revert "Make AdBlockService into a singleton"
Browse files Browse the repository at this point in the history
This reverts commit 052c7a3.
  • Loading branch information
bbondy committed Mar 28, 2018
1 parent 6acd8d3 commit 1eb5105
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 21 deletions.
6 changes: 5 additions & 1 deletion browser/brave_browser_process_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@ BraveBrowserProcessImpl::BraveBrowserProcessImpl(

brave_shields::BaseBraveShieldsService*
BraveBrowserProcessImpl::ad_block_service() {
return brave_shields::AdBlockService::GetInstance();
if (ad_block_service_)
return ad_block_service_.get();

ad_block_service_ = brave_shields::AdBlockServiceFactory();
return ad_block_service_.get();
}

brave_shields::BaseBraveShieldsService*
Expand Down
1 change: 1 addition & 0 deletions browser/brave_browser_process_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ class BraveBrowserProcessImpl : public BrowserProcessImpl {
https_everywhere_service();

private:
std::unique_ptr<brave_shields::BaseBraveShieldsService> ad_block_service_;
std::unique_ptr<brave_shields::BaseBraveShieldsService>
tracking_protection_service_;
std::unique_ptr<brave_shields::HTTPSEverywhereService>
Expand Down
13 changes: 9 additions & 4 deletions components/brave_shields/browser/ad_block_service.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/memory/singleton.h"
#include "base/strings/utf_string_conversions.h"
#include "base/threading/thread_restrictions.h"
#include "brave/components/brave_shields/browser/dat_file_util.h"
Expand Down Expand Up @@ -82,11 +81,17 @@ bool AdBlockService::Init() {
return true;
}

// static
void AdBlockService::SetAdBlockURLForTest(const GURL& url) {
g_ad_block_url = url;
}

///////////////////////////////////////////////////////////////////////////////

// static
AdBlockService* AdBlockService::GetInstance() {
return base::Singleton<AdBlockService>::get();
// The brave shields factory. Using the Brave Shields as a singleton
// is the job of the browser process.
std::unique_ptr<BaseBraveShieldsService> AdBlockServiceFactory() {
return base::MakeUnique<AdBlockService>();
}

} // namespace brave_shields
19 changes: 8 additions & 11 deletions components/brave_shields/browser/ad_block_service.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,7 @@
#include "content/public/common/resource_type.h"

class AdBlockClient;

namespace base {
template <typename Type>
struct DefaultSingletonTraits;
}
class AdBlockServiceTest;

namespace brave_shields {

Expand All @@ -30,25 +26,26 @@ class AdBlockService : public BaseBraveShieldsService {
AdBlockService();
~AdBlockService() override;

static AdBlockService* GetInstance();

bool ShouldStartRequest(const GURL &url,
content::ResourceType resource_type,
const std::string& tab_host) override;

// Useful for tests to customize
static GURL g_ad_block_url;

protected:
friend struct base::DefaultSingletonTraits<AdBlockService>;
bool Init() override;
void Cleanup() override;

private:
friend class ::AdBlockServiceTest;
static GURL g_ad_block_url;
static void SetAdBlockURLForTest(const GURL& url);

std::vector<unsigned char> buffer_;
std::unique_ptr<AdBlockClient> ad_block_client_;
};

// Creates the AdBlockService
std::unique_ptr<BaseBraveShieldsService> AdBlockServiceFactory();

} // namespace brave_shields

#endif // BRAVE_COMPONENTS_BRAVE_SHIELDS_BROWSER_AD_BLOCK_SERVICE_H_
10 changes: 5 additions & 5 deletions components/brave_shields/browser/ad_block_service_browsertest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

#include "base/path_service.h"
#include "base/test/thread_test_helper.h"
#include "brave/browser/brave_browser_process_impl.h"
#include "brave/common/brave_paths.h"
#include "brave/components/brave_shields/browser/ad_block_service.h"
#include "chrome/browser/ui/browser.h"
Expand All @@ -28,8 +29,7 @@ class AdBlockServiceTest : public InProcessBrowserTest {
void PreRunTestOnMainThread() override {
InProcessBrowserTest::PreRunTestOnMainThread();
WaitForAdBlockServiceThread();
ASSERT_TRUE(
brave_shields::AdBlockService::GetInstance()->IsInitialized());
ASSERT_TRUE(g_brave_browser_process->ad_block_service()->IsInitialized());
}

void InitEmbeddedTestServer() {
Expand All @@ -41,14 +41,14 @@ class AdBlockServiceTest : public InProcessBrowserTest {
}

void InitAdBlock() {
brave_shields::AdBlockService::g_ad_block_url =
embedded_test_server()->GetURL("adblock-data/3/ABPFilterParserData.dat");
brave_shields::AdBlockService::SetAdBlockURLForTest(
embedded_test_server()->GetURL("adblock-data/3/ABPFilterParserData.dat"));
}

void WaitForAdBlockServiceThread() {
scoped_refptr<base::ThreadTestHelper> io_helper(
new base::ThreadTestHelper(
brave_shields::AdBlockService::GetInstance()->GetTaskRunner()));
g_brave_browser_process->ad_block_service()->GetTaskRunner()));
ASSERT_TRUE(io_helper->Run());
}
};
Expand Down

0 comments on commit 1eb5105

Please sign in to comment.