New issue
Advanced search Search tips

Issue 695115 link

Starred by 7 users

Issue metadata

Status: Assigned
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug


Sign in to add a comment

Handle downloads on Android without all of Chrome running

Project Member Reported by jam@chromium.org, Feb 22 2017

Issue description

Once the network service is split up to run on its own (bug 598073), can we handle downloads on Android without all of Chrome running?

First, this tracking bug should list dependencies and we can then try to estimate how soon we can do this feature.
 

Comment 1 by jam@chromium.org, Feb 22 2017

Blockedon: 654993

Comment 2 by jam@chromium.org, Feb 22 2017

Labels: -OS-Windows OS-Android
Cc: scottmg@chromium.org

Comment 4 by jam@chromium.org, Apr 26 2017

Cc: dtrainor@chromium.org

Comment 5 by jam@chromium.org, Apr 26 2017

Blockedon: 715628

Comment 6 by jam@chromium.org, Jul 7 2017

Blockedon: 740134

Comment 7 by jam@chromium.org, Nov 10 2017

Owner: qin...@chromium.org
Status: Assigned (was: Unconfirmed)

Comment 8 by jam@chromium.org, May 26 2018

Cc: qin...@chromium.org
 Issue 846815  has been merged into this issue.

Comment 9 by qin...@chromium.org, May 27 2018

Blockedon: 842245
Blockedon: 848857
Cc: dxie@chromium.org hanxi@chromium.org
POC test plan: https://docs.google.com/document/d/1L6AICZhGSyDeNue8TQzo1Gp0pCIb-D_y-Vmx6P1SbQI/

Project Member

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

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

commit 42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c
Author: Ken Rockot <rockot@chromium.org>
Date: Thu Jun 28 21:08:41 2018

Introduce download_manager service

Registers a download_manager service with the in-process ServiceManager,
giving it access to the network service.

The service instance is initialized on startup and runs indefinitely,
providing a dedicated service manager connection for the Android
DownloadManagerService object.

Bug: 695115
Change-Id: Ia372fd417679b8b31c0986d087289d2fc20c09f6
Reviewed-on: https://chromium-review.googlesource.com/1117573
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: David Trainor <dtrainor@chromium.org>
Reviewed-by: Min Qin <qinmin@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571256}
[modify] https://crrev.com/42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c/chrome/app/BUILD.gn
[add] https://crrev.com/42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c/chrome/browser/android/download/OWNERS
[modify] https://crrev.com/42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c/chrome/browser/android/download/download_manager_service.cc
[modify] https://crrev.com/42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c/chrome/browser/android/download/download_manager_service.h
[add] https://crrev.com/42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c/chrome/browser/android/download/manifest.json
[modify] https://crrev.com/42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c/chrome/browser/chrome_content_browser_client.h
[modify] https://crrev.com/42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c/content/public/browser/content_browser_client.cc
[modify] https://crrev.com/42dfa78ed0bb5501129cf2f4d9ebdef3622f9e8c/content/public/browser/content_browser_client.h

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 18

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

commit 4d370e2ccac71fff3c4a5709439c2eef747c7340
Author: Min Qin <qinmin@chromium.org>
Date: Wed Jul 18 00:04:45 2018

Do a null check on BrowserContext in DownloadManagerService

DownloadManagerService may start too early before full browser is started.
In this case, downloadItem doesn't have a BrowserContext object assocuated,

BUG=695115

Change-Id: Ie7dcc88bb63cdfc8af0d0e4d4670e808e22f175e
Reviewed-on: https://chromium-review.googlesource.com/1140519
Reviewed-by: Shakti Sahu <shaktisahu@chromium.org>
Commit-Queue: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575863}
[modify] https://crrev.com/4d370e2ccac71fff3c4a5709439c2eef747c7340/chrome/browser/android/download/download_manager_service.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Jul 20

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

commit 1193143e8226c0547934918726d505b3283b49e7
Author: Min Qin <qinmin@chromium.org>
Date: Fri Jul 20 00:40:34 2018

Revert "Do a null check on BrowserContext in DownloadManagerService"

This reverts commit 4d370e2ccac71fff3c4a5709439c2eef747c7340.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Do a null check on BrowserContext in DownloadManagerService
> 
> DownloadManagerService may start too early before full browser is started.
> In this case, downloadItem doesn't have a BrowserContext object assocuated,
> 
> BUG=695115
> 
> Change-Id: Ie7dcc88bb63cdfc8af0d0e4d4670e808e22f175e
> Reviewed-on: https://chromium-review.googlesource.com/1140519
> Reviewed-by: Shakti Sahu <shaktisahu@chromium.org>
> Commit-Queue: Min Qin <qinmin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#575863}

TBR=qinmin@chromium.org,shaktisahu@chromium.org,xingliu@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 695115
Change-Id: Iaaa46d8f07625f423dceadede668a7f4d254d3b6
Reviewed-on: https://chromium-review.googlesource.com/1144082
Commit-Queue: Min Qin <qinmin@chromium.org>
Reviewed-by: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576725}
[modify] https://crrev.com/1193143e8226c0547934918726d505b3283b49e7/chrome/browser/android/download/download_manager_service.cc

Blockedon: 866028
Blockedon: 864625
Blockedon: 866048
Project Member

Comment 18 by bugdroid1@chromium.org, Jul 21

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

commit d3ff2ed6a3ff78e2a5ad203b6dc3967e53b9a871
Author: Min Qin <qinmin@chromium.org>
Date: Sat Jul 21 06:46:59 2018

Allow DownloadManagerImpl to get InProgressDownloadManager from DownloadManagerService

InProgressDownloadManager could get created before DownloadManagerImpl ctor.
And DownloadManagerService will own the InProgressDownloadManager in that case.
This CL allows DownloadManagerImpl to retrieve the pre-created
InProgressDownloadManager from DownloadManagerService

BUG=695115

Change-Id: Ie2d553894e623116a5e09ae54ec4b8672b180c7f
Reviewed-on: https://chromium-review.googlesource.com/1135986
Commit-Queue: Min Qin <qinmin@chromium.org>
Reviewed-by: Xing Liu <xingliu@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577075}
[modify] https://crrev.com/d3ff2ed6a3ff78e2a5ad203b6dc3967e53b9a871/chrome/browser/android/download/download_manager_service.cc
[modify] https://crrev.com/d3ff2ed6a3ff78e2a5ad203b6dc3967e53b9a871/chrome/browser/android/download/download_manager_service.h
[modify] https://crrev.com/d3ff2ed6a3ff78e2a5ad203b6dc3967e53b9a871/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/d3ff2ed6a3ff78e2a5ad203b6dc3967e53b9a871/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/d3ff2ed6a3ff78e2a5ad203b6dc3967e53b9a871/components/download/public/common/in_progress_download_manager.h
[modify] https://crrev.com/d3ff2ed6a3ff78e2a5ad203b6dc3967e53b9a871/content/browser/browser_context.cc
[modify] https://crrev.com/d3ff2ed6a3ff78e2a5ad203b6dc3967e53b9a871/content/browser/download/download_manager_impl.cc
[modify] https://crrev.com/d3ff2ed6a3ff78e2a5ad203b6dc3967e53b9a871/content/public/browser/browser_context.h

Project Member

Comment 19 by bugdroid1@chromium.org, Jul 25

Project Member

Comment 20 by bugdroid1@chromium.org, Aug 7

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

commit 7852489cc7f23304635ae9423ab5c46e00deaf3c
Author: Min Qin <qinmin@chromium.org>
Date: Tue Aug 07 22:08:07 2018

Handle some cases download is running without full browser

When browser is not fully running, Profile cannot be accessed.
This CL also disables the use of toast as it is very expensive when
full browser is not running.

BUG=695115

Change-Id: I7560e3684307741e0a1ba01ec8efec0ff97fdbc4
Reviewed-on: https://chromium-review.googlesource.com/1165849
Reviewed-by: Xing Liu <xingliu@chromium.org>
Commit-Queue: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581358}
[modify] https://crrev.com/7852489cc7f23304635ae9423ab5c46e00deaf3c/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java
[modify] https://crrev.com/7852489cc7f23304635ae9423ab5c46e00deaf3c/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
[modify] https://crrev.com/7852489cc7f23304635ae9423ab5c46e00deaf3c/chrome/browser/android/download/download_manager_service.cc
[modify] https://crrev.com/7852489cc7f23304635ae9423ab5c46e00deaf3c/chrome/browser/android/download/download_manager_service.h

Project Member

Comment 21 by bugdroid1@chromium.org, Aug 23

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

commit f62ac05708a883c55333495d60b9ac8b4610369c
Author: Min Qin <qinmin@chromium.org>
Date: Thu Aug 23 00:43:59 2018

Don't call ProcessInitializationHandler.initializePostNative() when running ServiceManager only.

All codes in ProcessInitializationHandler.initializePostNative() requires
full browser to run. And some of the class uses profile during initialization,
which will crash when only service manager is running. As a result, there is
no need to run this method if full browser is not launched.
For services, they should add their own required tasks in
ChromeBrowserInitializer.handlePostNativeStartup.

BUG=695115

Change-Id: I66f314cfcb56df00553f017d3e5b6989e3a9ef60
Reviewed-on: https://chromium-review.googlesource.com/1182008
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Xi Han <hanxi@chromium.org>
Commit-Queue: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585341}
[modify] https://crrev.com/f62ac05708a883c55333495d60b9ac8b4610369c/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java

Project Member

Comment 22 by bugdroid1@chromium.org, Aug 25

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

commit 9cbcf63de4223f2aac6a5e93227a3aa43c65b7bf
Author: Min Qin <qinmin@chromium.org>
Date: Sat Aug 25 01:24:52 2018

Add a helper method to retrieve network service from a service manager Connector

If services are launched without full browser process, they need to retrieve
the network service from the service manager connector they have.
This CL adds a helper method to allow that to work.

BUG=695115

Change-Id: I362b814b03d60d9645523664a7243555bac6f053
Reviewed-on: https://chromium-review.googlesource.com/1188776
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586094}
[modify] https://crrev.com/9cbcf63de4223f2aac6a5e93227a3aa43c65b7bf/content/browser/network_service_instance.cc
[modify] https://crrev.com/9cbcf63de4223f2aac6a5e93227a3aa43c65b7bf/content/public/browser/network_service_instance.h

Project Member

Comment 23 by bugdroid1@chromium.org, Sep 22

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

commit 56437421524037987544f00bf660e6b7ca7732c8
Author: Min Qin <qinmin@chromium.org>
Date: Sat Sep 22 00:22:03 2018

Call DownloadManagerService::OnFullBrowserStarted when full browser launches

If DownloadManagerService is launched without full browser, we need to
call OnFullBrowserStarted() once full browser launches

BUG=695115

Change-Id: Ibaabb72716305d674edadbd4659eb6a1bbb6cf63
Reviewed-on: https://chromium-review.googlesource.com/1185731
Reviewed-by: Xing Liu <xingliu@chromium.org>
Commit-Queue: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593391}
[modify] https://crrev.com/56437421524037987544f00bf660e6b7ca7732c8/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java

Project Member

Comment 24 by bugdroid1@chromium.org, Oct 3

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

commit 7c2a2894f23c4197f201f30d74aa67554a708112
Author: Min Qin <qinmin@chromium.org>
Date: Wed Oct 03 22:33:55 2018

Allow DownloadManagerService to create InProgressDownloadManager.

This CL allows DownloadManagerService to create InProgressDownloadManager
under cirtain circumstances.
The created InProgressDownloadManager can be used to resume download
without launching full browser process. And can be passed to the
DownloadManager when the latter is created.

BUG=695115

Change-Id: I050c1e5f5247cc1550e59117f7943a66a71656ce
Reviewed-on: https://chromium-review.googlesource.com/c/1182613
Reviewed-by: Xing Liu <xingliu@chromium.org>
Commit-Queue: Min Qin <qinmin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596403}
[modify] https://crrev.com/7c2a2894f23c4197f201f30d74aa67554a708112/chrome/browser/android/download/download_manager_service.cc
[modify] https://crrev.com/7c2a2894f23c4197f201f30d74aa67554a708112/chrome/browser/android/download/download_manager_service.h

Blockedon: 898970
Blockedon: 729596

Sign in to add a comment