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

Issue 781359 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Sep 5
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

Remove EmptyTabObserver and use default for TabObserver methods

Project Member Reported by donnd@google.com, Nov 3 2017

Issue description

We can refactor the TabObserver class to use the Java 8 "default" methods instead of having a separate EmptyTabObserver class to handle default action.

While we're refactoring, maybe remove onReparentingFinished ?
 

Comment 1 by donnd@google.com, Nov 6 2017

Labels: -Pri-3 M-64 Pri-1
Owner: donnd@chromium.org
Status: Assigned (was: Untriaged)

Comment 2 by donnd@google.com, Nov 6 2017

Discussion of refactoring onReparentingFinished in https://chromium-review.googlesource.com/c/chromium/src/+/738923
Cc: nyquist@chromium.org
clang-format seems to have an issue with formatting of default methods. See:
https://chromium-review.googlesource.com/c/chromium/src/+/726821/1/chrome/android/java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java

We probably want to fix that, and temporarily turn off clang-format like here:
https://chromium-review.googlesource.com/c/chromium/src/+/726821/2/chrome/android/java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java
(which still looks weird for the last line)

Comment 4 by donnd@google.com, Mar 5 2018

Labels: -Pri-1 -M-64 Pri-3
Owner: ----
From https://crrev.com/c/1155284:

https://chromium-review.googlesource.com/c/chromium/src/+/1155284#message-7b135619893351e5c080f0e7ef85ebc0f0765133

"I think that how desugar works for default interface methods, is that it just adds all missing methods to each implementing class. So, with EmptyTabObserver, each listener would rely on the base class's methods to implement the interface, but now every class has their own copy of all the methods.

Sounds like this is good material for our java style guide. Something along the lines of "don't use default interface methods on widely used interfaces"

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 3

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

commit a6ce383d0dab7497a310b34ac4b2a7a7593a1c8d
Author: Jinsuk Kim <jinsukkim@chromium.org>
Date: Fri Aug 03 00:25:59 2018

Android: Discouraging comment on removing EmptyTabObserver

Added a comment in EmptyTabObserver against the future attempt to
replace EmptyTabObserver with TabObserver + default interface methods
as it has a side effect of increasing the number of generated methods.

Bug:  781359 
Change-Id: Iea3a345c7cf522f69e9626245605a0f967af3bb4
Reviewed-on: https://chromium-review.googlesource.com/1155284
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580387}
[modify] https://crrev.com/a6ce383d0dab7497a310b34ac4b2a7a7593a1c8d/chrome/android/java/src/org/chromium/chrome/browser/tab/EmptyTabObserver.java

Status: WontFix (was: Assigned)

Sign in to add a comment