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

Issue 877878 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

Java UserData/UserDataHost interface

Project Member Reported by jinsuk...@chromium.org, Aug 27

Issue description

Java-side UserData interface (https://goo.gl/2uWDja) has landed at https://crrev.com/c/1179507. This bug is to keep track of efforts applying it to 'host' classes and offloading the classes they've been managing explicitly/directly onto UserDataHost. 

 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 30

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

commit aad8d9de9c16f4d746a448aedf84158e4c7c9e7e
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Thu Aug 30 01:29:51 2018

Android: Apply UserData to Tab objects

With this CL, Tab defines UserDataHost instance to offload following
classes onto it:

- DisplayCutoutController
- TabBrowserControlsOffsetHelper

The classes have the same lifetime as that of Tab, and now implement
UserData interface to be managed by UserDataHost. Also updated to be
destroyed via UserDataHost.destroy() instead of TabObserver or
individual call.

Actual logic will be moved out of Tab in a follow-up CL.

Bug: 877878
Change-Id: I9cbe2a53c22b63e6332830e185706c7544aeafc3
Reviewed-on: https://chromium-review.googlesource.com/1189687
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587375}
[modify] https://crrev.com/aad8d9de9c16f4d746a448aedf84158e4c7c9e7e/chrome/android/java/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutController.java
[modify] https://crrev.com/aad8d9de9c16f4d746a448aedf84158e4c7c9e7e/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/aad8d9de9c16f4d746a448aedf84158e4c7c9e7e/chrome/android/java/src/org/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper.java
[modify] https://crrev.com/aad8d9de9c16f4d746a448aedf84158e4c7c9e7e/chrome/android/javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTestRule.java

Project Member

Comment 2 by bugdroid1@chromium.org, Sep 3

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

commit 3f9b0b32777353f9e0d7675bed971d07fb82f653
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Mon Sep 03 01:11:19 2018

Android: Move DisplayCutoutController out of Tab

Tab doesn't have to keep the reference to DisplayCutoutController
now that it is managed by UserDataHost, and can be obtained via
|DisplayCutoutController#from(this)|. This CL removes the reference
from Tab class.

Bug: 877878
Change-Id: Ib7fa3b7e16d49e594324e632140d1864b4be996e
Reviewed-on: https://chromium-review.googlesource.com/1195177
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588309}
[modify] https://crrev.com/3f9b0b32777353f9e0d7675bed971d07fb82f653/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/3f9b0b32777353f9e0d7675bed971d07fb82f653/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 7

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

commit ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Fri Sep 07 01:26:33 2018

Android: TabRedirectHandler on UserData for Tab

Lets Tab's UserDataHost manage TabRedirectorHandler when it is used for
Tab. Also saves Tab from keeping the instance of it.

TabRedirectHandler now defines 3 new methods:

- from(Tab): Returns an instance associated with the Tab. If not present,
            creates a new instance.
- getOrNull(Tab): Similar to |from| but returns null if an instance is
            not present.
- swapFor(Tab): Replaced the current TabRedirectHandler for Tab with
            a new one.

Bug: 877878
Change-Id: I6fe3fcaaba9e5fcf4625bd74691b5a3634a31fce
Reviewed-on: https://chromium-review.googlesource.com/1201630
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589401}
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/java/src/org/chromium/chrome/browser/vr/VrShell.java
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
[modify] https://crrev.com/ac0a39cc56eef8ceafbcf4d6fa375ce4db26b7cb/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabRedirectHandlerTest.java

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 7

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

commit 6e47e43808c983ee27c65bb319fd8c31ee3362e6
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Fri Sep 07 02:17:09 2018

Android: Remove Tab.getControlsOffsetHelper()

Now that TabBrowserControlsOffsetHelper object can now be obtained
from TabBrowserControlsOffsetHelper.from(Tab), this CL removes
the API from Tab class.

Also, |FullscreenManager.setTab()| takes over the task of
updating the offsethelper from Tab.

Tab still has a reference to offset helper object, which will go away
in a couple of more CLs that move all the related tasks out of Tab.

Bug: 877878
Change-Id: I416230b59ca5704c055fca6b5eb89561f62d4a07
Reviewed-on: https://chromium-review.googlesource.com/1205971
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589410}
[modify] https://crrev.com/6e47e43808c983ee27c65bb319fd8c31ee3362e6/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java
[modify] https://crrev.com/6e47e43808c983ee27c65bb319fd8c31ee3362e6/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java
[modify] https://crrev.com/6e47e43808c983ee27c65bb319fd8c31ee3362e6/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/TabModalPresenter.java
[modify] https://crrev.com/6e47e43808c983ee27c65bb319fd8c31ee3362e6/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/6e47e43808c983ee27c65bb319fd8c31ee3362e6/chrome/android/java/src/org/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper.java
[modify] https://crrev.com/6e47e43808c983ee27c65bb319fd8c31ee3362e6/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 7

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

commit 312dad5b760d28fe238cc4c7cd2b4cd43fb88106
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Fri Sep 07 08:03:46 2018

Android: Replace WebContentsUserdata with base.UserData

This CL rewrites WebContentsUserData using org.chromium.base.UserData.
There should be no functional change. WebContentsUserData is deleted.

Bug: 877878
Change-Id: Ib8f5b2267bf9d21f84661d2e747d8a6c9c1d9d66
Reviewed-on: https://chromium-review.googlesource.com/1189584
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589456}
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/android_webview/javatests/src/org/chromium/android_webview/test/WebViewModalDialogOverrideTest.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/chrome/android/javatests/src/org/chromium/chrome/browser/ContentViewFocusTest.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/chrome/android/javatests/src/org/chromium/chrome/browser/ModalDialogTest.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillPopupTest.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTestUtils.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/browser/android/gesture_listener_manager.cc
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/browser/android/ime_adapter_android.cc
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/browser/android/select_popup.cc
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/browser/android/text_suggestion_host_android.cc
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/BUILD.gn
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/Gamepad.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/GestureListenerManagerImpl.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/JavascriptInjectorImpl.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/JoystickHandler.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/PopupController.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/ViewEventSinkImpl.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/WindowEventObserverManager.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapterImpl.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/input/TextSuggestionHost.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
[delete] https://crrev.com/fa02ae6a0b4d0ace080f3eb32febc768dac59670/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsUserData.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/javatests/src/org/chromium/content/browser/ContentTextSelectionTest.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/javatests/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityTest.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/javatests/src/org/chromium/content/browser/input/ImeActivityTestRule.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/javatests/src/org/chromium/content/browser/input/SelectPopupTest.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/android/javatests/src/org/chromium/content/browser/input/TextSuggestionMenuTest.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/util/WebContentsUtils.java
[modify] https://crrev.com/312dad5b760d28fe238cc4c7cd2b4cd43fb88106/content/shell/android/javatests/src/org/chromium/content_shell_apk/ContentShellActivityTestRule.java

Project Member

Comment 6 by bugdroid1@chromium.org, Sep 11

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

commit 8bc03e93df977a13c4a956224715dd40170e95d0
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Tue Sep 11 11:38:59 2018

Android: InfoBarContainer on Tab UserData

InfoBarContainer is now managed by Tab's UserDataHost,
and accessed through new static methods |from()| and |get()| defined
in the container class. Tab still a reference to a container.
It will be removed when all the callsites of |Tab.getInfoBatContainer|
are updated in a follow-up CL.

Bug: 877878
Change-Id: If59bf7e750bcaf7f0988925ab06f94eb8974cddc
Reviewed-on: https://chromium-review.googlesource.com/1212378
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590264}
[modify] https://crrev.com/8bc03e93df977a13c4a956224715dd40170e95d0/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
[modify] https://crrev.com/8bc03e93df977a13c4a956224715dd40170e95d0/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java
[modify] https://crrev.com/8bc03e93df977a13c4a956224715dd40170e95d0/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/8bc03e93df977a13c4a956224715dd40170e95d0/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java

Project Member

Comment 7 by bugdroid1@chromium.org, Sep 13

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

commit 69656b8af188bc3912478f350e149bc5ddc4cd07
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Thu Sep 13 01:15:41 2018

Android: Factor out Tab.onTabModalDialogStateChanged

TabModalPresenter relied on Tab to update the state of
TabBrowserControlsOffsetHelper. This CL moves the task to
presenter class to remove one of the remaining dependencies
of the helper class on Tab.

Tab still has a reference to offset helper object, which will go away
in a couple of more CLs that move all the related tasks out of Tab.

Bug: 877878
Change-Id: Id56df2372426dd9928d3348835dd9d702c50a6e9
Reviewed-on: https://chromium-review.googlesource.com/1212424
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Becky Zhou <huayinz@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590882}
[modify] https://crrev.com/69656b8af188bc3912478f350e149bc5ddc4cd07/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/TabModalPresenter.java
[modify] https://crrev.com/69656b8af188bc3912478f350e149bc5ddc4cd07/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/69656b8af188bc3912478f350e149bc5ddc4cd07/chrome/android/java/src/org/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper.java

Project Member

Comment 8 by bugdroid1@chromium.org, Sep 13

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

commit a94cba5aa50629e27fecbb8a52a30e7893e8a66d
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Thu Sep 13 02:11:33 2018

Android: TabGestureStateListener

TabGestureStateListener is factored out from Tab to be managed
via TabObserver. The new class also takes care of adding itself
to (or removing itself from) the GestureListenerManager of
the active WebContents upon creation/destruction.

Also, folded initNativeWebContents into initBrowserComponents
Since it's virtually a one-liner.

Bug: 877878
Change-Id: Iedbf7a7b8fa3b57c7aad8dfb9f50840536cfb0cc
Reviewed-on: https://chromium-review.googlesource.com/1215428
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590894}
[modify] https://crrev.com/a94cba5aa50629e27fecbb8a52a30e7893e8a66d/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[add] https://crrev.com/a94cba5aa50629e27fecbb8a52a30e7893e8a66d/chrome/android/java/src/org/chromium/chrome/browser/tab/TabGestureStateListener.java
[modify] https://crrev.com/a94cba5aa50629e27fecbb8a52a30e7893e8a66d/chrome/android/java_sources.gni

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 17

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

commit 90e6620424c0b074071b141804462ed667244f68
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Mon Sep 17 01:59:37 2018

Android: Remove TabBrowserControlsOffsetHelper from Tab

Now that TabBrowserControlsOffsetHelper object can now be obtained
from TabBrowserControlsOffsetHelper.from(Tab), this CL moves
the remaining tasks using the helper out to callsites, and removes
the reference from Tab.

Bug: 877878
Change-Id: Ibc1e8fd66d057a2b2c02661025d0d43d891cd4e6
Reviewed-on: https://chromium-review.googlesource.com/1222028
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591609}
[modify] https://crrev.com/90e6620424c0b074071b141804462ed667244f68/chrome/android/java/src/org/chromium/chrome/browser/tab/EmptyTabObserver.java
[modify] https://crrev.com/90e6620424c0b074071b141804462ed667244f68/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/90e6620424c0b074071b141804462ed667244f68/chrome/android/java/src/org/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper.java
[modify] https://crrev.com/90e6620424c0b074071b141804462ed667244f68/chrome/android/java/src/org/chromium/chrome/browser/tab/TabObserver.java
[modify] https://crrev.com/90e6620424c0b074071b141804462ed667244f68/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 18

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

commit 6ad8892f0d62eb84871c85e4b5b827b1bf955f13
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Tue Sep 18 23:41:59 2018

Android: ChromeDownloadDelegate on Tab.UserDataHost

This CL gets ChromeDownloadDelegate to implement UserData, and
instantiates lazily on the first call. Tab doesn't need to keep
a reference, so deletes it.

Bug: 877878
Change-Id: I6218fb870603ad5508831cd2e059fcebd772f2c5
Reviewed-on: https://chromium-review.googlesource.com/1226951
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Min Qin <qinmin@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592262}
[modify] https://crrev.com/6ad8892f0d62eb84871c85e4b5b827b1bf955f13/chrome/android/java/src/org/chromium/chrome/browser/download/ChromeDownloadDelegate.java
[modify] https://crrev.com/6ad8892f0d62eb84871c85e4b5b827b1bf955f13/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/6ad8892f0d62eb84871c85e4b5b827b1bf955f13/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
[modify] https://crrev.com/6ad8892f0d62eb84871c85e4b5b827b1bf955f13/chrome/browser/BUILD.gn

Project Member

Comment 11 by bugdroid1@chromium.org, Sep 19

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

commit 6bb8534fa60b37d0457bd582463de46fdad98492
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Wed Sep 19 03:33:02 2018

Android: TabUma on UserData

TabUma is managed now by Tab's UserDataHost, and accessed through
TabUma.{create|get}. Also made it TabObserver so that most of the
operations will be done through the interface implementation instead
of direct calls from Tab.

Bug: 877878
Change-Id: I038cdeb60aefb74224e7a03f0d908d67d2b89002
Reviewed-on: https://chromium-review.googlesource.com/1214965
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592314}
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/StreamLifecycleManager.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingMediator.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/PageViewTimer.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabNavigationEventObserver.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutController.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserver.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/snackbar/smartlockautosignin/AutoSigninSnackbarController.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/suggestions/NavigationRecorder.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/tab/ChildBackgroundTabShowObserver.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/tab/EmptyTabObserver.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/tab/TabObserver.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUma.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/javatests/src/org/chromium/chrome/browser/tab/SadTabTest.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingControllerTest.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/junit/src/org/chromium/chrome/browser/contextual_suggestions/PageViewTimerTest.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/junit/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutControllerTest.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/junit/src/org/chromium/chrome/browser/feed/StreamLifecycleManagerTest.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserverTest.java
[modify] https://crrev.com/6bb8534fa60b37d0457bd582463de46fdad98492/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ChromeTabUtils.java

Project Member

Comment 12 by bugdroid1@chromium.org, Sep 28

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

commit bf9a379ac11549f658d16223c4c8986a5ac87310
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Fri Sep 28 01:46:45 2018

Android: Factor SadTab showing logic out of Tab

This CL aims to remove all the references to SadTab (thus slim it down)
by factoring the related methods out to a separate class SadTab. It is
managed as Tab UserData, and takes care of creating/showing sad tab view
on ContentView. Also got SadTabFactory folded into it.

Note: Tab still has references to SadTab (isShowingSadTab) from
handleTabCrash/notifyContentChanged. Removing them involves somewhat
side-tracked changes as big as  the main one. Will handle it in
a follow-up CL.

Bug: 877878
Change-Id: I94a03e8f9999809cf690339a16570cc538e0e18c
Reviewed-on: https://chromium-review.googlesource.com/1235490
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594950}
[rename] https://crrev.com/bf9a379ac11549f658d16223c4c8986a5ac87310/chrome/android/java/src/org/chromium/chrome/browser/tab/SadTab.java
[modify] https://crrev.com/bf9a379ac11549f658d16223c4c8986a5ac87310/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/bf9a379ac11549f658d16223c4c8986a5ac87310/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/bf9a379ac11549f658d16223c4c8986a5ac87310/chrome/android/java_sources.gni
[modify] https://crrev.com/bf9a379ac11549f658d16223c4c8986a5ac87310/chrome/android/javatests/src/org/chromium/chrome/browser/TabTest.java
[modify] https://crrev.com/bf9a379ac11549f658d16223c4c8986a5ac87310/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java
[modify] https://crrev.com/bf9a379ac11549f658d16223c4c8986a5ac87310/chrome/android/javatests/src/org/chromium/chrome/browser/tab/SadTabTest.java

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 4

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

commit 0c9a9c5d2934df432dcece9e73f8bf8aade0fb09
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Thu Oct 04 02:27:20 2018

Android: Remove Tab.getInfoBarContainer

Updates all the callsites of |Tab.getInfoBarContainer| to use
|InfoBarContainer.get|, and deletes the api + member variable
for InfoBarContainer in Tab.

ChromeActivityTestRule.getInfoBarContainer is a new convenience
method running ion UI Thread for tests.

Bug: 877878
Change-Id: Ic785239e10d9f6376f297cb397632fd997311c9d
Reviewed-on: https://chromium-review.googlesource.com/c/1227859
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Friedrich Horschig [CEST] <fhorschig@chromium.org>
Reviewed-by: Matthew Jones <mdjones@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596480}
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingMediator.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/java/src/org/chromium/chrome/browser/banners/SwipableOverlayView.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadInfoBarController.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPictureController.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/PopupTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/SubresourceFilterTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingIntegrationTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/dom_distiller/DistillabilityServiceTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarAppearanceTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarContainerTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBarTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/permissions/PermissionTestRule.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferencesTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/javatests/src/org/chromium/chrome/browser/translate/TranslateCompactInfoBarTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingControllerTest.java
[modify] https://crrev.com/0c9a9c5d2934df432dcece9e73f8bf8aade0fb09/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java

Project Member

Comment 14 by bugdroid1@chromium.org, Oct 5

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

commit 365d0384cd2d0819b281acc862ebd7a0beb9e32c
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Fri Oct 05 04:02:40 2018

Android: SwipeRefreshHandler on TabWebContentsUserData

SwipeRefreshHandler is used for the active WebContents to
handle swipe-to-refresh gesture. It's now managed as
TabWebContentsUserData - created on the first
initialization of WebContents, and destroyed at the end of
the life of the Tab it belongs to.

Accompanied changes:

 - TabGestureStateListener should also have the same lifetime
   i.e. created on the first WebContents of a Tab becomes active,
   then have its associated WebContents init/destroyed as active
   one changes over time, and finally destroyed together with Tab.
   Previously it was created repeatedly for new WebContents. This
   CL changes it.
 - All TabWebContentsUserData (so far) need to call
   |cleanupWebContents| upon |destroy|. This CL factors the common
   pattern out to their base class.

Bug: 877878
Change-Id: I6f6264866338e763be7737716b93dab86ea1414b
Reviewed-on: https://chromium-review.googlesource.com/c/1253525
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596986}
[modify] https://crrev.com/365d0384cd2d0819b281acc862ebd7a0beb9e32c/chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java
[modify] https://crrev.com/365d0384cd2d0819b281acc862ebd7a0beb9e32c/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/365d0384cd2d0819b281acc862ebd7a0beb9e32c/chrome/android/java/src/org/chromium/chrome/browser/tab/TabGestureStateListener.java
[modify] https://crrev.com/365d0384cd2d0819b281acc862ebd7a0beb9e32c/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
[modify] https://crrev.com/365d0384cd2d0819b281acc862ebd7a0beb9e32c/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/365d0384cd2d0819b281acc862ebd7a0beb9e32c/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsUserData.java

Project Member

Comment 15 by bugdroid1@chromium.org, Oct 10

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

commit 0560111a48f73ddb2f2e8ee04073ce84e6f2379d
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Wed Oct 10 01:18:58 2018

Android: TabWebContentsObserver on TabWebContentsUserData

TabWebContentsObserver is used for active WebContents that a Tab
hosts. This CL turns it to TabWebContentsUserData, and internally
manages an observer for WebContents objects as they get active.
Then Tab doesn't need to keep a reference for the observer or
be aware of its presence at all.

Also moved a test method in Tab to test-only class.

Bug: 877878
Change-Id: Iedfcaf8cea069dcc4714a71707ce53ad548484cb
Reviewed-on: https://chromium-review.googlesource.com/c/1263642
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598163}
[modify] https://crrev.com/0560111a48f73ddb2f2e8ee04073ce84e6f2379d/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/0560111a48f73ddb2f2e8ee04073ce84e6f2379d/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/0560111a48f73ddb2f2e8ee04073ce84e6f2379d/chrome/android/javatests/src/org/chromium/chrome/browser/TabTest.java
[modify] https://crrev.com/0560111a48f73ddb2f2e8ee04073ce84e6f2379d/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java
[modify] https://crrev.com/0560111a48f73ddb2f2e8ee04073ce84e6f2379d/chrome/android/javatests/src/org/chromium/chrome/browser/tab/SadTabTest.java
[modify] https://crrev.com/0560111a48f73ddb2f2e8ee04073ce84e6f2379d/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabUmaTest.java
[modify] https://crrev.com/0560111a48f73ddb2f2e8ee04073ce84e6f2379d/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserNavigationTest.java
[modify] https://crrev.com/0560111a48f73ddb2f2e8ee04073ce84e6f2379d/chrome/android/javatests/src/org/chromium/chrome/browser/vr/XrTestFramework.java
[modify] https://crrev.com/0560111a48f73ddb2f2e8ee04073ce84e6f2379d/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ChromeTabUtils.java

Project Member

Comment 16 by bugdroid1@chromium.org, Oct 11

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

commit 37f908f3919d726a351b58acb02a0abea340f61b
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Thu Oct 11 05:16:59 2018

Android: Move Tab.isShowingSadTab out to SadTab

This CL moves the remaining SadTab-related method to SadTab.
|TabObserver.onCrash| is updated not to pass the parameter |sadTabShown|
since it can be obtained directly from Sadtab by the observers.

Bug: 877878
Change-Id: Ib2dd8a1e98b8780a9d4be30c3a4bb8d667d3c53e
Reviewed-on: https://chromium-review.googlesource.com/c/1267455
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598680}
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/contextual_suggestions/FetchHelper.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPictureController.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareMenuActionHandler.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/smartlockautosignin/AutoSigninSnackbarController.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/tab/EmptyTabObserver.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/tab/SadTab.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabObserver.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUma.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/vr/VrShell.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappSplashScreenController.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/javatests/src/org/chromium/chrome/browser/PopularUrlsTest.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/javatests/src/org/chromium/chrome/browser/TabTest.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/javatests/src/org/chromium/chrome/browser/share/ShareMenuActionHandlerTest.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/SadTabTest.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabTestUtils.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/javatests/src/org/chromium/chrome/browser/vr/XrTestFramework.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtilsUnitTest.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/test/android/BUILD.gn
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ChromeTabUtils.java
[add] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/SadTabRule.java
[modify] https://crrev.com/37f908f3919d726a351b58acb02a0abea340f61b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/TabLoadObserver.java

Project Member

Comment 17 by bugdroid1@chromium.org, Nov 13

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

commit bf9ab045817f097bd5935e44fa7db377a7896715
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Tue Nov 13 01:47:02 2018

Android: TabThemeColorHelper

This is to break the TabObserver present in Tab class down to feature
level and eventually remove it. Theme color used for Tab is managed via
Tab UserData. Relevant Tab methods also got migrated.

Bug: 877878
Change-Id: If120beaaa370d07f6855ab666e380cc2318e945a
Reviewed-on: https://chromium-review.googlesource.com/c/1304038
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607422}
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[add] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java/src/org/chromium/chrome/browser/tab/TabThemeColorHelper.java
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java/src/org/chromium/chrome/browser/util/ColorUtils.java
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/java_sources.gni
[modify] https://crrev.com/bf9ab045817f097bd5935e44fa7db377a7896715/chrome/android/javatests/src/org/chromium/chrome/browser/TabThemeTest.java

Project Member

Comment 18 by bugdroid1@chromium.org, Nov 13

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

commit 7d0fbfd8b6d57ccbd94d78d66288485c07c2819e
Author: Yuki Shiino <yukishiino@chromium.org>
Date: Tue Nov 13 06:44:04 2018

Revert "Android: TabThemeColorHelper"

This reverts commit bf9ab045817f097bd5935e44fa7db377a7896715.

Reason for revert: This seems like causing "chrome_public_test_apk on Android device Nexus 5X" fail.
https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Android%20CFI
https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Android%20CFI/3601
https://findit-for-me.appspot.com/waterfall/failure?url=https://build.chromium.org/p/chromium.memory/builders/Android%20CFI/builds/3602

Original change's description:
> Android: TabThemeColorHelper
> 
> This is to break the TabObserver present in Tab class down to feature
> level and eventually remove it. Theme color used for Tab is managed via
> Tab UserData. Relevant Tab methods also got migrated.
> 
> Bug: 877878
> Change-Id: If120beaaa370d07f6855ab666e380cc2318e945a
> Reviewed-on: https://chromium-review.googlesource.com/c/1304038
> Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
> Reviewed-by: Ted Choc <tedchoc@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#607422}

TBR=tedchoc@chromium.org,jinsukkim@chromium.org

Change-Id: I4bc704a509682873ef9f1a2e4f4fe82ac2a5cac2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 877878
Reviewed-on: https://chromium-review.googlesource.com/c/1333098
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Commit-Queue: Yuki Shiino <yukishiino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607509}
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[delete] https://crrev.com/98a2b71083227a60edb1c4dfece91fa1e03cbebe/chrome/android/java/src/org/chromium/chrome/browser/tab/TabThemeColorHelper.java
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/java/src/org/chromium/chrome/browser/util/ColorUtils.java
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/java_sources.gni
[modify] https://crrev.com/7d0fbfd8b6d57ccbd94d78d66288485c07c2819e/chrome/android/javatests/src/org/chromium/chrome/browser/TabThemeTest.java

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 14

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

commit b097e53b2592b8e1ac68ca811bca5dc2e665ec79
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Wed Nov 14 02:12:52 2018

Reland "Android: TabThemeColorHelper"

Android CFI tests exposed a missing null check in one of the tests.
Relanding https://crrev.com/c/1304038 after fixing it.

TBR=tedchoc@chromium.org

Bug: 877878

This reverts commit 7d0fbfd8b6d57ccbd94d78d66288485c07c2819e.

Change-Id: I75c560af86cd0f92b4b5eded5896c884fb7181ce
Reviewed-on: https://chromium-review.googlesource.com/c/1334667
Reviewed-by: Jinsuk Kim <jinsukkim@chromium.org>
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607857}
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
[add] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java/src/org/chromium/chrome/browser/tab/TabThemeColorHelper.java
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java/src/org/chromium/chrome/browser/util/ColorUtils.java
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/java_sources.gni
[modify] https://crrev.com/b097e53b2592b8e1ac68ca811bca5dc2e665ec79/chrome/android/javatests/src/org/chromium/chrome/browser/TabThemeTest.java

Sign in to add a comment