diff --git include/base/cef_atomicops.h include/base/cef_atomicops.h
index 96aebab..501788f 100644
--- include/base/cef_atomicops.h
+++ include/base/cef_atomicops.h
@@ -54,7 +54,7 @@
 #define CEF_INCLUDE_BASE_CEF_ATOMICOPS_H_
 #pragma once
 
-#if defined(BASE_ATOMICOPS_H_)
+#if defined(BASE_ATOMICOPS_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
@@ -92,9 +92,13 @@
 // http://code.google.com/p/nativeclient/issues/detail?id=1162
 typedef int64_t Atomic64;
 #else
+#if defined(USING_GOOGLE3_INCLUDES)
+typedef int64_t Atomic64;
+#else
 typedef intptr_t Atomic64;
 #endif
 #endif
+#endif
 
 // Use AtomicWord for a machine-sized pointer.  It will use the Atomic32 or
 // Atomic64 routines below, depending on your architecture.
diff --git include/base/cef_basictypes.h include/base/cef_basictypes.h
index e38f4f729..fcb0a5916 100644
--- include/base/cef_basictypes.h
+++ include/base/cef_basictypes.h
@@ -37,6 +37,11 @@
 
 #include "include/base/cef_build.h"
 
+#if defined(USING_GOOGLE3_INCLUDES)
+// When building CEF in google3, use the google3 header directly.
+#include "base/integral_types.h"
+#else  // !USING_GOOGLE3_INCLUDES
+
 // The NSPR system headers define 64-bit as |long| when possible, except on
 // Mac OS X.  In order to not have typedef mismatches, we do the same on LP64.
 //
@@ -74,6 +79,8 @@ typedef short int16;
 typedef unsigned short uint16;
 #endif
 
+#endif  // !USING_GOOGLE3_INCLUDES
+
 // UTF-16 character type.
 // This should be kept synchronized with base/strings/string16.h
 #ifndef char16
diff --git include/base/cef_bind.h include/base/cef_bind.h
index 77c9c5573..a917a1887 100644
--- include/base/cef_bind.h
+++ include/base/cef_bind.h
@@ -32,7 +32,7 @@
 #define CEF_INCLUDE_BASE_CEF_BIND_H_
 #pragma once
 
-#if defined(BASE_BIND_H_)
+#if defined(BASE_BIND_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_bind_helpers.h include/base/cef_bind_helpers.h
index 2b4798b2c..b220b9934 100644
--- include/base/cef_bind_helpers.h
+++ include/base/cef_bind_helpers.h
@@ -170,7 +170,7 @@
 #define CEF_INCLUDE_BASE_CEF_BIND_HELPERS_H_
 #pragma once
 
-#if defined(BASE_BIND_HELPERS_H_)
+#if defined(BASE_BIND_HELPERS_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_callback.h include/base/cef_callback.h
index 16e238a97..83cb0ebe4 100644
--- include/base/cef_callback.h
+++ include/base/cef_callback.h
@@ -32,7 +32,7 @@
 #define CEF_INCLUDE_BASE_CEF_CALLBACK_H_
 #pragma once
 
-#if defined(BASE_CALLBACK_H_)
+#if defined(BASE_CALLBACK_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_callback_forward.h include/base/cef_callback_forward.h
index d604d7cfa..e434bd12f 100644
--- include/base/cef_callback_forward.h
+++ include/base/cef_callback_forward.h
@@ -32,7 +32,7 @@
 #define INCLUDE_BASE_CEF_CALLBACK_FORWARD_H_
 #pragma once
 
-#if defined(BASE_CALLBACK_FORWARD_H_)
+#if defined(BASE_CALLBACK_FORWARD_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
@@ -54,6 +54,27 @@ typedef Callback<void(void)> Closure;
 
 }  // namespace base
 
+#if defined(USING_GOOGLE3_INCLUDES)
+
+// The google3 //base/callback-specializations.h header declares class templates
+// in the base::callback_internal namespace that derive from ::Closure. However,
+// those class templates use " : public Closure" to achieve that relationship.
+// Because CEF declares a conflicting Closure type in the base namespace, the
+// google3 header picks up the incorrect Closure (CEF's base::Closure rather
+// than google3's ::Closure) when used in conjunction with the CEF header. The
+// kludge below resolves this issue by pulling the global ::Closure into the
+// base::callback_internal namespace.
+
+class Closure;
+
+namespace base {
+namespace callback_internal {
+using Closure = ::Closure;
+}  // namespace callback_internal
+}  // namespace base
+
+#endif  // USING_GOOGLE3_INCLUDES
+
 #endif  // !!USING_CHROMIUM_INCLUDES
 
 #endif  // INCLUDE_BASE_CEF_CALLBACK_FORWARD_H_
diff --git include/base/cef_callback_helpers.h include/base/cef_callback_helpers.h
index ebe074a1f..1692cfde5 100644
--- include/base/cef_callback_helpers.h
+++ include/base/cef_callback_helpers.h
@@ -41,7 +41,7 @@
 #define CEF_INCLUDE_BASE_CEF_CALLBACK_HELPERS_H_
 #pragma once
 
-#if defined(BASE_CALLBACK_HELPERS_H_)
+#if defined(BASE_CALLBACK_HELPERS_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_callback_list.h include/base/cef_callback_list.h
index e0ef3665b..8e0a5d6e5 100644
--- include/base/cef_callback_list.h
+++ include/base/cef_callback_list.h
@@ -32,7 +32,7 @@
 #define CEF_INCLUDE_BASE_CEF_CALLBACK_LIST_H_
 #pragma once
 
-#if defined(BASE_CALLBACK_LIST_H_)
+#if defined(BASE_CALLBACK_LIST_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_cancelable_callback.h include/base/cef_cancelable_callback.h
index febce3a32..c1cfbf03d 100644
--- include/base/cef_cancelable_callback.h
+++ include/base/cef_cancelable_callback.h
@@ -69,7 +69,7 @@
 #define CEF_INCLUDE_BASE_CEF_CANCELABLE_CALLBACK_H_
 #pragma once
 
-#if defined(BASE_CANCELABLE_CALLBACK_H_)
+#if defined(BASE_CANCELABLE_CALLBACK_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_lock.h include/base/cef_lock.h
index 6909bd6f2..cc122cafd 100644
--- include/base/cef_lock.h
+++ include/base/cef_lock.h
@@ -32,7 +32,7 @@
 #define CEF_INCLUDE_BASE_CEF_LOCK_H_
 #pragma once
 
-#if defined(BASE_SYNCHRONIZATION_LOCK_H_)
+#if defined(BASE_SYNCHRONIZATION_LOCK_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_logging.h include/base/cef_logging.h
index 8d8bb889e..fef75d78b 100644
--- include/base/cef_logging.h
+++ include/base/cef_logging.h
@@ -140,7 +140,7 @@
 // When building CEF include the Chromium header directly.
 #include "base/logging.h"
 #include "base/notreached.h"
-#elif defined(DCHECK)
+#elif defined(DCHECK) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the macros provided by this header already exist.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
@@ -163,6 +163,12 @@
 #include <sstream>
 #include <string>
 
+#if defined(USING_GOOGLE3_INCLUDES)
+// When building CEF in google3, use the google3 header directly, but keep the
+// namespaced CEF logging declarations and implementations (but not the macros).
+#include "base/logging.h"
+#endif  // USING_GOOGLE3_INCLUDES
+
 #include "include/base/cef_build.h"
 #include "include/base/cef_macros.h"
 #include "include/internal/cef_logging_internal.h"
@@ -199,6 +205,8 @@
 const LogSeverity LOG_DFATAL = LOG_FATAL;
 #endif
 
+#if !defined(USING_GOOGLE3_INCLUDES)
+
 // A few definitions of macros that don't generate much code. These are used
 // by LOG() and LOG_IF, etc. Since these are used all over our code, it's
 // better to have compact code for these operations.
@@ -356,6 +364,8 @@
           (val1), (val2), #val1 " " #op " " #val2))           \
   cef::logging::LogMessage(__FILE__, __LINE__, _result).stream()
 
+#endif  // !USING_GOOGLE3_INCLUDES
+
 // Build the error message string.  This is separate from the "Impl"
 // function template because it is not performance critical and so can
 // be out of line, while the "Impl" code should be inline.  Caller
@@ -393,6 +403,8 @@
     const char* name);
 #endif
 
+#if !defined(USING_GOOGLE3_INCLUDES)
+
 // Helper functions for CHECK_OP macro.
 // The (int, int) specialization works around the issue that the compiler
 // will not instantiate the template version of the function on values of
@@ -433,12 +445,16 @@
 #define ENABLE_DLOG 1
 #endif
 
+#endif  // !USING_GOOGLE3_INCLUDES
+
 #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
 #define DCHECK_IS_ON() 0
 #else
 #define DCHECK_IS_ON() 1
 #endif
 
+#if !defined(USING_GOOGLE3_INCLUDES)
+
 // Definitions for DLOG et al.
 
 #if ENABLE_DLOG
@@ -554,6 +570,8 @@
 #define DCHECK_GE(val1, val2) DCHECK_OP(GE, >=, val1, val2)
 #define DCHECK_GT(val1, val2) DCHECK_OP(GT, >, val1, val2)
 
+#endif  // !USING_GOOGLE3_INCLUDES
+
 #if defined(NDEBUG) && defined(OS_CHROMEOS)
 #define NOTREACHED() \
   LOG(ERROR) << "NOTREACHED() hit in " << __FUNCTION__ << ". "
@@ -561,10 +579,14 @@
 #define NOTREACHED() DCHECK(false)
 #endif
 
+#if !defined(USING_GOOGLE3_INCLUDES)
+
 // Redefine the standard assert to use our nice log files
 #undef assert
 #define assert(x) DLOG_ASSERT(x)
 
+#endif  // !USING_GOOGLE3_INCLUDES
+
 // This class more or less represents a particular log message.  You
 // create an instance of LogMessage and then stream stuff to it.
 // When you finish streaming to it, ~LogMessage is called and the
@@ -707,6 +729,8 @@
   return out << wstr.c_str();
 }
 
+#if !defined(USING_GOOGLE3_INCLUDES)
+
 // The NOTIMPLEMENTED() macro annotates codepaths which have
 // not been implemented yet.
 //
@@ -756,6 +780,8 @@
   EAT_STREAM_PARAMETERS
 #endif
 
+#endif  // !USING_GOOGLE3_INCLUDES
+
 #endif  // !USING_CHROMIUM_INCLUDES
 
 #endif  // CEF_INCLUDE_BASE_CEF_LOGGING_H_
diff --git include/base/cef_macros.h include/base/cef_macros.h
index e714529cd..67588c615 100644
--- include/base/cef_macros.h
+++ include/base/cef_macros.h
@@ -35,8 +35,10 @@
 #if defined(USING_CHROMIUM_INCLUDES)
 // When building CEF include the Chromium header directly.
 #include "base/macros.h"
-
-#else  // !USING_CHROMIUM_INCLUDES
+#elif defined(USING_GOOGLE3_INCLUDES)
+// When building CEF in google3, use the google3 header directly.
+#include "base/macros.h"
+#else  // !USING_GOOGLE3_INCLUDES
 // The following is substantially similar to the Chromium implementation.
 // If the Chromium implementation diverges the below implementation should be
 // updated to match.
diff --git include/base/cef_platform_thread.h include/base/cef_platform_thread.h
index d3fdd798e..15cb0951b 100644
--- include/base/cef_platform_thread.h
+++ include/base/cef_platform_thread.h
@@ -35,7 +35,7 @@
 #ifndef CEF_INCLUDE_BASE_PLATFORM_THREAD_H_
 #define CEF_INCLUDE_BASE_PLATFORM_THREAD_H_
 
-#if defined(BASE_THREADING_PLATFORM_THREAD_H_)
+#if defined(BASE_THREADING_PLATFORM_THREAD_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_ref_counted.h include/base/cef_ref_counted.h
index 7a687070c..93d8cbeaa 100644
--- include/base/cef_ref_counted.h
+++ include/base/cef_ref_counted.h
@@ -33,7 +33,7 @@
 #define CEF_INCLUDE_BASE_CEF_REF_COUNTED_H_
 #pragma once
 
-#if defined(BASE_MEMORY_REF_COUNTED_H_)
+#if defined(BASE_MEMORY_REF_COUNTED_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_scoped_ptr.h include/base/cef_scoped_ptr.h
index eb9e0e29b..6efc7ca85 100644
--- include/base/cef_scoped_ptr.h
+++ include/base/cef_scoped_ptr.h
@@ -114,7 +114,7 @@
 #define CEF_INCLUDE_BASE_CEF_MEMORY_SCOPED_PTR_H_
 #pragma once
 
-#if defined(BASE_MEMORY_SCOPED_PTR_H_)
+#if defined(BASE_MEMORY_SCOPED_PTR_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_string16.h include/base/cef_string16.h
index 6afcb79bd..e5cbaa861 100644
--- include/base/cef_string16.h
+++ include/base/cef_string16.h
@@ -32,7 +32,7 @@
 #define CEF_INCLUDE_BASE_CEF_STRING16_H_
 #pragma once
 
-#if defined(BASE_STRINGS_STRING16_H_)
+#if defined(BASE_STRINGS_STRING16_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_template_util.h include/base/cef_template_util.h
index 38fa5839c..6c70dd2ac 100644
--- include/base/cef_template_util.h
+++ include/base/cef_template_util.h
@@ -32,7 +32,7 @@
 #define CEF_INCLUDE_BASE_CEF_TEMPLATE_UTIL_H_
 #pragma once
 
-#if defined(BASE_TEMPLATE_UTIL_H_)
+#if defined(BASE_TEMPLATE_UTIL_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_thread_checker.h include/base/cef_thread_checker.h
index e48c8d033..c582e1377 100644
--- include/base/cef_thread_checker.h
+++ include/base/cef_thread_checker.h
@@ -32,7 +32,7 @@
 #define CEF_INCLUDE_BASE_THREAD_CHECKER_H_
 #pragma once
 
-#if defined(BASE_THREADING_THREAD_CHECKER_H_)
+#if defined(BASE_THREADING_THREAD_CHECKER_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_tuple.h include/base/cef_tuple.h
index aeb6e9cea..f6b86167f 100644
--- include/base/cef_tuple.h
+++ include/base/cef_tuple.h
@@ -56,7 +56,7 @@
 #define CEF_INCLUDE_BASE_CEF_TUPLE_H_
 #pragma once
 
-#if defined(BASE_TUPLE_H_)
+#if defined(BASE_TUPLE_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
diff --git include/base/cef_weak_ptr.h include/base/cef_weak_ptr.h
index 1ba34b9db..2cf2f1787 100644
--- include/base/cef_weak_ptr.h
+++ include/base/cef_weak_ptr.h
@@ -96,7 +96,7 @@
 #define CEF_INCLUDE_BASE_CEF_WEAK_PTR_H_
 #pragma once
 
-#if defined(BASE_MEMORY_WEAK_PTR_H_)
+#if defined(BASE_MEMORY_WEAK_PTR_H_) && !defined(USING_GOOGLE3_INCLUDES)
 // Do nothing if the Chromium header has already been included.
 // This can happen in cases where Chromium code is used directly by the
 // client application. When using Chromium code directly always include
