Give each favourites gesture one meaning - #87
Merged
Merged
Conversation
Issue 80's third report in one afternoon: "app allows two duplicates url to be added when used both 8 button & keep page menu together, if we point at the tile added using kept menu and press 8 it duplicates that site." Pointing at a tile and pressing 8 added a second copy of it — in the build shipped an hour earlier to let him remove tiles by pointing at them. Three reports, three fixes, each one a better rule for matching addresses. The matching rule was never the fault. The fault is that 8 meant two opposite things depending on state the screen did not show. On a page it kept or removed depending on an address the tile never displayed. On the start screen it kept or removed depending on which of two grids the pointer was over — and those grids are the same tiles, drawn the same way, one above the other, very often holding the same page. Point at something already kept, press the key that removes things, get another copy. Every fix that preserved the toggle bought one more shape of the same report. So the gestures are separated by meaning rather than by state: 8 on a page keep this page, or drop it 8 on a tile get rid of this tile — never adds Keep an address... keep this address — never removes, never a second copy 8 stays a toggle on a page because you are looking at the thing itself, so both outcomes are legible before the press. Nowhere else is that true. And a menu row with the word keep in it must not sometimes delete. A tile now carries which grid it is in (data-kind, written by HomePage and returned by linkAt in front of the address), because the same page is very often a favourite and a recent visit both, and removing it from the list the pointer was not on looks exactly like a key that did nothing. 8 on a recent tile forgets that visit. startpage holds the property rather than the cases: no sequence of presses makes a second tile for something already on the screen. linkAt verified in desktop chromium against both grids carrying the same URL; cdpharness re-run.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Third report in one afternoon:
Pointing at a tile and pressing
8added a second copy of it — in the build shipped an hour earlier to let him remove tiles by pointing at them.The fault was never the matching rule
Three reports, three fixes, each one a better rule for comparing addresses: fold the trailing slash, fold the
www., name the tile by its address. Each fix was correct and each bought exactly one more shape of the same report. That is the signal that the rule was not the problem.8meant two opposite things depending on state the screen did not show.Separated by meaning instead of by state
8on a page8on a tile8stays a toggle on a page because you are looking at the thing itself, so both outcomes are legible before you press. Nowhere else is that true. And a menu row with the word keep in it must not sometimes delete — that is the reading its name promises and the one it did not have.There is now no sequence of presses that produces a second tile for something already on the screen.
One supporting detail: a tile carries which grid it is in (
data-kind, written byHomePage, returned bylinkAtin front of the address). The same page is very often a favourite and a recent visit, and removing it from the list the pointer was not on is indistinguishable, from a sofa, from a key that did nothing.8on a Recent tile forgets that visit — the same gesture, the same meaning.Checks
tools/startpage/run.sh— holds the property, not a list of cases: keeping twice adds nothing, keeping another spelling adds nothing,8on a tile only ever removes, a page in both grids loses only the one pointed at, and8on the page still finds what Keep an address… put there. Green.linkAtverified in desktop chromium with the same URL in both grids: returnsfav …/reel,fav …/reels,recent …/reel, and""off a tile.tools/cdpharness/run.sh,tools/siterules/run.shgreen;./build.sh allfive packages, 0 warnings.INTERNALS gains One gesture, one meaning, which is the part worth keeping: when three fixes in a row each buy one more shape of the same report, the rule being fixed is not the fault.