From fde17c63d0761c84efd9d91cfdcaf95f87f09cda Mon Sep 17 00:00:00 2001 From: Yuya Fujiwara Date: Mon, 14 Jul 2025 14:04:08 +0900 Subject: [PATCH 1/3] Migrate from Manifest V2 to V3 for Chrome extension compatibility - Update manifest_version from 2 to 3 - Replace chrome.extension API with chrome.runtime API - Convert background scripts to service worker - Separate host permissions from general permissions - Update minimum Chrome version to 95 - Bump version to 0.14 - Fix code formatting consistency This change ensures compatibility with current Chrome browsers and resolves the "unsupported manifest version" installation error. --- src/js/background.js | 4 ++-- src/js/keypress.js | 4 ++-- src/manifest.json | 28 +++++++++++++++++++--------- src/options.html | 2 +- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/js/background.js b/src/js/background.js index 1a80a50..3de3465 100644 --- a/src/js/background.js +++ b/src/js/background.js @@ -11,7 +11,7 @@ * * This will open up a new non-focused tab with the url it was sent */ -chrome.extension.onMessage.addListener( +chrome.runtime.onMessage.addListener( function(messageObject) { chrome.tabs.create({ url: messageObject.url, @@ -38,4 +38,4 @@ chrome.runtime.onInstalled.addListener(function(details) { }); } } -}); \ No newline at end of file +}); diff --git a/src/js/keypress.js b/src/js/keypress.js index 071673c..8b1ce1d 100644 --- a/src/js/keypress.js +++ b/src/js/keypress.js @@ -15,7 +15,7 @@ 'a.visitWebsiteButton', // the floating one for card view '.entry.selected a.title' // title bar for active entry in React-based collapsed list view ]; - + /** * Main feedlybackgroundtab constructor */ @@ -57,7 +57,7 @@ } } if (url) { - chrome.extension.sendMessage({url: url.href}); + chrome.runtime.sendMessage({url: url.href}); } else { console.log("Could not find any selectors from: " + selectors.join()); diff --git a/src/manifest.json b/src/manifest.json index 4b146b5..015c735 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,22 +1,32 @@ { "name": "Feedly Background Tab", - "version": "0.13", - "manifest_version": 2, + "version": "0.14", + "manifest_version": 3, "description": "Open Feedly Links in Background Tab using shortcut key", "content_scripts": [ { - "matches": ["*://*.feedly.com/*"], - "js": ["js/keypress.js"] + "matches": [ + "*://*.feedly.com/*" + ], + "js": [ + "js/keypress.js" + ] } ], - "background": { "scripts": ["js/background.js"] }, + "background": { + "service_worker": "js/background.js" + }, "options_page": "options.html", "permissions": [ + "storage" + ], + "host_permissions": [ "http://www.feedly.com/*", "http://cloud.feedly.com/*", - "https://cloud.feedly.com/*", - "storage" + "https://cloud.feedly.com/*" ], - "minimum_chrome_version": "21", - "icons": { "128": "images/icon_128.png" } + "minimum_chrome_version": "95", + "icons": { + "128": "images/icon_128.png" + } } diff --git a/src/options.html b/src/options.html index e3cc018..0dcf45b 100644 --- a/src/options.html +++ b/src/options.html @@ -76,4 +76,4 @@

FeedlyBackgroundTab Chrome Extension Options

- \ No newline at end of file + From 8cc3b7083779cd2f779ae169358350ed32f872d8 Mon Sep 17 00:00:00 2001 From: Yuya Fujiwara Date: Mon, 23 Mar 2026 22:29:23 +0900 Subject: [PATCH 2/3] Add support for Oksskolten feed URL Update the list of matched URLs in `keypress.js` and `manifest.json` to include `feed.jkte.ch`. This ensures that the keypress functionality is applied to this new feed. --- src/js/keypress.js | 3 ++- src/manifest.json | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/js/keypress.js b/src/js/keypress.js index 8b1ce1d..1be4bac 100644 --- a/src/js/keypress.js +++ b/src/js/keypress.js @@ -13,7 +13,8 @@ '.selectedEntry a.visitWebsiteButton', // the button square button on list view '.list-entries .selected a.visitWebsiteButton', // the button square button on list view 'a.visitWebsiteButton', // the floating one for card view - '.entry.selected a.title' // title bar for active entry in React-based collapsed list view + '.entry.selected a.title', // title bar for active entry in React-based collapsed list view + '[aria-selected="true"] a.article-card' // Oksskolten (feed.jkte.ch) selected article ]; /** diff --git a/src/manifest.json b/src/manifest.json index 015c735..02f8636 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -6,7 +6,8 @@ "content_scripts": [ { "matches": [ - "*://*.feedly.com/*" + "*://*.feedly.com/*", + "*://feed.jkte.ch/*" ], "js": [ "js/keypress.js" @@ -23,7 +24,8 @@ "host_permissions": [ "http://www.feedly.com/*", "http://cloud.feedly.com/*", - "https://cloud.feedly.com/*" + "https://cloud.feedly.com/*", + "https://feed.jkte.ch/*" ], "minimum_chrome_version": "95", "icons": { From c3afee5f7fff7c30950c072b909ef7bfa1a58de2 Mon Sep 17 00:00:00 2001 From: Yuya Fujiwara Date: Fri, 27 Mar 2026 14:49:48 +0900 Subject: [PATCH 3/3] Fix handling of URLs without dataset property Ensure that the URL is correctly retrieved, even if it does not have a `dataset.originalUrl` property. This prevents issues when sending messages to the background script. --- src/js/keypress.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/keypress.js b/src/js/keypress.js index 1be4bac..14b8a64 100644 --- a/src/js/keypress.js +++ b/src/js/keypress.js @@ -58,7 +58,7 @@ } } if (url) { - chrome.runtime.sendMessage({url: url.href}); + chrome.runtime.sendMessage({url: url.dataset.originalUrl || url.href}); } else { console.log("Could not find any selectors from: " + selectors.join());