| // 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 CHROME_BROWSER_CHROMEOS_MAHI_MAHI_BROWSER_UTIL_H_ |
| #define CHROME_BROWSER_CHROMEOS_MAHI_MAHI_BROWSER_UTIL_H_ |
| |
| #include <optional> |
| #include <string> |
| |
| #include "base/memory/raw_ptr_exclusion.h" |
| #include "services/metrics/public/cpp/ukm_source_id.h" |
| #include "ui/accessibility/ax_tree_update.h" |
| #include "ui/aura/window.h" |
| #include "ui/gfx/image/image_skia.h" |
| #include "url/gurl.h" |
| |
| namespace mahi { |
| |
| // State struct to keep the information of a web content. |
| struct WebContentState { |
| base::UnguessableToken page_id = base::UnguessableToken::Create(); |
| GURL url; |
| std::u16string title; |
| gfx::ImageSkia favicon = gfx::ImageSkia(); |
| std::optional<bool> is_distillable = std::nullopt; |
| bool is_incognito = true; |
| |
| ukm::SourceId ukm_source_id = ukm::kInvalidSourceId; |
| ui::AXTreeUpdate snapshot; |
| // RAW_PTR_EXCLUSION: We only use its address as an identifier and never |
| // dereference it. |
| RAW_PTR_EXCLUSION aura::Window* top_level_native_window = nullptr; |
| |
| WebContentState(const WebContentState& state); |
| WebContentState& operator=(const WebContentState& state) = default; |
| |
| WebContentState(const GURL& url, const std::u16string& title); |
| ~WebContentState(); |
| }; |
| |
| } // namespace mahi |
| |
| #endif // CHROME_BROWSER_CHROMEOS_MAHI_MAHI_BROWSER_UTIL_H_ |