From: SangYong Park Date: Tue, 12 May 2020 01:05:54 +0000 (+0900) Subject: Prevent multiple notification permission popup X-Git-Tag: submit/tizen_5.5/20200717.032452^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Faccepted%2Ftizen_5.5_unified;p=platform%2Fframework%2Fweb%2Fwrtjs.git Prevent multiple notification permission popup Keep previous user choice of notification permmision in memory. and, use it when notification permision is requested. Change-Id: I7413fef73e0f2bf5eca0ced20de0f508435ee592 Signed-off-by: SangYong Park --- diff --git a/wrt_app/src/web_application.js b/wrt_app/src/web_application.js index b2ed8232..1c7635c3 100755 --- a/wrt_app/src/web_application.js +++ b/wrt_app/src/web_application.js @@ -79,9 +79,18 @@ class WebApplication { webContents.session.setPermissionRequestHandler(function(webContents, permission, callback) { console.log(`handlePermissionRequests for ${permission}`); if (permission === 'notifications') { + if (!self.notificationPermissionMap) + self.notificationPermissionMap = new Map(); + else if (self.notificationPermissionMap.has(webContents)) { + process.nextTick(callback, self.notificationPermissionMap.get(webContents)); + return; + } const id = ++self.pendingID; console.log(`Raising a notification permission request with id: ${id}`); - self.pendingCallbacks.set(id, callback); + self.pendingCallbacks.set(id, (result) => { + self.notificationPermissionMap.set(webContents, result); + callback(result); + }); wrt.handleNotificationPermissionRequest(id, webContents); } else if (permission === 'media') { const id = ++self.pendingID;