#include "content/browser/devtools/protocol/browser_handler.h"
#include <string.h>
#include <algorithm>
#include <memory>
#include "base/command_line.h"
#include "base/metrics/histogram_base.h"
#include "base/metrics/histogram_samples.h"
#include "base/metrics/statistics_recorder.h"
#include "base/strings/strcat.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "components/download/public/common/download_item.h"
#include "content/browser/devtools/browser_devtools_agent_host.h"
#include "content/browser/devtools/devtools_manager.h"
#include "content/browser/devtools/protocol/devtools_download_manager_delegate.h"
#include "content/browser/gpu/gpu_process_host.h"
#include "content/browser/permissions/permission_controller_impl.h"
#include "content/browser/renderer_host/frame_tree_node.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/download_item_utils.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/user_agent.h"
#include "net/base/filename_util.h"
#include "third_party/blink/public/common/permissions/permission_utils.h"
#include "url/gurl.h"
#include "v8/include/v8-version-string.h"
PermissionType;
namespace content {
namespace protocol {
BrowserHandler::BrowserHandler(bool allow_set_download_behavior)
: … { … }
BrowserHandler::~BrowserHandler() = default;
Response BrowserHandler::Disable() { … }
void BrowserHandler::Wire(UberDispatcher* dispatcher) { … }
Response BrowserHandler::GetVersion(std::string* protocol_version,
std::string* product,
std::string* revision,
std::string* user_agent,
std::string* js_version) { … }
namespace {
Response PermissionDescriptorToPermissionType(
std::unique_ptr<protocol::Browser::PermissionDescriptor> descriptor,
PermissionType* permission_type) { … }
Response FromProtocolPermissionType(
const protocol::Browser::PermissionType& type,
PermissionType* out_type) { … }
Response PermissionSettingToPermissionStatus(
const protocol::Browser::PermissionSetting& setting,
blink::mojom::PermissionStatus* out_status) { … }
}
Response BrowserHandler::FindBrowserContext(
const Maybe<std::string>& browser_context_id,
BrowserContext** browser_context) { … }
std::vector<BrowserHandler*> BrowserHandler::ForAgentHost(
DevToolsAgentHostImpl* host) { … }
Response BrowserHandler::SetPermission(
std::unique_ptr<protocol::Browser::PermissionDescriptor> permission,
const protocol::Browser::PermissionSetting& setting,
Maybe<std::string> origin,
Maybe<std::string> browser_context_id) { … }
Response BrowserHandler::GrantPermissions(
std::unique_ptr<protocol::Array<protocol::Browser::PermissionType>>
permissions,
Maybe<std::string> origin,
Maybe<std::string> browser_context_id) { … }
Response BrowserHandler::ResetPermissions(
Maybe<std::string> browser_context_id) { … }
Response BrowserHandler::SetDownloadBehavior(
const std::string& behavior,
Maybe<std::string> browser_context_id,
Maybe<std::string> download_path,
Maybe<bool> events_enabled) { … }
Response BrowserHandler::DoSetDownloadBehavior(
const std::string& behavior,
BrowserContext* browser_context,
Maybe<std::string> download_path) { … }
Response BrowserHandler::CancelDownload(const std::string& guid,
Maybe<std::string> browser_context_id) { … }
Response BrowserHandler::GetHistograms(
const Maybe<std::string> in_query,
const Maybe<bool> in_delta,
std::unique_ptr<Array<Browser::Histogram>>* const out_histograms) { … }
Response BrowserHandler::GetHistogram(
const std::string& in_name,
const Maybe<bool> in_delta,
std::unique_ptr<Browser::Histogram>* const out_histogram) { … }
Response BrowserHandler::GetBrowserCommandLine(
std::unique_ptr<protocol::Array<std::string>>* arguments) { … }
Response BrowserHandler::Crash() { … }
Response BrowserHandler::CrashGpuProcess() { … }
void BrowserHandler::OnDownloadUpdated(download::DownloadItem* item) { … }
void BrowserHandler::OnDownloadDestroyed(download::DownloadItem* item) { … }
void BrowserHandler::DownloadWillBegin(FrameTreeNode* ftn,
download::DownloadItem* item) { … }
void BrowserHandler::SetDownloadEventsEnabled(bool enabled) { … }
std::unique_ptr<Browser::Histogram> BrowserHandler::GetHistogramData(
const base::HistogramBase& histogram,
bool get_delta) { … }
}
}