blob: c0c50f51f31493f965e0ebe38b827a2a14afdad7 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_WEBUI_EXAMPLES_BROWSER_DEVTOOLS_DEVTOOLS_MANAGER_DELEGATE_H_
#define UI_WEBUI_EXAMPLES_BROWSER_DEVTOOLS_DEVTOOLS_MANAGER_DELEGATE_H_
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "content/public/browser/devtools_manager_delegate.h"
#include "url/gurl.h"
namespace content {
class BrowserContext;
class WebContents;
} // namespace content
namespace webui_examples {
class DevToolsManagerDelegate : public content::DevToolsManagerDelegate {
public:
using CreateContentWindowFunc =
base::RepeatingCallback<content::WebContents*(content::BrowserContext*,
const GURL&)>;
DevToolsManagerDelegate(content::BrowserContext* browser_context,
CreateContentWindowFunc create_content_window_func);
DevToolsManagerDelegate(const DevToolsManagerDelegate&) = delete;
DevToolsManagerDelegate& operator=(const DevToolsManagerDelegate&) = delete;
~DevToolsManagerDelegate() override;
// DevToolsManagerDelegate:
content::BrowserContext* GetDefaultBrowserContext() override;
scoped_refptr<content::DevToolsAgentHost> CreateNewTarget(
const GURL& url,
TargetType target_type,
bool new_window) override;
std::string GetDiscoveryPageHTML() override;
bool HasBundledFrontendResources() override;
private:
const raw_ptr<content::BrowserContext> browser_context_;
CreateContentWindowFunc create_content_window_func_;
};
} // namespace webui_examples
#endif // UI_WEBUI_EXAMPLES_BROWSER_DEVTOOLS_DEVTOOLS_MANAGER_DELEGATE_H_