diff --git a/base/BUILD.gn b/base/BUILD.gn
index 670e42c..e758d86 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -153,6 +153,7 @@
   ]
 
   sources = [
+    "arraysize.h",
     "asyncfile.cc",
     "asyncfile.h",
     "asynchttprequest.cc",
diff --git a/base/arraysize.h b/base/arraysize.h
new file mode 100644
index 0000000..93ea0f6
--- /dev/null
+++ b/base/arraysize.h
@@ -0,0 +1,38 @@
+/*
+ *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef WEBRTC_BASE_ARRAYSIZE_H_
+#define WEBRTC_BASE_ARRAYSIZE_H_
+
+// This file defines the arraysize() macro and is derived from Chromium's
+// base/macros.h.
+
+// The arraysize(arr) macro returns the # of elements in an array arr.
+// The expression is a compile-time constant, and therefore can be
+// used in defining new arrays, for example.  If you use arraysize on
+// a pointer by mistake, you will get a compile-time error.
+
+// This template function declaration is used in defining arraysize.
+// Note that the function doesn't need an implementation, as we only
+// use its type.
+template <typename T, size_t N>
+char (&ArraySizeHelper(T (&array)[N]))[N];
+
+// That gcc wants both of these prototypes seems mysterious. VC, for
+// its part, can't decide which to use (another mystery). Matching of
+// template overloads: the final frontier.
+#ifndef _MSC_VER
+template <typename T, size_t N>
+char (&ArraySizeHelper(const T (&array)[N]))[N];
+#endif
+
+#define arraysize(array) (sizeof(ArraySizeHelper(array)))
+
+#endif  // WEBRTC_BASE_ARRAYSIZE_H_
diff --git a/base/base.gyp b/base/base.gyp
index 16437be..74ba76a 100644
--- a/base/base.gyp
+++ b/base/base.gyp
@@ -65,6 +65,7 @@
         'USE_WEBRTC_DEV_BRANCH',
       ],
       'sources': [
+        'arraysize.h',
         'asyncfile.cc',
         'asyncfile.h',
         'asynchttprequest.cc',
diff --git a/examples/android/media_demo/jni/jni_helpers.h b/examples/android/media_demo/jni/jni_helpers.h
index 25706db..a4d4d96 100644
--- a/examples/android/media_demo/jni/jni_helpers.h
+++ b/examples/android/media_demo/jni/jni_helpers.h
@@ -44,9 +44,6 @@
     }                             \
   }
 
-#define ARRAYSIZE(instance)                                     \
-  static_cast<int>(sizeof(instance) / sizeof(instance[0]))
-
 // JNIEnv-helper methods that CHECK success: no Java exception thrown and found
 // object/class/method/field is non-null.
 jmethodID GetMethodID(JNIEnv* jni, jclass c, const std::string& name,
diff --git a/examples/android/media_demo/jni/video_engine_jni.cc b/examples/android/media_demo/jni/video_engine_jni.cc
index d9e6312..d389cda 100644
--- a/examples/android/media_demo/jni/video_engine_jni.cc
+++ b/examples/android/media_demo/jni/video_engine_jni.cc
@@ -16,6 +16,7 @@
 #include <map>
 #include <string>
 
+#include "webrtc/base/arraysize.h"
 #include "webrtc/common_types.h"
 #include "webrtc/examples/android/media_demo/jni/jni_helpers.h"
 #include "webrtc/examples/android/media_demo/jni/media_codec_video_decoder.h"
@@ -330,7 +331,7 @@
   webrtc::AttachThreadScoped ats(g_vm);
   JNIEnv* jni = ats.env();
   g_class_reference_holder = new ClassReferenceHolder(
-      jni, g_classes, ARRAYSIZE(g_classes));
+      jni, g_classes, arraysize(g_classes));
 }
 
 void ClearVieDeviceObjects() {
diff --git a/examples/android/media_demo/jni/voice_engine_jni.cc b/examples/android/media_demo/jni/voice_engine_jni.cc
index 72df498..85ad84f 100644
--- a/examples/android/media_demo/jni/voice_engine_jni.cc
+++ b/examples/android/media_demo/jni/voice_engine_jni.cc
@@ -16,6 +16,7 @@
 #include <map>
 #include <string>
 
+#include "webrtc/base/arraysize.h"
 #include "webrtc/examples/android/media_demo/jni/jni_helpers.h"
 #include "webrtc/modules/utility/interface/helpers_android.h"
 #include "webrtc/test/channel_transport/include/channel_transport.h"
@@ -164,7 +165,7 @@
   webrtc::AttachThreadScoped ats(g_vm);
   JNIEnv* jni = ats.env();
   g_class_reference_holder = new ClassReferenceHolder(
-      jni, g_classes, ARRAYSIZE(g_classes));
+      jni, g_classes, arraysize(g_classes));
 }
 
 void ClearVoeDeviceObjects() {
