Add site compatibility diagnostics page

This commit is contained in:
2026-05-09 01:43:10 -04:00
parent fb6677aec2
commit b3907f42a8
5 changed files with 479 additions and 4 deletions
+15 -1
View File
@@ -23,6 +23,7 @@ fn internal_page_title(url: &str) -> Option<&'static str> {
"ely://history" => Some("History"),
"ely://archive" => Some("Archived Tabs"),
"ely://task-manager" => Some("Task Manager"),
"ely://site-compatibility" => Some("Site Compatibility"),
"ely://plugins" => Some("Plugin Marketplace"),
url if crash_route_tab_id(url).is_some() => Some("Tab Recovery"),
url if plugin_detail_route_id(url).is_some() => Some("Plugin Details"),
@@ -198,6 +199,10 @@ pub(crate) fn task_manager_url() -> Result<UrlText, CoreError> {
internal_page_url("ely://task-manager")
}
pub(crate) fn site_compatibility_url() -> Result<UrlText, CoreError> {
internal_page_url("ely://site-compatibility")
}
pub(crate) fn plugins_url() -> Result<UrlText, CoreError> {
internal_page_url("ely://plugins")
}
@@ -263,13 +268,22 @@ const SETTINGS_ROUTE_MATCHES: &[SettingsRouteMatch] = &[
},
SettingsRouteMatch {
route: "ely://settings/advanced",
exact_terms: &["advanced", "advanced settings", "runtime", "diagnostics", "diagnostic"],
exact_terms: &[
"advanced",
"advanced settings",
"runtime",
"diagnostics",
"diagnostic",
"compatibility",
"site compatibility",
],
search_terms: &[
"Advanced",
"Local runtime policies and audit counters.",
"runtime policy",
"audit counters",
"diagnostics",
"site compatibility",
],
},
SettingsRouteMatch {
+14 -3
View File
@@ -11,9 +11,9 @@ use crate::{
move_tab_space_name, new_private_profile_name, new_profile_name, new_space_name, note_body,
notes_url, plugin_detail_url, plugin_settings_url, plugins_url, reading_list_url,
reading_progress_percent, rename_tab_group_name, search_url, settings_page_url,
settings_url, shortcut_settings_url, space_icon, space_settings_url, split_group_name,
switch_profile_name, sync_status_url, tab_group_color_hex, tab_group_name, tab_note_body,
task_manager_url,
settings_url, shortcut_settings_url, site_compatibility_url, space_icon,
space_settings_url, split_group_name, switch_profile_name, sync_status_url,
tab_group_color_hex, tab_group_name, tab_note_body, task_manager_url,
},
};
@@ -267,6 +267,17 @@ impl BrowserCore {
self.open_tab(task_manager_url()?);
Ok(true)
}
"site-compatibility"
| "site compatibility"
| "open-site-compatibility"
| "open site compatibility"
| "compatibility"
| "diagnostics"
| "site-diagnostics"
| "site diagnostics" => {
self.open_tab(site_compatibility_url()?);
Ok(true)
}
"plugins"
| "open-plugins"
| "open plugins"
@@ -0,0 +1,19 @@
use std::error::Error;
use ely_browser_core::{BrowserCore, InitialBrowserConfig};
use ely_domain::CommandIntent;
#[test]
fn open_site_compatibility_command_opens_diagnostics_page() -> Result<(), Box<dyn Error>> {
let mut core = BrowserCore::new(InitialBrowserConfig::ely_defaults()?)?;
core.set_command_query(">open-site-compatibility");
let intent = core.submit_command()?;
let active_tab = core.active_tab()?;
assert_eq!(intent, Some(CommandIntent::Command("open-site-compatibility".to_string())));
assert_eq!(active_tab.title(), "Site Compatibility");
assert_eq!(active_tab.url().as_str(), "ely://site-compatibility");
assert_eq!(core.snapshot()?.command_query, "");
Ok(())
}