perf(web-surface): avoid snapshot clones on live ticks

This commit is contained in:
2026-05-16 01:41:42 -04:00
parent 42dc9af66c
commit e442e6def4
5 changed files with 94 additions and 68 deletions
@@ -1,3 +1,5 @@
use ely_browser_core::BrowserCore;
#[cfg(test)]
use ely_browser_core::BrowserSnapshot;
use ely_domain::{BrowserTab, SiteOrigin, SitePermissionDecision, SitePermissionFeature};
@@ -30,6 +32,7 @@ impl WebSurfaceSitePermission {
}
}
#[cfg(test)]
pub(super) fn web_surface_site_permissions_for_tab(
tab: &BrowserTab,
snapshot: &BrowserSnapshot,
@@ -49,6 +52,22 @@ pub(super) fn web_surface_site_permissions_for_tab(
.collect()
}
pub(super) fn web_surface_site_permissions_for_core_tab(
core: &BrowserCore,
tab: &BrowserTab,
) -> Vec<WebSurfaceSitePermission> {
let Ok(Some(origin)) = SiteOrigin::from_url(tab.url()) else {
return Vec::new();
};
core.site_permissions_for_profile_origin(tab.profile_id(), &origin)
.into_iter()
.map(|entry| {
WebSurfaceSitePermission::new(entry.origin().clone(), entry.feature(), entry.decision())
})
.collect()
}
#[cfg(test)]
mod tests {
use std::error::Error;