blob: 4763fc5f5622db34893b04449a8412afce385a9d [file] [log] [blame]
// Copyright 2025 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/devtools/aida_service_handler.h"
#include "chrome/browser/devtools/aida_client.h"
#include "google_apis/gaia/gaia_constants.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
namespace {
const net::NetworkTrafficAnnotationTag kAidaTrafficAnnotation =
net::DefineNetworkTrafficAnnotation("devtools_cdp_console_insights", R"(
semantics {
sender: "Developer Tools via CDP"
description:
"In Chrome DevTools, the user can ask for additional insights "
"regarding an error message. A prompt message for AIDA containing "
"the error message and sometimes more context such as stack trace, "
"surrounding code, or network headers is sent to the Chrome "
"backend via DevTools UI bindings, which in turn queries an AIDA "
"endpoint."
trigger: "User asks for more insights on a DevTools error message."
data: "Prompt for AIDA endpoint, containing instructions, error and "
"sometimes some additional context information."
destination: GOOGLE_OWNED_SERVICE
internal {
contacts {
email: "chrome-devtools@google.com"
}
}
user_data {
type: WEB_CONTENT
}
last_reviewed: "2023-11-09"
}
policy {
cookies_allowed: YES
cookies_store: "user"
setting:
"It's not possible to disable this feature from settings."
chrome_policy {
DeveloperToolsAvailability {
policy_options {mode: MANDATORY}
DeveloperToolsAvailability: 2
}
}
})");
} // namespace
const net::NetworkTrafficAnnotationTag&
AidaServiceHandler::TrafficAnnotation() {
return kAidaTrafficAnnotation;
}
AidaServiceHandler::AidaServiceHandler() = default;
AidaServiceHandler::~AidaServiceHandler() = default;
void AidaServiceHandler::CanMakeRequest(
Profile* profile,
base::OnceCallback<void(bool success)> callback) {
AidaClient::Availability availability = AidaClient::CanUseAida(profile);
std::move(callback).Run(!availability.blocked);
}
GURL AidaServiceHandler::BaseURL() const {
return GURL("https://aida.googleapis.com");
}
signin::ScopeSet AidaServiceHandler::OAuthScopes() const {
return {GaiaConstants::kAidaOAuth2Scope};
}
net::NetworkTrafficAnnotationTag
AidaServiceHandler::NetworkTrafficAnnotationTag() const {
return kAidaTrafficAnnotation;
}