Complete conditional message onboarding

pull/775/head
Vincent 5 years ago
parent 31af2b60f1
commit 2d4bf2b3e2

@ -0,0 +1,627 @@
/home/vince/LOKI/session/node_modules/react-dom/cjs/react-dom.development.js:21054 Download the React DevTools for a better development experience: https://fb.me/react-devtoolsYou might need to use a local HTTP server (instead of file://): https://fb.me/react-devtools-faq
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:35.264Z Detected Linux. Setting up spell check with locale en_AU and dictionary location /usr/share/hunspell
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:35.666Z pre-main prep time: 1 ms
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:35.754Z Build expires: 2020-04-30T03:47:34.000Z
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:35.790Z background page reloaded
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:35.791Z environment: development
/home/vince/LOKI/session/images/loki/loki_icon_text.png:1 GET file:///home/vince/LOKI/session/images/loki/loki_icon_text.png net::ERR_FILE_NOT_FOUND
Image (async)
preload @ background.js:44
(anonymous) @ background.js:48
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:35.998Z Storage fetch
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.034Z Starting background data migration. Target version: 10
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.035Z ConversationController: starting initial fetch
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.093Z SignalProtocolStore: Finished caching identityKeys data
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.099Z ConversationController: done with initial fetch
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.099Z SignalProtocolStore: Finished caching sessions data
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.100Z SignalProtocolStore: Finished caching preKeys data
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.102Z SignalProtocolStore: Finished caching signedPreKeys data
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.102Z BlockedNumberController: starting initial fetch
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.104Z Cleanup: starting...
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.105Z Cleanup: Found 0 messages for cleanup
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.106Z Cleanup: complete
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.106Z listening for registration events
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.108Z Next signed key rotation scheduled for 2020-02-05T00:07:38.102Z
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.109Z connect
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.109Z Registering HomeServer https://file.lokinet.org
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.110Z LokiAppDotNetAPI registered server https://file.lokinet.org
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.110Z open inbox
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.135Z (2) [{…}, {…}]
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.138Z (2) [{…}, {…}]
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.139Z (2) [{…}, {…}]
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:36.140Z (2) [{…}, {…}]
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:37.642Z getAllFromCache
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:37.645Z Start idle detector
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:37.648Z getAllFromCache loaded 0 saved envelopes
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:37.650Z Upgrade message schema (with index): {done: true, numProcessed: 0, fetchDuration: 0, upgradeDuration: 0, saveDuration: 0, …}
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:37.651Z Background migration complete. Stopping idle detector.
/home/vince/LOKI/session/js/logging.js:112 INFO 2020-02-03T00:15:37.651Z Stop idle detector
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:39.648Z Received duplicate message rss://loki.network/category/messenger-updates/feed/.1 1568852761000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:39.648Z Received duplicate message rss://loki.network/category/messenger-updates/feed/.1 1571800471000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:39.649Z Received duplicate message rss://loki.network/category/messenger-updates/feed/.1 1574792397000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.561Z Received duplicate message rss://loki.network/category/messenger-updates/feed/.1 1567429461000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.598Z Received duplicate message rss://loki.network/feed/.1 1577531011000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.598Z Received duplicate message rss://loki.network/feed/.1 1577706910000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.598Z Received duplicate message rss://loki.network/feed/.1 1579584640000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.600Z Received duplicate message rss://loki.network/feed/.1 1579843299000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.600Z Received duplicate message rss://loki.network/feed/.1 1580180377000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.601Z Received duplicate message rss://loki.network/feed/.1 1580275643000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.601Z Received duplicate message rss://loki.network/feed/.1 1580355985000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.601Z Received duplicate message rss://loki.network/feed/.1 1578354387000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.602Z Received duplicate message rss://loki.network/feed/.1 1578870300000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415
/home/vince/LOKI/session/js/logging.js:112 WARN 2020-02-03T00:15:40.603Z Received duplicate message rss://loki.network/feed/.1 1578290213000
logAtLevel @ /home/vince/LOKI/session/js/logging.js:112
apply @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:478
wrapper @ /home/vince/LOKI/session/node_modules/lodash/lodash.js:5323
(anonymous) @ background.js:1958
async function (async)
(anonymous) @ background.js:1924
dispatchEvent @ libtextsecure.js:37508
dispatchAndWait @ libtextsecure.js:38771
handleUnencryptedMessage @ libtextsecure.js:38723
emit @ events.js:182
feedObj.rss.channel.item.reverse.forEach.item @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:138
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:104
_tickCallback @ internal/process/next_tick.js:68
async function (async)
getFeed @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:66
LokiRssAPI @ /home/vince/LOKI/session/js/modules/loki_rss_api.js:52
rssFeedConversations.forEach.conversation @ background.js:228
_.each._.forEach @ components.js:19751
(anonymous) @ components.js:21345
initSpecialConversations @ background.js:227
async function (async)
initSpecialConversations @ background.js:222
connect @ background.js:1473
_tickCallback @ internal/process/next_tick.js:68
async function (async)
connect @ background.js:1472
start @ background.js:671
async function (async)
start @ background.js:559
storage.onready @ background.js:501
async function (async)
storage.onready @ background.js:398
callbacks.forEach.callback @ storage.js:61
callListeners @ storage.js:61
fetch @ storage.js:77
async function (async)
fetch @ storage.js:68
(anonymous) @ background.js:215
async function (async)
(anonymous) @ background.js:207
(anonymous) @ background.js:2415

File diff suppressed because one or more lines are too long

@ -603,7 +603,7 @@
"description": "Name for a voice message attachment"
},
"dangerousFileType": {
"message": "Attachment type not allowed for security reasons",
"message": "For security reasons, this file type cannot be sent",
"description":
"Shown in toast when user attempts to send .exe file, for example"
},
@ -646,25 +646,25 @@
},
"oneNonImageAtATimeToast": {
"message":
"When including a non-image attachment, the limit is one attachment per message.",
"Sorry, there is a limit of one non-image attachment per message",
"description":
"An error popup when the user has attempted to add an attachment"
},
"cannotMixImageAndNonImageAttachments": {
"message": "You cannot mix non-image and image attachments in one message.",
"message": "Sorry, you cannot mix images with other file types in one message",
"description":
"An error popup when the user has attempted to add an attachment"
},
"maximumAttachments": {
"message": "You cannot add any more attachments to this message.",
"message": "Maximum number of attachments reached. Please send remaining attachments in a separate message.",
"description":
"An error popup when the user has attempted to add an attachment"
},
"fileSizeWarning": {
"message": "Sorry, the selected file exceeds message size restrictions."
"message": "Sorry, the selected attachment is too large"
},
"unableToLoadAttachment": {
"message": "Unable to load selected attachment."
"message": "Unable to load attachment."
},
"connect": {
"message": "Connect"
@ -1061,7 +1061,7 @@
"Are you sure? Clicking 'delete' will permanently remove these messages from this device only."
},
"messageDeletionForbidden": {
"message": "You don't have permission to delete others' messages.",
"message": "You dont have permission to delete others messages",
"description":
"Toast message explaining that the user doens't have the rights to delete other people's messages."
},
@ -1651,7 +1651,7 @@
"description": "Brief message shown when trying to message a blocked number"
},
"unblockGroupToSend": {
"message": "Unblock this group to send a message.",
"message": "This group is blocked. Unlock it if you would like to send a message.",
"description": "Brief message shown when trying to message a blocked group"
},
"youChangedTheTimer": {
@ -2046,7 +2046,7 @@
"Shown in the conversation history when the user accepts a friend request"
},
"friendRequestDeclined": {
"message": "Friend request declined",
"message": "Session request declined",
"description":
"Shown in the conversation history when the user declines a friend request"
},
@ -2120,11 +2120,11 @@
"description": "Message shown when confirming user ban."
},
"userBanned": {
"message": "User successfully banned",
"message": "User banned successfully",
"description": "Toast on succesful user ban."
},
"userBanFailed": {
"message": "User ban failed!",
"message": "Ban failed!",
"description": "Toast on unsuccesful user ban."
},
"copyChatId": {
@ -2153,7 +2153,7 @@
"Title shown to the user to confirm they want to leave the group"
},
"copiedPublicKey": {
"message": "Copied public key",
"message": "Session ID copied",
"description": "A toast message telling the user that the key was copied"
},
"copiedChatId": {
@ -2170,7 +2170,7 @@
"description": "Button action that the user can click to select the message"
},
"copiedMessage": {
"message": "Copied message text",
"message": "Message text copied",
"description":
"A toast message telling the user that the message text was copied"
},
@ -2291,7 +2291,7 @@
"description": "The title shown when the user views their seeds"
},
"copiedMnemonic": {
"message": "Copied seed to clipboard",
"message": "Recovery phrase copied successfully",
"description":
"A toast message telling the user that the mnemonic seed was copied"
},
@ -2339,7 +2339,7 @@
"message": "Old password is invalid"
},
"invalidPassword": {
"message": "Invalid Password"
"message": "Invalid password"
},
"noGivenPassword": {
"message": "Please enter your password"
@ -2737,9 +2737,9 @@
"message": "Pairing Device"
},
"gotPairingRequest": {
"message": "Got a pairing request"
"message": "Pairing request received"
},
"devicePairedSuccessfully": {
"message": "Device paired successfully"
"message": "Device linked successfully"
}
}

@ -919,6 +919,23 @@
}
};
// Set user's launch count.
const prevLaunchCount = window.getSettingValue('launch-count');
window.launchCount = !prevLaunchCount ? 1 : prevLaunchCount + 1;
window.setSettingValue('launch-count', window.launchCount);
// On first launch
if (window.launchCount === 1) {
// Initialise default settings
window.setSettingValue('hide-menu-bar', true);
window.setSettingValue('link-preview-setting', false);
}
// Render onboarding message from LeftPaneMessageSection
// unless user turns it off during their session
window.setSettingValue('render-message-onboarding', true);
// Generates useful random ID for various purposes
window.generateID = () =>
Math.random()
.toString(36)
@ -1030,6 +1047,49 @@
window.setMediaPermissions(!mediaPermissions);
};
window.attemptConnection = async (serverURL, channelId) => {
let rawserverURL = serverURL
.replace(/^https?:\/\//i, '')
.replace(/[/\\]+$/i, '');
rawserverURL = rawserverURL.toLowerCase();
const sslServerURL = `https://${rawserverURL}`;
const conversationId = `publicChat:${channelId}@${rawserverURL}`;
const conversationExists = window.ConversationController.get(
conversationId
);
if (conversationExists) {
// We are already a member of this public chat
return new Promise((_resolve, reject) => {
reject(window.i18n('publicChatExists'));
});
}
const serverAPI = await window.lokiPublicChatAPI.findOrCreateServer(
sslServerURL
);
if (!serverAPI) {
// Url incorrect or server not compatible
return new Promise((_resolve, reject) => {
reject(window.i18n('connectToServerFail'));
});
}
const conversation = await window.ConversationController.getOrCreateAndWait(
conversationId,
'group'
);
await conversation.setPublicSource(sslServerURL, channelId);
await conversation.setFriendRequestStatus(
window.friends.friendRequestStatusEnum.friends
);
conversation.getPublicSendData(); // may want "await" if you want to use the API
return conversation;
};
window.sendGroupInvitations = (serverInfo, pubkeys) => {
pubkeys.forEach(async pubkey => {
const convo = await ConversationController.getOrCreateAndWait(

@ -236,7 +236,7 @@
id: 'maximumAttachments',
});
},
// Housekeeping
addAttachment(attachment) {
if (attachment.isVoiceNote && this.attachments.length > 0) {

@ -62,6 +62,8 @@ window.CONSTANTS = {
MAX_LOGIN_TRIES: 3,
MAX_PASSWORD_LENGTH: 32,
MAX_USERNAME_LENGTH: 20,
DEFAULT_PUBLIC_CHAT_URL: 'https://chat.lokinet.org',
MAX_CONNECTION_DURATION: 5000,
};
window.versionInfo = {

@ -1157,7 +1157,7 @@ label {
}
&__description {
font-family: "SF Pro Text";
font-family: 'SF Pro Text';
font-size: $session-font-sm;
font-weight: 100;
@include session-color-subtle($session-color-white);
@ -1653,6 +1653,13 @@ input {
}
}
&__spinner-container {
display: flex;
flex-grow: 1;
align-items: center;
justify-content: center;
}
&__buttons {
width: 100%;

@ -64,7 +64,6 @@ export class LeftPaneChannelSection extends React.Component<Props, State> {
this.handleToggleOverlay = this.handleToggleOverlay.bind(this);
this.updateSearchBound = this.updateSearch.bind(this);
this.debouncedSearch = debounce(this.search.bind(this), 20);
this.attemptConnection = this.attemptConnection.bind(this);
}
public componentWillUnmount() {
@ -331,13 +330,12 @@ export class LeftPaneChannelSection extends React.Component<Props, State> {
// TODO: Make this not hard coded
const channelId = 1;
this.setState({ loading: true });
const connectionResult = this.attemptConnection(
const connectionResult = window.attemptConnection(
channelUrlPasted,
channelId
);
// Give 5s maximum for promise to revole. Else, throw error.
const maxConnectionDuration = 5000;
const connectionTimeout = setTimeout(() => {
if (!this.state.connectSuccess) {
this.setState({ loading: false });
@ -349,7 +347,7 @@ export class LeftPaneChannelSection extends React.Component<Props, State> {
return;
}
}, maxConnectionDuration);
}, window.CONSTANTS.MAX_CONNECTION_DURATION);
connectionResult
.then(() => {
@ -385,47 +383,4 @@ export class LeftPaneChannelSection extends React.Component<Props, State> {
return true;
}
private async attemptConnection(serverURL: string, channelId: number) {
let rawserverURL = serverURL
.replace(/^https?:\/\//i, '')
.replace(/[/\\]+$/i, '');
rawserverURL = rawserverURL.toLowerCase();
const sslServerURL = `https://${rawserverURL}`;
const conversationId = `publicChat:${channelId}@${rawserverURL}`;
const conversationExists = window.ConversationController.get(
conversationId
);
if (conversationExists) {
// We are already a member of this public chat
return new Promise((_resolve, reject) => {
reject(window.i18n('publicChatExists'));
});
}
const serverAPI = await window.lokiPublicChatAPI.findOrCreateServer(
sslServerURL
);
if (!serverAPI) {
// Url incorrect or server not compatible
return new Promise((_resolve, reject) => {
reject(window.i18n('connectToServerFail'));
});
}
const conversation = await window.ConversationController.getOrCreateAndWait(
conversationId,
'group'
);
await conversation.setPublicSource(sslServerURL, channelId);
await conversation.setFriendRequestStatus(
window.friends.friendRequestStatusEnum.friends
);
conversation.getPublicSendData(); // may want "await" if you want to use the API
return conversation;
}
}

@ -24,6 +24,7 @@ import {
SessionButtonColor,
SessionButtonType,
} from './SessionButton';
import { SessionSpinner } from './SessionSpinner';
export interface Props {
searchTerm: string;
@ -47,12 +48,29 @@ export class LeftPaneMessageSection extends React.Component<Props, any> {
super(props);
const conversations = this.getCurrentConversations();
const length = conversations ? conversations.length : 0;
const renderOnboardingSetting = window.getSettingValue(
'render-message-onboarding'
);
const realConversations: Array<ConversationListItemPropsType> = [];
if (conversations) {
conversations.forEach(conversation => {
const isRSS =
conversation.id &&
!!(conversation.id && conversation.id.match(/^rss:/));
return !isRSS && realConversations.push(conversation);
});
}
const length = realConversations.length;
this.state = {
showComposeView: false,
pubKeyPasted: '',
shouldRenderMessageOnboarding: length === 0,
shouldRenderMessageOnboarding: length === 0 && renderOnboardingSetting,
connectSuccess: false,
loading: false,
};
this.updateSearchBound = this.updateSearch.bind(this);
@ -224,7 +242,11 @@ export class LeftPaneMessageSection extends React.Component<Props, any> {
</div>
<div className="onboarding-message-section__icons">
<img src="./images/session/chat-bubbles.svg" alt="" />
<img
src="./images/session/chat-bubbles.svg"
alt=""
role="presentation"
/>
</div>
<div className="onboarding-message-section__info">
@ -236,35 +258,41 @@ export class LeftPaneMessageSection extends React.Component<Props, any> {
</div>
</div>
<div className="onboarding-message-section__buttons">
<SessionButton
text={window.i18n('joinPublicChat')}
buttonType={SessionButtonType.BrandOutline}
buttonColor={SessionButtonColor.Green}
onClick={this.handleJoinPublicChat}
/>
<SessionButton
text={window.i18n('noThankyou')}
buttonType={SessionButtonType.Brand}
buttonColor={SessionButtonColor.Secondary}
onClick={this.handleCloseOnboarding}
/>
</div>
<>
{this.state.loading ? (
<div className="onboarding-message-section__spinner-container">
<SessionSpinner />
</div>
) : (
<div className="onboarding-message-section__buttons">
<SessionButton
text={window.i18n('joinPublicChat')}
buttonType={SessionButtonType.BrandOutline}
buttonColor={SessionButtonColor.Green}
onClick={this.handleJoinPublicChat}
/>
<SessionButton
text={window.i18n('noThankyou')}
buttonType={SessionButtonType.Brand}
buttonColor={SessionButtonColor.Secondary}
onClick={this.handleCloseOnboarding}
/>
</div>
)}
</>
</div>
</div>
);
}
public handleCloseOnboarding() {
window.setSettingValue('render-message-onboarding', false);
this.setState({
shouldRenderMessageOnboarding: false,
});
}
public handleJoinPublicChat() {
return;
}
public updateSearch(searchTerm: string) {
const { updateSearchTerm, clearSearch } = this.props;
@ -368,4 +396,61 @@ export class LeftPaneMessageSection extends React.Component<Props, any> {
});
}
}
private handleJoinPublicChat() {
const serverURL = window.CONSTANTS.DEFAULT_PUBLIC_CHAT_URL;
// TODO: Make this not hard coded
const channelId = 1;
this.setState({ loading: true });
const connectionResult = window.attemptConnection(serverURL, channelId);
// Give 5s maximum for promise to revole. Else, throw error.
const connectionTimeout = setTimeout(() => {
if (!this.state.connectSuccess) {
this.setState({ loading: false });
window.pushToast({
title: window.i18n('connectToServerFail'),
type: 'error',
id: 'connectToServerFail',
});
return;
}
}, window.CONSTANTS.MAX_CONNECTION_DURATION);
connectionResult
.then(() => {
clearTimeout(connectionTimeout);
if (this.state.loading) {
this.setState({
shouldRenderMessageOnboarding: false,
connectSuccess: true,
loading: false,
});
window.pushToast({
title: window.i18n('connectToServerSuccess'),
id: 'connectToServerSuccess',
type: 'success',
});
}
})
.catch((connectionError: string) => {
clearTimeout(connectionTimeout);
this.setState({
connectSuccess: true,
loading: false,
});
window.pushToast({
title: connectionError,
id: 'connectToServerFail',
type: 'error',
});
return false;
});
return true;
}
}

2
ts/global.d.ts vendored

@ -1,4 +1,5 @@
interface Window {
launchCount: any;
CONSTANTS: any;
versionInfo: any;
@ -8,6 +9,7 @@ interface Window {
getAccountManager: any;
mnemonic: any;
clipboard: any;
attemptConnection: any;
passwordUtil: any;
userConfig: any;

Loading…
Cancel
Save