mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-09-24 21:40:48 +02:00
Revert "fix(notification/windows): Grant permission without invoking backend"
This reverts commit 4c120d4176.
This commit is contained in:
@@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
notification: patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fixed an issue that caused the `notification` plugin's initialization script to cause the WebView on Windows to throw a `STATUS_ACCESS_VIOLATION` error on remote websites.
|
|
||||||
@@ -10,17 +10,16 @@ import type { Options } from "./index";
|
|||||||
let permissionValue = "default";
|
let permissionValue = "default";
|
||||||
|
|
||||||
async function isPermissionGranted(): Promise<boolean> {
|
async function isPermissionGranted(): Promise<boolean> {
|
||||||
// @ts-expect-error __TEMPLATE_windows__ will be replaced in rust before it's injected.
|
if (window.Notification.permission !== "default") {
|
||||||
if (window.Notification.permission !== "default" || __TEMPLATE_windows__) {
|
|
||||||
return await Promise.resolve(
|
return await Promise.resolve(
|
||||||
window.Notification.permission === "granted"
|
window.Notification.permission === "granted",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return await invoke("plugin:notification|is_permission_granted");
|
return await invoke("plugin:notification|is_permission_granted");
|
||||||
}
|
}
|
||||||
|
|
||||||
function setNotificationPermission(
|
function setNotificationPermission(
|
||||||
value: "granted" | "denied" | "default"
|
value: "granted" | "denied" | "default",
|
||||||
): void {
|
): void {
|
||||||
permissionSettable = true;
|
permissionSettable = true;
|
||||||
// @ts-expect-error we can actually set this value on the webview
|
// @ts-expect-error we can actually set this value on the webview
|
||||||
@@ -32,10 +31,10 @@ import type { Options } from "./index";
|
|||||||
"default" | "denied" | "granted" | "prompt"
|
"default" | "denied" | "granted" | "prompt"
|
||||||
> {
|
> {
|
||||||
return await invoke<"prompt" | "default" | "granted" | "denied">(
|
return await invoke<"prompt" | "default" | "granted" | "denied">(
|
||||||
"plugin:notification|request_permission"
|
"plugin:notification|request_permission",
|
||||||
).then((permission) => {
|
).then((permission) => {
|
||||||
setNotificationPermission(
|
setNotificationPermission(
|
||||||
permission === "prompt" ? "default" : permission
|
permission === "prompt" ? "default" : permission,
|
||||||
);
|
);
|
||||||
return permission;
|
return permission;
|
||||||
});
|
});
|
||||||
@@ -65,7 +64,7 @@ import type { Options } from "./index";
|
|||||||
Object.assign(opts, {
|
Object.assign(opts, {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||||
title,
|
title,
|
||||||
})
|
}),
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
!function(){"use strict";async function i(i,n={},t){return window.__TAURI_INTERNALS__.invoke(i,n,t)}"function"==typeof SuppressedError&&SuppressedError,function(){let n=!1,t="default";function o(i){n=!0,window.Notification.permission=i,n=!1}window.Notification=function(n,t){const o=t||{};!async function(n){"object"==typeof n&&Object.freeze(n),await i("plugin:notification|notify",{options:"string"==typeof n?{title:n}:n})}(Object.assign(o,{title:n}))},window.Notification.requestPermission=async function(){return await i("plugin:notification|request_permission").then((i=>(o("prompt"===i?"default":i),i)))},Object.defineProperty(window.Notification,"permission",{enumerable:!0,get:()=>t,set:i=>{if(!n)throw new Error("Readonly property");t=i}}),async function(){return"default"!==window.Notification.permission||__TEMPLATE_windows__?await Promise.resolve("granted"===window.Notification.permission):await i("plugin:notification|is_permission_granted")}().then((function(i){o(null===i?"default":i?"granted":"denied")}))}()}();
|
!function(){"use strict";async function i(i,n={},t){return window.__TAURI_INTERNALS__.invoke(i,n,t)}"function"==typeof SuppressedError&&SuppressedError,function(){let n=!1,t="default";function o(i){n=!0,window.Notification.permission=i,n=!1}window.Notification=function(n,t){const o=t||{};!async function(n){"object"==typeof n&&Object.freeze(n),await i("plugin:notification|notify",{options:"string"==typeof n?{title:n}:n})}(Object.assign(o,{title:n}))},window.Notification.requestPermission=async function(){return await i("plugin:notification|request_permission").then((i=>(o("prompt"===i?"default":i),i)))},Object.defineProperty(window.Notification,"permission",{enumerable:!0,get:()=>t,set:i=>{if(!n)throw new Error("Readonly property");t=i}}),async function(){return"default"!==window.Notification.permission?await Promise.resolve("granted"===window.Notification.permission):await i("plugin:notification|is_permission_granted")}().then((function(i){o(null===i?"default":i?"granted":"denied")}))}()}();
|
||||||
|
|||||||
@@ -227,10 +227,7 @@ pub fn init<R: Runtime>() -> TauriPlugin<R> {
|
|||||||
commands::request_permission,
|
commands::request_permission,
|
||||||
commands::is_permission_granted
|
commands::is_permission_granted
|
||||||
])
|
])
|
||||||
.js_init_script(include_str!("init-iife.js").replace(
|
.js_init_script(include_str!("init-iife.js").to_string())
|
||||||
"__TEMPLATE_windows__",
|
|
||||||
if cfg!(windows) { "true" } else { "false" },
|
|
||||||
))
|
|
||||||
.setup(|app, api| {
|
.setup(|app, api| {
|
||||||
#[cfg(mobile)]
|
#[cfg(mobile)]
|
||||||
let notification = mobile::init(app, api)?;
|
let notification = mobile::init(app, api)?;
|
||||||
|
|||||||
Reference in New Issue
Block a user