Skip to content

Commit 9a3e658

Browse files
authored
improve integration within who am i chrome extension (#52)
1 parent 211c3b2 commit 9a3e658

File tree

4 files changed

+48
-21
lines changed

4 files changed

+48
-21
lines changed

package-lock.json

Lines changed: 16 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "your-rapport",
3-
"version": "0.29.0",
3+
"version": "0.30.0",
44
"description": "A chrome extension for saving screenshots and making them searchable.",
55
"license": "Commercial",
66
"scripts": {

src/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"default_title": "Your Rapport is a screenshot tool with auto scroll capabilities. Right click, select Collect or Alt+S to save. Alt+A for auto scrolling captures. Alt+X open the dashboard. Alt+Q for doing a quick scan.",
1010
"default_popup": "popup.html"
1111
},
12-
"version": "0.29.0",
12+
"version": "0.30.0",
1313
"icons": {
1414
"128": "icon-128.png",
1515
"48": "icon-48.png",

src/pages/Background/index.js

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { db } from '../../models/db/dexieDb';
2424
import { Rapport } from '../../models/schemas/Rapport';
2525
import { ScheduledAutomation } from '../../models/schemas/ScheduledAutomation';
2626
import { getActivePageInfo } from '../Content/scripts/pageInfo';
27+
import { requestAllSitesAccess } from '../../services/manifest_permissions';
2728

2829
/**
2930
* Initialize services when the extension is installed / activated
@@ -220,11 +221,16 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
220221
chrome.runtime.onMessageExternal.addListener((message, sender, sendResponse) => {
221222
debug('onMessageExternal:start', {message, sender});
222223

224+
let hasPermission = false;
223225
try {
224226
(async () => {
225227
switch (message.cmd) {
226-
case 'singleCollect': // TODO: Deprecated remove after 1/1/26
227228
case 'deepSave':
229+
hasPermission = await requestAllSitesAccess()
230+
if(!hasPermission){
231+
sendResponse({completed: false, message: 'You must accept the permissions change in order to enable this automation.'})
232+
break;
233+
}
228234
await createTab(message.url);
229235
const activeTab = await getActiveTab();
230236
// wait for page contents to load
@@ -233,36 +239,56 @@ chrome.runtime.onMessageExternal.addListener((message, sender, sendResponse) =>
233239
// TODO: make this configurable or dynamic based on the domain
234240
await capture(activeTab, pageInfo, true);
235241
sendResponse({completed: true})
242+
try{
243+
await chrome.tabs.remove(activeTab.id);
244+
}
245+
catch(error){
246+
// could not close the tab
247+
}
236248
break;
237249
case AUTO_COLLECT_STARTING:
238-
case 'autoscrollCollect': // TODO: Deprecated remove after 1/1/26
250+
hasPermission = await requestAllSitesAccess()
251+
if(!hasPermission){
252+
sendResponse({completed: false, message: 'You must accept the permissions change in order to enable this automation.'})
253+
break;
254+
}
239255
await createTab(message.url);
240256
await sleep(3000);
241257
sendResponse({completed: true})
242-
243258
chrome.tabs.sendMessage((await getActiveTab()).id, { cmd: ACTIVATE_CAPTURE, requestId: crypto.randomUUID() })
244259
.then(response => {
245260
debug(ACTIVATE_CAPTURE + ':', response);
246261
})
247262
break;
248263
case ENQUEUE_BULK_AUTOMATION_URL:
249264
case 'enqueueBulkAutomation':
265+
hasPermission = await requestAllSitesAccess()
266+
if(!hasPermission){
267+
sendResponse({completed: false, message: 'You must accept the permissions change in order to enable this automation.'})
268+
break;
269+
}
250270
const record = await BulkAutomationUrl.createBulkAutomationJob(message.url);
251271
await db.bulkAutomation.add(record);
252272
break;
253273
case 'ping':
254274
sendResponse({completed: true});
255275
break;
256276
case 'monitorHourly':
277+
hasPermission = await requestAllSitesAccess()
278+
if(!hasPermission){
279+
sendResponse({completed: false, message: 'You must accept the permissions change in order to enable this automation.'})
280+
break;
281+
}
257282
await ScheduledAutomation.addMonitor(message.url, '0 0 * * * *');
283+
sendResponse({completed: true})
258284
break;
259285
default:
260286
return false;
261287
}
262288
})()
263289
return false;
264290
} catch (e) {
265-
debug('onMessageExternal:failure', { message, sender })
291+
debug('onMessageExternal:failure', { message, sender, e })
266292
}
267293
})
268294

0 commit comments

Comments
 (0)