Activation needs to happens when a service worker isn't handling events. However, currently SWRegistration::IsReadyToActivate() only sees tasks in the browser, so activation might happen even when the worker is having tasks.
I found this when I'm seeing the code, so didn't check if it's really happen. We need to make a simple example (or test?) to reproduce it.
Comment 1 by falken@chromium.org
, Aug 30