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

Issue 2573173002: 📰 Split TreeNode#init into SetParent and SetChildren (Closed)

Created:
4 years ago by dgn
Modified:
4 years ago
Reviewers:
Bernhard Bauer
CC:
chromium-reviews, ntp-dev+reviews_chromium.org, agrieve+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[NTP Client] Split TreeNode#init into SetParent and SetChildren Unties Node construction with the initialisation of their parent and children. This allows controlling when the notifications about child modifications are propagated, and simplifies the initialisation order. The InnerNode#setParent() call is now what enables the notifications and is done as the last step of the NewTabPageAdapter constructor. ChildNode and InnerNode share almost all of the logic related to managing the tree and their implementations make use of that without specific modifications. This also fixes some bugs related to resetting the section list. BUG=616090, 674023 Committed: https://crrev.com/d3007605eb84788e2d02efc395509ad449f3c035 Cr-Commit-Position: refs/heads/master@{#439489}

Patch Set 1 #

Patch Set 2 : fix tests and stuff #

Total comments: 13

Patch Set 3 : add SectionListTest #

Total comments: 2

Patch Set 4 : replace init with setParent/setChildren, update tests #

Patch Set 5 : rebase #

Total comments: 1

Patch Set 6 : remove alt test #

Total comments: 14

Patch Set 7 : address comments #

Patch Set 8 : fix test, rebase on master #

Total comments: 6

Patch Set 9 : rebase #

Patch Set 10 : replace InnerNode#getChildren with specialised test functions in SectionList #

Total comments: 3

Patch Set 11 : revert getChildren() change #

Unified diffs Side-by-side diffs Delta from patch set Stats (+221 lines, -203 lines) Patch
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ActionItem.java View 1 chunk +0 lines, -1 line 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/AllDismissedItem.java View 1 chunk +0 lines, -6 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java View 1 2 3 4 5 6 1 chunk +11 lines, -8 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/Footer.java View 1 chunk +0 lines, -6 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java View 1 2 3 4 5 6 7 10 3 chunks +62 lines, -36 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/Leaf.java View 1 2 chunks +1 line, -4 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java View 1 2 3 4 5 6 7 5 chunks +9 lines, -21 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/OptionalLeaf.java View 1 chunk +0 lines, -8 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ProgressItem.java View 1 chunk +0 lines, -3 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java View 1 2 3 10 5 chunks +13 lines, -23 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java View 1 2 3 2 chunks +1 line, -7 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SpacingItem.java View 1 2 3 1 chunk +5 lines, -0 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/StatusItem.java View 1 chunk +4 lines, -10 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java View 1 2 3 4 5 6 7 4 chunks +7 lines, -28 lines 0 comments Download
M chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/TreeNode.java View 1 2 3 2 chunks +1 line, -4 lines 0 comments Download
M chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java View 1 2 3 4 5 6 7 8 9 4 chunks +105 lines, -36 lines 0 comments Download
M chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 49 (34 generated)
dgn
PTAL https://codereview.chromium.org/2573173002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java (left): https://codereview.chromium.org/2573173002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java#oldcode151 chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java:151: updateAllDismissedVisibility(); is called as indirectly by init, when ...
4 years ago (2016-12-15 13:08:57 UTC) #6
Bernhard Bauer
Nice! https://codereview.chromium.org/2573173002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java (right): https://codereview.chromium.org/2573173002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java#newcode31 chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java:31: if (itemCount > 0) notifyItemRangeInserted(0, itemCount); Do we ...
4 years ago (2016-12-15 15:40:19 UTC) #8
dgn
PTAL https://codereview.chromium.org/2573173002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java (right): https://codereview.chromium.org/2573173002/diff/20001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java#newcode31 chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java:31: if (itemCount > 0) notifyItemRangeInserted(0, itemCount); On 2016/12/15 ...
4 years ago (2016-12-16 13:05:14 UTC) #14
Bernhard Bauer
Nice! https://codereview.chromium.org/2573173002/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java (right): https://codereview.chromium.org/2573173002/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java#newcode24 chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java:24: if (mParent == parent) return; I don't think ...
4 years ago (2016-12-16 17:27:28 UTC) #20
dgn
PTAL https://codereview.chromium.org/2573173002/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java (right): https://codereview.chromium.org/2573173002/diff/100001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java#newcode24 chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java:24: if (mParent == parent) return; On 2016/12/16 17:27:27, ...
4 years ago (2016-12-16 19:08:48 UTC) #22
Bernhard Bauer
https://codereview.chromium.org/2573173002/diff/100001/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java File chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java (right): https://codereview.chromium.org/2573173002/diff/100001/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java#newcode176 chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java:176: rootNode.removeChild(rootNode.getChildren().get(1)); On 2016/12/16 19:08:48, dgn wrote: > On 2016/12/16 ...
4 years ago (2016-12-16 19:34:17 UTC) #24
dgn
PTAL. I replaced the setChildren by addChildren() in the end, since we have a removeChildren() ...
4 years ago (2016-12-16 20:00:06 UTC) #26
Bernhard Bauer
lgtm https://codereview.chromium.org/2573173002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java (right): https://codereview.chromium.org/2573173002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java#newcode163 chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java:163: @VisibleForTesting Can we remove this now? https://codereview.chromium.org/2573173002/diff/140001/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java File ...
4 years ago (2016-12-19 10:28:46 UTC) #30
dgn
PTAL https://codereview.chromium.org/2573173002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java (right): https://codereview.chromium.org/2573173002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java#newcode163 chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java:163: @VisibleForTesting On 2016/12/19 10:28:46, Bernhard Bauer wrote: > ...
4 years ago (2016-12-19 13:44:21 UTC) #33
Bernhard Bauer
https://codereview.chromium.org/2573173002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java (right): https://codereview.chromium.org/2573173002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java#newcode163 chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java:163: @VisibleForTesting On 2016/12/19 13:44:21, dgn wrote: > On 2016/12/19 ...
4 years ago (2016-12-19 14:35:35 UTC) #36
dgn
PTAL https://codereview.chromium.org/2573173002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java File chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java (right): https://codereview.chromium.org/2573173002/diff/140001/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java#newcode163 chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java:163: @VisibleForTesting On 2016/12/19 14:35:35, Bernhard Bauer wrote: > ...
4 years ago (2016-12-19 15:33:34 UTC) #39
Bernhard Bauer
Still LGTM!
4 years ago (2016-12-19 16:23:38 UTC) #42
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/2573173002/200001
4 years ago (2016-12-19 16:31:14 UTC) #44
commit-bot: I haz the power
Committed patchset #11 (id:200001)
4 years ago (2016-12-19 16:36:36 UTC) #47
commit-bot: I haz the power
4 years ago (2016-12-19 16:38:22 UTC) #49
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/d3007605eb84788e2d02efc395509ad449f3c035
Cr-Commit-Position: refs/heads/master@{#439489}

Powered by Google App Engine
This is Rietveld 408576698