Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Issue 2082793003: MD Settings: First iteration of searching within settings. (Closed)

Created:
4 years, 6 months ago by dpapad
Modified:
4 years, 5 months ago
Reviewers:
Dan Beam, michaelpg
CC:
arv+watch_chromium.org, chromium-reviews, dbeam+watch-settings_chromium.org, dschuyler, michaelpg+watch-md-settings_chromium.org, michaelpg+watch-md-ui_chromium.org, stevenjb+watch-md-settings_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@cr_search_migration0
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

MD Settings: First iteration of searching within settings. This CL includes the core logic of the searching mechanism - Traversing the DOM tree (taking into account Shadow DOM). - Finding and highlighting matches (using familiar yellow rectangle for now). - Showing/hiding <settings-section> instances depending on search outcome. - Un-highlighting matches and restoring DOM structure. - Navigating to the default page (chrome://md-settings), when a search is triggered from any other page/sub-page. - Force rendering of the "advanced" page and update search results. Sub-pages that are not rendered are currently not searched. This will be addressed in follow up CLs along with multiple other issues. BUG=608535 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation Committed: https://crrev.com/e18c3a8d876d941206fc600dea2681dab2d290d8 Cr-Commit-Position: refs/heads/master@{#404222}

Patch Set 1 : Nits. #

Total comments: 11

Patch Set 2 : Address comment. #

Patch Set 3 : Address comments. #

Total comments: 2

Patch Set 4 : Fix error when searching from About page. #

Total comments: 3

Patch Set 5 : Recursive version #

Total comments: 19

Patch Set 6 : Address comments. #

Patch Set 7 : Fix subtlety. #

Patch Set 8 : Use deep #

Total comments: 10

Patch Set 9 : Address comments. #

Total comments: 43

Patch Set 10 : Addressing comments. #

Total comments: 2

Patch Set 11 : Address comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+249 lines, -2 lines) Patch
M chrome/browser/resources/settings/compiled_resources2.gyp View 1 2 3 4 5 1 chunk +7 lines, -0 lines 0 comments Download
A chrome/browser/resources/settings/search_settings.js View 1 2 3 4 5 6 7 8 9 10 1 chunk +195 lines, -0 lines 0 comments Download
M chrome/browser/resources/settings/settings_main/compiled_resources2.gyp View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M chrome/browser/resources/settings/settings_main/settings_main.html View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/resources/settings/settings_main/settings_main.js View 1 2 3 4 5 6 7 8 9 10 2 chunks +33 lines, -0 lines 0 comments Download
M chrome/browser/resources/settings/settings_resources.grd View 1 2 3 4 5 6 7 8 9 10 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/resources/settings/settings_ui/settings_ui.html View 1 2 3 4 5 1 chunk +0 lines, -1 line 0 comments Download
M chrome/browser/resources/settings/settings_ui/settings_ui.js View 1 2 3 4 1 chunk +7 lines, -0 lines 0 comments Download

Messages

Total messages: 65 (30 generated)
dpapad
Thought about writing tests, but thought it might be better to wait until this part ...
4 years, 6 months ago (2016-06-25 00:26:23 UTC) #20
michaelpg
https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/advanced_page/advanced_page.js File chrome/browser/resources/settings/advanced_page/advanced_page.js (right): https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/advanced_page/advanced_page.js#newcode43 chrome/browser/resources/settings/advanced_page/advanced_page.js:43: this.fire('advanced-page-ready'); i'm not sure this event is necessary. ready ...
4 years, 5 months ago (2016-06-27 23:00:04 UTC) #21
dpapad
https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/advanced_page/advanced_page.js File chrome/browser/resources/settings/advanced_page/advanced_page.js (right): https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/advanced_page/advanced_page.js#newcode43 chrome/browser/resources/settings/advanced_page/advanced_page.js:43: this.fire('advanced-page-ready'); On 2016/06/27 at 23:00:04, michaelpg wrote: > i'm ...
4 years, 5 months ago (2016-06-27 23:37:27 UTC) #22
Dan Beam
will get to this soon
4 years, 5 months ago (2016-06-29 00:39:05 UTC) #23
michaelpg
https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/advanced_page/advanced_page.js File chrome/browser/resources/settings/advanced_page/advanced_page.js (right): https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/advanced_page/advanced_page.js#newcode43 chrome/browser/resources/settings/advanced_page/advanced_page.js:43: this.fire('advanced-page-ready'); On 2016/06/27 23:37:26, dpapad wrote: > On 2016/06/27 ...
4 years, 5 months ago (2016-06-29 01:18:57 UTC) #25
dpapad
https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/advanced_page/advanced_page.js File chrome/browser/resources/settings/advanced_page/advanced_page.js (right): https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/advanced_page/advanced_page.js#newcode43 chrome/browser/resources/settings/advanced_page/advanced_page.js:43: this.fire('advanced-page-ready'); Removed this event. https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/settings_main/settings_main.js File chrome/browser/resources/settings/settings_main/settings_main.js (right): https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/settings_main/settings_main.js#newcode145 ...
4 years, 5 months ago (2016-06-29 18:20:13 UTC) #26
michaelpg
https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/settings_main/settings_main.js File chrome/browser/resources/settings/settings_main/settings_main.js (right): https://codereview.chromium.org/2082793003/diff/240001/chrome/browser/resources/settings/settings_main/settings_main.js#newcode145 chrome/browser/resources/settings/settings_main/settings_main.js:145: this.showAdvancedPage_ = true; On 2016/06/29 18:20:12, dpapad wrote: > ...
4 years, 5 months ago (2016-06-29 19:40:51 UTC) #27
dpapad
> The basic page is rendered even when you navigate to the About page? Why? ...
4 years, 5 months ago (2016-06-29 20:34:41 UTC) #28
dpapad
On 2016/06/29 at 20:34:41, dpapad wrote: > > The basic page is rendered even when ...
4 years, 5 months ago (2016-06-29 22:04:08 UTC) #29
dpapad
FYI, the next CL that makes searching be non-blocking is at https://codereview.chromium.org/2103133007 (still WIP, functional ...
4 years, 5 months ago (2016-06-30 00:34:59 UTC) #30
Dan Beam
https://codereview.chromium.org/2082793003/diff/280001/chrome/browser/resources/settings/search_settings.js File chrome/browser/resources/settings/search_settings.js (right): https://codereview.chromium.org/2082793003/diff/280001/chrome/browser/resources/settings/search_settings.js#newcode193 chrome/browser/resources/settings/search_settings.js:193: if (!!node.shadowRoot) equivalent to if (node.shadowRoot) https://codereview.chromium.org/2082793003/diff/280001/chrome/browser/resources/settings/search_settings.js#newcode248 chrome/browser/resources/settings/search_settings.js:248: this.walkers_.splice(0, ...
4 years, 5 months ago (2016-06-30 16:33:17 UTC) #31
dpapad
https://codereview.chromium.org/2082793003/diff/300001/chrome/browser/resources/settings/search_settings.js File chrome/browser/resources/settings/search_settings.js (right): https://codereview.chromium.org/2082793003/diff/300001/chrome/browser/resources/settings/search_settings.js#newcode228 chrome/browser/resources/settings/search_settings.js:228: node, NodeFilter.SHOW_ALL, this.nodeFilter_, false)); On 2016/06/30 at 16:33:17, Dan ...
4 years, 5 months ago (2016-06-30 17:32:57 UTC) #32
dpapad
Updated DOM traversal algorithm per discussion. PTAL. https://codereview.chromium.org/2082793003/diff/300001/chrome/browser/resources/settings/search_settings.js File chrome/browser/resources/settings/search_settings.js (right): https://codereview.chromium.org/2082793003/diff/300001/chrome/browser/resources/settings/search_settings.js#newcode228 chrome/browser/resources/settings/search_settings.js:228: node, NodeFilter.SHOW_ALL, ...
4 years, 5 months ago (2016-06-30 21:27:45 UTC) #36
Dan Beam
this is looking better and I'm closer to understanding the reasoning behind previous and current ...
4 years, 5 months ago (2016-07-01 00:54:55 UTC) #37
dpapad
https://codereview.chromium.org/2082793003/diff/360001/chrome/browser/resources/settings/search_settings.js File chrome/browser/resources/settings/search_settings.js (right): https://codereview.chromium.org/2082793003/diff/360001/chrome/browser/resources/settings/search_settings.js#newcode19 chrome/browser/resources/settings/search_settings.js:19: IGNORED_ELEMENTS = new Set([ On 2016/07/01 at 00:54:55, Dan ...
4 years, 5 months ago (2016-07-01 18:08:43 UTC) #38
dpapad
https://codereview.chromium.org/2082793003/diff/360001/chrome/browser/resources/settings/search_settings.js File chrome/browser/resources/settings/search_settings.js (right): https://codereview.chromium.org/2082793003/diff/360001/chrome/browser/resources/settings/search_settings.js#newcode150 chrome/browser/resources/settings/search_settings.js:150: doSearch(childNodes[i]); On 2016/07/01 at 18:08:43, dpapad wrote: > On ...
4 years, 5 months ago (2016-07-01 18:21:12 UTC) #39
dpapad
Per our discussion, updated the removeHighligts_() method to not be recursive and use /deep/ instead ...
4 years, 5 months ago (2016-07-01 19:26:15 UTC) #42
Dan Beam
lgtm https://codereview.chromium.org/2082793003/diff/460001/chrome/browser/resources/settings/search_settings.js File chrome/browser/resources/settings/search_settings.js (right): https://codereview.chromium.org/2082793003/diff/460001/chrome/browser/resources/settings/search_settings.js#newcode41 chrome/browser/resources/settings/search_settings.js:41: function findAndRemoveHighligts_(node) { fix typo https://codereview.chromium.org/2082793003/diff/460001/chrome/browser/resources/settings/search_settings.js#newcode75 chrome/browser/resources/settings/search_settings.js:75: function ...
4 years, 5 months ago (2016-07-01 21:32:35 UTC) #43
Dan Beam
also, i don't really know a great way, but maybe figure out a good testing ...
4 years, 5 months ago (2016-07-01 21:33:05 UTC) #44
dpapad
Regarding tests, see my first comment in this CL, https://codereview.chromium.org/2082793003#msg20. https://codereview.chromium.org/2082793003/diff/460001/chrome/browser/resources/settings/search_settings.js File chrome/browser/resources/settings/search_settings.js (right): https://codereview.chromium.org/2082793003/diff/460001/chrome/browser/resources/settings/search_settings.js#newcode41 ...
4 years, 5 months ago (2016-07-01 21:59:42 UTC) #45
Dan Beam
https://codereview.chromium.org/2082793003/diff/460001/chrome/browser/resources/settings/settings_main/settings_main.js File chrome/browser/resources/settings/settings_main/settings_main.js (right): https://codereview.chromium.org/2082793003/diff/460001/chrome/browser/resources/settings/settings_main/settings_main.js#newcode137 chrome/browser/resources/settings/settings_main/settings_main.js:137: this.currentRoute = {page: 'basic', section: '', subpage: [], url: ...
4 years, 5 months ago (2016-07-01 22:41:02 UTC) #46
Dan Beam
either way, still lgtm
4 years, 5 months ago (2016-07-01 22:41:11 UTC) #47
Dan Beam
https://codereview.chromium.org/2082793003/diff/460001/chrome/browser/resources/settings/settings_main/settings_main.js File chrome/browser/resources/settings/settings_main/settings_main.js (right): https://codereview.chromium.org/2082793003/diff/460001/chrome/browser/resources/settings/settings_main/settings_main.js#newcode137 chrome/browser/resources/settings/settings_main/settings_main.js:137: this.currentRoute = {page: 'basic', section: '', subpage: [], url: ...
4 years, 5 months ago (2016-07-01 22:48:28 UTC) #48
dpapad
@michaelpg: Ping
4 years, 5 months ago (2016-07-01 23:19:05 UTC) #49
michaelpg
mostly questions. overall it looks good, and it's way more concise than I thought it ...
4 years, 5 months ago (2016-07-04 19:23:56 UTC) #50
dpapad
https://codereview.chromium.org/2082793003/diff/480001/chrome/browser/resources/settings/search_settings.js File chrome/browser/resources/settings/search_settings.js (right): https://codereview.chromium.org/2082793003/diff/480001/chrome/browser/resources/settings/search_settings.js#newcode19 chrome/browser/resources/settings/search_settings.js:19: var IGNORED_ELEMENTS = new Set([ On 2016/07/04 at 19:23:56, ...
4 years, 5 months ago (2016-07-06 18:24:55 UTC) #51
michaelpg
lgtm, great start https://codereview.chromium.org/2082793003/diff/480001/chrome/browser/resources/settings/search_settings.js File chrome/browser/resources/settings/search_settings.js (right): https://codereview.chromium.org/2082793003/diff/480001/chrome/browser/resources/settings/search_settings.js#newcode19 chrome/browser/resources/settings/search_settings.js:19: var IGNORED_ELEMENTS = new Set([ On ...
4 years, 5 months ago (2016-07-06 23:41:16 UTC) #52
dpapad
https://codereview.chromium.org/2082793003/diff/480001/chrome/browser/resources/settings/search_settings.js File chrome/browser/resources/settings/search_settings.js (right): https://codereview.chromium.org/2082793003/diff/480001/chrome/browser/resources/settings/search_settings.js#newcode19 chrome/browser/resources/settings/search_settings.js:19: var IGNORED_ELEMENTS = new Set([ > Perhaps you also ...
4 years, 5 months ago (2016-07-07 17:34:12 UTC) #53
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2082793003/520001
4 years, 5 months ago (2016-07-07 17:51:44 UTC) #56
commit-bot: I haz the power
Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_android_rel_ng/builds/100103)
4 years, 5 months ago (2016-07-07 19:00:30 UTC) #58
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2082793003/520001
4 years, 5 months ago (2016-07-07 19:32:56 UTC) #60
commit-bot: I haz the power
Committed patchset #11 (id:520001)
4 years, 5 months ago (2016-07-07 19:57:41 UTC) #61
commit-bot: I haz the power
CQ bit was unchecked.
4 years, 5 months ago (2016-07-07 19:57:53 UTC) #62
commit-bot: I haz the power
Patchset 11 (id:??) landed as https://crrev.com/e18c3a8d876d941206fc600dea2681dab2d290d8 Cr-Commit-Position: refs/heads/master@{#404222}
4 years, 5 months ago (2016-07-07 19:59:14 UTC) #64
michaelpg
4 years, 5 months ago (2016-07-07 20:15:49 UTC) #65
Message was sent while issue was closed.
On 2016/07/07 17:34:12, dpapad wrote:
>
https://codereview.chromium.org/2082793003/diff/480001/chrome/browser/resourc...
> File chrome/browser/resources/settings/search_settings.js (right):
> 
>
https://codereview.chromium.org/2082793003/diff/480001/chrome/browser/resourc...
> chrome/browser/resources/settings/search_settings.js:19: var IGNORED_ELEMENTS
=
> new Set([
> > Perhaps you also want to add paper-slider, I don't think there's anything we
> want to match there.
> 
> Done, added paper-slider.
> 
>
https://codereview.chromium.org/2082793003/diff/480001/chrome/browser/resourc...
> chrome/browser/resources/settings/search_settings.js:24: 'PAPER-ICON-BUTTON',
> > It'd be easier for developing and debugging if Search were as deterministic
> and reproducible as possible, at any step of the implementation. If that's
> impractical, then it's fine, but it seemed easy to add here.
> 
> Added iron-list to the set. After a quick inspection it seems that we use it
for
> dynamic data only.
> 
>
https://codereview.chromium.org/2082793003/diff/480001/chrome/browser/resourc...
> chrome/browser/resources/settings/search_settings.js:178: // Generate search
> text by applying lowercase and escaping any characters
> On 2016/07/06 at 23:41:16, michaelpg wrote:
> > On 2016/07/06 18:24:55, dpapad wrote:
> > > On 2016/07/04 at 19:23:56, michaelpg wrote:
> > > > how does this lowercase?
> > > 
> > > It does not need to. The regExp constructed below is case insensitive.
> > 
> > Understood but the comment makes the code look wrong. :-)
> 
> Updated comment (it was obsolete).
> 
>
https://codereview.chromium.org/2082793003/diff/500001/chrome/browser/resourc...
> File chrome/browser/resources/settings/search_settings.js (right):
> 
>
https://codereview.chromium.org/2082793003/diff/500001/chrome/browser/resourc...
> chrome/browser/resources/settings/search_settings.js:92:
> wrapper.appendChild(span);
> On 2016/07/06 at 23:41:16, michaelpg wrote:
> > is there a risk of the new <span> being styled unintentionally by a CSS
> selector ending in "span"?
> > 
> > examples:
>
https://cs.chromium.org/search/?q=file:settings+%5Csspan%5Cs%5C%7B%7C%5Csspan...
> 
> Yes, I was actually able to reproduce one such case in the internet page,
where
> the yellow rectangle has an unnecessary 10px margin. The actual list of
> potential collisions is smaller than the link you provided, see
>
https://cs.chromium.org/search/?q=%5Csspan%5Cs%5C%7B%7C%5Csspan,$+file:%5Esrc....
> 
> I'll address those collisions in follow up CL. My priority is to get 1st and
2nd
> (asyncify search) iterations in, before fixing minor bugs.

sgtm

Powered by Google App Engine
This is Rietveld 408576698