New issue
Advanced search Search tips

Issue 847420 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Task



Sign in to add a comment

Use UI architecture in legacy Zine UI

Project Member Reported by bauerb@chromium.org, May 29 2018

Issue description

Use the Clank UI architecture outlined in http://go/clank-ui-architecture in the legacy content suggestions UI.
 
This has some overlap with design work I'm planning to pick up in the next couple of weeks for the Feed library integration, so it'd be good to coordinate :)

Is this bug intended to capture only the articles list or some of the other NTP content (e.g. tiles, logo view, etc) as well?

Also, do you have a general idea of the new class structure that we're shooting (e.g. which classes get broken up/removed, which new classes get added)?

Comment 2 by bauerb@chromium.org, May 30 2018

Cc: dtrainor@chromium.org
Yes, let's coordinate :)

I'm definitely planning to start with articles (which is already in a closer state than other stuff), but then see if I can also refactor tiles and/or the currently somewhat monolithic NewTabPageLayout.

The general idea (at least for articles) is to adapt the tree classes to observer/observable (for propagating change notifications to the adapter) and ViewBinder (for delegating bindViewHolder etc. calls). Currently there are a lot of subclasses of InnerNode etc which contain both what we would call model and controller code in the UI architecture -- I want to pull that out into separate classes and make InnerNode a concrete class that just observes the model (essentially a ModelChangeProcessor that forwards events either to its parent or the root RecyclerView adapter). The other goal of this is to make the classes reusable for other RecyclerView-based UIs (e.g. downloads). That's my initial brain dump for now :)
Project Member

Comment 3 by bugdroid1@chromium.org, May 30 2018

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

commit 4a0b1170bd9bcd2b80e8856f3746265250c39585
Author: Bernhard Bauer <bauerb@chromium.org>
Date: Wed May 30 18:41:16 2018

Use ListObserver instead of NodeParent to notify about changes

As a first step in refactoring the content suggestions UI to use the
Clank UI architecture, use the ListObserver interface to notify about
changes to the NTP tree model instead of the very similar NodeParent,
and have ChildNode inherit from ListObservable to send these
notifications. Later this will allow separating the model from
controller (mediator) code, with change notifications passed through the
tree from the model to the RecyclerView adapter.

As part of this, merge ClusterListObservable into ClusterList, as they
now have the same base class, and add an explicit destroy() method to
ContextualSuggestionsCluster, as detaching is now replaced with removing
an observer (which should not trigger any side effects). This also
ensures that contextual suggestion clusters are destroyed with the
coordinator (which used to happen only when they were being replaced
with new suggestions).

Bug: 847420
Change-Id: I158aecb5fff36db1c1afa7e1fc92adf30f4433b2
Reviewed-on: https://chromium-review.googlesource.com/860642
Commit-Queue: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Theresa <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562929}
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/ClusterList.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/ContentCoordinator.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsAdapter.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsCluster.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsCoordinator.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsMediator.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsModel.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/modelutil/ListObservable.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
[delete] https://crrev.com/6f95417ff396446ba6c14466bf1d566a6bc7d44c/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NodeParent.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/TreeNode.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/java_sources.gni
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/javatests/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsTest.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/javatests/src/org/chromium/chrome/browser/suggestions/TileGridLayoutTest.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java
[modify] https://crrev.com/4a0b1170bd9bcd2b80e8856f3746265250c39585/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java

Re #2, great! I'll keep you in the loop on my Feed integration design planning. My primary goal is to get the code refactored in a way that allows for re-use with the Feed lib Stream API, and bringing the NTP architecture closer to our new MVC pattern in the process. There's a lot of code to pick apart and behavior/functionality to figure out a home for (e.g. thumbnail capturing, snap scroll behavior, fake search box to real omnibox transition), so I'm hoping to be able to identify the end architecture in broad strokes then figure out some tactical steps to start moving in that direction.
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 5 2018

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

commit a6082a16afb7e161a8c3304594b4440fdfea646b
Author: Bernhard Bauer <bauerb@chromium.org>
Date: Tue Jun 05 20:52:48 2018

🏚 Remove FeatureUtilities.isChromeHomeEnabled

This allows removing special cases for CH, particularly in the
content suggestions code.

Bug:  805070 , 847420
Change-Id: I69db669f85564e10e4452cec8bb7dcf75773f283
Reviewed-on: https://chromium-review.googlesource.com/1087048
Commit-Queue: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Matthew Jones <mdjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564657}
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/res/values/dimens.xml
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageViewMD.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/ntp/LogoView.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/AllDismissedItem.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/MostVisitedSitesBridge.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsRecyclerView.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/java/src/org/chromium/chrome/browser/widget/PulseDrawable.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/cards/AllDismissedItemTest.java
[modify] https://crrev.com/a6082a16afb7e161a8c3304594b4440fdfea646b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 12 2018

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

commit 475a0b4725b9ec9db43c5ec49afbf6a8e8e2fc03
Author: Bernhard Bauer <bauerb@chromium.org>
Date: Tue Jun 12 13:09:56 2018

Push notification convenience methods from ChildNode into ListObservable

Bug: 847420
Change-Id: I0e0441c339b53e12eb87735de2eb5ab978eecea4
Reviewed-on: https://chromium-review.googlesource.com/1095174
Reviewed-by: Michael van Ouwerkerk <mvanouwerkerk@chromium.org>
Commit-Queue: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566395}
[modify] https://crrev.com/475a0b4725b9ec9db43c5ec49afbf6a8e8e2fc03/chrome/android/java/src/org/chromium/chrome/browser/download/home/list/BatchListObservable.java
[modify] https://crrev.com/475a0b4725b9ec9db43c5ec49afbf6a8e8e2fc03/chrome/android/java/src/org/chromium/chrome/browser/download/home/list/DecoratedListItemModel.java
[modify] https://crrev.com/475a0b4725b9ec9db43c5ec49afbf6a8e8e2fc03/chrome/android/java/src/org/chromium/chrome/browser/download/home/list/ListItemModel.java
[modify] https://crrev.com/475a0b4725b9ec9db43c5ec49afbf6a8e8e2fc03/chrome/android/java/src/org/chromium/chrome/browser/modelutil/ListObservable.java
[modify] https://crrev.com/475a0b4725b9ec9db43c5ec49afbf6a8e8e2fc03/chrome/android/java/src/org/chromium/chrome/browser/modelutil/SimpleListObservable.java
[modify] https://crrev.com/475a0b4725b9ec9db43c5ec49afbf6a8e8e2fc03/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ActionItem.java
[modify] https://crrev.com/475a0b4725b9ec9db43c5ec49afbf6a8e8e2fc03/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java
[modify] https://crrev.com/475a0b4725b9ec9db43c5ec49afbf6a8e8e2fc03/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java
[modify] https://crrev.com/475a0b4725b9ec9db43c5ec49afbf6a8e8e2fc03/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SectionListTest.java

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 25 2018

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

commit 2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c
Author: Bernhard Bauer <bauerb@chromium.org>
Date: Mon Jun 25 14:02:50 2018

Further simplify SimpleRecyclerViewMcp handling

Add observers automatically, which allows constructing the MCP and the
adapter inline. To support this, split ListObservable into an interface
and an implementation class ListObservableImpl, so that
RecyclerViewAdapter.Delegate extends ListObservable.

Also, remove the payload type (which currently is Void everywhere) from
SimpleRecyclerViewMcp and its ViewBinder. It will be reintroduced in a
dedicated MCP class for adapters that do support partial binding.

Bug: 847420
Change-Id: Ie34108836560e0a63a4259150366640d2fcfbe6b
Reviewed-on: https://chromium-review.googlesource.com/1112016
Reviewed-by: David Trainor <dtrainor@chromium.org>
Reviewed-by: Theresa <twellington@chromium.org>
Reviewed-by: Friedrich Horschig <fhorschig@chromium.org>
Commit-Queue: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570026}
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryCoordinator.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewBinder.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetCoordinator.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewBinder.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/ContentCoordinator.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/download/home/filter/chips/ChipsCoordinator.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/download/home/filter/chips/ChipsViewHolder.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/download/home/list/BatchListObservable.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListView.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/download/home/list/DecoratedListItemModel.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/modelutil/ForwardingListObservable.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/modelutil/ListObservable.java
[add] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/modelutil/ListObservableImpl.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/modelutil/RecyclerViewAdapter.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/modelutil/SimpleListObservable.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/modelutil/SimpleRecyclerViewMcp.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java
[modify] https://crrev.com/2f131cfdd01d6b8326fa467b8b7a9317bd1c5a1c/chrome/android/java_sources.gni

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 3

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

commit 109eda257417dc837cf34f01a8322c6beb7d32ff
Author: Bernhard Bauer <bauerb@chromium.org>
Date: Fri Aug 03 09:57:37 2018

Separate SuggestionsList into a model and a ModelChangeProcessor

This will allow extracting a mediator that interacts only with the model.

Bug: 847420

Change-Id: I2cfc0f816ae04570dcc12f40757339fc4ed5de0c
Reviewed-on: https://chromium-review.googlesource.com/1142153
Reviewed-by: Theresa <twellington@chromium.org>
Commit-Queue: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580489}
[add] https://crrev.com/109eda257417dc837cf34f01a8322c6beb7d32ff/chrome/android/java/src/org/chromium/chrome/browser/modelutil/PropertyListObservable.java
[modify] https://crrev.com/109eda257417dc837cf34f01a8322c6beb7d32ff/chrome/android/java/src/org/chromium/chrome/browser/modelutil/SimpleListObservableBase.java
[modify] https://crrev.com/109eda257417dc837cf34f01a8322c6beb7d32ff/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java
[modify] https://crrev.com/109eda257417dc837cf34f01a8322c6beb7d32ff/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java
[modify] https://crrev.com/109eda257417dc837cf34f01a8322c6beb7d32ff/chrome/android/java_sources.gni
[modify] https://crrev.com/109eda257417dc837cf34f01a8322c6beb7d32ff/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java

Project Member

Comment 9 by bugdroid1@chromium.org, Aug 16

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

commit f9e193268df38feda0cfd6d63f87bc04ed2ded7e
Author: Bernhard Bauer <bauerb@chromium.org>
Date: Thu Aug 16 10:52:29 2018

Rename SimpleListObservable to ListModel

ListModel is shorter and more consistent with PropertyModel. Rename
other classes correspondingly.

Bug: 847420
Change-Id: Id8459c21197d4e01879703325c0142508091246d
Reviewed-on: https://chromium-review.googlesource.com/1172582
Reviewed-by: Theresa <twellington@chromium.org>
Commit-Queue: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583598}
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessoryPagerAdapter.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetModel.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryMetricsRecorder.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryModel.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewBinder.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetCoordinator.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewBinder.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/download/home/filter/chips/ChipsCoordinator.java
[rename] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/download/home/list/BatchListModel.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/download/home/list/ListItemModel.java
[rename] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/modelutil/ListModel.java
[rename] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/modelutil/ListModelBase.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/modelutil/ListObservable.java
[rename] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/modelutil/PropertyListModel.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/modelutil/SimpleRecyclerViewMcp.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/modelutil/SimpleRecyclerViewMcpBase.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/java_sources.gni
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewTest.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingControllerTest.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetControllerTest.java
[modify] https://crrev.com/f9e193268df38feda0cfd6d63f87bc04ed2ded7e/chrome/android/junit/src/org/chromium/chrome/browser/modelutil/SimpleListObservableTest.java

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 3

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

commit e9f2be5afc79b27735c85b04493e12d4fe9c78b5
Author: Bernhard Bauer <bauerb@chromium.org>
Date: Mon Sep 03 14:33:21 2018

Add a model change processor for lazy construction

LazyConstructionPropertyMcp supports asynchronous view inflation and
batches updates while the view is hidden. It replaces
LazyViewBinderAdapter.

Bug: 847420

Change-Id: I3c7d057bf342c674b08e0fee657eb67c345485de
Reviewed-on: https://chromium-review.googlesource.com/1142155
Commit-Queue: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Friedrich Horschig [CEST] <fhorschig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588391}
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetCoordinator.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetModel.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetViewBinder.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryCoordinator.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryModel.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewBinder.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingCoordinator.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsModel.java
[add] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/modelutil/LazyConstructionPropertyMcp.java
[delete] https://crrev.com/5944dfa28a03929d611d13e7c02ed274bf10ae28/chrome/android/java/src/org/chromium/chrome/browser/modelutil/LazyViewBinderAdapter.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/modelutil/PropertyModel.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/modelutil/PropertyObservable.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarControlContainer.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/java_sources.gni
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetViewTest.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewTest.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewTest.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetControllerTest.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryControllerTest.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingControllerTest.java
[add] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/junit/src/org/chromium/chrome/browser/modelutil/LazyConstructionPropertyMcpTest.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/android/junit/src/org/chromium/chrome/browser/modelutil/PropertyModelTest.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/test/android/BUILD.gn
[add] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/modelutil/FakeViewProvider.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/ui/android/BUILD.gn
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/ui/android/java/src/org/chromium/ui/AsyncViewProvider.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/ui/android/java/src/org/chromium/ui/AsyncViewStub.java
[add] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/ui/android/java/src/org/chromium/ui/DeferredViewStubInflationProvider.java
[add] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/ui/android/java/src/org/chromium/ui/ViewProvider.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/ui/android/junit/src/org/chromium/ui/AsyncViewProviderTest.java
[modify] https://crrev.com/e9f2be5afc79b27735c85b04493e12d4fe9c78b5/ui/android/junit/src/org/chromium/ui/AsyncViewStubTest.java

Owner: ----
Status: Untriaged (was: Started)
Bulk edit: Moving back into the untriaged pool, as I'm leaving the project.
Cc: huayinz@chromium.org
Status: Available (was: Untriaged)

Sign in to add a comment