New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 924416 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug
Proj-Servicification



Sign in to add a comment

NetworkService: Audit task runner priorities to avoid indefinitely-blocked, user-visible URL load tasks.

Project Member Reported by m...@chromium.org, Today (102 minutes ago)

Issue description

Some callers of content::CreateFileURLLoader() can tolerate BEST_EFFORT TaskPriority, but others cannot. content::CreateFileURLLoaderFactory(), and possibly other code also needs to be looked at. To be clear, it seems that file downloads can be BEST_EFFORT, but file loads related to proper browser behavior (e.g., loading an extension) need USER_VISIBLE priority.

Background story: I will soon be committing a change that adds a test (NoBestEffortTasksBrowserTest.LoadExtensionAndSendMessages, run via browser_tests) to ensure browser extensions can be loaded and interact with a page even if all BEST_EFFORT tasks are never run. Without patching content::CreateFileURLLoader(), the test passes without the NetworkService enabled, but fails with --enable-features=NetworkService.

Upon investigating, the root cause was the use of a BEST_EFFORT task runner to create/start the load. The file being loaded was the extension's background.js file, and so this never occurred, and caused the test to time-out. My code change will upgrade the task priority to USER_VISIBLE since the loading of the extension's background page should have that priority (see bug 177163 and commit 6cafda46a6a41b3f857846e3d1e2e9ae8739ed2e for further discussion).

 

Sign in to add a comment