perf: avoid redundant map lookup in WebContents::DevToolsIndexPath() (#46254)

perf: avoid double map lookup in WebContents::DevToolsIndexPath()
This commit is contained in:
Charles Kerr 2025-03-26 10:30:02 -05:00 committed by GitHub
parent d2c2261c58
commit a5076a663b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4139,8 +4139,11 @@ void WebContents::DevToolsIndexPath(
OnDevToolsIndexingDone(request_id, file_system_path); OnDevToolsIndexingDone(request_id, file_system_path);
return; return;
} }
if (devtools_indexing_jobs_.contains(request_id))
auto& indexing_job = devtools_indexing_jobs_[request_id];
if (indexing_job)
return; return;
std::vector<std::string> excluded_folders; std::vector<std::string> excluded_folders;
std::optional<base::Value> parsed_excluded_folders = std::optional<base::Value> parsed_excluded_folders =
base::JSONReader::Read(excluded_folders_message); base::JSONReader::Read(excluded_folders_message);
@ -4150,19 +4153,18 @@ void WebContents::DevToolsIndexPath(
excluded_folders.push_back(folder_path.GetString()); excluded_folders.push_back(folder_path.GetString());
} }
} }
devtools_indexing_jobs_[request_id] =
scoped_refptr<DevToolsFileSystemIndexer::FileSystemIndexingJob>( indexing_job = devtools_file_system_indexer_->IndexPath(
devtools_file_system_indexer_->IndexPath(
file_system_path, excluded_folders, file_system_path, excluded_folders,
base::BindRepeating( base::BindRepeating(&WebContents::OnDevToolsIndexingWorkCalculated,
&WebContents::OnDevToolsIndexingWorkCalculated, weak_factory_.GetWeakPtr(), request_id,
weak_factory_.GetWeakPtr(), request_id, file_system_path), file_system_path),
base::BindRepeating(&WebContents::OnDevToolsIndexingWorked, base::BindRepeating(&WebContents::OnDevToolsIndexingWorked,
weak_factory_.GetWeakPtr(), request_id, weak_factory_.GetWeakPtr(), request_id,
file_system_path), file_system_path),
base::BindRepeating(&WebContents::OnDevToolsIndexingDone, base::BindRepeating(&WebContents::OnDevToolsIndexingDone,
weak_factory_.GetWeakPtr(), request_id, weak_factory_.GetWeakPtr(), request_id,
file_system_path))); file_system_path));
} }
void WebContents::DevToolsStopIndexing(int request_id) { void WebContents::DevToolsStopIndexing(int request_id) {