Commit 1f38adde authored by Xi Han's avatar Xi Han Committed by Commit Bot

Remove BrowserThread::UI check form GetNetworkServiceFromConnector().

GetNetworkServiceFromConnector() may be called in the early startup before the
full browser starts. Therefore, it can't use
DCHECK_CURRENTLY_ON(content::BrowserThread::UI) to check whether it is called
on the same thread. Instead, we check whether the connector is accessed on the
valid sequence to replace this DCHECK.

Bug: 729596
Change-Id: I97e2b0cae7a4a7e0dded919b9b120f60eb18fea6
Reviewed-on: https://chromium-review.googlesource.com/c/1308977Reviewed-by: default avatarScott Violet <sky@chromium.org>
Reviewed-by: default avatarMatt Menke <mmenke@chromium.org>
Commit-Queue: Xi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605036}
parent ea50c802
...@@ -81,13 +81,22 @@ network::mojom::NetworkService* GetNetworkService() { ...@@ -81,13 +81,22 @@ network::mojom::NetworkService* GetNetworkService() {
CONTENT_EXPORT network::mojom::NetworkService* GetNetworkServiceFromConnector( CONTENT_EXPORT network::mojom::NetworkService* GetNetworkServiceFromConnector(
service_manager::Connector* connector) { service_manager::Connector* connector) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); const bool is_network_service_enabled =
base::FeatureList::IsEnabled(network::features::kNetworkService);
// The DCHECK for thread is only done without network service enabled. This is
// because the connector and the pre-existing |g_network_service_ptr| are
// bound to the right thread in the network service case, and this allows
// Android to instantiate the NetworkService before UI thread is promoted to
// BrowserThread::UI.
if (!is_network_service_enabled)
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (!g_network_service_ptr) if (!g_network_service_ptr)
g_network_service_ptr = new network::mojom::NetworkServicePtr; g_network_service_ptr = new network::mojom::NetworkServicePtr;
static NetworkServiceClient* g_client; static NetworkServiceClient* g_client;
if (!g_network_service_ptr->is_bound() || if (!g_network_service_ptr->is_bound() ||
g_network_service_ptr->encountered_error()) { g_network_service_ptr->encountered_error()) {
if (base::FeatureList::IsEnabled(network::features::kNetworkService)) { if (is_network_service_enabled) {
connector->BindInterface(mojom::kNetworkServiceName, connector->BindInterface(mojom::kNetworkServiceName,
g_network_service_ptr); g_network_service_ptr);
g_network_service_ptr->set_connection_error_handler( g_network_service_ptr->set_connection_error_handler(
...@@ -107,7 +116,7 @@ CONTENT_EXPORT network::mojom::NetworkService* GetNetworkServiceFromConnector( ...@@ -107,7 +116,7 @@ CONTENT_EXPORT network::mojom::NetworkService* GetNetworkServiceFromConnector(
const base::CommandLine* command_line = const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess(); base::CommandLine::ForCurrentProcess();
if (base::FeatureList::IsEnabled(network::features::kNetworkService)) { if (is_network_service_enabled) {
if (command_line->HasSwitch(network::switches::kLogNetLog)) { if (command_line->HasSwitch(network::switches::kLogNetLog)) {
base::FilePath log_path = base::FilePath log_path =
command_line->GetSwitchValuePath(network::switches::kLogNetLog); command_line->GetSwitchValuePath(network::switches::kLogNetLog);
......
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