Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
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);
}
};

// Inject content scripts to existing GitHub tabs when extension is installed/updated
chrome.tabs.query({ url: 'https://github.com/*' }, async (tabs: chrome.tabs.Tab[]) => {
for (const tab of tabs) {
try {
await injectContentToTab(tab);
} catch (e) {
console.error(e);
}
}
});
});
Loading
Loading