From 36a3e7cdcc8b18d21a513b88fdc39f1eb2d11495 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Fri, 7 May 2021 00:47:29 -0700 Subject: [PATCH] Fix race condition causing unread posts tracking to malfunction. --- src/Monitoring/Favicon.coffee | 11 ++++++++++- src/Monitoring/Unread.coffee | 11 +++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/Monitoring/Favicon.coffee b/src/Monitoring/Favicon.coffee index 84418213d..be88d2599 100644 --- a/src/Monitoring/Favicon.coffee +++ b/src/Monitoring/Favicon.coffee @@ -1,13 +1,22 @@ Favicon = init: -> $.asap (-> d.head and (Favicon.el = $ 'link[rel="shortcut icon"]', d.head)), Favicon.initAsap - + + set: (status) -> + Favicon.status = status + if Favicon.el + Favicon.el.href = Favicon[status] + # `favicon.href = href` doesn't work on Firefox. + $.add d.head, Favicon.el + initAsap: -> Favicon.el.type = 'image/x-icon' {href} = Favicon.el Favicon.isSFW = /ws\.ico$/.test href Favicon.default = href Favicon.switch() + if Favicon.status + Favicon.set Favicon.status switch: -> items = { diff --git a/src/Monitoring/Unread.coffee b/src/Monitoring/Unread.coffee index 08f6f8b81..d71174eaf 100644 --- a/src/Monitoring/Unread.coffee +++ b/src/Monitoring/Unread.coffee @@ -236,15 +236,14 @@ Unread = if Conf['Unread Favicon'] and g.SITE.software is 'yotsuba' {isDead} = Unread.thread - Favicon.el.href = + Favicon.set ( if countQuotingYou - Favicon[if isDead then 'unreadDeadY' else 'unreadY'] + (if isDead then 'unreadDeadY' else 'unreadY') else if count - Favicon[if isDead then 'unreadDead' else 'unread'] + (if isDead then 'unreadDead' else 'unread') else - Favicon[if isDead then 'dead' else 'default'] - # `favicon.href = href` doesn't work on Firefox. - $.add d.head, Favicon.el + (if isDead then 'dead' else 'default') + ) saveThreadWatcherCount: $.debounce 2 * $.SECOND, -> $.forceSync 'Remember Last Read Post'