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

Issue 780646 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 2
Type: Task

Blocking:
issue 674991



Sign in to add a comment

Implement public ios/web API for DownloadManager

Project Member Reported by eugene...@chromium.org, Nov 1 2017

Issue description

API should replace the following deprecated methods:
-[CRWWebDelegate webController:didLoadPassKitObject:]
-[CRWWebDelegate controllerForUnhandledContentAtURL]

Design doc:
https://docs.google.com/document/d/1rfbN4RhKWthdbjs8HhQtc1tDj3letzVub0-BOZeCR1c/edit#
 
Blocking: 674991
Blocking: 780911
Blocking: 401093
Blocking: 604533
Blocking: 712206
Blocking: 622899
Blocking: 711228
Blocking: 709986
Blocking: 709680
Blocking: -709680
Blocking: 660100
Project Member

Comment 12 by bugdroid1@chromium.org, Nov 6 2017

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

commit 935d96c0473aede63af754e5fdc0621858fe78b0
Author: Eugene But <eugenebut@google.com>
Date: Mon Nov 06 21:44:53 2017

Added testing::kWaitForFileOperationTimeout constant.

This constant will be used in download tests.

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Id3ad2f7533dbc151e6ef4c4746d6f8b32aec7631
Reviewed-on: https://chromium-review.googlesource.com/755416
Reviewed-by: Yuke Liao <liaoyuke@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514246}
[modify] https://crrev.com/935d96c0473aede63af754e5fdc0621858fe78b0/ios/testing/wait_util.h
[modify] https://crrev.com/935d96c0473aede63af754e5fdc0621858fe78b0/ios/testing/wait_util.mm

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 9 2017

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

commit c1e095d303702dbd94e73547627229f0f6a7d631
Author: Eugene But <eugenebut@google.com>
Date: Thu Nov 09 19:39:10 2017

Interfaces for //ios/web Download API.

This CL adds public headers to //ios/web/public/download. Implementation
files will be sent in separate CLs.

Design doc: http://go/ios-web-download-api

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Ic5935b205bacf485b369f506fe28af86dbcfd904
Reviewed-on: https://chromium-review.googlesource.com/754013
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org>
Reviewed-by: Mark Cogan <marq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515246}
[add] https://crrev.com/c1e095d303702dbd94e73547627229f0f6a7d631/ios/web/public/download/BUILD.gn
[add] https://crrev.com/c1e095d303702dbd94e73547627229f0f6a7d631/ios/web/public/download/OWNERS
[add] https://crrev.com/c1e095d303702dbd94e73547627229f0f6a7d631/ios/web/public/download/download_controller.h
[add] https://crrev.com/c1e095d303702dbd94e73547627229f0f6a7d631/ios/web/public/download/download_controller_delegate.h
[add] https://crrev.com/c1e095d303702dbd94e73547627229f0f6a7d631/ios/web/public/download/download_task.h
[add] https://crrev.com/c1e095d303702dbd94e73547627229f0f6a7d631/ios/web/public/download/download_task_observer.h

Project Member

Comment 14 by bugdroid1@chromium.org, Nov 10 2017

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

commit bb33e1878bc52760206daeccc280b234fb8e97cc
Author: Eugene But <eugenebut@google.com>
Date: Fri Nov 10 00:38:36 2017

Renamed ios/chrome/browser/ui/downloads to download.

The name of the feature is "download" not downloads.
Also singular name is consistent with the rest of
the names.

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Ibe34f0088b5cbcfaa669451f053bbe8031e33c38
Reviewed-on: https://chromium-review.googlesource.com/761344
Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515369}
[modify] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/app/BUILD.gn
[modify] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/app/main_controller.mm
[modify] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/tabs/BUILD.gn
[modify] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/tabs/tab.mm
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/BUILD.gn
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/DEPS
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/download_manager_controller.h
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/download_manager_controller.mm
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/download_manager_controller_unittest.mm
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/BUILD.gn
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/DownloadManagerController.xib
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/error_icon.imageset/Contents.json
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/error_icon.imageset/error_icon.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/error_icon.imageset/error_icon@2x.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/error_icon.imageset/error_icon@3x.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_body.imageset/Contents.json
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_body.imageset/file_icon_body.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_body.imageset/file_icon_body@2x.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_body.imageset/file_icon_body@3x.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_fold.imageset/Contents.json
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_fold.imageset/file_icon_fold.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_fold.imageset/file_icon_fold@2x.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_fold.imageset/file_icon_fold@3x.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_fold_complete.imageset/Contents.json
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_fold_complete.imageset/file_icon_fold_complete.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_fold_complete.imageset/file_icon_fold_complete@2x.png
[rename] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/browser/ui/download/resources/file_icon_fold_complete.imageset/file_icon_fold_complete@3x.png
[modify] https://crrev.com/bb33e1878bc52760206daeccc280b234fb8e97cc/ios/chrome/test/BUILD.gn

Project Member

Comment 15 by bugdroid1@chromium.org, Nov 10 2017

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

commit 5fec6db29251b5fba4a5f8663fc6008c7fa749fd
Author: Eugene But <eugenebut@google.com>
Date: Fri Nov 10 18:11:43 2017

Added feature flags for Download Manager and PassKit.

These 2 features will be launched separately, hence 2 flags.

The flags are not visible in chrome://flags yet, because
the features are not usable yet. Flags will be added to
chrome://flags when features are fully implemented.

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I327c4590a7089e17921809d214ddba190a5c0c99
Reviewed-on: https://chromium-review.googlesource.com/760720
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515598}
[modify] https://crrev.com/5fec6db29251b5fba4a5f8663fc6008c7fa749fd/ios/chrome/browser/ios_chrome_flag_descriptions.cc
[modify] https://crrev.com/5fec6db29251b5fba4a5f8663fc6008c7fa749fd/ios/chrome/browser/ios_chrome_flag_descriptions.h
[modify] https://crrev.com/5fec6db29251b5fba4a5f8663fc6008c7fa749fd/ios/web/features.mm
[modify] https://crrev.com/5fec6db29251b5fba4a5f8663fc6008c7fa749fd/ios/web/public/features.h

Project Member

Comment 16 by bugdroid1@chromium.org, Nov 13 2017

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

commit 052d5d9b6ca6d2178c45c7dd66d7689ead4f0cb0
Author: Eugene But <eugenebut@google.com>
Date: Mon Nov 13 20:03:34 2017

EarlGrey test for PassKit download.

Added testPassKitParsingError test which verifies the flow where PassKit
file can not be parsed. A test where PassKit UI is presented for a valid
PassKit file which be added in a separate CL.

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I189806c8eae0d93dc2b531ef31cf2c2fc8e22561
Reviewed-on: https://chromium-review.googlesource.com/762648
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Yuke Liao <liaoyuke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516017}
[modify] https://crrev.com/052d5d9b6ca6d2178c45c7dd66d7689ead4f0cb0/ios/chrome/browser/ui/download/BUILD.gn
[add] https://crrev.com/052d5d9b6ca6d2178c45c7dd66d7689ead4f0cb0/ios/chrome/browser/ui/download/pass_kit_egtest.mm
[modify] https://crrev.com/052d5d9b6ca6d2178c45c7dd66d7689ead4f0cb0/ios/chrome/test/earl_grey/BUILD.gn

Project Member

Comment 17 by bugdroid1@chromium.org, Nov 15 2017

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

commit 56fda76ab8d52be612a2162cf6e4178969b4b619
Author: Eugene But <eugenebut@google.com>
Date: Wed Nov 15 00:11:10 2017

Updated DownloadTask usage examples.

Fixed comments for task->Start function calls.

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I9ec1e8b6ff2290a6eea11c79a3156ea4f9645de2
Reviewed-on: https://chromium-review.googlesource.com/769676
Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516514}
[modify] https://crrev.com/56fda76ab8d52be612a2162cf6e4178969b4b619/ios/web/public/download/download_controller.h
[modify] https://crrev.com/56fda76ab8d52be612a2162cf6e4178969b4b619/ios/web/public/download/download_controller_delegate.h

Project Member

Comment 18 by bugdroid1@chromium.org, Nov 16 2017

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

commit 2955e4a3ec9a0951a6d8892284f30d440cbfce3f
Author: Eugene But <eugenebut@google.com>
Date: Thu Nov 16 00:17:26 2017

EarlGrey test for PassKit download.

Added testPassKitDownload test which verifies the flow where PassKit
file is successfully downloaded.

PKAddPassesViewController UI is rendered out of host process so EarlGrey
matcher can not find PassKit Dialog UI. Instead this test relies on view
controller presentation as the signal that PassKit Dialog is shown.

generic.pkpass is downloaded from https://developer.apple.com as a part
of WalletCompanionFiles bundle.

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I360f97398c2f66006575de54cd136085425e409f
Reviewed-on: https://chromium-review.googlesource.com/771996
Reviewed-by: Menglu Huang <huangml@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516914}
[modify] https://crrev.com/2955e4a3ec9a0951a6d8892284f30d440cbfce3f/ios/chrome/browser/ui/download/BUILD.gn
[modify] https://crrev.com/2955e4a3ec9a0951a6d8892284f30d440cbfce3f/ios/chrome/browser/ui/download/pass_kit_egtest.mm
[modify] https://crrev.com/2955e4a3ec9a0951a6d8892284f30d440cbfce3f/ios/testing/BUILD.gn
[add] https://crrev.com/2955e4a3ec9a0951a6d8892284f30d440cbfce3f/ios/testing/data/http_server_files/generic.pkpass

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 16 2017

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

commit cef83520172a0820ff69e8aef4c2913913970a02
Author: Eugene But <eugenebut@google.com>
Date: Thu Nov 16 20:47:26 2017

DownloadTaskImpl implementation for //ios/web Download API.

This CL implements DownloadTask public interface.

DownloadControllerImpl CL: crrev.com/c/758525
Design doc: http://go/ios-web-download-api

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I2c508e77f3e529223499d6f2791b28011589fe90
Reviewed-on: https://chromium-review.googlesource.com/758506
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517176}
[modify] https://crrev.com/cef83520172a0820ff69e8aef4c2913913970a02/ios/web/BUILD.gn
[add] https://crrev.com/cef83520172a0820ff69e8aef4c2913913970a02/ios/web/download/BUILD.gn
[add] https://crrev.com/cef83520172a0820ff69e8aef4c2913913970a02/ios/web/download/OWNERS
[add] https://crrev.com/cef83520172a0820ff69e8aef4c2913913970a02/ios/web/download/download_task_impl.h
[add] https://crrev.com/cef83520172a0820ff69e8aef4c2913913970a02/ios/web/download/download_task_impl.mm
[add] https://crrev.com/cef83520172a0820ff69e8aef4c2913913970a02/ios/web/download/download_task_impl_unittest.mm
[modify] https://crrev.com/cef83520172a0820ff69e8aef4c2913913970a02/ios/web/test/fakes/BUILD.gn
[add] https://crrev.com/cef83520172a0820ff69e8aef4c2913913970a02/ios/web/test/fakes/crw_fake_nsurl_session_task.h
[add] https://crrev.com/cef83520172a0820ff69e8aef4c2913913970a02/ios/web/test/fakes/crw_fake_nsurl_session_task.mm

Project Member

Comment 20 by bugdroid1@chromium.org, Nov 16 2017

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

commit 499acc806321146dc13bb215691e9f0505c95120
Author: Yuke Liao <liaoyuke@chromium.org>
Date: Thu Nov 16 23:43:18 2017

Revert "DownloadTaskImpl implementation for //ios/web Download API."

This reverts commit cef83520172a0820ff69e8aef4c2913913970a02.

Reason for revert: DownloadTaskImplTest.* tests fail on iOS 11 devices, both iPhone and iPad.

Original change's description:
> DownloadTaskImpl implementation for //ios/web Download API.
> 
> This CL implements DownloadTask public interface.
> 
> DownloadControllerImpl CL: crrev.com/c/758525
> Design doc: http://go/ios-web-download-api
> 
> Bug:  780646 
> Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
> Change-Id: I2c508e77f3e529223499d6f2791b28011589fe90
> Reviewed-on: https://chromium-review.googlesource.com/758506
> Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
> Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org>
> Commit-Queue: Eugene But <eugenebut@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#517176}

TBR=sdefresne@chromium.org,eugenebut@chromium.org,gchatz@chromium.org

Change-Id: I14f0c37aa92330b0a665bf59bb665f010ee1209d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Reviewed-on: https://chromium-review.googlesource.com/776067
Reviewed-by: Yuke Liao <liaoyuke@chromium.org>
Commit-Queue: Yuke Liao <liaoyuke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517225}
[modify] https://crrev.com/499acc806321146dc13bb215691e9f0505c95120/ios/web/BUILD.gn
[delete] https://crrev.com/5c3c4ac899a17f8ceab3a6f5fc8090935a6e371b/ios/web/download/BUILD.gn
[delete] https://crrev.com/5c3c4ac899a17f8ceab3a6f5fc8090935a6e371b/ios/web/download/OWNERS
[delete] https://crrev.com/5c3c4ac899a17f8ceab3a6f5fc8090935a6e371b/ios/web/download/download_task_impl.h
[delete] https://crrev.com/5c3c4ac899a17f8ceab3a6f5fc8090935a6e371b/ios/web/download/download_task_impl.mm
[delete] https://crrev.com/5c3c4ac899a17f8ceab3a6f5fc8090935a6e371b/ios/web/download/download_task_impl_unittest.mm
[modify] https://crrev.com/499acc806321146dc13bb215691e9f0505c95120/ios/web/test/fakes/BUILD.gn
[delete] https://crrev.com/5c3c4ac899a17f8ceab3a6f5fc8090935a6e371b/ios/web/test/fakes/crw_fake_nsurl_session_task.h
[delete] https://crrev.com/5c3c4ac899a17f8ceab3a6f5fc8090935a6e371b/ios/web/test/fakes/crw_fake_nsurl_session_task.mm

Project Member

Comment 21 by bugdroid1@chromium.org, Nov 17 2017

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

commit 220c3a649add92e99f425ad40de45525396f0913
Author: Eugene But <eugenebut@google.com>
Date: Fri Nov 17 16:36:22 2017

Reland DownloadTaskImpl implementation for //ios/web Download API.

This CL implements DownloadTask public interface.

DownloadControllerImpl CL: crrev.com/c/758525
Design doc: http://go/ios-web-download-api

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: Iffea44bfb64cc945f7d899dd7181556a730394f1
Reviewed-on: https://chromium-review.googlesource.com/775889
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517424}
[modify] https://crrev.com/220c3a649add92e99f425ad40de45525396f0913/ios/web/BUILD.gn
[add] https://crrev.com/220c3a649add92e99f425ad40de45525396f0913/ios/web/download/BUILD.gn
[add] https://crrev.com/220c3a649add92e99f425ad40de45525396f0913/ios/web/download/OWNERS
[add] https://crrev.com/220c3a649add92e99f425ad40de45525396f0913/ios/web/download/download_task_impl.h
[add] https://crrev.com/220c3a649add92e99f425ad40de45525396f0913/ios/web/download/download_task_impl.mm
[add] https://crrev.com/220c3a649add92e99f425ad40de45525396f0913/ios/web/download/download_task_impl_unittest.mm
[modify] https://crrev.com/220c3a649add92e99f425ad40de45525396f0913/ios/web/test/fakes/BUILD.gn
[add] https://crrev.com/220c3a649add92e99f425ad40de45525396f0913/ios/web/test/fakes/crw_fake_nsurl_session_task.h
[add] https://crrev.com/220c3a649add92e99f425ad40de45525396f0913/ios/web/test/fakes/crw_fake_nsurl_session_task.mm

Project Member

Comment 22 by bugdroid1@chromium.org, Nov 17 2017

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

commit 4a7ac35f246ba09b76eb2684c38dd1f32ce53d6b
Author: Yuke Liao <liaoyuke@chromium.org>
Date: Fri Nov 17 18:34:08 2017

Revert "Reland DownloadTaskImpl implementation for //ios/web Download API."

This reverts commit 220c3a649add92e99f425ad40de45525396f0913.

Reason for revert: DownloadTaskImplTest.* are failing again on iOS 11 devices:

For example:

DownloadTaskImplTest.FailureInTheBeginning:
../../ios/web/download/download_task_impl_unittest.mm:321: Failure
Value of: session_task
  Actual: false
Expected: true
../../ios/web/download/download_task_impl_unittest.mm:319: Failure
Actual function call count doesn't match EXPECT_CALL(task_observer_, OnDownloadUpdated(task_.get()))...
         Expected: to be called once
           Actual: never called - unsatisfied and active
unknown file: Failure
Uninteresting mock function call - returning directly.
    Function call: OnTaskDestroyed(0x101752170)

Original change's description:
> Reland DownloadTaskImpl implementation for //ios/web Download API.
> 
> This CL implements DownloadTask public interface.
> 
> DownloadControllerImpl CL: crrev.com/c/758525
> Design doc: http://go/ios-web-download-api
> 
> Bug:  780646 
> Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
> Change-Id: Iffea44bfb64cc945f7d899dd7181556a730394f1
> Reviewed-on: https://chromium-review.googlesource.com/775889
> Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
> Commit-Queue: Eugene But <eugenebut@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#517424}

TBR=sdefresne@chromium.org,eugenebut@chromium.org

Change-Id: I254a9d8856c29bbe228a2dc96838536dd23e5a35
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Reviewed-on: https://chromium-review.googlesource.com/777063
Reviewed-by: Yuke Liao <liaoyuke@chromium.org>
Commit-Queue: Yuke Liao <liaoyuke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517485}
[modify] https://crrev.com/4a7ac35f246ba09b76eb2684c38dd1f32ce53d6b/ios/web/BUILD.gn
[delete] https://crrev.com/6fe385870629d143c8c737ac061393b8b9aa7025/ios/web/download/BUILD.gn
[delete] https://crrev.com/6fe385870629d143c8c737ac061393b8b9aa7025/ios/web/download/OWNERS
[delete] https://crrev.com/6fe385870629d143c8c737ac061393b8b9aa7025/ios/web/download/download_task_impl.h
[delete] https://crrev.com/6fe385870629d143c8c737ac061393b8b9aa7025/ios/web/download/download_task_impl.mm
[delete] https://crrev.com/6fe385870629d143c8c737ac061393b8b9aa7025/ios/web/download/download_task_impl_unittest.mm
[modify] https://crrev.com/4a7ac35f246ba09b76eb2684c38dd1f32ce53d6b/ios/web/test/fakes/BUILD.gn
[delete] https://crrev.com/6fe385870629d143c8c737ac061393b8b9aa7025/ios/web/test/fakes/crw_fake_nsurl_session_task.h
[delete] https://crrev.com/6fe385870629d143c8c737ac061393b8b9aa7025/ios/web/test/fakes/crw_fake_nsurl_session_task.mm

Project Member

Comment 23 by bugdroid1@chromium.org, Nov 20 2017

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

commit 3dd6bfed683485c39ee65a4d43839c14fb818879
Author: Eugene But <eugenebut@google.com>
Date: Mon Nov 20 21:01:47 2017

2nd reland DownloadTaskImpl implementation for //ios/web Download API.

This CL implements DownloadTask public interface.

DownloadControllerImpl CL: crrev.com/c/758525
Design doc: http://go/ios-web-download-api

TBR=sdefresne@chromium.org

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: Ia987c2fd37460bdd7d9095b6fc49d176474aa96f
Reviewed-on: https://chromium-review.googlesource.com/777708
Reviewed-by: Eugene But <eugenebut@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517925}
[modify] https://crrev.com/3dd6bfed683485c39ee65a4d43839c14fb818879/ios/web/BUILD.gn
[add] https://crrev.com/3dd6bfed683485c39ee65a4d43839c14fb818879/ios/web/download/BUILD.gn
[add] https://crrev.com/3dd6bfed683485c39ee65a4d43839c14fb818879/ios/web/download/OWNERS
[add] https://crrev.com/3dd6bfed683485c39ee65a4d43839c14fb818879/ios/web/download/download_task_impl.h
[add] https://crrev.com/3dd6bfed683485c39ee65a4d43839c14fb818879/ios/web/download/download_task_impl.mm
[add] https://crrev.com/3dd6bfed683485c39ee65a4d43839c14fb818879/ios/web/download/download_task_impl_unittest.mm
[modify] https://crrev.com/3dd6bfed683485c39ee65a4d43839c14fb818879/ios/web/test/fakes/BUILD.gn
[add] https://crrev.com/3dd6bfed683485c39ee65a4d43839c14fb818879/ios/web/test/fakes/crw_fake_nsurl_session_task.h
[add] https://crrev.com/3dd6bfed683485c39ee65a4d43839c14fb818879/ios/web/test/fakes/crw_fake_nsurl_session_task.mm

Project Member

Comment 24 by bugdroid1@chromium.org, Nov 21 2017

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

commit 981761325b741e28321ce6c751107e9bc1f5003c
Author: Eugene But <eugenebut@google.com>
Date: Tue Nov 21 01:23:36 2017

DownloadControllerImpl implementation for //ios/web Download API.

This CL implements DownloadController public interface.

DownloadTaskImpl CL: crrev.com/c/758506
Design doc: http://go/ios-web-download-api

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I63c13a3db80b3f2fe7fac5d34b235bd9e334ee52
Reviewed-on: https://chromium-review.googlesource.com/758525
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518018}
[modify] https://crrev.com/981761325b741e28321ce6c751107e9bc1f5003c/ios/web/download/BUILD.gn
[add] https://crrev.com/981761325b741e28321ce6c751107e9bc1f5003c/ios/web/download/download_controller_impl.h
[add] https://crrev.com/981761325b741e28321ce6c751107e9bc1f5003c/ios/web/download/download_controller_impl.mm
[add] https://crrev.com/981761325b741e28321ce6c751107e9bc1f5003c/ios/web/download/download_controller_impl_unittest.mm
[modify] https://crrev.com/981761325b741e28321ce6c751107e9bc1f5003c/ios/web/public/download/download_controller.h
[modify] https://crrev.com/981761325b741e28321ce6c751107e9bc1f5003c/ios/web/public/test/fakes/BUILD.gn
[add] https://crrev.com/981761325b741e28321ce6c751107e9bc1f5003c/ios/web/public/test/fakes/fake_download_controller_delegate.h
[add] https://crrev.com/981761325b741e28321ce6c751107e9bc1f5003c/ios/web/public/test/fakes/fake_download_controller_delegate.mm

Project Member

Comment 25 by bugdroid1@chromium.org, Nov 21 2017

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

commit 561a25c4af8d9db9ea2ab002bc1454e0a67bbb4b
Author: Eugene But <eugenebut@google.com>
Date: Tue Nov 21 19:46:48 2017

Initialize DownloadControllerImpl delegate with null.


TBR=sdefresne@chromium.org

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: Ifb036c069fd34f3b7b59e613e8b1d130eb74e918
Reviewed-on: https://chromium-review.googlesource.com/782800
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518339}
[modify] https://crrev.com/561a25c4af8d9db9ea2ab002bc1454e0a67bbb4b/ios/web/download/download_controller_impl.h

Project Member

Comment 26 by bugdroid1@chromium.org, Nov 21 2017

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

commit d08f91c6044968b1472234f260a2e02ea1407e30
Author: Eugene But <eugenebut@google.com>
Date: Tue Nov 21 23:14:10 2017

Integrated DownloadController into CRWWebController.

This CL completes ios/web Download API implementation. Integration test
will be landed in a separate CL.

Embedder does not set DownloadController delegate yet, so this CL does
not trigger the second download.

Design doc: http://go/ios-web-download-api

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: Icc9d5c5432a038237f80e7f35ddaa787dbb165fe
Reviewed-on: https://chromium-review.googlesource.com/764890
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518431}
[modify] https://crrev.com/d08f91c6044968b1472234f260a2e02ea1407e30/ios/web/BUILD.gn
[modify] https://crrev.com/d08f91c6044968b1472234f260a2e02ea1407e30/ios/web/test/fakes/BUILD.gn
[add] https://crrev.com/d08f91c6044968b1472234f260a2e02ea1407e30/ios/web/test/fakes/crw_fake_wk_navigation_response.h
[add] https://crrev.com/d08f91c6044968b1472234f260a2e02ea1407e30/ios/web/test/fakes/crw_fake_wk_navigation_response.mm
[modify] https://crrev.com/d08f91c6044968b1472234f260a2e02ea1407e30/ios/web/web_state/ui/BUILD.gn
[modify] https://crrev.com/d08f91c6044968b1472234f260a2e02ea1407e30/ios/web/web_state/ui/crw_web_controller.mm
[modify] https://crrev.com/d08f91c6044968b1472234f260a2e02ea1407e30/ios/web/web_state/ui/crw_web_controller_unittest.mm

Project Member

Comment 27 by bugdroid1@chromium.org, Nov 22 2017

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

commit edbfbe9e781882ac0f86d32ee32fe4ca4c20df55
Author: Eugene But <eugenebut@google.com>
Date: Wed Nov 22 03:11:52 2017

Integration tests for public Download API

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I73d042eb7ea3f7124e1e4cca467994f2b4d41d69
Reviewed-on: https://chromium-review.googlesource.com/726896
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518516}
[modify] https://crrev.com/edbfbe9e781882ac0f86d32ee32fe4ca4c20df55/ios/web/BUILD.gn
[modify] https://crrev.com/edbfbe9e781882ac0f86d32ee32fe4ca4c20df55/ios/web/download/BUILD.gn
[add] https://crrev.com/edbfbe9e781882ac0f86d32ee32fe4ca4c20df55/ios/web/download/download_inttest.mm

Status: Fixed (was: Started)
Project Member

Comment 29 by bugdroid1@chromium.org, Nov 22 2017

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

commit a33cd4d1fac752f7879e6a9725bf14fcd2372231
Author: Eugene But <eugenebut@google.com>
Date: Wed Nov 22 22:56:24 2017

Used WKHTTPCookieStore on UI thread.

WKHTTPCookieStore crashes if used on a background thread.

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I7c300eb26aca984f50e336b4b34fda2050a0bea5
Reviewed-on: https://chromium-review.googlesource.com/786542
Reviewed-by: Mohammad Refaat <mrefaat@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518783}
[modify] https://crrev.com/a33cd4d1fac752f7879e6a9725bf14fcd2372231/ios/web/download/download_task_impl.mm

Project Member

Comment 30 by bugdroid1@chromium.org, Nov 23 2017

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

commit d57837be21b0d1dd4c85042b1d08df7b5205c52e
Author: Eugene But <eugenebut@google.com>
Date: Thu Nov 23 12:06:34 2017

Pass non-const WebState* to OnDownloadCreated.

Embedder's OnDownloadCreated will use passed web_state to create
TabHelper object. So web_state has to be non-const to create a non-const
TabHelper.

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I5b8877e6c3683148d056d2d7639cf9ef12d7ec5b
Reviewed-on: https://chromium-review.googlesource.com/786319
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518897}
[modify] https://crrev.com/d57837be21b0d1dd4c85042b1d08df7b5205c52e/ios/web/download/download_controller_impl.h
[modify] https://crrev.com/d57837be21b0d1dd4c85042b1d08df7b5205c52e/ios/web/download/download_controller_impl.mm
[modify] https://crrev.com/d57837be21b0d1dd4c85042b1d08df7b5205c52e/ios/web/public/download/download_controller.h
[modify] https://crrev.com/d57837be21b0d1dd4c85042b1d08df7b5205c52e/ios/web/public/download/download_controller_delegate.h
[modify] https://crrev.com/d57837be21b0d1dd4c85042b1d08df7b5205c52e/ios/web/public/test/fakes/fake_download_controller_delegate.h
[modify] https://crrev.com/d57837be21b0d1dd4c85042b1d08df7b5205c52e/ios/web/public/test/fakes/fake_download_controller_delegate.mm

Project Member

Comment 31 by bugdroid1@chromium.org, Nov 28 2017

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

commit 11fe3c867b39e0da871b00c145ab8344787ed64c
Author: Eugene But <eugenebut@google.com>
Date: Tue Nov 28 19:33:39 2017

Added feature flags for FileDownload and PassKitDownload features.

This CL adds kNewPassKitDownload and kNewFileDownload flags usage
to the web layer. Turning on kNewPassKitDownload flag will disable
CRWPassKitDownloader and webController:didLoadPassKitObject: callback.
Turning on kNewFileDownload will disable
controllerForUnhandledContentAtURL: callback.
Turning either of these flags on will add a logic, which discards
pending item if that item is download.

Both flags are turned off by default and there is no way to enable
them via chrome://flags yet.

This CL slightly changes the code inside WKNavigationDelegate's
webView:decidePolicyForNavigationResponse:decisionHandler: as follows:
 - CRWPassKitDownloader download is moved behind |!allowNavigation|
 - allowNavigation is not set to no if MIME type is PassKit
These are non functional changes because if MIME type is PassKit, then
|allowNavigation| is always NO.

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I948ae3e1f38d266eda8aa7b99900900d8c02fef3
Reviewed-on: https://chromium-review.googlesource.com/783671
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519795}
[modify] https://crrev.com/11fe3c867b39e0da871b00c145ab8344787ed64c/ios/web/web_state/crw_pass_kit_downloader.h
[modify] https://crrev.com/11fe3c867b39e0da871b00c145ab8344787ed64c/ios/web/web_state/crw_pass_kit_downloader.mm
[modify] https://crrev.com/11fe3c867b39e0da871b00c145ab8344787ed64c/ios/web/web_state/ui/crw_web_controller.mm

Blocking: 754821
Project Member

Comment 33 by bugdroid1@chromium.org, Nov 30 2017

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

commit 7c83ed409670a50e7a229988b66dc818e1d1ccbc
Author: Eugene But <eugenebut@google.com>
Date: Thu Nov 30 21:09:11 2017

Pass non-const DownloadTask* to OnDownloadUpdated.

Implementors of DownloadTaskObserver::OnDownloadUpdated should be able
to call RemoveObserver on a ppased task, if the download is complete.

Bug:  780646 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I86f2058e35e9caeb09e32505ef05486f855646eb
Reviewed-on: https://chromium-review.googlesource.com/798312
Reviewed-by: Gregory Chatzinoff <gchatz@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520684}
[modify] https://crrev.com/7c83ed409670a50e7a229988b66dc818e1d1ccbc/ios/web/download/download_task_impl_unittest.mm
[modify] https://crrev.com/7c83ed409670a50e7a229988b66dc818e1d1ccbc/ios/web/public/download/download_task_observer.h

Sign in to add a comment