New issue
Advanced search Search tips

Issue 836409 link

Starred by 3 users

Issue metadata

Status: Started
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocked on:
issue 846374



Sign in to add a comment

TabManager should be available on all platforms.

Project Member Reported by chrisha@chromium.org, Apr 24 2018

Issue description

TabManager (soon to be LifecycleManager) will be responsible for transitioning renderers to throttled and background modes, in addition to discarding. This is necessary on all platforms. As such, it should be enabled on all platforms.
 
Since TabManager is aware of TabModels (for tracking which tabs are actually visible, recently selected, etc) we need a TabModelObserver on all platforms. One exists on Android, but there's no native equivalent.
TabManager uses the TabStripModelObserver to track changes to audibility state. This is very round-about and it should be directly trackable via WebContentsObserver.
Project Member

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

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

commit 55393bbffd92a6de2333bd6c14af12948eddbb33
Author: Chris Hamilton <chrisha@chromium.org>
Date: Thu May 10 01:14:28 2018

Create native TabModelObserver.

This adds a native TabModelObserver to
chrome/browser/ui/android/tab_model, along with the necessary plumbing
and JNI bridge.

BUG=836409

Change-Id: I0b9bff5146d163705756ff5cbe4c6ed1f211cc35
Reviewed-on: https://chromium-review.googlesource.com/1038611
Commit-Queue: Chris Hamilton <chrisha@chromium.org>
Reviewed-by: David Trainor <dtrainor@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557405}
[modify] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModel.java
[modify] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
[add] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java
[modify] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/android/java_sources.gni
[modify] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/BUILD.gn
[modify] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/ui/android/tab_model/tab_model.h
[modify] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
[modify] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.h
[modify] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/ui/android/tab_model/tab_model_list_unittest.cc
[add] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/ui/android/tab_model/tab_model_observer.cc
[add] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/ui/android/tab_model/tab_model_observer.h
[add] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.cc
[add] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/ui/android/tab_model/tab_model_observer_jni_bridge.h
[modify] https://crrev.com/55393bbffd92a6de2333bd6c14af12948eddbb33/chrome/browser/ui/android/tab_model/tab_model_unittest.cc

Blockedon: 846374
Labels: -M-68 M-70

Comment 6 by u...@chromium.org, May 30 2018

Cc: u...@chromium.org
Note that a bunch of code paths that are currently desktop only (TabStripModelObserver) should be made cross-platform by having a platform-agnostic equivalent of TabStripModel. This allows knowing which WebContents are directly related to tabs in the UI, for example.

Sign in to add a comment