diff --git a/app/browser/api/ledger.js b/app/browser/api/ledger.js index e71373e91a5..52c08780838 100644 --- a/app/browser/api/ledger.js +++ b/app/browser/api/ledger.js @@ -2400,7 +2400,7 @@ const onMediaRequest = (state, xhr, type, tabId) => { if (!cache.isEmpty()) { const publisherKey = cache.get('publisher') const publisher = ledgerState.getPublisher(state, publisherKey) - if (!publisher.isEmpty()) { + if (!publisher.isEmpty() && publisher.has('providerName')) { return module.exports.saveVisit(state, publisherKey, { duration, revisited, @@ -2449,19 +2449,13 @@ const onMediaPublisher = (state, mediaKey, response, duration, revisited) => { const publisherURL = response.get('publisherURL') const providerName = response.get('providerName') - if (publisher.isEmpty()) { - revisited = false + if (!synopsis.publishers[publisherKey] || publisher.isEmpty()) { synopsis.initPublisher(publisherKey) if (!synopsis.publishers[publisherKey]) { return state } - synopsis.publishers[publisherKey].faviconName = faviconName - synopsis.publishers[publisherKey].faviconURL = faviconURL - synopsis.publishers[publisherKey].publisherURL = publisherURL - synopsis.publishers[publisherKey].providerName = providerName - state = ledgerState.setPublisher(state, publisherKey, synopsis.publishers[publisherKey]) if (!getSetting(settings.PAYMENTS_SITES_AUTO_SUGGEST)) { @@ -2473,15 +2467,19 @@ const onMediaPublisher = (state, mediaKey, response, duration, revisited) => { savePublisherOption(publisherKey, 'exclude', exclude) }) } - } else { - synopsis.publishers[publisherKey].faviconName = faviconName - synopsis.publishers[publisherKey].faviconURL = faviconURL - synopsis.publishers[publisherKey].publisherURL = publisherURL - synopsis.publishers[publisherKey].providerName = providerName - state = ledgerState.setPublishersProp(state, publisherKey, 'faviconName', faviconName) - state = ledgerState.setPublishersProp(state, publisherKey, 'faviconURL', faviconURL) - state = ledgerState.setPublishersProp(state, publisherKey, 'publisherURL', publisherURL) - state = ledgerState.setPublishersProp(state, publisherKey, 'providerName', providerName) + } + + synopsis.publishers[publisherKey].faviconName = faviconName + synopsis.publishers[publisherKey].faviconURL = faviconURL + synopsis.publishers[publisherKey].publisherURL = publisherURL + synopsis.publishers[publisherKey].providerName = providerName + state = ledgerState.setPublishersProp(state, publisherKey, 'faviconName', faviconName) + state = ledgerState.setPublishersProp(state, publisherKey, 'faviconURL', faviconURL) + state = ledgerState.setPublishersProp(state, publisherKey, 'publisherURL', publisherURL) + state = ledgerState.setPublishersProp(state, publisherKey, 'providerName', providerName) + + if (publisher.isEmpty()) { + revisited = false } const cacheObject = Immutable.Map() diff --git a/test/unit/app/browser/api/ledgerTest.js b/test/unit/app/browser/api/ledgerTest.js index 4ddede1b971..e9e604340a4 100644 --- a/test/unit/app/browser/api/ledgerTest.js +++ b/test/unit/app/browser/api/ledgerTest.js @@ -591,7 +591,8 @@ describe('ledger api unit tests', function () { })) .setIn(['ledger', 'synopsis', 'publishers', publisherKey], Immutable.fromJS({ visits: 1, - duration: 1000 + duration: 1000, + providerName: 'YouTube' })) beforeEach(function () {