Add ipc ParamTraits for StackVector

BUG=None

Review URL: https://codereview.chromium.org/1251593010

Cr-Commit-Position: refs/heads/master@{#340145}
diff --git a/ipc/ipc_message_utils_unittest.cc b/ipc/ipc_message_utils_unittest.cc
index a73e2e7e..88d670d 100644
--- a/ipc/ipc_message_utils_unittest.cc
+++ b/ipc/ipc_message_utils_unittest.cc
@@ -70,5 +70,22 @@
   ASSERT_FALSE(ParamTraits<base::FilePath>::Read(&message, &iter, &bad_path));
 }
 
+
+TEST(IPCMessageUtilsTest, StackVector) {
+  static const size_t stack_capacity = 5;
+  base::StackVector<double, stack_capacity> stack_vector;
+  for (size_t i = 0; i < 2 * stack_capacity; i++)
+    stack_vector->push_back(i * 2.0);
+
+  IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL);
+  IPC::WriteParam(&msg, stack_vector);
+
+  base::StackVector<double, stack_capacity> output;
+  base::PickleIterator iter(msg);
+  EXPECT_TRUE(IPC::ReadParam(&msg, &iter, &output));
+  for (size_t i = 0; i < 2 * stack_capacity; i++)
+    EXPECT_EQ(stack_vector[i], output[i]);
+}
+
 }  // namespace
 }  // namespace IPC