RTCMediaStreamTrackStats.kind added and collected.

Implements recent spec change:
https://github.com/w3c/webrtc-stats/pull/127

BUG=chromium:659137, chromium:627816

Review-Url: https://codereview.webrtc.org/2623513006
Cr-Commit-Position: refs/heads/master@{#16111}
diff --git a/webrtc/api/rtcstats_integrationtest.cc b/webrtc/api/rtcstats_integrationtest.cc
index 7a67038..98eafb0 100644
--- a/webrtc/api/rtcstats_integrationtest.cc
+++ b/webrtc/api/rtcstats_integrationtest.cc
@@ -429,13 +429,21 @@
     verifier.TestMemberIsDefined(media_stream_track.remote_source);
     verifier.TestMemberIsDefined(media_stream_track.ended);
     verifier.TestMemberIsDefined(media_stream_track.detached);
+    verifier.TestMemberIsDefined(media_stream_track.kind);
     // Video or audio media stream track?
-    if (media_stream_track.frame_width.is_defined()) {
+    if (*media_stream_track.kind == RTCMediaStreamTrackKind::kVideo) {
       // Video-only members
-      verifier.TestMemberIsNonNegative<uint32_t>(
-          media_stream_track.frame_width);
-      verifier.TestMemberIsNonNegative<uint32_t>(
-          media_stream_track.frame_height);
+      if (!*media_stream_track.remote_source) {
+        verifier.TestMemberIsNonNegative<uint32_t>(
+            media_stream_track.frame_width);
+        verifier.TestMemberIsNonNegative<uint32_t>(
+            media_stream_track.frame_height);
+      } else {
+        // TODO(hbos): Frame width/height should be defined for the remote case.
+        // Is this a real problem or an artifact of testing? crbug.com/659137
+        verifier.TestMemberIsUndefined(media_stream_track.frame_width);
+        verifier.TestMemberIsUndefined(media_stream_track.frame_height);
+      }
       verifier.TestMemberIsUndefined(media_stream_track.frames_per_second);
       verifier.TestMemberIsUndefined(media_stream_track.frames_sent);
       verifier.TestMemberIsUndefined(media_stream_track.frames_received);