#ifndef CONTENT_BROWSER_DEVTOOLS_PROTOCOL_HIDDEN_TARGET_MANAGER_H_
#define CONTENT_BROWSER_DEVTOOLS_PROTOCOL_HIDDEN_TARGET_MANAGER_H_
#include "base/containers/unique_ptr_adapters.h"
#include "content/browser/devtools/protocol/protocol.h"
#include "content/public/browser/web_contents_delegate.h"
namespace content::protocol {
class HiddenTargetManager : public content::WebContentsDelegate {
public:
HiddenTargetManager();
~HiddenTargetManager() override;
HiddenTargetManager(const HiddenTargetManager&) = delete;
HiddenTargetManager& operator=(const HiddenTargetManager&) = delete;
void Clear();
std::string CreateHiddenTarget(const GURL& url,
BrowserContext* browser_context);
void CloseContents(content::WebContents* source) override;
#if BUILDFLAG(ARKWEB_ARKWEB_EXTENSIONS)
void WebExtensionUpdateTab(
int32_t tab_id,
const struct NWebExtensionTabUpdateProperties* update_properties);
#endif
private:
base::flat_set<std::unique_ptr<content::WebContents>,
base::UniquePtrComparator>
hidden_web_contents_;
};
}
#endif