Skip to content

Commit 5c5d8f8

Browse files
authored
refactor(tauri): rename init_script to initialization_script (#1200)
1 parent 2c640ec commit 5c5d8f8

File tree

3 files changed

+30
-17
lines changed

3 files changed

+30
-17
lines changed
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"tauri": minor
3+
---
4+
5+
Renamed the `Plugin` trait `init_script` to `initialization_script`.

tauri/src/app/runner.rs

+10-9
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ fn spawn_updater() {
209209
});
210210
}
211211

212-
pub fn init() -> String {
212+
pub fn event_initialization_script() -> String {
213213
#[cfg(not(event))]
214214
return String::from("");
215215
#[cfg(event)]
@@ -273,22 +273,23 @@ fn build_webview<A: ApplicationExt + 'static>(
273273
_ => content_url.to_string(),
274274
};
275275

276-
let init = format!(
276+
let initialization_script = format!(
277277
r#"
278-
{tauri_init}
279-
{event_init}
278+
{tauri_initialization_script}
279+
{event_initialization_script}
280280
if (window.__TAURI_INVOKE_HANDLER__) {{
281281
window.__TAURI_INVOKE_HANDLER__(JSON.stringify({{ cmd: "__initialized" }}))
282282
}} else {{
283283
window.addEventListener('DOMContentLoaded', function () {{
284284
window.__TAURI_INVOKE_HANDLER__(JSON.stringify({{ cmd: "__initialized" }}))
285285
}})
286286
}}
287-
{plugin_init}
287+
{plugin_initialization_script}
288288
"#,
289-
tauri_init = application.context.tauri_script,
290-
event_init = init(),
291-
plugin_init = crate::async_runtime::block_on(crate::plugin::init_script(A::plugin_store()))
289+
tauri_initialization_script = application.context.tauri_script,
290+
event_initialization_script = event_initialization_script(),
291+
plugin_initialization_script =
292+
crate::async_runtime::block_on(crate::plugin::initialization_script(A::plugin_store()))
292293
);
293294

294295
let application = Arc::new(application);
@@ -370,7 +371,7 @@ fn build_webview<A: ApplicationExt + 'static>(
370371
webview_application.create_webview(
371372
A::WebviewBuilder::new()
372373
.url(url)
373-
.initialization_script(&init),
374+
.initialization_script(&initialization_script),
374375
main_window,
375376
vec![tauri_invoke_handler],
376377
)?;

tauri/src/plugin.rs

+15-8
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,12 @@ pub trait Plugin<D: ApplicationDispatcherExt + 'static>: Send + Sync {
3939
Ok(())
4040
}
4141

42-
/// The JS script to evaluate on init.
43-
async fn init_script(&self) -> Option<String> {
42+
/// The JS script to evaluate on webview initialization.
43+
/// The script is wrapped into its own context with `(function () { /* your script here */ })();`,
44+
/// so global variables must be assigned to `window` instead of implicity declared.
45+
///
46+
/// It's guaranteed that this script is executed before the page is loaded.
47+
async fn initialization_script(&self) -> Option<String> {
4448
None
4549
}
4650

@@ -89,22 +93,25 @@ pub(crate) async fn initialize<D: ApplicationDispatcherExt + 'static>(
8993
Ok(())
9094
}
9195

92-
pub(crate) async fn init_script<D: ApplicationDispatcherExt + 'static>(
96+
pub(crate) async fn initialization_script<D: ApplicationDispatcherExt + 'static>(
9397
store: &PluginStore<D>,
9498
) -> String {
9599
let mut plugins = store.lock().await;
96100
let mut futures = Vec::new();
97101
for plugin in plugins.iter_mut() {
98-
futures.push(plugin.init_script());
102+
futures.push(plugin.initialization_script());
99103
}
100104

101-
let mut init = String::new();
105+
let mut initialization_script = String::new();
102106
for res in join_all(futures).await {
103-
if let Some(init_script) = res {
104-
init.push_str(&format!("(function () {{ {} }})();", init_script));
107+
if let Some(plugin_initialization_script) = res {
108+
initialization_script.push_str(&format!(
109+
"(function () {{ {} }})();",
110+
plugin_initialization_script
111+
));
105112
}
106113
}
107-
init
114+
initialization_script
108115
}
109116

110117
pub(crate) async fn created<D: ApplicationDispatcherExt + 'static>(

0 commit comments

Comments
 (0)