Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,8 @@ $RECYCLE.BIN/
# Custom
# ==================================================
.idea
.wxt/
.output/
dist/
packages/
storage/
Expand Down
67 changes: 0 additions & 67 deletions app/manifest.json

This file was deleted.

54 changes: 0 additions & 54 deletions app/scripts/background.ts

This file was deleted.

96 changes: 0 additions & 96 deletions app/scripts/content.ts

This file was deleted.

17 changes: 0 additions & 17 deletions app/styles/content.css

This file was deleted.

56 changes: 56 additions & 0 deletions entrypoints/background.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
export default defineBackground(() => {
const injectContentToTab = async (tab: chrome.tabs.Tab): Promise<void> => {
// Skip if URL is undefined
if (!tab.url) {
return;
}

// Skip if tab is discarded
if (tab.discarded) {
return;
}

// Skip if tab ID is undefined
if (tab.id === undefined) {
return;
}

// Skip if not a GitHub URL
if (!tab.url.startsWith('https://github.com/')) {
return;
}

try {
const manifest = chrome.runtime.getManifest();

// Inject CSS
if (manifest.content_scripts?.[0]?.css) {
await chrome.scripting.insertCSS({
target: { tabId: tab.id },
files: manifest.content_scripts[0].css,
});
}

// Inject JavaScript
if (manifest.content_scripts?.[0]?.js) {
await chrome.scripting.executeScript({
target: { tabId: tab.id },
files: manifest.content_scripts[0].js,
});
}
} catch (error) {
console.error('Error injecting content script:', error);
}
};

// Update extension content for tabs
chrome.tabs.query({}, async (tabs: chrome.tabs.Tab[]) => {
for (const tab of tabs) {
try {
await injectContentToTab(tab);
} catch (e) {
console.error(e);
}
}
});
Comment on lines +2 to +55
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This script for programmatically injecting the content script appears to be a holdover from the previous build system and is likely redundant. Modern browsers automatically inject manifest-defined content scripts into existing, matching tabs upon extension installation or update.

Furthermore, the current implementation is brittle as it relies on the specific structure of the auto-generated manifest (manifest.content_scripts[0]).

Recommendation:

  1. Remove the logic inside defineBackground.
  2. Remove the "scripting" permission from wxt.config.ts as it will no longer be needed. This reduces the extension's permission footprint, which is a security best practice.
  // This logic has been removed as it is redundant.
  // Browsers automatically inject content scripts on install/update.
  // The "scripting" permission in `wxt.config.ts` should also be removed.

});
Loading
Loading