| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CONTENT_SHELL_BROWSER_PROTOCOL_BROWSER_HANDLER_H_ |
| #define CONTENT_SHELL_BROWSER_PROTOCOL_BROWSER_HANDLER_H_ |
| |
| #include "base/memory/raw_ptr.h" |
| #include "base/memory/raw_ref.h" |
| #include "content/shell/browser/protocol/browser.h" |
| #include "content/shell/browser/protocol/domain_handler.h" |
| |
| namespace content { |
| class BrowserContext; |
| namespace shell::protocol { |
| |
| class BrowserHandler : public DomainHandler, public Browser::Backend { |
| public: |
| BrowserHandler(const raw_ref<const BrowserContext> browser_context, |
| std::string target_id); |
| |
| BrowserHandler(const BrowserHandler&) = delete; |
| BrowserHandler& operator=(const BrowserHandler&) = delete; |
| |
| ~BrowserHandler() override; |
| |
| private: |
| // DomainHandler implementation |
| void Wire(UberDispatcher* dispatcher) override; |
| Response Disable() override; |
| |
| // Browser::Backend implementation |
| Response GetWindowForTarget( |
| std::optional<std::string> target_id, |
| int* out_window_id, |
| std::unique_ptr<Browser::Bounds>* out_bounds) override; |
| |
| const raw_ref<const BrowserContext> browser_context_; |
| const std::string target_id_; |
| }; |
| |
| } // namespace shell::protocol |
| } // namespace content |
| |
| #endif // CONTENT_SHELL_BROWSER_PROTOCOL_BROWSER_HANDLER_H_ |