Commit ef5872a5 authored by Xi Han's avatar Xi Han Committed by Commit Bot

Use sequence checker in chrome_mojo_proxy_resolver_factory.

The ChromeMojoProxyResolverFactory may be created in early startup when the ui
thread hasn't be promoted to BrowserThread::UI. Therefore, it can't use
DCHECK_CURRENTLY_ON(content::BrowserThread::UI) to check whether it is accessed
on the same thread. Instead, we could use SequenceCheck for the check and make
sure it is accessed sequentially.

Bug: 729596
Change-Id: Id31e53e1ec369b029a843656cf86fc605d768a43
Reviewed-on: https://chromium-review.googlesource.com/c/1308667Reviewed-by: default avatarMatt Menke <mmenke@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604404}
parent 7f56fd36
......@@ -10,16 +10,13 @@
#include "base/logging.h"
#include "base/single_thread_task_runner.h"
#include "base/threading/thread_task_runner_handle.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/common/service_manager_connection.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
ChromeMojoProxyResolverFactory::ChromeMojoProxyResolverFactory() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
}
ChromeMojoProxyResolverFactory::ChromeMojoProxyResolverFactory() = default;
ChromeMojoProxyResolverFactory::~ChromeMojoProxyResolverFactory() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
}
proxy_resolver::mojom::ProxyResolverFactoryPtr
......@@ -34,7 +31,7 @@ void ChromeMojoProxyResolverFactory::CreateResolver(
const std::string& pac_script,
proxy_resolver::mojom::ProxyResolverRequest req,
proxy_resolver::mojom::ProxyResolverFactoryRequestClientPtr client) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
// Bind a ProxyResolverFactory backed by the proxy resolver service, have it
// create a ProxyResolverFactory and then destroy the factory, to avoid
......
......@@ -9,6 +9,7 @@
#include <string>
#include "base/macros.h"
#include "base/sequence_checker.h"
#include "services/proxy_resolver/public/mojom/proxy_resolver.mojom.h"
#include "services/service_manager/public/cpp/connector.h"
#include "services/service_manager/public/mojom/connector.mojom.h"
......@@ -39,6 +40,7 @@ class ChromeMojoProxyResolverFactory
private:
std::unique_ptr<service_manager::Connector> service_manager_connector_;
SEQUENCE_CHECKER(sequence_checker_);
DISALLOW_COPY_AND_ASSIGN(ChromeMojoProxyResolverFactory);
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment