blob: 18c0b08c48a5897d7252a67fe0743fbdf9b97af0 [file] [log] [blame]
// Copyright 2018 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 "components/ui_devtools/views/devtools_server_util.h"
#include <memory>
#include "components/ui_devtools/css_agent.h"
#include "components/ui_devtools/devtools_server.h"
#include "components/ui_devtools/page_agent.h"
#include "components/ui_devtools/switches.h"
#include "components/ui_devtools/views/dom_agent_views.h"
#include "components/ui_devtools/views/overlay_agent_views.h"
#include "components/ui_devtools/views/page_agent_views.h"
namespace ui_devtools {
std::unique_ptr<UiDevToolsServer> CreateUiDevToolsServerForViews(
network::mojom::NetworkContext* network_context) {
constexpr int kUiDevToolsDefaultPort = 9223;
int port = UiDevToolsServer::GetUiDevToolsPort(switches::kEnableUiDevTools,
kUiDevToolsDefaultPort);
auto server = UiDevToolsServer::CreateForViews(network_context, port);
DCHECK(server);
auto client =
std::make_unique<UiDevToolsClient>("UiDevToolsClient", server.get());
auto dom_agent_views = DOMAgentViews::Create();
auto* dom_agent_views_ptr = dom_agent_views.get();
client->AddAgent(std::make_unique<PageAgentViews>(dom_agent_views_ptr));
client->AddAgent(std::move(dom_agent_views));
client->AddAgent(std::make_unique<CSSAgent>(dom_agent_views_ptr));
client->AddAgent(OverlayAgentViews::Create(dom_agent_views_ptr));
server->AttachClient(std::move(client));
return server;
}
} // namespace ui_devtools