blob: fa6b30961b5cbaa6b18c14fa9cedff460697e337 [file]
// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/actor/actor_script_tool_receiver.h"
#include "chrome/browser/actor/actor_keyed_service.h"
#include "chrome/browser/actor/actor_task.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
namespace actor {
// static
void ActorScriptToolReceiver::Create(
content::RenderFrameHost* render_frame_host,
mojo::PendingReceiver<blink::mojom::ScriptToolHost> receiver) {
new ActorScriptToolReceiver(*render_frame_host, std::move(receiver));
}
ActorScriptToolReceiver::ActorScriptToolReceiver(
content::RenderFrameHost& render_frame_host,
mojo::PendingReceiver<blink::mojom::ScriptToolHost> receiver)
: DocumentService(render_frame_host, std::move(receiver)) {}
void ActorScriptToolReceiver::PauseExecution() {
auto* web_contents =
content::WebContents::FromRenderFrameHost(&render_frame_host());
if (!web_contents) {
return;
}
auto* service = ActorKeyedService::Get(web_contents->GetBrowserContext());
if (!service) {
return;
}
if (const auto* task =
service->GetActingActorTaskForWebContents(web_contents)) {
if (auto* mutable_task = service->GetTask(task->id())) {
mutable_task->Pause(/*from_actor=*/true,
/*cancel_existing_action=*/false);
}
}
}
} // namespace actor