60 lines
1.8 KiB
C++
60 lines
1.8 KiB
C++
// Copyright 2024 The Chromium Embedded Framework Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef CEF_LIBCEF_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_RUNNER_H_
|
|
#define CEF_LIBCEF_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_RUNNER_H_
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
|
|
#include "base/memory/weak_ptr.h"
|
|
#include "cef/include/cef_client.h"
|
|
|
|
class CefBrowserHostBase;
|
|
class ChromeBrowserHostImpl;
|
|
|
|
// Parameters passed to ShowDevTools.
|
|
struct CefShowDevToolsParams {
|
|
CefShowDevToolsParams(const CefWindowInfo& windowInfo,
|
|
CefRefPtr<CefClient> client,
|
|
const CefBrowserSettings& settings,
|
|
const CefPoint& inspect_element_at)
|
|
: window_info_(windowInfo),
|
|
client_(client),
|
|
settings_(settings),
|
|
inspect_element_at_(inspect_element_at) {}
|
|
|
|
CefWindowInfo window_info_;
|
|
CefRefPtr<CefClient> client_;
|
|
CefBrowserSettings settings_;
|
|
CefPoint inspect_element_at_;
|
|
};
|
|
|
|
// Creates and runs a DevTools window instance. Only accessed on the UI thread.
|
|
class CefDevToolsWindowRunner final {
|
|
public:
|
|
CefDevToolsWindowRunner() = default;
|
|
|
|
CefDevToolsWindowRunner(const CefDevToolsWindowRunner&) = delete;
|
|
CefDevToolsWindowRunner& operator=(const CefDevToolsWindowRunner&) =
|
|
delete;
|
|
|
|
void ShowDevTools(CefBrowserHostBase* opener,
|
|
std::unique_ptr<CefShowDevToolsParams> params);
|
|
void CloseDevTools();
|
|
bool HasDevTools();
|
|
|
|
std::unique_ptr<CefShowDevToolsParams> TakePendingParams();
|
|
|
|
void SetDevToolsBrowserHost(
|
|
base::WeakPtr<ChromeBrowserHostImpl> browser_host);
|
|
|
|
private:
|
|
std::unique_ptr<CefShowDevToolsParams> pending_params_;
|
|
|
|
base::WeakPtr<ChromeBrowserHostImpl> browser_host_;
|
|
};
|
|
|
|
#endif // CEF_LIBCEF_BROWSER_DEVTOOLS_DEVTOOLS_WINDOW_RUNNER_H_
|