mirror of
https://github.com/tauri-apps/plugins-workspace.git
synced 2026-04-21 11:26:15 +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";
|
||||
|
||||
async function isPermissionGranted(): Promise<boolean> {
|
||||
// @ts-expect-error __TEMPLATE_windows__ will be replaced in rust before it's injected.
|
||||
if (window.Notification.permission !== "default" || __TEMPLATE_windows__) {
|
||||
if (window.Notification.permission !== "default") {
|
||||
return await Promise.resolve(
|
||||
window.Notification.permission === "granted"
|
||||
window.Notification.permission === "granted",
|
||||
);
|
||||
}
|
||||
return await invoke("plugin:notification|is_permission_granted");
|
||||
}
|
||||
|
||||
function setNotificationPermission(
|
||||
value: "granted" | "denied" | "default"
|
||||
value: "granted" | "denied" | "default",
|
||||
): void {
|
||||
permissionSettable = true;
|
||||
// @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"
|
||||
> {
|
||||
return await invoke<"prompt" | "default" | "granted" | "denied">(
|
||||
"plugin:notification|request_permission"
|
||||
"plugin:notification|request_permission",
|
||||
).then((permission) => {
|
||||
setNotificationPermission(
|
||||
permission === "prompt" ? "default" : permission
|
||||
permission === "prompt" ? "default" : permission,
|
||||
);
|
||||
return permission;
|
||||
});
|
||||
@@ -65,7 +64,7 @@ import type { Options } from "./index";
|
||||
Object.assign(opts, {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
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::is_permission_granted
|
||||
])
|
||||
.js_init_script(include_str!("init-iife.js").replace(
|
||||
"__TEMPLATE_windows__",
|
||||
if cfg!(windows) { "true" } else { "false" },
|
||||
))
|
||||
.js_init_script(include_str!("init-iife.js").to_string())
|
||||
.setup(|app, api| {
|
||||
#[cfg(mobile)]
|
||||
let notification = mobile::init(app, api)?;
|
||||
|
||||
Reference in New Issue
Block a user