Skip to content

Commit

Permalink
Merge pull request #378 from brave/https-everywhere-fixes
Browse files Browse the repository at this point in the history
 Use a single sequenced task runner for HTTPSEverywehre && level_db init fix
  • Loading branch information
bbondy authored Aug 31, 2018
2 parents 6665a3e + 259af5b commit 1a06814
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 15 deletions.
20 changes: 8 additions & 12 deletions browser/net/brave_httpse_network_delegate_helper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -81,18 +81,14 @@ int OnBeforeURLRequest_HttpsePreFileWork(
GetHTTPSURLFromCacheOnly(&request->url(), request->identifier(),
ctx->new_url_spec)) {
ctx->request_url = request->url();

scoped_refptr<base::SequencedTaskRunner> task_runner =
base::CreateSequencedTaskRunnerWithTraits({base::MayBlock(),
base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN});
task_runner->PostTaskAndReply(FROM_HERE,
base::Bind(OnBeforeURLRequest_HttpseFileWork,
base::Unretained(request), new_url, ctx),
base::Bind(base::IgnoreResult(
&OnBeforeURLRequest_HttpsePostFileWork),
base::Unretained(request),
new_url, next_callback, ctx)
);
g_brave_browser_process->https_everywhere_service()->
GetTaskRunner()->PostTaskAndReply(FROM_HERE,
base::Bind(OnBeforeURLRequest_HttpseFileWork,
base::Unretained(request), new_url, ctx),
base::Bind(base::IgnoreResult(
&OnBeforeURLRequest_HttpsePostFileWork),
base::Unretained(request),
new_url, next_callback, ctx));
return net::ERR_IO_PENDING;
} else {
if (!ctx->new_url_spec.empty()) {
Expand Down
10 changes: 7 additions & 3 deletions components/brave_shields/browser/https_everywhere_service.cc
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ std::string HTTPSEverywhereService::g_https_everywhere_component_base64_public_k
kHTTPSEverywhereComponentBase64PublicKey);

HTTPSEverywhereService::HTTPSEverywhereService() : level_db_(nullptr) {
DETACH_FROM_SEQUENCE(sequence_checker_);
}

HTTPSEverywhereService::~HTTPSEverywhereService() {
Expand All @@ -103,6 +104,7 @@ bool HTTPSEverywhereService::Init() {
}

void HTTPSEverywhereService::InitDB(const base::FilePath& install_dir) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
base::FilePath zip_db_file_path =
install_dir.AppendASCII(DAT_FILE_VERSION).AppendASCII(DAT_FILE);
base::FilePath unzipped_level_db_path = zip_db_file_path.RemoveExtension();
Expand All @@ -121,6 +123,7 @@ void HTTPSEverywhereService::InitDB(const base::FilePath& install_dir) {
unzipped_level_db_path.AsUTF8Unsafe(),
&level_db_);
if (!status.ok() || !level_db_) {
level_db_ = nullptr;
LOG(ERROR) << "Level db open error "
<< unzipped_level_db_path.value().c_str()
<< ", error: " << status.ToString();
Expand All @@ -142,8 +145,9 @@ void HTTPSEverywhereService::OnComponentReady(
bool HTTPSEverywhereService::GetHTTPSURL(
const GURL* url, const uint64_t& request_identifier,
std::string& new_url) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
base::AssertBlockingAllowed();
if (!IsInitialized() || url->scheme() == url::kHttpsScheme) {
if (!IsInitialized() || !level_db_ || url->scheme() == url::kHttpsScheme) {
return false;
}
if (!ShouldHTTPSERedirect(request_identifier)) {
Expand Down Expand Up @@ -358,8 +362,8 @@ std::string HTTPSEverywhereService::CorrecttoRuleToRE2Engine(
return correctedto;
}

void HTTPSEverywhereService::CloseDatabase()
{
void HTTPSEverywhereService::CloseDatabase() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
if (level_db_) {
delete level_db_;
level_db_ = nullptr;
Expand Down
2 changes: 2 additions & 0 deletions components/brave_shields/browser/https_everywhere_service.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include <mutex>

#include "base/files/file_path.h"
#include "base/sequence_checker.h"
#include "brave/components/brave_shields/browser/base_brave_shields_service.h"
#include "brave/components/brave_shields/browser/https_everywhere_recently_used_cache.h"
#include "content/public/common/resource_type.h"
Expand Down Expand Up @@ -89,6 +90,7 @@ class HTTPSEverywhereService : public BaseBraveShieldsService {
HTTPSERecentlyUsedCache<std::string> recently_used_cache_;
leveldb::DB* level_db_;

SEQUENCE_CHECKER(sequence_checker_);
DISALLOW_COPY_AND_ASSIGN(HTTPSEverywhereService);
};

Expand Down

0 comments on commit 1a06814

Please sign in to comment.