blob: 4387178511241077f711b0f767081b17cf7eb97f [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "extensions/test/test_content_script_load_waiter.h"
#include "content/public/browser/browser_context.h"
namespace extensions {
ContentScriptLoadWaiter::ContentScriptLoadWaiter(UserScriptLoader* loader)
: host_id_(loader->host_id()) {
loader_observation_.Observe(loader);
}
ContentScriptLoadWaiter::~ContentScriptLoadWaiter() = default;
void ContentScriptLoadWaiter::Wait() {
run_loop_.Run();
}
void ContentScriptLoadWaiter::OnScriptsLoaded(
UserScriptLoader* loader,
content::BrowserContext* browser_context) {
// Quit when idle in order to allow other observers to run.
if (loader->HasLoadedScripts())
run_loop_.QuitWhenIdle();
}
void ContentScriptLoadWaiter::OnUserScriptLoaderDestroyed(
UserScriptLoader* loader) {
loader_observation_.Reset();
}
} // namespace extensions