The launcher file search is performed via chrome.launcherSearchProvider, that's a private Chrome Apps API, which is implemented by Files app [1].
That means that when performing a launcher file search, the user query is sent to Files app's background page (JavaScript), and the result is sent back to the launcher code (C++).
This is fairly complex and comes with a overhead (ex. IPC between the browser process and Files app's background page).
It'd be a lot simpler and faster to do everything in C++ in the browser process.
[1] The original idea was to make it a public API so the launcher could support multiple search providers, but this didn't happen. In retrospect it was over-engineering.
Comment 1 by sashab@chromium.org
, Feb 22 2018