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

Issue 702796 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 3
Type: Feature



Sign in to add a comment

[Cronet] Cronet should support NSURLSession​Task​Transaction​Metrics on iOS

Project Member Reported by mef@chromium.org, Mar 17 2017

Issue description

Cronet on iOS supports NSURLSession API, but it does not populate NSURLSession​Task​Transaction​Metrics objects, which makes it harder for consumers to measure performance and even determine network protocol used to fetch resources.

Cronet should provide as much information as possible (roughly equivalent to RequestFinishedInfo and RequestFinishedInfo.Metrics on Android).
 

Comment 1 by edchin@chromium.org, Mar 20 2017

Owner: mef@chromium.org
Status: Assigned (was: Untriaged)

Comment 2 by mef@chromium.org, Mar 22 2017

Cc: lilyhoughton@chromium.org kapishnikov@chromium.org mef@chromium.org
Labels: -Type-Bug Type-Feature
Owner: ----
Status: Available (was: Assigned)
According to https://developer.apple.com/reference/foundation/nsurlsessiontasktransactionmetrics NSURLSession​Task​Transaction​Metrics requires iOS 10 and above. 

This may be too strict for Cronet consumers, and we may need to define Cronet-specific API to support older versions.
Owner: lilyhoughton@chromium.org
Status: Started (was: Available)
Project Member

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

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

commit 7f811a91ee8c64fc163f37b6082c368d851476ea
Author: Lily Houghton <lilyhoughton@chromium.org>
Date: Fri Nov 10 03:40:33 2017

[Cronet] Define CronetMetrics class implementing the iOS NSURLSessionTaskTransactionMetrics interface

This creates a class |CronetMetrics| which provides setters for all of the propeties defined in
NSURLSessionTaskTransactionMetrics.

Bug:  702796 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Icdcc917001c0ceb20107e2f128dba88259330f78
Reviewed-on: https://chromium-review.googlesource.com/744401
Commit-Queue: Lily Houghton <lilyhoughton@chromium.org>
Reviewed-by: Misha Efimov <mef@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515444}
[modify] https://crrev.com/7f811a91ee8c64fc163f37b6082c368d851476ea/components/cronet/ios/BUILD.gn
[add] https://crrev.com/7f811a91ee8c64fc163f37b6082c368d851476ea/components/cronet/ios/cronet_metrics.h
[add] https://crrev.com/7f811a91ee8c64fc163f37b6082c368d851476ea/components/cronet/ios/cronet_metrics.mm
[modify] https://crrev.com/7f811a91ee8c64fc163f37b6082c368d851476ea/components/cronet/ios/test/BUILD.gn
[add] https://crrev.com/7f811a91ee8c64fc163f37b6082c368d851476ea/components/cronet/ios/test/cronet_metrics_test.mm

Project Member

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

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

commit adfd430821e51b6d8fa9d3d7e693b6b246c45fb0
Author: Lily Houghton <lilyhoughton@chromium.org>
Date: Fri Nov 10 05:37:59 2017

[Cronet] Add CronetMetricsDelegate and add/remove methods to Cronet

This adds a CronetMetricsDelegate interface, as well as addMetricsDelegate
and removeMetricsDelegate methods, which are used to register/unregister
metrics callbacks.

Currently the callback is never actually called; this is simply defining the
interface and registration methods.

Bug:  702796 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I0a3933bf623265d675e3a10ef5ed25149c89e101
Reviewed-on: https://chromium-review.googlesource.com/748819
Commit-Queue: Lily Houghton <lilyhoughton@chromium.org>
Reviewed-by: Andrei Kapishnikov <kapishnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515456}
[modify] https://crrev.com/adfd430821e51b6d8fa9d3d7e693b6b246c45fb0/components/cronet/ios/Cronet.h
[modify] https://crrev.com/adfd430821e51b6d8fa9d3d7e693b6b246c45fb0/components/cronet/ios/Cronet.mm
[modify] https://crrev.com/adfd430821e51b6d8fa9d3d7e693b6b246c45fb0/components/cronet/ios/test/cronet_metrics_test.mm

Project Member

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

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

commit c4af4315a89a0578fe7efdd97cb5f4c57f85d889
Author: Lily Houghton <lilyhoughton@chromium.org>
Date: Fri Nov 10 17:47:40 2017

[Cronet] Format BUILD.gn

Bug:  702796 
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Ic00c5e8ed6e157a691d3167a95c76e5b8196fbf6
Reviewed-on: https://chromium-review.googlesource.com/763912
Reviewed-by: Misha Efimov <mef@chromium.org>
Commit-Queue: Lily Houghton <lilyhoughton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515590}
[modify] https://crrev.com/c4af4315a89a0578fe7efdd97cb5f4c57f85d889/components/cronet/ios/test/BUILD.gn

Project Member

Comment 7 by bugdroid1@chromium.org, Dec 12 2017

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

commit ff34ceb7d9e0dee8caaafefbe94517c524e1a292
Author: Lily Houghton <lilyhoughton@chromium.org>
Date: Tue Dec 12 14:55:39 2017

[Cronet] Populate cronet metrics object with data from net/.

Currently this only creates the an appropriater delegate in net/, calling it from there.
There still needs to be created code in cronet which registers and appropriate delegate,
and then populates the metrics object that will finally be given to the client.

Bug:  702796 
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: I33a8ce1f489a7bfb74b4c9561a57b7b5a71013e0
Reviewed-on: https://chromium-review.googlesource.com/763934
Commit-Queue: Lily Houghton <lilyhoughton@chromium.org>
Reviewed-by: Andrei Kapishnikov <kapishnikov@chromium.org>
Reviewed-by: Misha Efimov <mef@chromium.org>
Reviewed-by: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523430}
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/Cronet.h
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/Cronet.mm
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/cronet_metrics.h
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/cronet_metrics.mm
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/test/BUILD.gn
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/test/cronet_metrics_test.mm
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/test/cronet_netlog_test.mm
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/test/cronet_test_base.h
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/test/cronet_test_base.mm
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/test/test_server.cc
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/components/cronet/ios/test/test_server.h
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/ios/net/crn_http_protocol_handler.h
[modify] https://crrev.com/ff34ceb7d9e0dee8caaafefbe94517c524e1a292/ios/net/crn_http_protocol_handler.mm

Project Member

Comment 8 by bugdroid1@chromium.org, Dec 12 2017

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

commit 46216849ff6ff1c9358a3f0e288525e457872e35
Author: Sergio Collazos <sczs@chromium.org>
Date: Tue Dec 12 21:49:59 2017

Revert "[Cronet] Populate cronet metrics object with data from net/."

This reverts commit ff34ceb7d9e0dee8caaafefbe94517c524e1a292.

Reason for revert: Breaking downstream ExternalURLSigninTestCase test suite.

Original change's description:
> [Cronet] Populate cronet metrics object with data from net/.
> 
> Currently this only creates the an appropriater delegate in net/, calling it from there.
> There still needs to be created code in cronet which registers and appropriate delegate,
> and then populates the metrics object that will finally be given to the client.
> 
> Bug:  702796 
> Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
> Change-Id: I33a8ce1f489a7bfb74b4c9561a57b7b5a71013e0
> Reviewed-on: https://chromium-review.googlesource.com/763934
> Commit-Queue: Lily Houghton <lilyhoughton@chromium.org>
> Reviewed-by: Andrei Kapishnikov <kapishnikov@chromium.org>
> Reviewed-by: Misha Efimov <mef@chromium.org>
> Reviewed-by: Eugene But <eugenebut@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#523430}

TBR=mef@chromium.org,eugenebut@chromium.org,kapishnikov@chromium.org,lilyhoughton@chromium.org

Change-Id: Ic9cb928a24a1577c506542c18b15261aa0d96126
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  702796 
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Reviewed-on: https://chromium-review.googlesource.com/822922
Reviewed-by: Sergio Collazos <sczs@chromium.org>
Commit-Queue: Sergio Collazos <sczs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523565}
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/Cronet.h
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/Cronet.mm
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/cronet_metrics.h
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/cronet_metrics.mm
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/test/BUILD.gn
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/test/cronet_metrics_test.mm
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/test/cronet_netlog_test.mm
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/test/cronet_test_base.h
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/test/cronet_test_base.mm
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/test/test_server.cc
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/components/cronet/ios/test/test_server.h
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/ios/net/crn_http_protocol_handler.h
[modify] https://crrev.com/46216849ff6ff1c9358a3f0e288525e457872e35/ios/net/crn_http_protocol_handler.mm

Project Member

Comment 9 by bugdroid1@chromium.org, Dec 19 2017

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

commit 956982f6bf5864624a15e66ce8559fe10dae1364
Author: Lily Houghton <lilyhoughton@chromium.org>
Date: Tue Dec 19 00:15:11 2017

[Cronet] Populate cronet metrics object with data from net/.

This populates metrics object passed to client with data gathered from net code.

Bug:  702796 
Change-Id: I35ed429ec232c25c45d6f1e94df5035a2d76990f
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Reviewed-on: https://chromium-review.googlesource.com/827025
Commit-Queue: Lily Houghton <lilyhoughton@chromium.org>
Reviewed-by: Andrei Kapishnikov <kapishnikov@chromium.org>
Reviewed-by: Eugene But <eugenebut@chromium.org>
Reviewed-by: Misha Efimov <mef@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524875}
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/Cronet.h
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/Cronet.mm
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/cronet_metrics.h
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/cronet_metrics.mm
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/test/BUILD.gn
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/test/cronet_http_test.mm
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/test/cronet_metrics_test.mm
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/test/cronet_netlog_test.mm
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/test/cronet_test_base.h
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/test/cronet_test_base.mm
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/test/test_server.cc
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/components/cronet/ios/test/test_server.h
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/ios/net/crn_http_protocol_handler.h
[modify] https://crrev.com/956982f6bf5864624a15e66ce8559fe10dae1364/ios/net/crn_http_protocol_handler.mm

Comment 10 by mef@chromium.org, Feb 7 2018

Status: Fixed (was: Started)

Sign in to add a comment