New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 815009 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug

Blocked on:
issue 831004

Blocking:
issue 738611



Sign in to add a comment

Polymer: Migrate iron-list to its latest (2.x) version.

Project Member Reported by dpa...@chromium.org, Feb 23 2018

Issue description

This task involves
1) Updating third_party/polymer/v1_0/bower.json and running reproduce.sh script.
2) Updating our local iron-list patch to work with latest version at [1].
3) Read about breaking changes [1] and evaluate how they affect Chromium's usage (and tweak code as necessary).
4) Ensure all automatic tests pass, as well as doing some manual sanity checking.

@scottchen: Do you have any cycles to look into this?

[1] https://cs.chromium.org/chromium/src/third_party/polymer/v1_0/chromium.patch?l=27
[2] https://github.com/PolymerElements/iron-list#changes-in-v2
 

Comment 1 by dpa...@chromium.org, Feb 23 2018

Blocking: 738611
FYI, I started 1 and 2 from the list above, see https://chromium-review.googlesource.com/c/chromium/src/+/947707. Automated tests are still running.

Feel free to pick up from that point.
FYI, the bots revealed a few Closure compilation errors within the iron-list code, see

https://logs.chromium.org/v/?s=chromium%2Fbb%2Ftryserver.chromium.linux%2Fclosure_compilation%2F15826%2F%2B%2Frecipes%2Fsteps%2Fcompile%2F0%2Fstdout

Also, pasting below:

(ERROR) Error in: iron-list-extracted.js
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:9: ERROR - Property flush never defined on Polymer
##   var IS_V2 = Polymer.flush != null;
##                       ^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:10: ERROR - Property animationFrame never defined on Polymer.Async
##   var ANIMATION_FRAME = IS_V2 ? Polymer.Async.animationFrame : 0;
##                                               ^^^^^^^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:11: ERROR - Property idlePeriod never defined on Polymer.Async
##   var IDLE_TIME = IS_V2 ? Polymer.Async.idlePeriod : 1;
##                                         ^^^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:12: ERROR - Property microTask never defined on Polymer.Async
##   var MICRO_TASK = IS_V2 ? Polymer.Async.microTask : 2;
##                                          ^^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:787: ERROR - Function IronListElement.prototype.templatize: called with 2 argument(s). Function requires at least 1 argument(s) and no more than 1 argument(s).
##       this.templatize(this._userTemplate, this.mutableData);
##       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:787: ERROR - Property mutableData never defined on IronListElement
##       this.templatize(this._userTemplate, this.mutableData);
##                                                ^^^^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:886: ERROR - Property _setPendingPropertyOrPath never defined on PolymerElement
##         ? inst._setPendingPropertyOrPath(path, value, false, true)
##                ^^^^^^^^^^^^^^^^^^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:1325: ERROR - Property isIndexSelected never defined on ?
##           ? this.$.selector.isIndexSelected(index) : this.$.selector.isSelected(this.items[index]);
##                             ^^^^^^^^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:1621: ERROR - Property debounce never defined on Polymer.Debouncer
##         this._debouncers[name] = Polymer.Debouncer.debounce(
##                                                    ^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:1625: ERROR - Property enqueueDebouncer never defined on Polymer
##         Polymer.enqueueDebouncer(this._debouncers[name]);
##                 ^^^^^^^^^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:1633: ERROR - Property _setPendingProperty never defined on inst
##         inst._setPendingProperty(name, value);
##              ^^^^^^^^^^^^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:1645: ERROR - Property forwardHostProp never defined on PolymerElement
##             this.modelForElement(item).forwardHostProp(prop, value);
##                                        ^^^^^^^^^^^^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:1651: ERROR - Property Path never defined on Polymer
##      if (Polymer.Path.matches(this.as, prop)) {
##                  ^^^^
## 
## /b/build/slave/linux/build/src/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js:1656: ERROR - Property Path never defined on Polymer
##         this.notifyPath(Polymer.Path.translate(this.as, 'items.' + idx, prop), value);
##                                 ^^^^
Status: Started (was: Assigned)
Iron-list seems to have introduced a bug in newer version. Filed with Polymer owner:
https://github.com/PolymerElements/iron-list/issues/512 and awaiting feedback/fix.
Cc: dpa...@chromium.org
status update:
Polymer team fixed the iron-list issue, and I've based our own patch on the newest version in this CL: https://chromium-review.googlesource.com/c/chromium/src/+/988247

However, this still requires rolling closure compiler as mentioned before. I've started doing that, but there are a lot more new closure-compiler errors we need to fix. This is in progress in this WIP CL: https://chromium-review.googlesource.com/c/chromium/src/+/988553

Comment 6 by dpa...@chromium.org, Apr 10 2018

Blockedon: 831004

Comment 7 by dpa...@chromium.org, Apr 16 2018

FYI, closure compiler has been updated, so this bug should be unblocked now.
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9417cbbdf2bf0fb3b82cc20e0b0e5cd808d71b16

commit 9417cbbdf2bf0fb3b82cc20e0b0e5cd808d71b16
Author: Scott Chen <scottchen@chromium.org>
Date: Thu Apr 19 20:47:59 2018

WebUI: Update Polymer iron-list 1.4.6 -> 2.0.14.

Bug:  815009 
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: If3c93fa90def4d7332d077d54efe9a8ca2c51ea3
Reviewed-on: https://chromium-review.googlesource.com/988247
Commit-Queue: Scott Chen <scottchen@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552149}
[modify] https://crrev.com/9417cbbdf2bf0fb3b82cc20e0b0e5cd808d71b16/chrome/browser/resources/md_downloads/manager.js
[modify] https://crrev.com/9417cbbdf2bf0fb3b82cc20e0b0e5cd808d71b16/third_party/polymer/v1_0/bower.json
[modify] https://crrev.com/9417cbbdf2bf0fb3b82cc20e0b0e5cd808d71b16/third_party/polymer/v1_0/chromium.patch
[modify] https://crrev.com/9417cbbdf2bf0fb3b82cc20e0b0e5cd808d71b16/third_party/polymer/v1_0/components-chromium/iron-list/bower.json
[modify] https://crrev.com/9417cbbdf2bf0fb3b82cc20e0b0e5cd808d71b16/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js
[modify] https://crrev.com/9417cbbdf2bf0fb3b82cc20e0b0e5cd808d71b16/third_party/polymer/v1_0/components-chromium/iron-list/iron-list.html
[modify] https://crrev.com/9417cbbdf2bf0fb3b82cc20e0b0e5cd808d71b16/third_party/polymer/v1_0/components_summary.txt
[modify] https://crrev.com/9417cbbdf2bf0fb3b82cc20e0b0e5cd808d71b16/ui/webui/resources/cr_elements/cr_action_menu/cr_action_menu.js

Status: Fixed (was: Started)

Sign in to add a comment