#include "chrome/browser/devtools/chrome_devtools_session.h"
#include <memory>
#include <string_view>
#include <type_traits>
#include "base/command_line.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/metrics_hashes.h"
#include "base/strings/string_number_conversions.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/browser_features.h"
#include "chrome/browser/devtools/protocol/autofill_handler.h"
#include "chrome/browser/devtools/protocol/browser_handler.h"
#include "chrome/browser/devtools/protocol/cast_handler.h"
#include "chrome/browser/devtools/protocol/emulation_handler.h"
#include "chrome/browser/devtools/protocol/extensions_handler.h"
#include "chrome/browser/devtools/protocol/page_handler.h"
#include "chrome/browser/devtools/protocol/pwa_handler.h"
#include "chrome/browser/devtools/protocol/security_handler.h"
#include "chrome/browser/devtools/protocol/storage_handler.h"
#include "chrome/browser/devtools/protocol/system_info_handler.h"
#include "chrome/browser/devtools/protocol/target_handler.h"
#include "chrome/common/chrome_switches.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/devtools_agent_host_client.h"
#include "content/public/browser/devtools_agent_host_client_channel.h"
#include "content/public/browser/devtools_manager_delegate.h"
#include "third_party/inspector_protocol/crdtp/dispatch.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/devtools/protocol/window_manager_handler.h"
#endif
namespace {
template <typename Handler>
bool IsDomainAvailableToUntrustedClient() { … }
}
ChromeDevToolsSession::ChromeDevToolsSession(
content::DevToolsAgentHostClientChannel* channel)
: … { … }
ChromeDevToolsSession::~ChromeDevToolsSession() = default;
base::HistogramBase::Sample GetCommandUmaId(
const std::string_view command_name) { … }
void ChromeDevToolsSession::HandleCommand(
base::span<const uint8_t> message,
content::DevToolsManagerDelegate::NotHandledCallback callback) { … }
void ChromeDevToolsSession::SendProtocolResponse(
int call_id,
std::unique_ptr<protocol::Serializable> message) { … }
void ChromeDevToolsSession::SendProtocolNotification(
std::unique_ptr<protocol::Serializable> message) { … }
void ChromeDevToolsSession::FlushProtocolNotifications() { … }
void ChromeDevToolsSession::FallThrough(int call_id,
crdtp::span<uint8_t> method,
crdtp::span<uint8_t> message) { … }