| Index: chrome/browser/ssl/chrome_expect_ct_reporter_unittest.cc | 
| diff --git a/chrome/browser/ssl/chrome_expect_ct_reporter_unittest.cc b/chrome/browser/ssl/chrome_expect_ct_reporter_unittest.cc | 
| index 5c39c39f47410f0848f1313082888765ffdda825..776aec22d544b6927ec7c38c0b044a5fe361b12f 100644 | 
| --- a/chrome/browser/ssl/chrome_expect_ct_reporter_unittest.cc | 
| +++ b/chrome/browser/ssl/chrome_expect_ct_reporter_unittest.cc | 
| @@ -236,6 +236,7 @@ void CheckReportSCTs( | 
| // |ssl_info|. | 
| void CheckExpectCTReport(const std::string& serialized_report, | 
| const net::HostPortPair& host_port, | 
| +                         const std::string& expiration, | 
| const net::SSLInfo& ssl_info) { | 
| std::unique_ptr<base::Value> value(base::JSONReader::Read(serialized_report)); | 
| ASSERT_TRUE(value); | 
| @@ -251,6 +252,11 @@ void CheckExpectCTReport(const std::string& serialized_report, | 
| EXPECT_TRUE(report_dict->GetInteger("port", &report_port)); | 
| EXPECT_EQ(host_port.port(), report_port); | 
|  | 
| +  std::string report_expiration; | 
| +  EXPECT_TRUE( | 
| +      report_dict->GetString("effective-expiration-date", &report_expiration)); | 
| +  EXPECT_EQ(expiration, report_expiration); | 
| + | 
| const base::ListValue* report_served_certificate_chain = nullptr; | 
| ASSERT_TRUE(report_dict->GetList("served-certificate-chain", | 
| &report_served_certificate_chain)); | 
| @@ -322,13 +328,14 @@ class ChromeExpectCTReporterWaitTest : public ::testing::Test { | 
| void SendReport(ChromeExpectCTReporter* reporter, | 
| const net::HostPortPair& host_port, | 
| const GURL& report_uri, | 
| +                  base::Time expiration, | 
| const net::SSLInfo& ssl_info) { | 
| base::RunLoop run_loop; | 
| network_delegate_.set_url_request_destroyed_callback( | 
| run_loop.QuitClosure()); | 
| -    reporter->OnExpectCTFailed(host_port, report_uri, ssl_info.cert.get(), | 
| -                               ssl_info.unverified_cert.get(), | 
| -                               ssl_info.signed_certificate_timestamps); | 
| +    reporter->OnExpectCTFailed( | 
| +        host_port, report_uri, expiration, ssl_info.cert.get(), | 
| +        ssl_info.unverified_cert.get(), ssl_info.signed_certificate_timestamps); | 
| run_loop.Run(); | 
| } | 
|  | 
| @@ -367,8 +374,8 @@ TEST(ChromeExpectCTReporterTest, FeatureDisabled) { | 
| net::HostPortPair host_port("example.test", 443); | 
| GURL report_uri("http://example-report.test"); | 
|  | 
| -  reporter.OnExpectCTFailed(host_port, report_uri, ssl_info.cert.get(), | 
| -                            ssl_info.unverified_cert.get(), | 
| +  reporter.OnExpectCTFailed(host_port, report_uri, base::Time(), | 
| +                            ssl_info.cert.get(), ssl_info.unverified_cert.get(), | 
| ssl_info.signed_certificate_timestamps); | 
| EXPECT_TRUE(sender->latest_report_uri().is_empty()); | 
| EXPECT_TRUE(sender->latest_serialized_report().empty()); | 
| @@ -389,7 +396,8 @@ TEST(ChromeExpectCTReporterTest, EmptyReportURI) { | 
| EXPECT_TRUE(sender->latest_report_uri().is_empty()); | 
| EXPECT_TRUE(sender->latest_serialized_report().empty()); | 
|  | 
| -  reporter.OnExpectCTFailed(net::HostPortPair(), GURL(), nullptr, nullptr, | 
| +  reporter.OnExpectCTFailed(net::HostPortPair(), GURL(), base::Time(), nullptr, | 
| +                            nullptr, | 
| net::SignedCertificateTimestampAndStatusList()); | 
| EXPECT_TRUE(sender->latest_report_uri().is_empty()); | 
| EXPECT_TRUE(sender->latest_serialized_report().empty()); | 
| @@ -415,7 +423,7 @@ TEST_F(ChromeExpectCTReporterWaitTest, SendReportFailure) { | 
| GURL report_uri( | 
| net::URLRequestFailedJob::GetMockHttpUrl(net::ERR_CONNECTION_FAILED)); | 
|  | 
| -  SendReport(&reporter, host_port, report_uri, ssl_info); | 
| +  SendReport(&reporter, host_port, report_uri, base::Time(), ssl_info); | 
|  | 
| histograms.ExpectTotalCount(kFailureHistogramName, 1); | 
| histograms.ExpectBucketCount(kFailureHistogramName, | 
| @@ -487,15 +495,21 @@ TEST(ChromeExpectCTReporterTest, SendReport) { | 
| net::HostPortPair host_port("example.test", 443); | 
| GURL report_uri("http://example-report.test"); | 
|  | 
| +  const char kExpirationTimeStr[] = "2017-01-01T00:00:00.000Z"; | 
| +  base::Time expiration; | 
| +  ASSERT_TRUE( | 
| +      base::Time::FromUTCExploded({2017, 1, 0, 1, 0, 0, 0, 0}, &expiration)); | 
| + | 
| // Check that the report is sent and contains the correct information. | 
| -  reporter.OnExpectCTFailed(host_port, report_uri, ssl_info.cert.get(), | 
| -                            ssl_info.unverified_cert.get(), | 
| +  reporter.OnExpectCTFailed(host_port, report_uri, expiration, | 
| +                            ssl_info.cert.get(), ssl_info.unverified_cert.get(), | 
| ssl_info.signed_certificate_timestamps); | 
| EXPECT_EQ(report_uri, sender->latest_report_uri()); | 
| EXPECT_FALSE(sender->latest_serialized_report().empty()); | 
| EXPECT_EQ("application/json; charset=utf-8", sender->latest_content_type()); | 
| -  ASSERT_NO_FATAL_FAILURE(CheckExpectCTReport( | 
| -      sender->latest_serialized_report(), host_port, ssl_info)); | 
| +  ASSERT_NO_FATAL_FAILURE( | 
| +      CheckExpectCTReport(sender->latest_serialized_report(), host_port, | 
| +                          kExpirationTimeStr, ssl_info)); | 
|  | 
| histograms.ExpectTotalCount(kFailureHistogramName, 0); | 
| histograms.ExpectTotalCount(kSendHistogramName, 1); | 
|  |