|
7 | 7 | importScripts('browser-polyfill.min.js', 'feedly.api.js', 'core.js'); |
8 | 8 |
|
9 | 9 | // Route messages from UI pages to background functions |
10 | | -chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { |
| 10 | +browser.runtime.onMessage.addListener((message, sender) => { |
11 | 11 | try { |
12 | 12 | switch (message && message.type) { |
13 | | - case 'getState': { |
14 | | - sendResponse({ |
| 13 | + case 'getState': |
| 14 | + return Promise.resolve({ |
15 | 15 | options: appGlobal.options, |
16 | 16 | environment: appGlobal.environment, |
17 | 17 | isLoggedIn: appGlobal.isLoggedIn || false |
18 | 18 | }); |
19 | | - return false; |
20 | | - } |
21 | | - case 'getOptions': { |
22 | | - sendResponse({ options: appGlobal.options }); |
23 | | - return false; |
24 | | - } |
25 | | - case 'getFeeds': { |
26 | | - getFeeds(Boolean(message.forceUpdate), function (feeds, isLoggedIn) { |
27 | | - sendResponse({ feeds, isLoggedIn }); |
28 | | - }); |
29 | | - return true; |
30 | | - } |
31 | | - case 'getSavedFeeds': { |
32 | | - getSavedFeeds(Boolean(message.forceUpdate), function (feeds, isLoggedIn) { |
33 | | - sendResponse({ feeds, isLoggedIn }); |
34 | | - }); |
35 | | - return true; |
36 | | - } |
37 | | - case 'markAsRead': { |
38 | | - markAsRead(message.feedIds || [], function (ok) { |
39 | | - sendResponse({ ok: !!ok }); |
40 | | - }); |
41 | | - return true; |
42 | | - } |
43 | | - case 'toggleSavedFeed': { |
44 | | - toggleSavedFeed(message.feedIds || [], !!message.save, function (ok) { |
45 | | - sendResponse({ ok: !!ok }); |
46 | | - }); |
47 | | - return true; |
48 | | - } |
49 | | - case 'openFeedlyTab': { |
50 | | - openFeedlyTab(); |
51 | | - sendResponse({ ok: true }); |
52 | | - return false; |
53 | | - } |
54 | | - case 'resetCounter': { |
55 | | - if (typeof resetCounter === 'function') { |
56 | | - resetCounter(); |
57 | | - } |
58 | | - sendResponse({ ok: true }); |
59 | | - return false; |
60 | | - } |
61 | | - case 'getFeedTabId': { |
62 | | - sendResponse({ feedTabId: appGlobal.feedTabId || null }); |
63 | | - return false; |
64 | | - } |
65 | | - case 'setFeedTabId': { |
| 19 | + case 'getOptions': |
| 20 | + return Promise.resolve({ options: appGlobal.options }); |
| 21 | + case 'getFeeds': |
| 22 | + return getFeeds(Boolean(message.forceUpdate)); |
| 23 | + case 'getSavedFeeds': |
| 24 | + return getSavedFeeds(Boolean(message.forceUpdate)); |
| 25 | + case 'markAsRead': |
| 26 | + return markAsRead(message.feedIds || []).then(ok => ({ ok: !!ok })); |
| 27 | + case 'toggleSavedFeed': |
| 28 | + return toggleSavedFeed(message.feedIds || [], !!message.save).then(ok => ({ ok: !!ok })); |
| 29 | + case 'openFeedlyTab': |
| 30 | + return openFeedlyTab().then(() => ({ ok: true })); |
| 31 | + case 'resetCounter': |
| 32 | + return (typeof resetCounter === 'function' ? Promise.resolve(resetCounter()) : Promise.resolve()).then(() => ({ ok: true })); |
| 33 | + case 'getFeedTabId': |
| 34 | + return Promise.resolve({ feedTabId: appGlobal.feedTabId || null }); |
| 35 | + case 'setFeedTabId': |
66 | 36 | appGlobal.feedTabId = message.tabId; |
67 | | - sendResponse({ ok: true }); |
68 | | - return false; |
69 | | - } |
70 | | - case 'getAccessToken': { |
71 | | - getAccessToken(function () { |
72 | | - sendResponse({ ok: true }); |
73 | | - }); |
74 | | - return true; |
75 | | - } |
76 | | - default: { |
77 | | - sendResponse({ error: 'Unknown message type' }); |
78 | | - return false; |
79 | | - } |
| 37 | + return Promise.resolve({ ok: true }); |
| 38 | + case 'getAccessToken': |
| 39 | + return getAccessToken().then(() => ({ ok: true })); |
| 40 | + default: |
| 41 | + return Promise.resolve({ error: 'Unknown message type' }); |
80 | 42 | } |
81 | 43 | } catch (e) { |
82 | 44 | try { console.error('background message error', e); } catch (_) {} |
83 | | - sendResponse({ error: 'Internal error' }); |
84 | | - return false; |
| 45 | + return Promise.resolve({ error: 'Internal error' }); |
85 | 46 | } |
86 | 47 | }); |
0 commit comments