Page MenuHomePhabricator

Make "Hide" cookies for CentralNotice notice-independent
Closed, ResolvedPublic

Description

Author: Casey Brown

Description:
Please allow the option for the "hide"/"dismiss" cookie to be notice independent (ie. if you close one notice, they don't all close).


T55116: hideBanner not correctly working on HTTPS notice

Details

Reference
bz17108

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 10:24 PM
bzimport set Reference to bz17108.

This would take a fair bit of work, but is doable I think. I'm imagining a checkbox on the banner editing interface that says "Make hide/show toggle specific to this banner only". We would probably want to create separate cookies for the banner-specific cases and then update BannerController to look for those if the banner has the corresponding flag in the db table.

There is a discussion in bug 16821 that goes into the opposite direction - one cookie to hide all notices down, cross-wiki.

Now that we can identify banners as "fundraising banners", we could easily assign them a separate cookie. This would allow people to keep seeing normal banners, but hide all the fundraising banners. It's not a full solution to this bug, but it would take care of one of the major cases.

This is now fixed for fundraising banners - they are considered a separate group for the purposes of banner hiding.

So for the future we'd want:

  • default to let cooking-hiding hide all banners within the current compaign
  • option to let hide only hide the current banner within the compaign

and also cool:

  • let the banner controller that chooses the banners skip ones hidden by cookie, so that others get more exposure (by removing chances of user getting a banner that is then directly hidden).

admin wrote:

Not to muck things up even more - but what about the ability or option to use some sort of DB tag for users logged in that click to dismiss? With an increasing number of folks (I presume - could be wrong) using multiple devices and multiple WMF projects - would be handy if this was user specific rather than site/cookie/pc specific. You click dismiss on enWP and it disappears on all your WMF projects with that login - regardless of what device. Might also be handy if banners on mobile devices is ever a plan for the future.

@Varnent: Your suggestion is a combination of bug 33941 and bug 14950.

@all: Now that banners are separated into fundraising and non-fundraising banners, I think that takes care of most of the issue. I'm reluctant to create more atomic control over banner cookies, as such a feature would surely be used (abused) by most everyone creating banners.

There may be an argument, however, for creating a 3rd banner group for "emergency banners", i.e. banners that everyone should see regardless of whether they have dismissed other banners. This would be fairly simple to implement as it would just be a 3rd cookie name. Thoughts?

mwalker wrote:

With the new Z level enhancement it seems reasonable that we can implement the 'emergency' no dismiss only for banners on the 'emergency' level. We probably don't even need a cookie: we just notice that the banner is at that level and never allow it to be dismissed?

mwalker wrote:

https://gerrit.wikimedia.org/r/#/c/71751/ implements the don't hide emergency banners part.

Of note, casual use of "emergency" level caused bug 53116.

(In reply to Matt Walker from comment #9)

https://gerrit.wikimedia.org/r/#/c/71751/ implements the don't hide
emergency banners part.

That patch was merged a year ago.

Matt Walker: This issue has been assigned to you a while ago. Are you still working (or still plan to work) on this issue? Only in case you do not plan to work on this issue anymore, should the assignee be set back to default? Thanks.

https://gerrit.wikimedia.org/r/#/c/242346/ shows there was one cookie per campaign, is this bug still current?

No, it's not. :)

However, the patch you mentioned is about the bucket cookie, and buckets are different--there is a different bucket for each campaign, and they're all stored in the same cookie. In the case of hide cookies, there is a separate cookie per category. (See ext.centralNotice.display.hide.js.) In practice, since only Fundraising campaigns are using the category feature, this means there's distinct hide information per campaign, except for Fundraising, which gets unified hide functionality across campaigns. I think that's exactly what we want.

(The related issue of moving stuff out of cookies is still quite valid, though!)

Removing good first task as per last comments - feel free to re-add once the task description has been updated and clarified.

Krinkle renamed this task from Make "Hide" Cookies notice independent to Make "Hide" cookies for CentralNotice notice-independent.Feb 27 2017, 8:22 PM
Krinkle updated the task description. (Show Details)

Per Andy's comment and the cookies being moved to localstorage, does this task need to still stay open?

No, this is resolved: since a long time you can/must dismiss each banner/campaign separately. The other part was switched to T108849 I guess.