gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated: testing header listener #2


From: gnunet
Subject: [taler-wallet-core] branch master updated: testing header listener #2
Date: Fri, 15 Dec 2023 11:28:08 +0100

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository wallet-core.

The following commit(s) were added to refs/heads/master by this push:
     new 5486a26da testing header listener #2
5486a26da is described below

commit 5486a26dafadc3af3dc7e0864abe55e2a5893a1b
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Fri Dec 15 07:28:00 2023 -0300

    testing header listener #2
---
 .../taler-wallet-webextension/manifest-v2.json     | 22 ++++--
 .../src/platform/chrome.ts                         | 91 ++++++++++++----------
 .../src/platform/firefox.ts                        |  2 +-
 3 files changed, 64 insertions(+), 51 deletions(-)

diff --git a/packages/taler-wallet-webextension/manifest-v2.json 
b/packages/taler-wallet-webextension/manifest-v2.json
index 4717b1ab0..3475cd8aa 100644
--- a/packages/taler-wallet-webextension/manifest-v2.json
+++ b/packages/taler-wallet-webextension/manifest-v2.json
@@ -19,11 +19,9 @@
     "unlimitedStorage",
     "storage",
     "webRequest",
+    "<all_urls>",
     "activeTab"
   ],
-  "host_permissions": [
-    "<all_urls>"
-  ],
   "web_accessible_resources": [
     "static/wallet.html",
     "dist/taler-wallet-interaction-loader.js.map",
@@ -31,11 +29,19 @@
     "dist/taler-wallet-interaction-support.js.map",
     "dist/taler-wallet-interaction-support.js"
   ],
-  "content_scripts": [{
-    "matches": ["file://*/*", "http://*/*";, "https://*/*";],
-    "js": ["dist/taler-wallet-interaction-loader.js"],
-    "run_at": "document_start"
-  }],
+  "content_scripts": [
+    {
+      "matches": [
+        "file://*/*",
+        "http://*/*";,
+        "https://*/*";
+      ],
+      "js": [
+        "dist/taler-wallet-interaction-loader.js"
+      ],
+      "run_at": "document_start"
+    }
+  ],
   "protocol_handlers": [
     {
       "protocol": "ext+taler+http",
diff --git a/packages/taler-wallet-webextension/src/platform/chrome.ts 
b/packages/taler-wallet-webextension/src/platform/chrome.ts
index 7f384f7d4..20cf54035 100644
--- a/packages/taler-wallet-webextension/src/platform/chrome.ts
+++ b/packages/taler-wallet-webextension/src/platform/chrome.ts
@@ -728,19 +728,21 @@ type HeaderListenerFunc = (
 ) => void;
 let currentHeaderListener: HeaderListenerFunc | undefined = undefined;
 
-type TabListenerFunc = (tabId: number, info: chrome.tabs.TabChangeInfo) => 
void;
-let currentTabListener: TabListenerFunc | undefined = undefined;
+// type TabListenerFunc = (tabId: number, info: chrome.tabs.TabChangeInfo) => 
void;
+// let currentTabListener: TabListenerFunc | undefined = undefined;
 
 
 function containsTalerHeaderListener(): boolean {
   return (
-    currentHeaderListener !== undefined || currentTabListener !== undefined
+    currentHeaderListener !== undefined
+    // || currentTabListener !== undefined
   );
 }
 
 function headerListener(
   details: chrome.webRequest.WebResponseHeadersDetails,
 ): chrome.webRequest.BlockingResponse | undefined {
+  logger.info("header listener run", details.statusCode, 
chrome.runtime.lastError)
   if (chrome.runtime.lastError) {
     logger.error(JSON.stringify(chrome.runtime.lastError));
     return;
@@ -784,20 +786,24 @@ function parseTalerUriAndRedirect(tabId: number, 
maybeTalerUri: string): void {
   );
 }
 
-async function tabListener(
-  tabId: number,
-  info: chrome.tabs.TabChangeInfo,
-): Promise<void> {
-  if (tabId < 0) return;
-  const tabLocationHasBeenUpdated = info.status === "complete";
-  const tabTitleHasBeenUpdated = info.title !== undefined;
-  if (tabLocationHasBeenUpdated || tabTitleHasBeenUpdated) {
-    const uri = await findTalerUriInTab(tabId);
-    if (!uri) return;
-    logger.info(`Found a Taler URI in the tab ${tabId}`);
-    parseTalerUriAndRedirect(tabId, uri);
-  }
-}
+/**
+ * Not needed anymore since SPA use taler support
+ */
+
+// async function tabListener(
+//   tabId: number,
+//   info: chrome.tabs.TabChangeInfo,
+// ): Promise<void> {
+//   if (tabId < 0) return;
+//   const tabLocationHasBeenUpdated = info.status === "complete";
+//   const tabTitleHasBeenUpdated = info.title !== undefined;
+//   if (tabLocationHasBeenUpdated || tabTitleHasBeenUpdated) {
+//     const uri = await findTalerUriInTab(tabId);
+//     if (!uri) return;
+//     logger.info(`Found a Taler URI in the tab ${tabId}`);
+//     parseTalerUriAndRedirect(tabId, uri);
+//   }
+// }
 
 /**
  * unused, declarative redirect is not good enough
@@ -832,35 +838,36 @@ function registerTalerHeaderListener(): void {
   logger.info("setting up header listener");
 
   const prevHeaderListener = currentHeaderListener;
-  const prevTabListener = currentTabListener;
+  // const prevTabListener = currentTabListener;
 
   if (
     prevHeaderListener &&
     chrome?.webRequest?.onHeadersReceived?.hasListener(prevHeaderListener)
   ) {
-    console.log("removming on header listener")
-    chrome.webRequest.onHeadersReceived.removeListener(prevHeaderListener);
+    return;
+    // console.log("removming on header listener")
+    // chrome.webRequest.onHeadersReceived.removeListener(prevHeaderListener);
     // chrome.webRequest.onCompleted.removeListener(prevHeaderListener);
     // chrome.webRequest.onResponseStarted.removeListener(prevHeaderListener);
     // chrome.webRequest.onErrorOccurred.removeListener(prevHeaderListener);
   }
-  if (
-    prevTabListener &&
-    chrome?.tabs?.onUpdated?.hasListener(prevTabListener)
-  ) {
-    console.log("removming on tab listener")
-    chrome.tabs.onUpdated.removeListener(prevTabListener);
-  }
+
+  // if (
+  //   prevTabListener &&
+  //   chrome?.tabs?.onUpdated?.hasListener(prevTabListener)
+  // ) {
+  //   console.log("removming on tab listener")
+  //   chrome.tabs.onUpdated.removeListener(prevTabListener);
+  // }
 
   console.log("headers on, disabled:", chrome?.webRequest?.onHeadersReceived 
=== undefined)
   if (chrome?.webRequest) {
     if (extensionIsManifestV3()) {
       chrome.webRequest.onHeadersReceived.addListener(headerListener,
         { urls: ["<all_urls>"] },
-        ["responseHeaders", "extraHeaders"]
+        ["responseHeaders"]
       );
     } else {
-      //Firefox doesnt support extra headers
       chrome.webRequest.onHeadersReceived.addListener(headerListener,
         { urls: ["<all_urls>"] },
         ["responseHeaders"]
@@ -881,12 +888,12 @@ function registerTalerHeaderListener(): void {
     currentHeaderListener = headerListener;
   }
 
-  const tabsEvent: chrome.tabs.TabUpdatedEvent | undefined =
-    chrome?.tabs?.onUpdated;
-  if (tabsEvent) {
-    tabsEvent.addListener(tabListener);
-    currentTabListener = tabListener;
-  }
+  // const tabsEvent: chrome.tabs.TabUpdatedEvent | undefined =
+  //   chrome?.tabs?.onUpdated;
+  // if (tabsEvent) {
+  //   tabsEvent.addListener(tabListener);
+  //   currentTabListener = tabListener;
+  // }
 
   //notify the browser about this change, this operation is expensive
   chrome?.webRequest?.handlerBehaviorChanged(() => {
@@ -933,15 +940,15 @@ export async function removeHostPermissions(): 
Promise<boolean> {
   ) {
     chrome.webRequest.onHeadersReceived.removeListener(currentHeaderListener);
   }
-  if (
-    currentTabListener &&
-    chrome?.tabs?.onUpdated?.hasListener(currentTabListener)
-  ) {
-    chrome.tabs.onUpdated.removeListener(currentTabListener);
-  }
+  // if (
+  //   currentTabListener &&
+  //   chrome?.tabs?.onUpdated?.hasListener(currentTabListener)
+  // ) {
+  //   chrome.tabs.onUpdated.removeListener(currentTabListener);
+  // }
 
   currentHeaderListener = undefined;
-  currentTabListener = undefined;
+  // currentTabListener = undefined;
 
   //notify the browser about this change, this operation is expensive
   if ("webRequest" in chrome) {
diff --git a/packages/taler-wallet-webextension/src/platform/firefox.ts 
b/packages/taler-wallet-webextension/src/platform/firefox.ts
index cc734ebf7..0bbe805cf 100644
--- a/packages/taler-wallet-webextension/src/platform/firefox.ts
+++ b/packages/taler-wallet-webextension/src/platform/firefox.ts
@@ -48,7 +48,7 @@ function isFirefox(): boolean {
 }
 
 function addPermissionsListener(callback: (p: Permissions) => void): void {
-  throw Error("addPermissionListener is not supported for Firefox");
+  // throw Error("addPermissionListener is not supported for Firefox");
 }
 
 function getPermissionsApi(): CrossBrowserPermissionsApi {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]