From 424487353eda1f338cfa3417552eb96a74439c9d Mon Sep 17 00:00:00 2001 From: Chandrasekaran Akash Date: Mon, 16 Feb 2026 22:14:45 +0800 Subject: [PATCH] refactor(platform): move platform::web to platform::browser --- dev/tools/src/bin/browser.rs | 10 +++---- dev/tools/src/bin/close_tab.rs | 4 +-- dev/tools/src/bin/driver_web_state.rs | 14 +++++----- dev/tools/src/bin/tab_switch.rs | 4 +-- dev/tools/src/bin/tab_track.rs | 6 ++-- src/engine/src/desktop.rs | 23 ++++++++------- src/engine/src/engine.rs | 6 ++-- src/engine/src/lib.rs | 28 +++++++++---------- src/engine/src/resolver.rs | 2 +- src/engine/src/sentry.rs | 27 ++++++++++-------- src/platform/src/{web => browser}/detect.rs | 0 src/platform/src/{web => browser}/mod.rs | 0 src/platform/src/{web => browser}/state.rs | 0 src/platform/src/{web => browser}/watcher.rs | 20 ++++++------- .../src/{web => browser}/website_info.rs | 0 src/platform/src/events/foreground.rs | 24 ++++++++-------- src/platform/src/lib.rs | 4 +-- 17 files changed, 89 insertions(+), 83 deletions(-) rename src/platform/src/{web => browser}/detect.rs (100%) rename src/platform/src/{web => browser}/mod.rs (100%) rename src/platform/src/{web => browser}/state.rs (100%) rename src/platform/src/{web => browser}/watcher.rs (93%) rename src/platform/src/{web => browser}/website_info.rs (100%) diff --git a/dev/tools/src/bin/browser.rs b/dev/tools/src/bin/browser.rs index 96917ce6..c5148b83 100644 --- a/dev/tools/src/bin/browser.rs +++ b/dev/tools/src/bin/browser.rs @@ -1,7 +1,7 @@ //! List out browser information use clap::Parser; -use platform::web; +use platform::browser; use tools::filters::{ ProcessDetails, ProcessFilter, WindowDetails, WindowFilter, match_running_windows, }; @@ -61,7 +61,7 @@ async fn main() -> Result<()> { }, )?; - let detect = web::Detect::new()?; + let detect = browser::Detect::new()?; let mut browsers = vec![]; for window_group in window_group { @@ -74,10 +74,10 @@ async fn main() -> Result<()> { let url = detect.chromium_url(&element)?; let incognito = detect.chromium_incognito(&element)?; let (name, description) = if let Some(url) = &url { - let base_url = web::WebsiteInfo::url_to_base_url(url); - let website_info = web::WebsiteInfo::from_base_url(base_url.clone()) + let base_url = browser::WebsiteInfo::url_to_base_url(url); + let website_info = browser::WebsiteInfo::from_base_url(base_url.clone()) .await - .unwrap_or(web::WebsiteInfo::default_from_url(base_url)); + .unwrap_or(browser::WebsiteInfo::default_from_url(base_url)); (Some(website_info.name), Some(website_info.description)) } else { (None, None) diff --git a/dev/tools/src/bin/close_tab.rs b/dev/tools/src/bin/close_tab.rs index adc8a764..bab9fa75 100644 --- a/dev/tools/src/bin/close_tab.rs +++ b/dev/tools/src/bin/close_tab.rs @@ -3,7 +3,7 @@ use clap::Parser; use dialoguer::Select; use dialoguer::theme::ColorfulTheme; -use platform::web; +use platform::browser; use tools::filters::{ ProcessFilter, ProcessWindowGroup, WindowDetails, WindowFilter, match_running_windows, }; @@ -38,7 +38,7 @@ fn main() -> Result<()> { }, )?; - let detect = web::Detect::new()?; + let detect = browser::Detect::new()?; if let Some(details) = select_window(&matches)? { let element = detect.get_chromium_element(&details.window)?; detect.close_current_tab(&element)?; diff --git a/dev/tools/src/bin/driver_web_state.rs b/dev/tools/src/bin/driver_web_state.rs index ba432324..9a78ac8f 100644 --- a/dev/tools/src/bin/driver_web_state.rs +++ b/dev/tools/src/bin/driver_web_state.rs @@ -1,4 +1,4 @@ -//! Driver to poll the [web::State] as the engine is runningand save it to a file +//! Driver to poll the [browser::State] as the engine is runningand save it to a file use std::fs::File; use std::io::Write; @@ -7,8 +7,8 @@ use std::time::{Duration, UNIX_EPOCH}; use clap::Parser; use engine::desktop; +use platform::browser; use platform::objects::Window; -use platform::web; use serde::Serialize; use util::ds::SmallHashMap; use util::error::Result; @@ -42,7 +42,7 @@ fn main() -> Result<()> { let args = Args::parse(); - let web_state = web::default_state(); + let web_state = browser::default_state(); let desktop_state = desktop::new_desktop_state(web_state.clone()); let _web_state = web_state.clone(); @@ -62,11 +62,11 @@ fn main() -> Result<()> { struct Driver { current_state: WebStateSnapshot, - state: web::State, + state: browser::State, } impl Driver { - fn new(state: web::State) -> Self { + fn new(state: browser::State) -> Self { let current_state = WebStateSnapshot::from(&*state.blocking_read()); Self { state, @@ -105,8 +105,8 @@ struct WebStateSnapshot { // pub browser_processes: SmallHashSet, } -impl From<&web::StateInner> for WebStateSnapshot { - fn from(state: &web::StateInner) -> Self { +impl From<&browser::StateInner> for WebStateSnapshot { + fn from(state: &browser::StateInner) -> Self { Self { browser_windows: state .browser_windows diff --git a/dev/tools/src/bin/tab_switch.rs b/dev/tools/src/bin/tab_switch.rs index 189656fa..3382bc3a 100644 --- a/dev/tools/src/bin/tab_switch.rs +++ b/dev/tools/src/bin/tab_switch.rs @@ -2,8 +2,8 @@ use std::io::stdin; +use platform::browser; use platform::objects::Window; -use platform::web; use tools::filters::{ProcessFilter, WindowFilter, match_running_windows}; use util::error::Result; use util::tracing::info; @@ -41,7 +41,7 @@ mod tab_track_handler { _sender: windows_core::Ref<'_, IUIAutomationElement>, _eventid: UIA_EVENT_ID, ) -> windows::core::Result<()> { - let detect = web::Detect::new().expect("Failed to create browser detector"); + let detect = browser::Detect::new().expect("Failed to create browser detector"); let element = detect .get_chromium_element(&self.window) .expect("Failed to get Chromium element"); diff --git a/dev/tools/src/bin/tab_track.rs b/dev/tools/src/bin/tab_track.rs index 083d5147..5936c437 100644 --- a/dev/tools/src/bin/tab_track.rs +++ b/dev/tools/src/bin/tab_track.rs @@ -2,9 +2,9 @@ use std::sync::Mutex; +use platform::browser; use platform::events::WindowTitleWatcher; use platform::objects::{EventLoop, Target, Window}; -use platform::web; use tools::filters::{ProcessFilter, WindowFilter, match_running_windows}; use util::error::Result; // use util::tracing::info; @@ -18,12 +18,12 @@ use util::{Target as UtilTarget, config, future as tokio}; // } struct UnsafeSyncSendBrowserDetect { - detect: web::Detect, + detect: browser::Detect, } impl UnsafeSyncSendBrowserDetect { fn new() -> Result { - let detect = web::Detect::new()?; + let detect = browser::Detect::new()?; Ok(Self { detect }) } diff --git a/src/engine/src/desktop.rs b/src/engine/src/desktop.rs index cd39ad51..ca4518b4 100644 --- a/src/engine/src/desktop.rs +++ b/src/engine/src/desktop.rs @@ -3,9 +3,9 @@ use std::future::Future; use std::sync::Arc; use data::entities::{Alert, App, AppIdentity, Duration, Ref, Session, Timestamp}; +use platform::browser; use platform::events::{ForegroundWindowSessionInfo, WindowSession}; use platform::objects::{ProcessId, ProcessThreadId, Window}; -use platform::web; use scoped_futures::ScopedBoxFuture; use util::ds::{SmallHashMap, SmallHashSet}; use util::error::Result; @@ -31,7 +31,7 @@ pub struct DesktopStateInner { pub type DesktopState = Arc>; /// Create a new [DesktopState] -pub fn new_desktop_state(web_state: web::State) -> DesktopState { +pub fn new_desktop_state(web_state: browser::State) -> DesktopState { Arc::new(RwLock::new(DesktopStateInner::new(web_state))) } @@ -50,11 +50,11 @@ pub struct Store { #[derive(Debug)] pub struct WebsiteCache { // This never gets cleared, but it's ok since it's a small set of urls? - websites: HashMap, + websites: HashMap, // This never gets cleared, but it's ok since it's a small set of apps? - apps: HashMap, web::BaseWebsiteUrl>, + apps: HashMap, browser::BaseWebsiteUrl>, // Web state - state: web::State, + state: browser::State, } /// Cache for storing information about windows and processes @@ -187,7 +187,7 @@ pub enum KillableProcessId { impl DesktopStateInner { /// Create a new [Cache]. - pub fn new(web_state: web::State) -> Self { + pub fn new(web_state: browser::State) -> Self { Self { store: Store { sessions: HashMap::new(), @@ -250,7 +250,10 @@ impl DesktopStateInner { } /// Get the websites for an [App]. If the app is not a website, will return nothing. - pub fn websites_for_app(&self, app: &Ref) -> impl Iterator { + pub fn websites_for_app( + &self, + app: &Ref, + ) -> impl Iterator { self.web.apps.get(app).into_iter() } @@ -333,11 +336,11 @@ impl DesktopStateInner { Ok(self.store.apps.entry(ptid).or_insert(created)) } - /// Get or insert a [AppDetails] for a [web::BaseWebsiteUrl], using the create callback + /// Get or insert a [AppDetails] for a [browser::BaseWebsiteUrl], using the create callback /// to make a new [AppDetails] if not found. pub async fn get_or_insert_website_for_base_url>>( &mut self, - base_url: web::BaseWebsiteUrl, + base_url: browser::BaseWebsiteUrl, create: impl FnOnce(&mut Self) -> F, ) -> Result<&mut AppDetails> { if self.web.websites.contains_key(&base_url) { @@ -477,7 +480,7 @@ async fn inner_mut_compiles() { let window: Window = Window::foreground().unwrap(); let process = ProcessThreadId { pid: 1, tid: 1 }; - let web_state = web::default_state(); + let web_state = browser::default_state(); let mut desktop = DesktopStateInner::new(web_state); desktop diff --git a/src/engine/src/engine.rs b/src/engine/src/engine.rs index badee44c..413c2696 100644 --- a/src/engine/src/engine.rs +++ b/src/engine/src/engine.rs @@ -2,11 +2,11 @@ use data::db::{DatabasePool, FoundOrInserted, UsageWriter}; use data::entities::{ AppIdentity, InteractionPeriod, Ref, Session, SystemEvent as DataSystemEvent, Usage, }; +use platform::browser::{self, BaseWebsiteUrl, WebsiteInfo}; use platform::events::{ ForegroundChangedEvent, ForegroundWindowSessionInfo, InteractionChangedEvent, SystemStateEvent, }; use platform::objects::{Process, ProcessThreadId, SquirrelExe, Timestamp, Window}; -use platform::web::{self, BaseWebsiteUrl, WebsiteInfo}; use scoped_futures::ScopedFutureExt; use util::config::Config; use util::error::{Context, Result}; @@ -22,7 +22,7 @@ use crate::resolver::AppInfoResolver; pub struct Engine { desktop_state: DesktopState, config: Config, - web_state: web::State, + web_state: browser::State, current_usage: Usage, db_pool: DatabasePool, inserter: UsageWriter, @@ -55,7 +55,7 @@ pub struct EngineArgs { /// Desktop State pub desktop_state: DesktopState, /// Web State - pub web_state: web::State, + pub web_state: browser::State, /// Config pub config: Config, diff --git a/src/engine/src/lib.rs b/src/engine/src/lib.rs index 6bf6c2c6..20a756e8 100644 --- a/src/engine/src/lib.rs +++ b/src/engine/src/lib.rs @@ -10,6 +10,7 @@ use std::thread; use data::db::{AppUpdater, DatabasePool}; use engine::{Engine, Event}; +use platform::browser; use platform::events::{ ForegroundEventWatcher, ForegroundWindowSessionInfo, InteractionWatcher, InteractionWatcherHooks, SystemEventWatcher, @@ -17,7 +18,6 @@ use platform::events::{ use platform::objects::{ Duration, EventLoop, MessageWindow, SingleInstance, Timer, Timestamp, User, }; -use platform::web; use resolver::AppInfoResolver; use sentry::Sentry; use util::channels::{self, Receiver, Sender}; @@ -53,7 +53,7 @@ pub fn main() { let _instance = single_instance().expect("setup single instance"); - let web_state = web::default_state(); + let web_state = browser::default_state(); let desktop_state = desktop::new_desktop_state(web_state.clone()); if let Err(report) = run(&config, rt.handle().clone(), web_state, desktop_state) { @@ -98,7 +98,7 @@ fn setup() -> Result<(Config, Runtime)> { pub fn run( config: &Config, rt: Handle, - web_state: web::State, + web_state: browser::State, desktop_state: desktop::DesktopState, ) -> Result<()> { let (event_tx, event_rx) = channels::unbounded(); @@ -151,13 +151,13 @@ pub fn run( } struct EventLoopArgs { - web_state: web::State, + web_state: browser::State, config: Config, event_tx: Sender, alert_tx: Sender, - web_change_tx: Sender, + web_change_tx: Sender, session: ForegroundWindowSessionInfo, start: Timestamp, @@ -227,7 +227,7 @@ fn event_loop(args: EventLoopArgs) -> Result<()> { }), )?; - let mut web_watcher = web::Watcher::new(args.web_change_tx, args.web_state)?; + let mut web_watcher = browser::Watcher::new(args.web_change_tx, args.web_state)?; let dim_tick = Duration::from_millis(1000); let _web_tick_timer = Timer::new( @@ -258,10 +258,10 @@ async fn sentry_loop( config: Config, db_pool: DatabasePool, desktop_state: desktop::DesktopState, - web_state: web::State, + web_state: browser::State, spawner: Handle, alert_rx: Receiver, - web_change_rx: Receiver, + web_change_rx: Receiver, ) -> Result<()> { let db = db_pool.get_db().await?; let sentry = Arc::new(Mutex::new(Sentry::new( @@ -307,14 +307,14 @@ async fn sentry_loop( struct ProcessorArgs { desktop_state: desktop::DesktopState, - web_state: web::State, + web_state: browser::State, config: Config, rt: Handle, event_rx: Receiver, alert_rx: Receiver, - web_change_rx: Receiver, + web_change_rx: Receiver, session: ForegroundWindowSessionInfo, start: Timestamp, @@ -448,9 +448,9 @@ async fn update_app_infos(db_pool: DatabasePool, handle: Handle) -> Result<()> { /// Get the foreground [Window], and makes it into a [WindowSession] blocking until one is present. fn foreground_window_session( config: &Config, - web_state: web::State, + web_state: browser::State, ) -> Result { - let detect = web::Detect::new()?; + let detect = browser::Detect::new()?; loop { let session = ForegroundEventWatcher::foreground_window_session( &detect, @@ -470,9 +470,9 @@ fn foreground_window_session( /// Get the foreground [Window], and makes it into a [WindowSession] blocking until one is present. async fn foreground_window_session_async( config: &Config, - web_state: web::State, + web_state: browser::State, ) -> Result { - let detect = web::Detect::new()?; + let detect = browser::Detect::new()?; loop { let session = ForegroundEventWatcher::foreground_window_session( &detect, diff --git a/src/engine/src/resolver.rs b/src/engine/src/resolver.rs index e93914e7..786099ef 100644 --- a/src/engine/src/resolver.rs +++ b/src/engine/src/resolver.rs @@ -1,7 +1,7 @@ use data::db::{AppUpdater, DatabasePool}; use data::entities::{App, AppIdentity, Ref}; +use platform::browser::WebsiteInfo; use platform::objects::AppInfo; -use platform::web::WebsiteInfo; use util::error::Result; use util::time::{TimeSystem, ToTicks}; use util::tracing::{info, warn}; diff --git a/src/engine/src/sentry.rs b/src/engine/src/sentry.rs index 5fd14d30..cdd03c0e 100644 --- a/src/engine/src/sentry.rs +++ b/src/engine/src/sentry.rs @@ -4,8 +4,8 @@ use data::db::{AlertManager, Database, TriggeredAlert}; use data::entities::{ AlertEvent, App, Duration, Reason, Ref, ReminderEvent, Target, TriggerAction, }; +use platform::browser; use platform::objects::{Process, Progress, Timestamp as PlatformTimestamp, ToastManager, Window}; -use platform::web; use util::config::Config; use util::error::Result; use util::time::ToTicks; @@ -17,7 +17,7 @@ use crate::desktop::{DesktopState, DimRequest, DimStatus, KillableProcessId}; pub struct Sentry { config: Config, desktop_state: DesktopState, - web_state: web::State, + web_state: browser::State, mgr: AlertManager, // Invariant: the website_actions map is *wholly* updated. That is, run() executes // and updates this after clearing it with *all* alerts' websites. This is easily @@ -48,7 +48,7 @@ impl Sentry { pub fn new( config: Config, desktop_state: DesktopState, - web_state: web::State, + web_state: browser::State, db: Database, ) -> Result { let mgr = AlertManager::new(db)?; @@ -61,11 +61,11 @@ impl Sentry { }) } - /// Run Alert Actions for the browser window matching the given [web::Changed]. - pub async fn handle_web_change(&mut self, web_change: web::Changed) -> Result<()> { + /// Run Alert Actions for the browser window matching the given [browser::Changed]. + pub async fn handle_web_change(&mut self, web_change: browser::Changed) -> Result<()> { let now = PlatformTimestamp::now(); - let detect = web::Detect::new()?; - let web::Changed { + let detect = browser::Detect::new()?; + let browser::Changed { window, new_url, prev_url, @@ -82,8 +82,8 @@ impl Sentry { return Ok(()); } - let base_url = web::WebsiteInfo::url_to_base_url(&new_url).to_string(); - let prev_base_url = web::WebsiteInfo::url_to_base_url(&prev_url).to_string(); + let base_url = browser::WebsiteInfo::url_to_base_url(&new_url).to_string(); + let prev_base_url = browser::WebsiteInfo::url_to_base_url(&prev_url).to_string(); if let Some(action) = self.website_actions.get(&base_url) { match action { @@ -178,7 +178,7 @@ impl Sentry { return None; } - let base_url = web::WebsiteInfo::url_to_base_url(&state.last_url); + let base_url = browser::WebsiteInfo::url_to_base_url(&state.last_url); let Some(WebsiteAction::Dim(dim_status)) = self.website_actions.get(&base_url.to_string()) else { @@ -378,7 +378,10 @@ impl Sentry { async fn processes_and_websites_for_target( &mut self, target: &Target, - ) -> Result<(Vec<(Ref, KillableProcessId)>, Vec)> { + ) -> Result<( + Vec<(Ref, KillableProcessId)>, + Vec, + )> { let target_apps = self.mgr.target_apps(target).await?; let desktop_state = self.desktop_state.read().await; @@ -410,7 +413,7 @@ impl Sentry { async fn windows_and_websites_for_target( &mut self, target: &Target, - ) -> Result<(Vec, Vec)> { + ) -> Result<(Vec, Vec)> { let target_apps = self.mgr.target_apps(target).await?; let desktop_state = self.desktop_state.read().await; diff --git a/src/platform/src/web/detect.rs b/src/platform/src/browser/detect.rs similarity index 100% rename from src/platform/src/web/detect.rs rename to src/platform/src/browser/detect.rs diff --git a/src/platform/src/web/mod.rs b/src/platform/src/browser/mod.rs similarity index 100% rename from src/platform/src/web/mod.rs rename to src/platform/src/browser/mod.rs diff --git a/src/platform/src/web/state.rs b/src/platform/src/browser/state.rs similarity index 100% rename from src/platform/src/web/state.rs rename to src/platform/src/browser/state.rs diff --git a/src/platform/src/web/watcher.rs b/src/platform/src/browser/watcher.rs similarity index 93% rename from src/platform/src/web/watcher.rs rename to src/platform/src/browser/watcher.rs index 818fcf9d..98c89632 100644 --- a/src/platform/src/web/watcher.rs +++ b/src/platform/src/browser/watcher.rs @@ -9,9 +9,9 @@ use windows::Win32::UI::Accessibility::{ UIA_ValueValuePropertyId, }; +use crate::browser::{self, perf}; use crate::events::{PropertyChange, WindowTitleWatcher}; use crate::objects::{ProcessId, Target, Window}; -use crate::web::{self, perf}; /// Watches a browser (by PID) for tab changes. Changes should be reported as fast as possible. pub struct Watcher { @@ -36,14 +36,14 @@ pub struct Changed { impl Watcher { /// Create a new [Watcher]. tick() needs to be called at least once to start watching. - pub fn new(web_change_tx: Sender, web_state: web::State) -> Result { + pub fn new(web_change_tx: Sender, web_state: browser::State) -> Result { Ok(Self { processes: SmallHashMap::new(), windows: SmallHashMap::new(), args: Args { web_state, - detect: web::Detect::new()?, + detect: browser::Detect::new()?, reentrancy: Arc::new(Mutex::new(())), web_change_tx, }, @@ -94,7 +94,7 @@ impl Watcher { fn update_browser_windows( &mut self, - windows: SmallHashMap, + windows: SmallHashMap, ) -> Result<()> { // Remove any browsers that are no longer in the list self.windows @@ -156,7 +156,7 @@ impl Watcher { fn omnibox_text_change_callback( window: Window, value: String, - extracted_elements: web::ExtractedUIElements, + extracted_elements: browser::ExtractedUIElements, args: Args, ) -> Result<()> { Self::central_callback(window, Some(value), extracted_elements, args) @@ -166,7 +166,7 @@ impl Watcher { fn central_callback( window: Window, url: Option, - extracted_elements: web::ExtractedUIElements, + extracted_elements: browser::ExtractedUIElements, args: Args, ) -> Result<()> { let _guard = args.reentrancy.lock().expect("reentrancy lock poisoned"); @@ -208,9 +208,9 @@ impl Watcher { )? .to_string(); - let is_http_hint = web::Detect::is_http_hint_from_icon_text(&icon_text); + let is_http_hint = browser::Detect::is_http_hint_from_icon_text(&icon_text); debug!(?url, ?icon_text, "tab changed"); - web::Detect::unelide_omnibox_text(url, is_http_hint) + browser::Detect::unelide_omnibox_text(url, is_http_hint) } else { // Or fetch the url from the document element. // TODO: backon retries + timeout to restack + use rt spawn_blocking + throttle @@ -251,8 +251,8 @@ impl Watcher { #[derive(Clone)] struct Args { - web_state: web::State, - detect: web::Detect, + web_state: browser::State, + detect: browser::Detect, reentrancy: Arc>, web_change_tx: Sender, diff --git a/src/platform/src/web/website_info.rs b/src/platform/src/browser/website_info.rs similarity index 100% rename from src/platform/src/web/website_info.rs rename to src/platform/src/browser/website_info.rs diff --git a/src/platform/src/events/foreground.rs b/src/platform/src/events/foreground.rs index b6604ddb..84e03e1f 100644 --- a/src/platform/src/events/foreground.rs +++ b/src/platform/src/events/foreground.rs @@ -4,15 +4,15 @@ use util::tracing::ResultTraceExt; use windows::Win32::UI::Accessibility::UIA_WindowControlTypeId; use windows::core::AgileReference; +use crate::browser; use crate::objects::{Process, Timestamp, Window}; -use crate::web; /// Watches for foreground window changes, including session (title) changes pub struct ForegroundEventWatcher { session: WindowSession, - detect: web::Detect, + detect: browser::Detect, track_incognito: bool, - web_state: web::State, + web_state: browser::State, } /// Foreground window session change event. @@ -45,8 +45,8 @@ pub struct WindowSession { impl ForegroundEventWatcher { /// Create a new [WindowSession] with the starting [WindowSession]. - pub fn new(session: WindowSession, config: &Config, web_state: web::State) -> Result { - let detect = web::Detect::new()?; + pub fn new(session: WindowSession, config: &Config, web_state: browser::State) -> Result { + let detect = browser::Detect::new()?; Ok(Self { session, detect, @@ -72,8 +72,8 @@ impl ForegroundEventWatcher { /// Get the foreground window session. pub fn foreground_window_session( - detect: &web::Detect, - web_state: web::WriteLockedState<'_>, + detect: &browser::Detect, + web_state: browser::WriteLockedState<'_>, track_incognito: bool, ) -> Result> { if let Some(window) = Window::foreground() { @@ -101,9 +101,9 @@ impl ForegroundEventWatcher { fn browser_window_session( window: &Window, - detect: &web::Detect, - mut web_state: web::WriteLockedState<'_>, - ) -> Result<(Option, Option)> { + detect: &browser::Detect, + mut web_state: browser::WriteLockedState<'_>, + ) -> Result<(Option, Option)> { let state = web_state.browser_windows.get(window); if let Some(state) = state { // We know already if it's a browser or not @@ -157,12 +157,12 @@ impl ForegroundEventWatcher { .context("no element")?; let last_title = window.title()?; - let extracted_elements = web::ExtractedUIElements { + let extracted_elements = browser::ExtractedUIElements { window_element: AgileReference::new(&window_element)?, omnibox: AgileReference::new(&omnibox)?, omnibox_icon: AgileReference::new(&omnibox_icon)?, }; - Some(web::BrowserWindowState { + Some(browser::BrowserWindowState { extracted_elements, is_incognito, last_url, diff --git a/src/platform/src/lib.rs b/src/platform/src/lib.rs index ec1fc80c..e5ef9e36 100644 --- a/src/platform/src/lib.rs +++ b/src/platform/src/lib.rs @@ -1,13 +1,13 @@ //! Desktop Platform interactions +/// Website/Browser Platform +pub mod browser; mod buf; mod error; /// Events generated by the Platform pub mod events; /// Objects in the Platform pub mod objects; -/// Website/Browser Platform -pub mod web; use util::error::{Context, Result}; use windows::Win32::System::Com::{COINIT_APARTMENTTHREADED, COINIT_MULTITHREADED, CoInitializeEx};