RTCIceCandidateStats.deleted = false added.

Since previously, only the deleted = false case is supported, but now
that stat is added. It's a recent addition to the spec:
https://w3c.github.io/webrtc-stats/#dom-rtcicecandidatestats-deleted

BUG=webrtc:6756, chromium:632723, chromium:627816

Review-Url: https://codereview.webrtc.org/2591963003
Cr-Commit-Position: refs/heads/master@{#15871}
diff --git a/webrtc/api/rtcstats_integrationtest.cc b/webrtc/api/rtcstats_integrationtest.cc
index 556907c..53c73f3 100644
--- a/webrtc/api/rtcstats_integrationtest.cc
+++ b/webrtc/api/rtcstats_integrationtest.cc
@@ -397,6 +397,7 @@
     verifier.TestMemberIsDefined(candidate.candidate_type);
     verifier.TestMemberIsNonNegative<int32_t>(candidate.priority);
     verifier.TestMemberIsUndefined(candidate.url);
+    verifier.TestMemberIsDefined(candidate.deleted);
     return verifier.ExpectAllMembersSuccessfullyTested();
   }
 
diff --git a/webrtc/api/rtcstatscollector_unittest.cc b/webrtc/api/rtcstatscollector_unittest.cc
index 6e84853..deda617 100644
--- a/webrtc/api/rtcstatscollector_unittest.cc
+++ b/webrtc/api/rtcstatscollector_unittest.cc
@@ -923,6 +923,7 @@
   expected_a_remote_srflx.protocol = "remote_srflx's protocol";
   expected_a_remote_srflx.candidate_type = "srflx";
   expected_a_remote_srflx.priority = 1;
+  expected_a_remote_srflx.deleted = false;
   EXPECT_TRUE(*expected_a_remote_srflx.is_remote);
 
   std::unique_ptr<cricket::Candidate> a_local_prflx = CreateFakeCandidate(
@@ -937,6 +938,7 @@
   expected_a_local_prflx.protocol = "a_local_prflx's protocol";
   expected_a_local_prflx.candidate_type = "prflx";
   expected_a_local_prflx.priority = 2;
+  expected_a_local_prflx.deleted = false;
   EXPECT_FALSE(*expected_a_local_prflx.is_remote);
 
   std::unique_ptr<cricket::Candidate> a_remote_relay = CreateFakeCandidate(
@@ -951,6 +953,7 @@
   expected_a_remote_relay.protocol = "a_remote_relay's protocol";
   expected_a_remote_relay.candidate_type = "relay";
   expected_a_remote_relay.priority = 3;
+  expected_a_remote_relay.deleted = false;
   EXPECT_TRUE(*expected_a_remote_relay.is_remote);
 
   // Candidates in the second transport stats.
@@ -966,6 +969,7 @@
   expected_b_local.protocol = "b_local's protocol";
   expected_b_local.candidate_type = "host";
   expected_b_local.priority = 42;
+  expected_b_local.deleted = false;
   EXPECT_FALSE(*expected_b_local.is_remote);
 
   std::unique_ptr<cricket::Candidate> b_remote = CreateFakeCandidate(
@@ -980,6 +984,7 @@
   expected_b_remote.protocol = "b_remote's protocol";
   expected_b_remote.candidate_type = "host";
   expected_b_remote.priority = 42;
+  expected_b_remote.deleted = false;
   EXPECT_TRUE(*expected_b_remote.is_remote);
 
   SessionStats session_stats;
@@ -1118,6 +1123,7 @@
   expected_local_candidate.protocol = "protocol";
   expected_local_candidate.candidate_type = "host";
   expected_local_candidate.priority = 42;
+  expected_local_candidate.deleted = false;
   EXPECT_FALSE(*expected_local_candidate.is_remote);
   ASSERT_TRUE(report->Get(expected_local_candidate.id()));
   EXPECT_EQ(expected_local_candidate,
@@ -1131,6 +1137,7 @@
   expected_remote_candidate.protocol = "protocol";
   expected_remote_candidate.candidate_type = "host";
   expected_remote_candidate.priority = 42;
+  expected_remote_candidate.deleted = false;
   EXPECT_TRUE(*expected_remote_candidate.is_remote);
   ASSERT_TRUE(report->Get(expected_remote_candidate.id()));
   EXPECT_EQ(expected_remote_candidate,
diff --git a/webrtc/api/stats/rtcstats_objects.h b/webrtc/api/stats/rtcstats_objects.h
index e85119a..ab69105 100644
--- a/webrtc/api/stats/rtcstats_objects.h
+++ b/webrtc/api/stats/rtcstats_objects.h
@@ -176,6 +176,9 @@
   RTCStatsMember<int32_t> priority;
   // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/632723
   RTCStatsMember<std::string> url;
+  // TODO(hbos): |deleted = true| case is not supported by |RTCStatsCollector|.
+  // crbug.com/632723
+  RTCStatsMember<bool> deleted;  // = false
 
  protected:
   RTCIceCandidateStats(
diff --git a/webrtc/stats/rtcstats_objects.cc b/webrtc/stats/rtcstats_objects.cc
index 487df93..966c845 100644
--- a/webrtc/stats/rtcstats_objects.cc
+++ b/webrtc/stats/rtcstats_objects.cc
@@ -242,7 +242,8 @@
     &protocol,
     &candidate_type,
     &priority,
-    &url);
+    &url,
+    &deleted);
 
 RTCIceCandidateStats::RTCIceCandidateStats(
     const std::string& id, int64_t timestamp_us, bool is_remote)
@@ -258,7 +259,8 @@
       protocol("protocol"),
       candidate_type("candidateType"),
       priority("priority"),
-      url("url") {
+      url("url"),
+      deleted("deleted", false) {
 }
 
 RTCIceCandidateStats::RTCIceCandidateStats(const RTCIceCandidateStats& other)
@@ -269,7 +271,8 @@
       protocol(other.protocol),
       candidate_type(other.candidate_type),
       priority(other.priority),
-      url(other.url) {
+      url(other.url),
+      deleted(other.deleted) {
 }
 
 RTCIceCandidateStats::~RTCIceCandidateStats() {