…lines 1–18 unchanged (18 lines)
19 html::{SCRIPT_NONCE_TOKEN, STYLE_NONCE_TOKEN},
20};
21
22use crate::{
23 app::{AppHandle, GlobalWebviewEventListener, GlobalWindowEventListener, OnPageLoad},
24 event::{assert_event_name_is_valid, Event, EventId, EventTarget, Listeners},
25 ipc::{Invoke, InvokeHandler, InvokeResponder, RuntimeAuthority},
26 plugin::PluginStore,
27 utils::{config::Config, PackageInfo},
28 Assets, Context, Pattern, Runtime, StateManager, Window,
29};
30use crate::{event::EmitArgs, resources::ResourceTable, Webview};
31
…lines 32–250 unchanged (219 lines)
251 window_event_listeners: Vec<GlobalWindowEventListener<R>>,
252 webiew_event_listeners: Vec<GlobalWebviewEventListener<R>>,
253 #[cfg(desktop)] window_menu_event_listeners: HashMap<
254 String,
255 crate::app::GlobalMenuEventListener<Window<R>>,
256 >,
257 (invoke_responder, invoke_initialization_script): (Option<Arc<InvokeResponder<R>>>, String),
258 invoke_key: String,
259 ) -> Self {
260 // generate a random isolation key at runtime
261 #[cfg(feature = "isolation")]
262 if let Pattern::Isolation { ref mut key, .. } = &mut context.pattern {
263 *key = uuid::Uuid::new_v4().to_string();
…lines 264–272 unchanged (9 lines)
273 webview: webview::WebviewManager {
274 webviews: Mutex::default(),
275 invoke_handler,
276 on_page_load,
277 uri_scheme_protocols: Mutex::new(uri_scheme_protocols),
278 event_listeners: Arc::new(webiew_event_listeners),
279 invoke_responder,
280 invoke_initialization_script,
281 invoke_key: invoke_key.clone(),
282 },
283 #[cfg(all(desktop, feature = "tray-icon"))]
284 tray: tray::TrayManager {
285 icon: context.tray_icon,
…lines 286–727 unchanged (442 lines)
728 None,
729 Default::default(),
730 StateManager::new(),
731 Default::default(),
732 Default::default(),
733 Default::default(),
734 (None, "".into()),
735 crate::generate_invoke_key().unwrap(),
736 );
737
738 #[cfg(custom_protocol)]
739 {
740 assert_eq!(
…lines 741–984 unchanged (244 lines)