Merge from Chromium at DEPS revision 38.0.2125.57

This commit was generated by merge_to_master.py.

Change-Id: Ie1b6887c9fab8b861e837a7c2b4805b7d8b5109a
diff --git a/NOTICE b/NOTICE
index 82d98d9..d49a5cc 100644
--- a/NOTICE
+++ b/NOTICE
@@ -9482,134 +9482,6 @@
 
 Khronos and OpenMAX are trademarks of the Khronos Group Inc. 
 
-
-  LICENSE ISSUES
-  ==============
-
-  The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
-  the OpenSSL License and the original SSLeay license apply to the toolkit.
-  See below for the actual license texts. Actually both licenses are BSD-style
-  Open Source licenses. In case of any license issues related to OpenSSL
-  please contact openssl-core@openssl.org.
-
-  OpenSSL License
-  ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2011 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- * 
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * 
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-
 Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic,
                     Jean-Marc Valin, Timothy B. Terriberry,
                     CSIRO, Gregory Maxwell, Mark Borgerding,
diff --git a/android_webview/android_webview.gyp b/android_webview/android_webview.gyp
index ea98629..60896e8 100644
--- a/android_webview/android_webview.gyp
+++ b/android_webview/android_webview.gyp
@@ -118,7 +118,6 @@
         '../printing/printing.gyp:printing',
         '../skia/skia.gyp:skia',
         '../third_party/WebKit/public/blink.gyp:blink',
-        '../v8/tools/gyp/v8.gyp:v8',
         '../ui/gl/gl.gyp:gl',
         '../ui/shell_dialogs/shell_dialogs.gyp:shell_dialogs',
         '../webkit/common/gpu/webkit_gpu.gyp:webkit_gpu',
@@ -240,8 +239,6 @@
         'public/browser/draw_gl.h',
         'renderer/aw_content_renderer_client.cc',
         'renderer/aw_content_renderer_client.h',
-        'renderer/aw_execution_termination_filter.cc',
-        'renderer/aw_execution_termination_filter.h',
         'renderer/aw_key_systems.cc',
         'renderer/aw_key_systems.h',
         'renderer/aw_permission_client.cc',
diff --git a/android_webview/android_webview_common.target.darwin-arm.mk b/android_webview/android_webview_common.target.darwin-arm.mk
index daa14c1..5a80631 100644
--- a/android_webview/android_webview_common.target.darwin-arm.mk
+++ b/android_webview/android_webview_common.target.darwin-arm.mk
@@ -16,7 +16,6 @@
 	$(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \
 	$(call intermediates-dir-for,GYP,third_party_WebKit_public_blink_gyp,,,$(GYP_VAR_PREFIX))/blink.stamp \
-	$(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp,,,$(GYP_VAR_PREFIX))/v8.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,ui_gl_gl_gyp,,,$(GYP_VAR_PREFIX))/ui_gl_gl_gyp.a \
 	$(call intermediates-dir-for,GYP,android_webview_android_webview_pak_gyp,,,$(GYP_VAR_PREFIX))/android_webview_pak.stamp
 
@@ -80,7 +79,6 @@
 	android_webview/lib/aw_browser_dependency_factory_impl.cc \
 	android_webview/lib/main/aw_main_delegate.cc \
 	android_webview/renderer/aw_content_renderer_client.cc \
-	android_webview/renderer/aw_execution_termination_filter.cc \
 	android_webview/renderer/aw_key_systems.cc \
 	android_webview/renderer/aw_permission_client.cc \
 	android_webview/renderer/aw_render_process_observer.cc \
@@ -223,6 +221,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -230,7 +229,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
@@ -385,6 +383,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -392,7 +391,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
diff --git a/android_webview/android_webview_common.target.darwin-arm64.mk b/android_webview/android_webview_common.target.darwin-arm64.mk
index 55add5d..1d8382f 100644
--- a/android_webview/android_webview_common.target.darwin-arm64.mk
+++ b/android_webview/android_webview_common.target.darwin-arm64.mk
@@ -16,7 +16,6 @@
 	$(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \
 	$(call intermediates-dir-for,GYP,third_party_WebKit_public_blink_gyp,,,$(GYP_VAR_PREFIX))/blink.stamp \
-	$(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp,,,$(GYP_VAR_PREFIX))/v8.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,ui_gl_gl_gyp,,,$(GYP_VAR_PREFIX))/ui_gl_gl_gyp.a \
 	$(call intermediates-dir-for,GYP,android_webview_android_webview_pak_gyp,,,$(GYP_VAR_PREFIX))/android_webview_pak.stamp
 
@@ -80,7 +79,6 @@
 	android_webview/lib/aw_browser_dependency_factory_impl.cc \
 	android_webview/lib/main/aw_main_delegate.cc \
 	android_webview/renderer/aw_content_renderer_client.cc \
-	android_webview/renderer/aw_execution_termination_filter.cc \
 	android_webview/renderer/aw_key_systems.cc \
 	android_webview/renderer/aw_permission_client.cc \
 	android_webview/renderer/aw_render_process_observer.cc \
@@ -212,6 +210,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -219,7 +218,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
@@ -362,6 +360,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -369,7 +368,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
diff --git a/android_webview/android_webview_common.target.darwin-mips.mk b/android_webview/android_webview_common.target.darwin-mips.mk
index 44cfa0b..f6d7e6f 100644
--- a/android_webview/android_webview_common.target.darwin-mips.mk
+++ b/android_webview/android_webview_common.target.darwin-mips.mk
@@ -16,7 +16,6 @@
 	$(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \
 	$(call intermediates-dir-for,GYP,third_party_WebKit_public_blink_gyp,,,$(GYP_VAR_PREFIX))/blink.stamp \
-	$(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp,,,$(GYP_VAR_PREFIX))/v8.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,ui_gl_gl_gyp,,,$(GYP_VAR_PREFIX))/ui_gl_gl_gyp.a \
 	$(call intermediates-dir-for,GYP,android_webview_android_webview_pak_gyp,,,$(GYP_VAR_PREFIX))/android_webview_pak.stamp
 
@@ -80,7 +79,6 @@
 	android_webview/lib/aw_browser_dependency_factory_impl.cc \
 	android_webview/lib/main/aw_main_delegate.cc \
 	android_webview/renderer/aw_content_renderer_client.cc \
-	android_webview/renderer/aw_execution_termination_filter.cc \
 	android_webview/renderer/aw_key_systems.cc \
 	android_webview/renderer/aw_permission_client.cc \
 	android_webview/renderer/aw_render_process_observer.cc \
@@ -217,6 +215,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -224,7 +223,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
@@ -373,6 +371,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -380,7 +379,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
diff --git a/android_webview/android_webview_common.target.darwin-x86.mk b/android_webview/android_webview_common.target.darwin-x86.mk
index 51c88f5..cbb4298 100644
--- a/android_webview/android_webview_common.target.darwin-x86.mk
+++ b/android_webview/android_webview_common.target.darwin-x86.mk
@@ -16,7 +16,6 @@
 	$(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \
 	$(call intermediates-dir-for,GYP,third_party_WebKit_public_blink_gyp,,,$(GYP_VAR_PREFIX))/blink.stamp \
-	$(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp,,,$(GYP_VAR_PREFIX))/v8.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,ui_gl_gl_gyp,,,$(GYP_VAR_PREFIX))/ui_gl_gl_gyp.a \
 	$(call intermediates-dir-for,GYP,android_webview_android_webview_pak_gyp,,,$(GYP_VAR_PREFIX))/android_webview_pak.stamp
 
@@ -80,7 +79,6 @@
 	android_webview/lib/aw_browser_dependency_factory_impl.cc \
 	android_webview/lib/main/aw_main_delegate.cc \
 	android_webview/renderer/aw_content_renderer_client.cc \
-	android_webview/renderer/aw_execution_termination_filter.cc \
 	android_webview/renderer/aw_key_systems.cc \
 	android_webview/renderer/aw_permission_client.cc \
 	android_webview/renderer/aw_render_process_observer.cc \
@@ -218,6 +216,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -225,7 +224,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
@@ -374,6 +372,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -381,7 +380,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
diff --git a/android_webview/android_webview_common.target.darwin-x86_64.mk b/android_webview/android_webview_common.target.darwin-x86_64.mk
index 170a736..a3dd6d9 100644
--- a/android_webview/android_webview_common.target.darwin-x86_64.mk
+++ b/android_webview/android_webview_common.target.darwin-x86_64.mk
@@ -16,7 +16,6 @@
 	$(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \
 	$(call intermediates-dir-for,GYP,third_party_WebKit_public_blink_gyp,,,$(GYP_VAR_PREFIX))/blink.stamp \
-	$(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp,,,$(GYP_VAR_PREFIX))/v8.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,ui_gl_gl_gyp,,,$(GYP_VAR_PREFIX))/ui_gl_gl_gyp.a \
 	$(call intermediates-dir-for,GYP,android_webview_android_webview_pak_gyp,,,$(GYP_VAR_PREFIX))/android_webview_pak.stamp
 
@@ -80,7 +79,6 @@
 	android_webview/lib/aw_browser_dependency_factory_impl.cc \
 	android_webview/lib/main/aw_main_delegate.cc \
 	android_webview/renderer/aw_content_renderer_client.cc \
-	android_webview/renderer/aw_execution_termination_filter.cc \
 	android_webview/renderer/aw_key_systems.cc \
 	android_webview/renderer/aw_permission_client.cc \
 	android_webview/renderer/aw_render_process_observer.cc \
@@ -217,6 +215,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -224,7 +223,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
@@ -372,6 +370,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -379,7 +378,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
diff --git a/android_webview/android_webview_common.target.linux-arm.mk b/android_webview/android_webview_common.target.linux-arm.mk
index daa14c1..5a80631 100644
--- a/android_webview/android_webview_common.target.linux-arm.mk
+++ b/android_webview/android_webview_common.target.linux-arm.mk
@@ -16,7 +16,6 @@
 	$(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \
 	$(call intermediates-dir-for,GYP,third_party_WebKit_public_blink_gyp,,,$(GYP_VAR_PREFIX))/blink.stamp \
-	$(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp,,,$(GYP_VAR_PREFIX))/v8.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,ui_gl_gl_gyp,,,$(GYP_VAR_PREFIX))/ui_gl_gl_gyp.a \
 	$(call intermediates-dir-for,GYP,android_webview_android_webview_pak_gyp,,,$(GYP_VAR_PREFIX))/android_webview_pak.stamp
 
@@ -80,7 +79,6 @@
 	android_webview/lib/aw_browser_dependency_factory_impl.cc \
 	android_webview/lib/main/aw_main_delegate.cc \
 	android_webview/renderer/aw_content_renderer_client.cc \
-	android_webview/renderer/aw_execution_termination_filter.cc \
 	android_webview/renderer/aw_key_systems.cc \
 	android_webview/renderer/aw_permission_client.cc \
 	android_webview/renderer/aw_render_process_observer.cc \
@@ -223,6 +221,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -230,7 +229,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
@@ -385,6 +383,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -392,7 +391,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
diff --git a/android_webview/android_webview_common.target.linux-arm64.mk b/android_webview/android_webview_common.target.linux-arm64.mk
index 55add5d..1d8382f 100644
--- a/android_webview/android_webview_common.target.linux-arm64.mk
+++ b/android_webview/android_webview_common.target.linux-arm64.mk
@@ -16,7 +16,6 @@
 	$(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \
 	$(call intermediates-dir-for,GYP,third_party_WebKit_public_blink_gyp,,,$(GYP_VAR_PREFIX))/blink.stamp \
-	$(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp,,,$(GYP_VAR_PREFIX))/v8.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,ui_gl_gl_gyp,,,$(GYP_VAR_PREFIX))/ui_gl_gl_gyp.a \
 	$(call intermediates-dir-for,GYP,android_webview_android_webview_pak_gyp,,,$(GYP_VAR_PREFIX))/android_webview_pak.stamp
 
@@ -80,7 +79,6 @@
 	android_webview/lib/aw_browser_dependency_factory_impl.cc \
 	android_webview/lib/main/aw_main_delegate.cc \
 	android_webview/renderer/aw_content_renderer_client.cc \
-	android_webview/renderer/aw_execution_termination_filter.cc \
 	android_webview/renderer/aw_key_systems.cc \
 	android_webview/renderer/aw_permission_client.cc \
 	android_webview/renderer/aw_render_process_observer.cc \
@@ -212,6 +210,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -219,7 +218,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
@@ -362,6 +360,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -369,7 +368,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
diff --git a/android_webview/android_webview_common.target.linux-mips.mk b/android_webview/android_webview_common.target.linux-mips.mk
index 44cfa0b..f6d7e6f 100644
--- a/android_webview/android_webview_common.target.linux-mips.mk
+++ b/android_webview/android_webview_common.target.linux-mips.mk
@@ -16,7 +16,6 @@
 	$(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \
 	$(call intermediates-dir-for,GYP,third_party_WebKit_public_blink_gyp,,,$(GYP_VAR_PREFIX))/blink.stamp \
-	$(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp,,,$(GYP_VAR_PREFIX))/v8.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,ui_gl_gl_gyp,,,$(GYP_VAR_PREFIX))/ui_gl_gl_gyp.a \
 	$(call intermediates-dir-for,GYP,android_webview_android_webview_pak_gyp,,,$(GYP_VAR_PREFIX))/android_webview_pak.stamp
 
@@ -80,7 +79,6 @@
 	android_webview/lib/aw_browser_dependency_factory_impl.cc \
 	android_webview/lib/main/aw_main_delegate.cc \
 	android_webview/renderer/aw_content_renderer_client.cc \
-	android_webview/renderer/aw_execution_termination_filter.cc \
 	android_webview/renderer/aw_key_systems.cc \
 	android_webview/renderer/aw_permission_client.cc \
 	android_webview/renderer/aw_render_process_observer.cc \
@@ -217,6 +215,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -224,7 +223,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
@@ -373,6 +371,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -380,7 +379,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
diff --git a/android_webview/android_webview_common.target.linux-x86.mk b/android_webview/android_webview_common.target.linux-x86.mk
index 51c88f5..cbb4298 100644
--- a/android_webview/android_webview_common.target.linux-x86.mk
+++ b/android_webview/android_webview_common.target.linux-x86.mk
@@ -16,7 +16,6 @@
 	$(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \
 	$(call intermediates-dir-for,GYP,third_party_WebKit_public_blink_gyp,,,$(GYP_VAR_PREFIX))/blink.stamp \
-	$(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp,,,$(GYP_VAR_PREFIX))/v8.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,ui_gl_gl_gyp,,,$(GYP_VAR_PREFIX))/ui_gl_gl_gyp.a \
 	$(call intermediates-dir-for,GYP,android_webview_android_webview_pak_gyp,,,$(GYP_VAR_PREFIX))/android_webview_pak.stamp
 
@@ -80,7 +79,6 @@
 	android_webview/lib/aw_browser_dependency_factory_impl.cc \
 	android_webview/lib/main/aw_main_delegate.cc \
 	android_webview/renderer/aw_content_renderer_client.cc \
-	android_webview/renderer/aw_execution_termination_filter.cc \
 	android_webview/renderer/aw_key_systems.cc \
 	android_webview/renderer/aw_permission_client.cc \
 	android_webview/renderer/aw_render_process_observer.cc \
@@ -218,6 +216,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -225,7 +224,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
@@ -374,6 +372,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -381,7 +380,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
diff --git a/android_webview/android_webview_common.target.linux-x86_64.mk b/android_webview/android_webview_common.target.linux-x86_64.mk
index 170a736..a3dd6d9 100644
--- a/android_webview/android_webview_common.target.linux-x86_64.mk
+++ b/android_webview/android_webview_common.target.linux-x86_64.mk
@@ -16,7 +16,6 @@
 	$(call intermediates-dir-for,GYP,skia_skia_gyp,,,$(GYP_VAR_PREFIX))/skia.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,skia_skia_library_gyp,,,$(GYP_VAR_PREFIX))/skia_skia_library_gyp.a \
 	$(call intermediates-dir-for,GYP,third_party_WebKit_public_blink_gyp,,,$(GYP_VAR_PREFIX))/blink.stamp \
-	$(call intermediates-dir-for,GYP,v8_tools_gyp_v8_gyp,,,$(GYP_VAR_PREFIX))/v8.stamp \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,ui_gl_gl_gyp,,,$(GYP_VAR_PREFIX))/ui_gl_gl_gyp.a \
 	$(call intermediates-dir-for,GYP,android_webview_android_webview_pak_gyp,,,$(GYP_VAR_PREFIX))/android_webview_pak.stamp
 
@@ -80,7 +79,6 @@
 	android_webview/lib/aw_browser_dependency_factory_impl.cc \
 	android_webview/lib/main/aw_main_delegate.cc \
 	android_webview/renderer/aw_content_renderer_client.cc \
-	android_webview/renderer/aw_execution_termination_filter.cc \
 	android_webview/renderer/aw_key_systems.cc \
 	android_webview/renderer/aw_permission_client.cc \
 	android_webview/renderer/aw_render_process_observer.cc \
@@ -217,6 +215,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -224,7 +223,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
@@ -372,6 +370,7 @@
 	$(PWD)/external/icu/icu4c/source/i18n \
 	$(LOCAL_PATH)/third_party/npapi \
 	$(LOCAL_PATH)/third_party/npapi/bindings \
+	$(LOCAL_PATH)/v8/include \
 	$(LOCAL_PATH)/third_party/libpng \
 	$(LOCAL_PATH)/third_party/zlib \
 	$(LOCAL_PATH)/third_party/libwebp \
@@ -379,7 +378,6 @@
 	$(LOCAL_PATH)/third_party/qcms/src \
 	$(LOCAL_PATH)/third_party/iccjpeg \
 	$(PWD)/external/jpeg \
-	$(LOCAL_PATH)/v8/include \
 	$(gyp_shared_intermediate_dir)/ui/gl \
 	$(LOCAL_PATH)/third_party/mesa/src/include \
 	$(PWD)/frameworks/wilhelm/include \
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc
index 93ab0a8..7a3c703 100644
--- a/android_webview/browser/browser_view_renderer.cc
+++ b/android_webview/browser/browser_view_renderer.cc
@@ -717,6 +717,9 @@
         FROM_HERE,
         fallback_tick_fired_.callback(),
         base::TimeDelta::FromMilliseconds(kFallbackTickTimeoutInMilliseconds));
+  } else {
+    // Pretend we just composited to unblock further invalidates.
+    DidComposite();
   }
 }
 
@@ -729,8 +732,12 @@
   // This should only be called if OnDraw or DrawGL did not come in time, which
   // means block_invalidates_ must still be true.
   DCHECK(block_invalidates_);
-  if (compositor_needs_continuous_invalidate_ && compositor_)
+  if (compositor_needs_continuous_invalidate_ && compositor_) {
     ForceFakeCompositeSW();
+  } else {
+    // Pretend we just composited to unblock further invalidates.
+    DidComposite();
+  }
 }
 
 void BrowserViewRenderer::ForceFakeCompositeSW() {
diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc
index 6a3d54b..c2d1a6d 100644
--- a/android_webview/browser/hardware_renderer.cc
+++ b/android_webview/browser/hardware_renderer.cc
@@ -53,16 +53,17 @@
       attributes, &attribs_for_gles2);
   attribs_for_gles2.lose_context_when_out_of_memory = true;
 
-  scoped_ptr<gpu::GLInProcessContext> context(
-      gpu::GLInProcessContext::Create(service,
-                                      surface,
-                                      surface->IsOffscreen(),
-                                      gfx::kNullAcceleratedWidget,
-                                      surface->GetSize(),
-                                      share_context,
-                                      false /* share_resources */,
-                                      attribs_for_gles2,
-                                      gpu_preference));
+  scoped_ptr<gpu::GLInProcessContext> context(gpu::GLInProcessContext::Create(
+      service,
+      surface,
+      surface->IsOffscreen(),
+      gfx::kNullAcceleratedWidget,
+      surface->GetSize(),
+      share_context,
+      false /* share_resources */,
+      attribs_for_gles2,
+      gpu_preference,
+      gpu::GLInProcessContextSharedMemoryLimits()));
   DCHECK(context.get());
 
   return webkit::gpu::ContextProviderInProcess::Create(
diff --git a/android_webview/browser/net/aw_url_request_context_getter.cc b/android_webview/browser/net/aw_url_request_context_getter.cc
index 22666fb..6e39cd7 100644
--- a/android_webview/browser/net/aw_url_request_context_getter.cc
+++ b/android_webview/browser/net/aw_url_request_context_getter.cc
@@ -208,11 +208,6 @@
   ApplyCmdlineOverridesToURLRequestContextBuilder(&builder);
 
   url_request_context_.reset(builder.Build());
-  channel_id_service_.reset(
-      new net::ChannelIDService(
-          new net::DefaultChannelIDStore(NULL),
-          base::WorkerPool::GetTaskRunner(true)));
-  url_request_context_->set_channel_id_service(channel_id_service_.get());
   // TODO(mnaganov): Fix URLRequestContextBuilder to use proper threads.
   net::HttpNetworkSession::Params network_session_params;
 
diff --git a/android_webview/browser/net/aw_url_request_context_getter.h b/android_webview/browser/net/aw_url_request_context_getter.h
index 712893a..1ec4123 100644
--- a/android_webview/browser/net/aw_url_request_context_getter.h
+++ b/android_webview/browser/net/aw_url_request_context_getter.h
@@ -11,7 +11,6 @@
 #include "base/memory/scoped_ptr.h"
 #include "content/public/browser/content_browser_client.h"
 #include "net/http/http_network_session.h"
-#include "net/ssl/channel_id_service.h"
 #include "net/url_request/url_request_context_getter.h"
 #include "net/url_request/url_request_job_factory.h"
 
@@ -75,7 +74,6 @@
       data_reduction_proxy_auth_request_handler_;
   scoped_ptr<net::URLRequestJobFactory> job_factory_;
   scoped_ptr<net::HttpTransactionFactory> main_http_factory_;
-  scoped_ptr<net::ChannelIDService> channel_id_service_;
 
   // ProtocolHandlers and interceptors are stored here between
   // SetHandlersAndInterceptors() and the first GetURLRequestContext() call.
diff --git a/android_webview/browser/renderer_host/aw_render_view_host_ext.cc b/android_webview/browser/renderer_host/aw_render_view_host_ext.cc
index 676616a..0428baa 100644
--- a/android_webview/browser/renderer_host/aw_render_view_host_ext.cc
+++ b/android_webview/browser/renderer_host/aw_render_view_host_ext.cc
@@ -99,10 +99,6 @@
   Send(new AwViewMsg_SetJsOnlineProperty(network_up));
 }
 
-void AwRenderViewHostExt::SendCheckRenderThreadResponsiveness() {
-  Send(new AwViewMsg_CheckRenderThreadResponsiveness());
-}
-
 void AwRenderViewHostExt::RenderViewCreated(
     content::RenderViewHost* render_view_host) {
   Send(new AwViewMsg_SetBackgroundColor(web_contents()->GetRoutingID(),
diff --git a/android_webview/browser/renderer_host/aw_render_view_host_ext.h b/android_webview/browser/renderer_host/aw_render_view_host_ext.h
index 773e504..635c7fc 100644
--- a/android_webview/browser/renderer_host/aw_render_view_host_ext.h
+++ b/android_webview/browser/renderer_host/aw_render_view_host_ext.h
@@ -77,8 +77,6 @@
   void SetBackgroundColor(SkColor c);
   void SetJsOnlineProperty(bool network_up);
 
-  void SendCheckRenderThreadResponsiveness();
-
  private:
   // content::WebContentsObserver implementation.
   virtual void RenderViewCreated(content::RenderViewHost* view_host) OVERRIDE;
diff --git a/android_webview/common/render_view_messages.h b/android_webview/common/render_view_messages.h
index 7592fb7..9354db5 100644
--- a/android_webview/common/render_view_messages.h
+++ b/android_webview/common/render_view_messages.h
@@ -74,10 +74,6 @@
 IPC_MESSAGE_CONTROL1(AwViewMsg_SetJsOnlineProperty,
                      bool /* network_up */)
 
-// Sent prior to making a navigation via loadUrl to make sure that
-// render thread isn't stuck in a loop induced by JavaScript code.
-IPC_MESSAGE_CONTROL0(AwViewMsg_CheckRenderThreadResponsiveness)
-
 //-----------------------------------------------------------------------------
 // RenderView messages
 // These are messages sent from the renderer to the browser process.
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index 436e65c..e5609f0 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -182,6 +182,7 @@
     private final AwLayoutChangeListener mLayoutChangeListener;
     private final Context mContext;
     private ContentViewCore mContentViewCore;
+    private WindowAndroid mWindowAndroid;
     private final AwContentsClient mContentsClient;
     private final AwContentViewClient mContentViewClient;
     private WebContentsObserverAndroid mWebContentsObserver;
@@ -615,12 +616,11 @@
             Context context, InternalAccessDelegate internalDispatcher, long nativeWebContents,
             GestureStateListener gestureStateListener,
             ContentViewClient contentViewClient,
-            ContentViewCore.ZoomControlsDelegate zoomControlsDelegate) {
+            ContentViewCore.ZoomControlsDelegate zoomControlsDelegate,
+            WindowAndroid windowAndroid) {
         ContentViewCore contentViewCore = new ContentViewCore(context);
         contentViewCore.initialize(containerView, internalDispatcher, nativeWebContents,
-                context instanceof Activity ?
-                        new ActivityWindowAndroid((Activity) context) :
-                        new WindowAndroid(context.getApplicationContext()));
+                windowAndroid);
         contentViewCore.addGestureStateListener(gestureStateListener);
         contentViewCore.setContentViewClient(contentViewClient);
         contentViewCore.setZoomControlsDelegate(zoomControlsDelegate);
@@ -756,9 +756,13 @@
         mCleanupReference = new CleanupReference(this, new DestroyRunnable(mNativeAwContents));
 
         long nativeWebContents = nativeGetWebContents(mNativeAwContents);
+
+        mWindowAndroid = mContext instanceof Activity ?
+                new ActivityWindowAndroid((Activity) mContext) :
+                new WindowAndroid(mContext.getApplicationContext());
         mContentViewCore = createAndInitializeContentViewCore(
                 mContainerView, mContext, mInternalAccessAdapter, nativeWebContents,
-                new AwGestureStateListener(), mContentViewClient, mZoomControls);
+                new AwGestureStateListener(), mContentViewClient, mZoomControls, mWindowAndroid);
         nativeSetJavaPeers(mNativeAwContents, this, mWebContentsDelegate, mContentsClientBridge,
                 mIoThreadClient, mInterceptNavigationDelegate);
         installWebContentsObserver();
@@ -1057,8 +1061,6 @@
      * @param params Parameters for this load.
      */
     public void loadUrl(LoadUrlParams params) {
-        if (mNativeAwContents == 0) return;
-
         if (params.getLoadUrlType() == LoadUrlParams.LOAD_TYPE_DATA &&
                 !params.isBaseUrlDataScheme()) {
             // This allows data URLs with a non-data base URL access to file:///android_asset/ and
@@ -1097,11 +1099,12 @@
             }
         }
 
-        nativeSetExtraHeadersForUrl(
-                mNativeAwContents, params.getUrl(), params.getExtraHttpRequestHeadersString());
+        if (mNativeAwContents != 0) {
+            nativeSetExtraHeadersForUrl(
+                    mNativeAwContents, params.getUrl(), params.getExtraHttpRequestHeadersString());
+        }
         params.setExtraHeaders(new HashMap<String, String>());
 
-        nativeSendCheckRenderThreadResponsiveness(mNativeAwContents);
         mContentViewCore.loadUrl(params);
 
         // The behavior of WebViewClassic uses the populateVisitedLinks callback in WebKit.
@@ -2040,10 +2043,10 @@
 
     @CalledByNative
     private void postInvalidateOnAnimation() {
-        if (SUPPORTS_ON_ANIMATION) {
+        if (SUPPORTS_ON_ANIMATION && !mWindowAndroid.isInsideVSync()) {
             mContainerView.postInvalidateOnAnimation();
         } else {
-            mContainerView.postInvalidate();
+            mContainerView.invalidate();
         }
     }
 
@@ -2489,7 +2492,6 @@
     private native void nativeClearView(long nativeAwContents);
     private native void nativeSetExtraHeadersForUrl(long nativeAwContents,
             String url, String extraHeaders);
-    private native void nativeSendCheckRenderThreadResponsiveness(long nativeAwContents);
 
     private native void nativeInvokeGeolocationCallback(
             long nativeAwContents, boolean value, String requestingFrame);
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwJavaBridgeTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwJavaBridgeTest.java
new file mode 100644
index 0000000..6a15244
--- /dev/null
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwJavaBridgeTest.java
@@ -0,0 +1,74 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.android_webview.test;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import org.chromium.android_webview.AwContents;
+import org.chromium.base.test.util.Feature;
+import org.chromium.content.browser.JavascriptInterface;
+
+/**
+ * Test suite for the WebView specific JavaBridge features.
+ */
+public class AwJavaBridgeTest extends AwTestBase {
+
+    private TestAwContentsClient mContentsClient = new TestAwContentsClient();
+    private AwTestContainerView mTestContainerView;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mTestContainerView = createAwTestContainerViewOnMainSync(mContentsClient);
+    }
+
+    @SmallTest
+    @Feature({"AndroidWebView", "Android-JavaBridge"})
+    public void testDestroyFromJavaObject() throws Throwable {
+        final String HTML = "<html>Hello World</html>";
+        final TestAwContentsClient client2 = new TestAwContentsClient();
+        final AwTestContainerView view2 = createAwTestContainerViewOnMainSync(client2);
+        final AwContents awContents = mTestContainerView.getAwContents();
+
+        class Test {
+            @JavascriptInterface
+            public void destroy() {
+                try {
+                    runTestOnUiThread(new Runnable() {
+                            @Override
+                            public void run() {
+                                awContents.destroy();
+                            }
+                    });
+                    // Destroying one AwContents from within the JS callback should still
+                    // leave others functioning.
+                    loadDataSync(view2.getAwContents(), client2.getOnPageFinishedHelper(),
+                            HTML, "text/html", false);
+                } catch (Throwable t) {
+                    throw new RuntimeException(t);
+                }
+            }
+        }
+
+        enableJavaScriptOnUiThread(awContents);
+        runTestOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    awContents.addPossiblyUnsafeJavascriptInterface(new Test(), "test", null);
+            }
+        });
+
+        loadDataSync(awContents, mContentsClient.getOnPageFinishedHelper(), HTML,
+                "text/html", false);
+
+        // Ensure the JS interface object is there, and invoke the test method.
+        assertEquals("\"function\"", executeJavaScriptAndWaitForResult(
+                awContents, mContentsClient, "typeof test.destroy"));
+        awContents.evaluateJavaScript("test.destroy()", null);
+
+        client2.getOnPageFinishedHelper().waitForCallback(
+                client2.getOnPageFinishedHelper().getCallCount());
+    }
+}
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java
index 77fb370..4a6bab5 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java
@@ -4,12 +4,9 @@
 
 package org.chromium.android_webview.test;
 
-import android.test.suitebuilder.annotation.LargeTest;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Pair;
 
-import junit.framework.Assert;
-
 import org.apache.http.Header;
 import org.apache.http.HttpRequest;
 import org.chromium.android_webview.AwContents;
@@ -334,71 +331,4 @@
             if (webServer != null) webServer.shutdown();
         }
     }
-
-    private static class TestController {
-        private final Object mLock = new Object();
-        private boolean mIsReady = false;
-        public void notifyPageIsReady() {
-            synchronized (mLock) {
-                mIsReady = true;
-                mLock.notify();
-            }
-        }
-        public void waitUntilIsReady() {
-            synchronized (mLock) {
-                while (!mIsReady) {
-                    try {
-                        mLock.wait(WAIT_TIMEOUT_MS);
-                    } catch (Exception e) {
-                        continue;
-                    }
-                    if (!mIsReady) {
-                        Assert.fail("Wait timed out");
-                    }
-                }
-                mIsReady = false;
-            }
-        }
-    }
-
-    // Verify that it is possible to interrupt JS scripts stuck in an infinite loop
-    // by calling loadUrl on a WebView.
-    @LargeTest
-    @Feature({"AndroidWebView"})
-    public void testLoadUrlInterruptsLoopedScripts() throws Throwable {
-        final String infiniteLoopPage =
-            "<html><head>" +
-            "  <script>" +
-            "    function infiniteLoop() {" +
-            "      test.notifyPageIsReady();" +
-            "      while(1);" +
-            "    }" +
-            "  </script>" +
-            "</head><body onload='setTimeout(infiniteLoop, 0)'>" +
-            "</body></html>";
-        final String simplePage = "<html><body onload='test.notifyPageIsReady()'></body></html>";
-        final String expectedTitle = "PASS";
-        final String pageWithTitle = "<html><body onload='document.title=\"" + expectedTitle +
-                "\"; test.notifyPageIsReady()'></body></html>";
-
-        final AwTestContainerView testContainerView =
-                createAwTestContainerViewOnMainSync(new TestAwContentsClient());
-        final AwContents awContents = testContainerView.getAwContents();
-        getAwSettingsOnUiThread(awContents).setJavaScriptEnabled(true);
-        final TestController testController = new TestController();
-        getInstrumentation().runOnMainSync(new Runnable() {
-            @Override
-            public void run() {
-                awContents.addPossiblyUnsafeJavascriptInterface(testController, "test", null);
-            }
-        });
-        loadDataAsync(awContents, infiniteLoopPage, "text/html", false);
-        testController.waitUntilIsReady();
-        loadDataAsync(awContents, simplePage, "text/html", false);
-        testController.waitUntilIsReady();
-        // Load another page that runs JS to make sure that the WebView is still functional.
-        loadDataAsync(awContents, pageWithTitle, "text/html", false);
-        testController.waitUntilIsReady();
-        assertEquals(expectedTitle, getTitleOnUiThread(awContents));
-    }
 }
diff --git a/android_webview/lib/main/webview_entry_point.cc b/android_webview/lib/main/webview_entry_point.cc
index 1aa1d27..73bf8f7 100644
--- a/android_webview/lib/main/webview_entry_point.cc
+++ b/android_webview/lib/main/webview_entry_point.cc
@@ -6,6 +6,7 @@
 #include "android_webview/native/android_webview_jni_registrar.h"
 #include "base/android/jni_android.h"
 #include "base/android/jni_registrar.h"
+#include "base/android/jni_utils.h"
 #include "base/android/library_loader/library_loader_hooks.h"
 #include "components/navigation_interception/component_jni_registrar.h"
 #include "components/web_contents_delegate_android/component_jni_registrar.h"
@@ -47,6 +48,9 @@
   if (!android_webview::RegisterJni(env))
     return -1;
 
+  base::android::InitReplacementClassLoader(env,
+                                            base::android::GetClassLoader(env));
+
   content::SetContentMainDelegate(new android_webview::AwMainDelegate());
 
   // Initialize url lib here while we are still single-threaded, in case we use
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc
index 4c8a4f2..ed44b77 100644
--- a/android_webview/native/aw_contents.cc
+++ b/android_webview/native/aw_contents.cc
@@ -1143,11 +1143,6 @@
                                     extra_headers);
 }
 
-void AwContents::SendCheckRenderThreadResponsiveness(JNIEnv* env, jobject obj) {
-  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-  render_view_host_ext_->SendCheckRenderThreadResponsiveness();
-}
-
 void AwContents::SetJsOnlineProperty(JNIEnv* env,
                                      jobject obj,
                                      jboolean network_up) {
diff --git a/android_webview/native/aw_contents.h b/android_webview/native/aw_contents.h
index da13d6f..a390375 100644
--- a/android_webview/native/aw_contents.h
+++ b/android_webview/native/aw_contents.h
@@ -127,7 +127,6 @@
   void ClearView(JNIEnv* env, jobject obj);
   void SetExtraHeadersForUrl(JNIEnv* env, jobject obj,
                              jstring url, jstring extra_headers);
-  void SendCheckRenderThreadResponsiveness(JNIEnv* env, jobject obj);
 
   void DrawGL(AwDrawGLInfo* draw_info);
 
diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc
index f4f0b1e..9ae387b 100644
--- a/android_webview/renderer/aw_content_renderer_client.cc
+++ b/android_webview/renderer/aw_content_renderer_client.cc
@@ -7,7 +7,6 @@
 #include "android_webview/common/aw_resource.h"
 #include "android_webview/common/render_view_messages.h"
 #include "android_webview/common/url_constants.h"
-#include "android_webview/renderer/aw_execution_termination_filter.h"
 #include "android_webview/renderer/aw_key_systems.h"
 #include "android_webview/renderer/aw_permission_client.h"
 #include "android_webview/renderer/aw_render_frame_ext.h"
@@ -32,7 +31,6 @@
 #include "third_party/WebKit/public/platform/WebURLError.h"
 #include "third_party/WebKit/public/platform/WebURLRequest.h"
 #include "third_party/WebKit/public/web/WebFrame.h"
-#include "third_party/WebKit/public/web/WebKit.h"
 #include "third_party/WebKit/public/web/WebNavigationType.h"
 #include "third_party/WebKit/public/web/WebSecurityPolicy.h"
 #include "url/gurl.h"
@@ -63,17 +61,6 @@
 
   visited_link_slave_.reset(new visitedlink::VisitedLinkSlave);
   thread->AddObserver(visited_link_slave_.get());
-
-  execution_termination_filter_ = new AwExecutionTerminationFilter(
-      thread->GetIOMessageLoopProxy(),
-      thread->GetMessageLoop()->message_loop_proxy());
-  thread->AddFilter(execution_termination_filter_.get());
-  thread->AddObserver(this);
-}
-
-void AwContentRendererClient::WebKitInitialized() {
-  execution_termination_filter_->SetRenderThreadIsolate(
-      blink::mainThreadIsolate());
 }
 
 bool AwContentRendererClient::HandleNavigation(
diff --git a/android_webview/renderer/aw_content_renderer_client.h b/android_webview/renderer/aw_content_renderer_client.h
index dc02cce..30f44b4 100644
--- a/android_webview/renderer/aw_content_renderer_client.h
+++ b/android_webview/renderer/aw_content_renderer_client.h
@@ -16,10 +16,7 @@
 
 namespace android_webview {
 
-class AwExecutionTerminationFilter;
-
-class AwContentRendererClient : public content::ContentRendererClient,
-                                public content::RenderProcessObserver {
+class AwContentRendererClient : public content::ContentRendererClient {
  public:
   AwContentRendererClient();
   virtual ~AwContentRendererClient();
@@ -53,13 +50,9 @@
                                 blink::WebNavigationPolicy default_policy,
                                 bool is_redirect) OVERRIDE;
 
-  // content::RenderProcessObserver implementation.
-  virtual void WebKitInitialized() OVERRIDE;
-
  private:
   scoped_ptr<AwRenderProcessObserver> aw_render_process_observer_;
   scoped_ptr<visitedlink::VisitedLinkSlave> visited_link_slave_;
-  scoped_refptr<AwExecutionTerminationFilter> execution_termination_filter_;
 };
 
 }  // namespace android_webview
diff --git a/android_webview/renderer/aw_execution_termination_filter.cc b/android_webview/renderer/aw_execution_termination_filter.cc
deleted file mode 100644
index 75f130d..0000000
--- a/android_webview/renderer/aw_execution_termination_filter.cc
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "android_webview/renderer/aw_execution_termination_filter.h"
-
-#include <v8.h>
-
-#include "android_webview/common/render_view_messages.h"
-#include "base/message_loop/message_loop_proxy.h"
-
-namespace {
-const int kTerminationTimeoutInSeconds = 3;
-}  // namespace
-
-namespace android_webview {
-
-AwExecutionTerminationFilter::AwExecutionTerminationFilter(
-    const scoped_refptr<base::MessageLoopProxy>& io_message_loop,
-    const scoped_refptr<base::MessageLoopProxy>& main_message_loop)
-    : io_message_loop_(io_message_loop),
-      main_message_loop_(main_message_loop),
-      render_thread_isolate_(NULL) {
-}
-
-AwExecutionTerminationFilter::~AwExecutionTerminationFilter() {
-}
-
-void AwExecutionTerminationFilter::SetRenderThreadIsolate(
-    v8::Isolate* isolate) {
-  render_thread_isolate_ = isolate;
-}
-
-bool AwExecutionTerminationFilter::OnMessageReceived(
-    const IPC::Message& message) {
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(AwExecutionTerminationFilter, message)
-    IPC_MESSAGE_HANDLER(AwViewMsg_CheckRenderThreadResponsiveness,
-                        OnCheckRenderThreadResponsiveness)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void AwExecutionTerminationFilter::OnCheckRenderThreadResponsiveness() {
-  termination_timer_.Start(
-      FROM_HERE,
-      base::TimeDelta::FromSeconds(kTerminationTimeoutInSeconds),
-      base::Bind(&AwExecutionTerminationFilter::TerminateExecution, this));
-  // Post a request to stop the timer via render thread's message loop
-  // to ensure that render thread is responsive.
-  main_message_loop_->PostTask(
-      FROM_HERE,
-      base::Bind(&AwExecutionTerminationFilter::StopTimerOnMainThread,
-                 this));
-}
-
-void AwExecutionTerminationFilter::StopTimerOnMainThread() {
-  io_message_loop_->PostTask(
-      FROM_HERE,
-      base::Bind(&AwExecutionTerminationFilter::StopTimer, this));
-}
-
-void AwExecutionTerminationFilter::StopTimer() {
-  termination_timer_.Stop();
-}
-
-void AwExecutionTerminationFilter::TerminateExecution() {
-  if (render_thread_isolate_) {
-    LOG(WARNING) << "Trying to terminate JavaScript execution because "
-        "renderer is unresponsive";
-    v8::V8::TerminateExecution(render_thread_isolate_);
-  }
-}
-
-}  // namespace android_webview
diff --git a/android_webview/renderer/aw_execution_termination_filter.h b/android_webview/renderer/aw_execution_termination_filter.h
deleted file mode 100644
index 14b88b1..0000000
--- a/android_webview/renderer/aw_execution_termination_filter.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ANDROID_WEBVIEW_RENDERER_AW_EXECUTION_TERMINATION_FILTER_H_
-#define ANDROID_WEBVIEW_RENDERER_AW_EXECUTION_TERMINATION_FILTER_H_
-
-#include "base/memory/scoped_ptr.h"
-#include "base/timer/timer.h"
-#include "ipc/message_filter.h"
-
-namespace base {
-class MessageLoopProxy;
-}
-
-namespace v8 {
-class Isolate;
-}
-
-namespace android_webview {
-
-// The purpose of AwExecutionTerminationFilter is to attempt to terminate
-// any JavaScript code that is stuck in a loop before doing a navigation
-// originating from a Andoird WebView URL loading functions.
-//
-// This is how it works. AwExecutionTerminationFilter is created on render
-// thread. It listens on IO thread for navigation requests coming from
-// AwContents.loadUrl calls. On each such a request, it posts a delayed
-// cancellable task on the IO thread's message loop and, at the same time, posts
-// a cancellation task on the render thread's message loop. If render thread
-// is not stuck, the cancellation task runs and cancels the delayed task.
-// Otherwise, the delayed task runs and terminates execution of JS code
-// from the IO thread.
-class AwExecutionTerminationFilter : public IPC::MessageFilter {
- public:
-  AwExecutionTerminationFilter(
-      const scoped_refptr<base::MessageLoopProxy>& io_message_loop,
-      const scoped_refptr<base::MessageLoopProxy>& main_message_loop);
-
-  void SetRenderThreadIsolate(v8::Isolate* isolate);
-
- private:
-  virtual ~AwExecutionTerminationFilter();
-
-  // IPC::MessageFilter methods.
-  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
-
-  void OnCheckRenderThreadResponsiveness();
-  void StopTimerOnMainThread();
-  void StopTimer();
-  void TerminateExecution();
-
-  const scoped_refptr<base::MessageLoopProxy> io_message_loop_;
-  const scoped_refptr<base::MessageLoopProxy> main_message_loop_;
-
-  v8::Isolate* render_thread_isolate_;
-  base::OneShotTimer<AwExecutionTerminationFilter> termination_timer_;
-
-  DISALLOW_COPY_AND_ASSIGN(AwExecutionTerminationFilter);
-};
-
-}  // namespace android_webview
-
-#endif  // ANDROID_WEBVIEW_RENDERER_AW_EXECUTION_TERMINATION_FILTER_H_
diff --git a/ash/shell.cc b/ash/shell.cc
index 8254610..fd06ea8 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -308,7 +308,7 @@
 }
 
 void Shell::ToggleAppList(aura::Window* window) {
-  if (GetAppListTargetVisibility()) {
+  if (app_list_controller_ && app_list_controller_->IsVisible()) {
     DismissAppList();
     return;
   }
diff --git a/ash/system/web_notification/web_notification_tray.cc b/ash/system/web_notification/web_notification_tray.cc
index e42c0f9..900dd93 100644
--- a/ash/system/web_notification/web_notification_tray.cc
+++ b/ash/system/web_notification/web_notification_tray.cc
@@ -91,8 +91,8 @@
     }
     views::TrayBubbleView* bubble_view = views::TrayBubbleView::Create(
         tray->GetBubbleWindowContainer(), anchor, tray, &init_params);
-    bubble_view->SetArrowPaintType(views::BubbleBorder::PAINT_NONE);
     bubble_wrapper_.reset(new TrayBubbleWrapper(tray, bubble_view));
+    bubble_view->SetArrowPaintType(views::BubbleBorder::PAINT_NONE);
     bubble->InitializeContents(bubble_view);
   }
 
diff --git a/ash/wm/lock_layout_manager_unittest.cc b/ash/wm/lock_layout_manager_unittest.cc
index 70984c4..b680ba2 100644
--- a/ash/wm/lock_layout_manager_unittest.cc
+++ b/ash/wm/lock_layout_manager_unittest.cc
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "ash/display/display_manager.h"
 #include "ash/root_window_controller.h"
 #include "ash/screen_util.h"
 #include "ash/shell.h"
@@ -187,7 +188,8 @@
 }
 
 TEST_F(LockLayoutManagerTest, KeyboardBounds) {
-  gfx::Rect screen_bounds = Shell::GetScreen()->GetPrimaryDisplay().bounds();
+  gfx::Display primary_display = Shell::GetScreen()->GetPrimaryDisplay();
+  gfx::Rect screen_bounds = primary_display.bounds();
 
   views::Widget::InitParams widget_params(
       views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
@@ -203,8 +205,30 @@
        keyboard::KEYBOARD_OVERSCROLL_OVERRIDE_ENABLED);
   ShowKeyboard(true);
   EXPECT_EQ(screen_bounds.ToString(), window->GetBoundsInScreen().ToString());
+  gfx::Rect keyboard_bounds =
+      keyboard::KeyboardController::GetInstance()->current_keyboard_bounds();
+  EXPECT_NE(keyboard_bounds, gfx::Rect());
   ShowKeyboard(false);
 
+  // When keyboard is hidden make sure that rotating the screen gives 100% of
+  // screen size to window.
+  // Repro steps for http://crbug.com/401667:
+  // 1. Set up login screen defaults: VK override disabled
+  // 2. Show/hide keyboard, make sure that no stale keyboard bounds are cached.
+  keyboard::SetKeyboardOverscrollOverride(
+       keyboard::KEYBOARD_OVERSCROLL_OVERRIDE_DISABLED);
+  ShowKeyboard(true);
+  ShowKeyboard(false);
+  ash::DisplayManager* display_manager =
+      Shell::GetInstance()->display_manager();
+  display_manager->SetDisplayRotation(primary_display.id(),
+                                      gfx::Display::ROTATE_90);
+  primary_display = Shell::GetScreen()->GetPrimaryDisplay();
+  screen_bounds = primary_display.bounds();
+  EXPECT_EQ(screen_bounds.ToString(), window->GetBoundsInScreen().ToString());
+  display_manager->SetDisplayRotation(primary_display.id(),
+                                      gfx::Display::ROTATE_0);
+
   // When virtual keyboard overscroll is disabled keyboard bounds do
   // affect window bounds.
   keyboard::SetKeyboardOverscrollOverride(
@@ -212,6 +236,8 @@
   ShowKeyboard(true);
   keyboard::KeyboardController* keyboard =
         keyboard::KeyboardController::GetInstance();
+  primary_display = Shell::GetScreen()->GetPrimaryDisplay();
+  screen_bounds = primary_display.bounds();
   gfx::Rect target_bounds(screen_bounds);
   target_bounds.set_height(target_bounds.height() -
       keyboard->proxy()->GetKeyboardWindow()->bounds().height());
diff --git a/ash/wm/lock_window_state.cc b/ash/wm/lock_window_state.cc
index 5d38b59..fa1684f 100644
--- a/ash/wm/lock_window_state.cc
+++ b/ash/wm/lock_window_state.cc
@@ -167,12 +167,17 @@
       keyboard::KeyboardController::GetInstance();
   gfx::Rect keyboard_bounds;
 
-  if (keyboard_controller && !keyboard::IsKeyboardOverscrollEnabled())
+  if (keyboard_controller &&
+      !keyboard::IsKeyboardOverscrollEnabled() &&
+      keyboard_controller->keyboard_visible()) {
     keyboard_bounds = keyboard_controller->current_keyboard_bounds();
+  }
 
   gfx::Rect bounds =
       ScreenUtil::GetDisplayBoundsInParent(window_state->window());
   bounds.set_height(bounds.height() - keyboard_bounds.height());
+
+  VLOG(1) << "Updating window bounds to: " << bounds.ToString();
   window_state->SetBoundsDirect(bounds);
 }
 
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 0f83b32..e8a27b9 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -49,6 +49,8 @@
     "android/jni_registrar.h",
     "android/jni_string.cc",
     "android/jni_string.h",
+    "android/jni_utils.cc",
+    "android/jni_utils.h",
     "android/jni_weak_ref.cc",
     "android/jni_weak_ref.h",
     "android/library_loader/library_loader_hooks.cc",
@@ -1343,6 +1345,7 @@
       "android/java/src/org/chromium/base/EventLog.java",
       "android/java/src/org/chromium/base/FieldTrialList.java",
       "android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
+      "android/java/src/org/chromium/base/JNIUtils.java",
       "android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
       "android/java/src/org/chromium/base/MemoryPressureListener.java",
       "android/java/src/org/chromium/base/JavaHandlerThread.java",
diff --git a/base/android/base_jni_registrar.cc b/base/android/base_jni_registrar.cc
index a7a5fd2..b6d8a28 100644
--- a/base/android/base_jni_registrar.cc
+++ b/base/android/base_jni_registrar.cc
@@ -15,6 +15,7 @@
 #include "base/android/java_handler_thread.h"
 #include "base/android/jni_android.h"
 #include "base/android/jni_registrar.h"
+#include "base/android/jni_utils.h"
 #include "base/android/memory_pressure_listener_android.h"
 #include "base/android/path_service_android.h"
 #include "base/android/path_utils.h"
@@ -40,6 +41,7 @@
   { "FieldTrialList", base::android::RegisterFieldTrialList },
   { "ImportantFileWriterAndroid",
     base::android::RegisterImportantFileWriterAndroid },
+  { "JNIUtils", base::android::RegisterJNIUtils },
   { "MemoryPressureListenerAndroid",
       base::android::MemoryPressureListenerAndroid::Register },
   { "JavaHandlerThread", base::android::JavaHandlerThread::RegisterBindings },
diff --git a/base/android/java/src/org/chromium/base/JNIUtils.java b/base/android/java/src/org/chromium/base/JNIUtils.java
new file mode 100644
index 0000000..6f6cd54
--- /dev/null
+++ b/base/android/java/src/org/chromium/base/JNIUtils.java
@@ -0,0 +1,20 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.base;
+
+/**
+ * This class provides JNI-related methods to the native library.
+ */
+public class JNIUtils {
+    /**
+     * This returns a ClassLoader that is capable of loading Chromium Java code. Such a ClassLoader
+     * is needed for the few cases where the JNI mechanism is unable to automatically determine the
+     * appropriate ClassLoader instance.
+     */
+    @CalledByNative
+    public static Object getClassLoader() {
+        return JNIUtils.class.getClassLoader();
+    }
+}
diff --git a/base/android/java/src/org/chromium/base/library_loader/Linker.java b/base/android/java/src/org/chromium/base/library_loader/Linker.java
index 49a76b6..7771cbf 100644
--- a/base/android/java/src/org/chromium/base/library_loader/Linker.java
+++ b/base/android/java/src/org/chromium/base/library_loader/Linker.java
@@ -1013,7 +1013,8 @@
             mRelroStart = in.readLong();
             mRelroSize = in.readLong();
             ParcelFileDescriptor fd = in.readFileDescriptor();
-            mRelroFd = fd.detachFd();
+            // If CreateSharedRelro fails, the OS file descriptor will be -1 and |fd| will be null.
+            mRelroFd = (fd == null) ? -1 : fd.detachFd();
         }
 
         // from Parcelable
diff --git a/base/android/jni_android.cc b/base/android/jni_android.cc
index 6f080fb..e09c2d5 100644
--- a/base/android/jni_android.cc
+++ b/base/android/jni_android.cc
@@ -8,6 +8,7 @@
 
 #include "base/android/build_info.h"
 #include "base/android/jni_string.h"
+#include "base/android/jni_utils.h"
 #include "base/lazy_instance.h"
 #include "base/logging.h"
 
@@ -21,6 +22,9 @@
 // that may still be running at shutdown. There is no harm in doing this.
 base::LazyInstance<base::android::ScopedJavaGlobalRef<jobject> >::Leaky
     g_application_context = LAZY_INSTANCE_INITIALIZER;
+base::LazyInstance<base::android::ScopedJavaGlobalRef<jobject> >::Leaky
+    g_class_loader = LAZY_INSTANCE_INITIALIZER;
+jmethodID g_class_loader_load_class_method_id = 0;
 
 std::string GetJavaExceptionInfo(JNIEnv* env, jthrowable java_throwable) {
   ScopedJavaLocalRef<jclass> throwable_clazz =
@@ -118,17 +122,68 @@
   g_application_context.Get().Reset(context);
 }
 
+void InitReplacementClassLoader(JNIEnv* env,
+                                const JavaRef<jobject>& class_loader) {
+  DCHECK(g_class_loader.Get().is_null());
+  DCHECK(!class_loader.is_null());
+
+  ScopedJavaLocalRef<jclass> class_loader_clazz =
+      GetClass(env, "java/lang/ClassLoader");
+  CHECK(!ClearException(env));
+  g_class_loader_load_class_method_id =
+      env->GetMethodID(class_loader_clazz.obj(),
+                       "loadClass",
+                       "(Ljava/lang/String;)Ljava/lang/Class;");
+  CHECK(!ClearException(env));
+
+  DCHECK(env->IsInstanceOf(class_loader.obj(), class_loader_clazz.obj()));
+  g_class_loader.Get().Reset(class_loader);
+}
+
 const jobject GetApplicationContext() {
   DCHECK(!g_application_context.Get().is_null());
   return g_application_context.Get().obj();
 }
 
 ScopedJavaLocalRef<jclass> GetClass(JNIEnv* env, const char* class_name) {
-  jclass clazz = env->FindClass(class_name);
+  jclass clazz;
+  if (!g_class_loader.Get().is_null()) {
+    clazz = static_cast<jclass>(
+        env->CallObjectMethod(g_class_loader.Get().obj(),
+                              g_class_loader_load_class_method_id,
+                              ConvertUTF8ToJavaString(env, class_name).obj()));
+  } else {
+    clazz = env->FindClass(class_name);
+  }
   CHECK(!ClearException(env) && clazz) << "Failed to find class " << class_name;
   return ScopedJavaLocalRef<jclass>(env, clazz);
 }
 
+jclass LazyGetClass(
+    JNIEnv* env,
+    const char* class_name,
+    base::subtle::AtomicWord* atomic_class_id) {
+  COMPILE_ASSERT(sizeof(subtle::AtomicWord) >= sizeof(jclass),
+                 AtomicWord_SmallerThan_jMethodID);
+  subtle::AtomicWord value = base::subtle::Acquire_Load(atomic_class_id);
+  if (value)
+    return reinterpret_cast<jclass>(value);
+  ScopedJavaGlobalRef<jclass> clazz;
+  clazz.Reset(GetClass(env, class_name));
+  subtle::AtomicWord null_aw = reinterpret_cast<subtle::AtomicWord>(NULL);
+  subtle::AtomicWord cas_result = base::subtle::Release_CompareAndSwap(
+      atomic_class_id,
+      null_aw,
+      reinterpret_cast<subtle::AtomicWord>(clazz.obj()));
+  if (cas_result == null_aw) {
+    // We intentionally leak the global ref since we now storing it as a raw
+    // pointer in |atomic_class_id|.
+    return clazz.Release();
+  } else {
+    return reinterpret_cast<jclass>(cas_result);
+  }
+}
+
 template<MethodID::Type type>
 jmethodID MethodID::Get(JNIEnv* env,
                         jclass clazz,
diff --git a/base/android/jni_android.h b/base/android/jni_android.h
index faf53b7..b5e5526 100644
--- a/base/android/jni_android.h
+++ b/base/android/jni_android.h
@@ -53,6 +53,15 @@
 BASE_EXPORT void InitApplicationContext(JNIEnv* env,
                                         const JavaRef<jobject>& context);
 
+// Initializes the global ClassLoader used by the GetClass and LazyGetClass
+// methods. This is needed because JNI will use the base ClassLoader when there
+// is no Java code on the stack. The base ClassLoader doesn't know about any of
+// the application classes and will fail to lookup anything other than system
+// classes.
+BASE_EXPORT void InitReplacementClassLoader(
+    JNIEnv* env,
+    const JavaRef<jobject>& class_loader);
+
 // Gets a global ref to the application context set with
 // InitApplicationContext(). Ownership is retained by the function - the caller
 // must NOT release it.
@@ -66,6 +75,17 @@
 BASE_EXPORT ScopedJavaLocalRef<jclass> GetClass(JNIEnv* env,
                                                 const char* class_name);
 
+// The method will initialize |atomic_class_id| to contain a global ref to the
+// class. And will return that ref on subsequent calls.  It's the caller's
+// responsibility to release the ref when it is no longer needed.
+// The caller is responsible to zero-initialize |atomic_method_id|.
+// It's fine to simultaneously call this on multiple threads referencing the
+// same |atomic_method_id|.
+BASE_EXPORT jclass LazyGetClass(
+    JNIEnv* env,
+    const char* class_name,
+    base::subtle::AtomicWord* atomic_class_id);
+
 // This class is a wrapper for JNIEnv Get(Static)MethodID.
 class BASE_EXPORT MethodID {
  public:
diff --git a/base/android/jni_generator/golden_sample_for_tests_jni.h b/base/android/jni_generator/golden_sample_for_tests_jni.h
index 7dbf71e..0fcdc69 100644
--- a/base/android/jni_generator/golden_sample_for_tests_jni.h
+++ b/base/android/jni_generator/golden_sample_for_tests_jni.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -26,10 +26,13 @@
     "org/chromium/example/jni_generator/SampleForTests$InnerStructB";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_InnerStructA_clazz = NULL;
+#define InnerStructA_clazz(env) g_InnerStructA_clazz
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_SampleForTests_clazz = NULL;
+#define SampleForTests_clazz(env) g_SampleForTests_clazz
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_InnerStructB_clazz = NULL;
+#define InnerStructB_clazz(env) g_InnerStructB_clazz
 
 }  // namespace
 
@@ -99,11 +102,11 @@
     JniIntWrapper bar) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_SampleForTests_clazz, 0);
+      SampleForTests_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "javaMethod",
 
 "("
@@ -123,12 +126,12 @@
 static base::subtle::AtomicWord g_SampleForTests_staticJavaMethod = 0;
 static jboolean Java_SampleForTests_staticJavaMethod(JNIEnv* env) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_SampleForTests_clazz,
-      g_SampleForTests_clazz, false);
+  CHECK_CLAZZ(env, SampleForTests_clazz(env),
+      SampleForTests_clazz(env), false);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "staticJavaMethod",
 
 "("
@@ -137,7 +140,7 @@
       &g_SampleForTests_staticJavaMethod);
 
   jboolean ret =
-      env->CallStaticBooleanMethod(g_SampleForTests_clazz,
+      env->CallStaticBooleanMethod(SampleForTests_clazz(env),
           method_id);
   jni_generator::CheckException(env);
   return ret;
@@ -148,11 +151,11 @@
     obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_SampleForTests_clazz);
+      SampleForTests_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "packagePrivateJavaMethod",
 
 "("
@@ -171,11 +174,11 @@
     obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_SampleForTests_clazz);
+      SampleForTests_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "methodThatThrowsException",
 
 "("
@@ -194,12 +197,12 @@
     JniIntWrapper i,
     jstring s) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_InnerStructA_clazz,
-      g_InnerStructA_clazz, NULL);
+  CHECK_CLAZZ(env, InnerStructA_clazz(env),
+      InnerStructA_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_InnerStructA_clazz,
+      env, InnerStructA_clazz(env),
       "create",
 
 "("
@@ -211,7 +214,7 @@
       &g_InnerStructA_create);
 
   jobject ret =
-      env->CallStaticObjectMethod(g_InnerStructA_clazz,
+      env->CallStaticObjectMethod(InnerStructA_clazz(env),
           method_id, l, as_jint(i), s);
   jni_generator::CheckException(env);
   return base::android::ScopedJavaLocalRef<jobject>(env, ret);
@@ -222,11 +225,11 @@
     {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_SampleForTests_clazz);
+      SampleForTests_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "addStructA",
 
 "("
@@ -246,11 +249,11 @@
     {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_SampleForTests_clazz);
+      SampleForTests_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "iterateAndDoSomething",
 
 "("
@@ -268,11 +271,11 @@
 static jlong Java_InnerStructB_getKey(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InnerStructB_clazz, 0);
+      InnerStructB_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InnerStructB_clazz,
+      env, InnerStructB_clazz(env),
       "getKey",
 
 "("
@@ -292,11 +295,11 @@
     Java_InnerStructB_getValue(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InnerStructB_clazz, NULL);
+      InnerStructB_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InnerStructB_clazz,
+      env, InnerStructB_clazz(env),
       "getValue",
 
 "("
@@ -379,11 +382,11 @@
 
   const int kMethodsSampleForTestsSize = arraysize(kMethodsSampleForTests);
 
-  if (env->RegisterNatives(g_SampleForTests_clazz,
+  if (env->RegisterNatives(SampleForTests_clazz(env),
                            kMethodsSampleForTests,
                            kMethodsSampleForTestsSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_SampleForTests_clazz, __FILE__);
+        env, SampleForTests_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_generator/jni_generator.py b/base/android/jni_generator/jni_generator.py
index 88332fa..4342fed 100755
--- a/base/android/jni_generator/jni_generator.py
+++ b/base/android/jni_generator/jni_generator.py
@@ -731,7 +731,7 @@
   def GetContent(self):
     """Returns the content of the JNI binding file."""
     template = Template("""\
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -947,11 +947,11 @@
     template = Template("""\
   const int kMethods${JAVA_CLASS}Size = arraysize(kMethods${JAVA_CLASS});
 
-  if (env->RegisterNatives(g_${JAVA_CLASS}_clazz,
+  if (env->RegisterNatives(${JAVA_CLASS}_clazz(env),
                            kMethods${JAVA_CLASS},
                            kMethods${JAVA_CLASS}Size) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_${JAVA_CLASS}_clazz, __FILE__);
+        env, ${JAVA_CLASS}_clazz(env), __FILE__);
     return false;
   }
 """)
@@ -1122,11 +1122,10 @@
 
   def GetCalledByNativeValues(self, called_by_native):
     """Fills in necessary values for the CalledByNative methods."""
+    java_class = called_by_native.java_class_name or self.class_name
     if called_by_native.static or called_by_native.is_constructor:
       first_param_in_declaration = ''
-      first_param_in_call = ('g_%s_clazz' %
-                             (called_by_native.java_class_name or
-                              self.class_name))
+      first_param_in_call = ('%s_clazz(env)' % java_class)
     else:
       first_param_in_declaration = ', jobject obj'
       first_param_in_call = 'obj'
@@ -1160,7 +1159,7 @@
       else:
         return_clause = 'return ret;'
     return {
-        'JAVA_CLASS': called_by_native.java_class_name or self.class_name,
+        'JAVA_CLASS': java_class,
         'RETURN_TYPE': return_type,
         'OPTIONAL_ERROR_RETURN': optional_error_return,
         'RETURN_DECLARATION': return_declaration,
@@ -1204,7 +1203,7 @@
 ${FUNCTION_HEADER}
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, ${FIRST_PARAM_IN_CALL},
-      g_${JAVA_CLASS}_clazz${OPTIONAL_ERROR_RETURN});
+      ${JAVA_CLASS}_clazz(env)${OPTIONAL_ERROR_RETURN});
   jmethodID method_id =
     ${GET_METHOD_ID_IMPL}
   ${RETURN_DECLARATION}
@@ -1263,22 +1262,42 @@
       }
       ret += [template.substitute(values)]
     ret += ''
-    for clazz in called_by_native_classes:
+
+    class_getter_methods = []
+    if self.options.native_exports:
       template = Template("""\
 // Leaking this jclass as we cannot use LazyInstance from some threads.
-jclass g_${JAVA_CLASS}_clazz = NULL;""")
+base::subtle::AtomicWord g_${JAVA_CLASS}_clazz = 0;
+#define ${JAVA_CLASS}_clazz(env) \
+base::android::LazyGetClass(env, k${JAVA_CLASS}ClassPath, \
+&g_${JAVA_CLASS}_clazz)""")
+    else:
+      template = Template("""\
+// Leaking this jclass as we cannot use LazyInstance from some threads.
+jclass g_${JAVA_CLASS}_clazz = NULL;
+#define ${JAVA_CLASS}_clazz(env) g_${JAVA_CLASS}_clazz""")
+
+    for clazz in called_by_native_classes:
       values = {
           'JAVA_CLASS': clazz,
       }
       ret += [template.substitute(values)]
+
     return '\n'.join(ret)
 
   def GetFindClasses(self):
     """Returns the imlementation of FindClass for all known classes."""
     if self.init_native:
-      template = Template("""\
+      if self.options.native_exports:
+        template = Template("""\
+    base::subtle::Release_Store(&g_${JAVA_CLASS}_clazz,
+      static_cast<base::subtle::AtomicWord>(env->NewWeakGlobalRef(clazz));""")
+      else:
+        template = Template("""\
   g_${JAVA_CLASS}_clazz = static_cast<jclass>(env->NewWeakGlobalRef(clazz));""")
     else:
+      if self.options.native_exports:
+        return '\n'
       template = Template("""\
   g_${JAVA_CLASS}_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
       base::android::GetClass(env, k${JAVA_CLASS}ClassPath).obj()));""")
@@ -1293,13 +1312,13 @@
     if self.options.eager_called_by_natives:
       template = Template("""\
 env->Get${STATIC_METHOD_PART}MethodID(
-      g_${JAVA_CLASS}_clazz,
+      ${JAVA_CLASS}_clazz(env),
       "${JNI_NAME}", ${JNI_SIGNATURE});""")
     else:
       template = Template("""\
   base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_${STATIC}>(
-      env, g_${JAVA_CLASS}_clazz,
+      env, ${JAVA_CLASS}_clazz(env),
       "${JNI_NAME}",
       ${JNI_SIGNATURE},
       &g_${JAVA_CLASS}_${METHOD_ID_VAR_NAME});
diff --git a/base/android/jni_generator/testCalledByNatives.golden b/base/android/jni_generator/testCalledByNatives.golden
index abdc507..22aa45d 100644
--- a/base/android/jni_generator/testCalledByNatives.golden
+++ b/base/android/jni_generator/testCalledByNatives.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -22,8 +22,10 @@
 const char kInfoBarClassPath[] = "org/chromium/TestJni$InfoBar";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_TestJni_clazz = NULL;
+#define TestJni_clazz(env) g_TestJni_clazz
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_InfoBar_clazz = NULL;
+#define InfoBar_clazz(env) g_InfoBar_clazz
 
 }  // namespace
 
@@ -39,11 +41,11 @@
     jobject icon) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "showConfirmInfoBar",
 
 "("
@@ -73,11 +75,11 @@
     jstring args) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "showAutoLoginInfoBar",
 
 "("
@@ -100,11 +102,11 @@
 static void Java_InfoBar_dismiss(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InfoBar_clazz);
+      InfoBar_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InfoBar_clazz,
+      env, InfoBar_clazz(env),
       "dismiss",
 
 "("
@@ -124,12 +126,12 @@
     jstring account,
     jstring args) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_TestJni_clazz,
-      g_TestJni_clazz, false);
+  CHECK_CLAZZ(env, TestJni_clazz(env),
+      TestJni_clazz(env), false);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "shouldShowAutoLogin",
 
 "("
@@ -142,7 +144,7 @@
       &g_TestJni_shouldShowAutoLogin);
 
   jboolean ret =
-      env->CallStaticBooleanMethod(g_TestJni_clazz,
+      env->CallStaticBooleanMethod(TestJni_clazz(env),
           method_id, view, realm, account, args);
   jni_generator::CheckException(env);
   return ret;
@@ -152,12 +154,12 @@
 static base::android::ScopedJavaLocalRef<jobject> Java_TestJni_openUrl(JNIEnv*
     env, jstring url) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_TestJni_clazz,
-      g_TestJni_clazz, NULL);
+  CHECK_CLAZZ(env, TestJni_clazz(env),
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "openUrl",
 
 "("
@@ -167,7 +169,7 @@
       &g_TestJni_openUrl);
 
   jobject ret =
-      env->CallStaticObjectMethod(g_TestJni_clazz,
+      env->CallStaticObjectMethod(TestJni_clazz(env),
           method_id, url);
   jni_generator::CheckException(env);
   return base::android::ScopedJavaLocalRef<jobject>(env, ret);
@@ -182,11 +184,11 @@
     JniIntWrapper iSecondaryID) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz);
+      TestJni_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "activateHardwareAcceleration",
 
 "("
@@ -211,11 +213,11 @@
     iParam) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz);
+      TestJni_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "uncheckedCall",
 
 "("
@@ -234,11 +236,11 @@
     Java_TestJni_returnByteArray(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "returnByteArray",
 
 "("
@@ -258,11 +260,11 @@
     Java_TestJni_returnBooleanArray(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "returnBooleanArray",
 
 "("
@@ -282,11 +284,11 @@
     Java_TestJni_returnCharArray(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "returnCharArray",
 
 "("
@@ -306,11 +308,11 @@
     Java_TestJni_returnShortArray(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "returnShortArray",
 
 "("
@@ -330,11 +332,11 @@
     Java_TestJni_returnIntArray(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "returnIntArray",
 
 "("
@@ -354,11 +356,11 @@
     Java_TestJni_returnLongArray(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "returnLongArray",
 
 "("
@@ -378,11 +380,11 @@
     Java_TestJni_returnDoubleArray(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "returnDoubleArray",
 
 "("
@@ -402,11 +404,11 @@
     Java_TestJni_returnObjectArray(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "returnObjectArray",
 
 "("
@@ -426,11 +428,11 @@
     Java_TestJni_returnArrayOfByteArray(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "returnArrayOfByteArray",
 
 "("
@@ -450,11 +452,11 @@
     Java_TestJni_getCompressFormat(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "getCompressFormat",
 
 "("
@@ -474,11 +476,11 @@
     Java_TestJni_getCompressFormatList(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_TestJni_clazz, NULL);
+      TestJni_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_TestJni_clazz,
+      env, TestJni_clazz(env),
       "getCompressFormatList",
 
 "("
diff --git a/base/android/jni_generator/testConstantsFromJavaP.golden b/base/android/jni_generator/testConstantsFromJavaP.golden
index 795bd54..f122529 100644
--- a/base/android/jni_generator/testConstantsFromJavaP.golden
+++ b/base/android/jni_generator/testConstantsFromJavaP.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kMotionEventClassPath[] = "android/view/MotionEvent";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_MotionEvent_clazz = NULL;
+#define MotionEvent_clazz(env) g_MotionEvent_clazz
 
 }  // namespace
 
@@ -117,11 +118,11 @@
 static void Java_MotionEvent_finalize(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "finalize",
       "()V",
       &g_MotionEvent_finalize);
@@ -167,18 +168,18 @@
     JniIntWrapper p12,
     JniIntWrapper p13) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_MotionEvent_clazz,
-      g_MotionEvent_clazz, NULL);
+  CHECK_CLAZZ(env, MotionEvent_clazz(env),
+      MotionEvent_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "obtain",
 "(JJII[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;IIFFIIII)Landroid/view/MotionEvent;",
       &g_MotionEvent_obtainAVME_J_J_I_I_LAVMEPP_LAVMEPC_I_I_F_F_I_I_I_I);
 
   jobject ret =
-      env->CallStaticObjectMethod(g_MotionEvent_clazz,
+      env->CallStaticObjectMethod(MotionEvent_clazz(env),
           method_id, p0, p1, as_jint(p2), as_jint(p3), p4, p5, as_jint(p6),
               as_jint(p7), p8, p9, as_jint(p10), as_jint(p11), as_jint(p12),
               as_jint(p13));
@@ -219,18 +220,18 @@
     JniIntWrapper p11,
     JniIntWrapper p12) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_MotionEvent_clazz,
-      g_MotionEvent_clazz, NULL);
+  CHECK_CLAZZ(env, MotionEvent_clazz(env),
+      MotionEvent_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "obtain",
 "(JJII[I[Landroid/view/MotionEvent$PointerCoords;IFFIIII)Landroid/view/MotionEvent;",
       &g_MotionEvent_obtainAVME_J_J_I_I_AI_LAVMEPC_I_F_F_I_I_I_I);
 
   jobject ret =
-      env->CallStaticObjectMethod(g_MotionEvent_clazz,
+      env->CallStaticObjectMethod(MotionEvent_clazz(env),
           method_id, p0, p1, as_jint(p2), as_jint(p3), p4, p5, as_jint(p6), p7,
               p8, as_jint(p9), as_jint(p10), as_jint(p11), as_jint(p12));
   jni_generator::CheckException(env);
@@ -266,18 +267,18 @@
     JniIntWrapper p10,
     JniIntWrapper p11) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_MotionEvent_clazz,
-      g_MotionEvent_clazz, NULL);
+  CHECK_CLAZZ(env, MotionEvent_clazz(env),
+      MotionEvent_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "obtain",
       "(JJIFFFFIFFII)Landroid/view/MotionEvent;",
       &g_MotionEvent_obtainAVME_J_J_I_F_F_F_F_I_F_F_I_I);
 
   jobject ret =
-      env->CallStaticObjectMethod(g_MotionEvent_clazz,
+      env->CallStaticObjectMethod(MotionEvent_clazz(env),
           method_id, p0, p1, as_jint(p2), p3, p4, p5, p6, as_jint(p7), p8, p9,
               as_jint(p10), as_jint(p11));
   jni_generator::CheckException(env);
@@ -315,18 +316,18 @@
     JniIntWrapper p11,
     JniIntWrapper p12) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_MotionEvent_clazz,
-      g_MotionEvent_clazz, NULL);
+  CHECK_CLAZZ(env, MotionEvent_clazz(env),
+      MotionEvent_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "obtain",
       "(JJIIFFFFIFFII)Landroid/view/MotionEvent;",
       &g_MotionEvent_obtainAVME_J_J_I_I_F_F_F_F_I_F_F_I_I);
 
   jobject ret =
-      env->CallStaticObjectMethod(g_MotionEvent_clazz,
+      env->CallStaticObjectMethod(MotionEvent_clazz(env),
           method_id, p0, p1, as_jint(p2), as_jint(p3), p4, p5, p6, p7,
               as_jint(p8), p9, p10, as_jint(p11), as_jint(p12));
   jni_generator::CheckException(env);
@@ -349,18 +350,18 @@
     jfloat p4,
     JniIntWrapper p5) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_MotionEvent_clazz,
-      g_MotionEvent_clazz, NULL);
+  CHECK_CLAZZ(env, MotionEvent_clazz(env),
+      MotionEvent_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "obtain",
       "(JJIFFI)Landroid/view/MotionEvent;",
       &g_MotionEvent_obtainAVME_J_J_I_F_F_I);
 
   jobject ret =
-      env->CallStaticObjectMethod(g_MotionEvent_clazz,
+      env->CallStaticObjectMethod(MotionEvent_clazz(env),
           method_id, p0, p1, as_jint(p2), p3, p4, as_jint(p5));
   jni_generator::CheckException(env);
   return base::android::ScopedJavaLocalRef<jobject>(env, ret);
@@ -373,18 +374,18 @@
 static base::android::ScopedJavaLocalRef<jobject>
     Java_MotionEvent_obtainAVME_AVME(JNIEnv* env, jobject p0) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_MotionEvent_clazz,
-      g_MotionEvent_clazz, NULL);
+  CHECK_CLAZZ(env, MotionEvent_clazz(env),
+      MotionEvent_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "obtain",
       "(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;",
       &g_MotionEvent_obtainAVME_AVME);
 
   jobject ret =
-      env->CallStaticObjectMethod(g_MotionEvent_clazz,
+      env->CallStaticObjectMethod(MotionEvent_clazz(env),
           method_id, p0);
   jni_generator::CheckException(env);
   return base::android::ScopedJavaLocalRef<jobject>(env, ret);
@@ -397,18 +398,18 @@
 static base::android::ScopedJavaLocalRef<jobject>
     Java_MotionEvent_obtainNoHistory(JNIEnv* env, jobject p0) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_MotionEvent_clazz,
-      g_MotionEvent_clazz, NULL);
+  CHECK_CLAZZ(env, MotionEvent_clazz(env),
+      MotionEvent_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "obtainNoHistory",
       "(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;",
       &g_MotionEvent_obtainNoHistory);
 
   jobject ret =
-      env->CallStaticObjectMethod(g_MotionEvent_clazz,
+      env->CallStaticObjectMethod(MotionEvent_clazz(env),
           method_id, p0);
   jni_generator::CheckException(env);
   return base::android::ScopedJavaLocalRef<jobject>(env, ret);
@@ -420,11 +421,11 @@
 static void Java_MotionEvent_recycle(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "recycle",
       "()V",
       &g_MotionEvent_recycle);
@@ -441,11 +442,11 @@
 static jint Java_MotionEvent_getDeviceId(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getDeviceId",
       "()I",
       &g_MotionEvent_getDeviceId);
@@ -463,11 +464,11 @@
 static jint Java_MotionEvent_getSource(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getSource",
       "()I",
       &g_MotionEvent_getSource);
@@ -486,11 +487,11 @@
     p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "setSource",
       "(I)V",
       &g_MotionEvent_setSource);
@@ -507,11 +508,11 @@
 static jint Java_MotionEvent_getAction(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getAction",
       "()I",
       &g_MotionEvent_getAction);
@@ -529,11 +530,11 @@
 static jint Java_MotionEvent_getActionMasked(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getActionMasked",
       "()I",
       &g_MotionEvent_getActionMasked);
@@ -551,11 +552,11 @@
 static jint Java_MotionEvent_getActionIndex(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getActionIndex",
       "()I",
       &g_MotionEvent_getActionIndex);
@@ -573,11 +574,11 @@
 static jint Java_MotionEvent_getFlags(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getFlags",
       "()I",
       &g_MotionEvent_getFlags);
@@ -595,11 +596,11 @@
 static jlong Java_MotionEvent_getDownTime(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getDownTime",
       "()J",
       &g_MotionEvent_getDownTime);
@@ -617,11 +618,11 @@
 static jlong Java_MotionEvent_getEventTime(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getEventTime",
       "()J",
       &g_MotionEvent_getEventTime);
@@ -639,11 +640,11 @@
 static jfloat Java_MotionEvent_getXF(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getX",
       "()F",
       &g_MotionEvent_getXF);
@@ -661,11 +662,11 @@
 static jfloat Java_MotionEvent_getYF(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getY",
       "()F",
       &g_MotionEvent_getYF);
@@ -683,11 +684,11 @@
 static jfloat Java_MotionEvent_getPressureF(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getPressure",
       "()F",
       &g_MotionEvent_getPressureF);
@@ -705,11 +706,11 @@
 static jfloat Java_MotionEvent_getSizeF(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getSize",
       "()F",
       &g_MotionEvent_getSizeF);
@@ -727,11 +728,11 @@
 static jfloat Java_MotionEvent_getTouchMajorF(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getTouchMajor",
       "()F",
       &g_MotionEvent_getTouchMajorF);
@@ -749,11 +750,11 @@
 static jfloat Java_MotionEvent_getTouchMinorF(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getTouchMinor",
       "()F",
       &g_MotionEvent_getTouchMinorF);
@@ -771,11 +772,11 @@
 static jfloat Java_MotionEvent_getToolMajorF(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getToolMajor",
       "()F",
       &g_MotionEvent_getToolMajorF);
@@ -793,11 +794,11 @@
 static jfloat Java_MotionEvent_getToolMinorF(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getToolMinor",
       "()F",
       &g_MotionEvent_getToolMinorF);
@@ -815,11 +816,11 @@
 static jfloat Java_MotionEvent_getOrientationF(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getOrientation",
       "()F",
       &g_MotionEvent_getOrientationF);
@@ -838,11 +839,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getAxisValue",
       "(I)F",
       &g_MotionEvent_getAxisValueF_I);
@@ -860,11 +861,11 @@
 static jint Java_MotionEvent_getPointerCount(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getPointerCount",
       "()I",
       &g_MotionEvent_getPointerCount);
@@ -883,11 +884,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getPointerId",
       "(I)I",
       &g_MotionEvent_getPointerId);
@@ -906,11 +907,11 @@
     p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getToolType",
       "(I)I",
       &g_MotionEvent_getToolType);
@@ -929,11 +930,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "findPointerIndex",
       "(I)I",
       &g_MotionEvent_findPointerIndex);
@@ -952,11 +953,11 @@
     p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getX",
       "(I)F",
       &g_MotionEvent_getXF_I);
@@ -975,11 +976,11 @@
     p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getY",
       "(I)F",
       &g_MotionEvent_getYF_I);
@@ -998,11 +999,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getPressure",
       "(I)F",
       &g_MotionEvent_getPressureF_I);
@@ -1021,11 +1022,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getSize",
       "(I)F",
       &g_MotionEvent_getSizeF_I);
@@ -1044,11 +1045,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getTouchMajor",
       "(I)F",
       &g_MotionEvent_getTouchMajorF_I);
@@ -1067,11 +1068,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getTouchMinor",
       "(I)F",
       &g_MotionEvent_getTouchMinorF_I);
@@ -1090,11 +1091,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getToolMajor",
       "(I)F",
       &g_MotionEvent_getToolMajorF_I);
@@ -1113,11 +1114,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getToolMinor",
       "(I)F",
       &g_MotionEvent_getToolMinorF_I);
@@ -1136,11 +1137,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getOrientation",
       "(I)F",
       &g_MotionEvent_getOrientationF_I);
@@ -1161,11 +1162,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getAxisValue",
       "(II)F",
       &g_MotionEvent_getAxisValueF_I_I);
@@ -1186,11 +1187,11 @@
     jobject p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getPointerCoords",
       "(ILandroid/view/MotionEvent$PointerCoords;)V",
       &g_MotionEvent_getPointerCoords);
@@ -1210,11 +1211,11 @@
     jobject p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getPointerProperties",
       "(ILandroid/view/MotionEvent$PointerProperties;)V",
       &g_MotionEvent_getPointerProperties);
@@ -1231,11 +1232,11 @@
 static jint Java_MotionEvent_getMetaState(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getMetaState",
       "()I",
       &g_MotionEvent_getMetaState);
@@ -1253,11 +1254,11 @@
 static jint Java_MotionEvent_getButtonState(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getButtonState",
       "()I",
       &g_MotionEvent_getButtonState);
@@ -1275,11 +1276,11 @@
 static jfloat Java_MotionEvent_getRawX(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getRawX",
       "()F",
       &g_MotionEvent_getRawX);
@@ -1297,11 +1298,11 @@
 static jfloat Java_MotionEvent_getRawY(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getRawY",
       "()F",
       &g_MotionEvent_getRawY);
@@ -1319,11 +1320,11 @@
 static jfloat Java_MotionEvent_getXPrecision(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getXPrecision",
       "()F",
       &g_MotionEvent_getXPrecision);
@@ -1341,11 +1342,11 @@
 static jfloat Java_MotionEvent_getYPrecision(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getYPrecision",
       "()F",
       &g_MotionEvent_getYPrecision);
@@ -1363,11 +1364,11 @@
 static jint Java_MotionEvent_getHistorySize(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistorySize",
       "()I",
       &g_MotionEvent_getHistorySize);
@@ -1386,11 +1387,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalEventTime",
       "(I)J",
       &g_MotionEvent_getHistoricalEventTime);
@@ -1409,11 +1410,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalX",
       "(I)F",
       &g_MotionEvent_getHistoricalXF_I);
@@ -1432,11 +1433,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalY",
       "(I)F",
       &g_MotionEvent_getHistoricalYF_I);
@@ -1455,11 +1456,11 @@
     obj, JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalPressure",
       "(I)F",
       &g_MotionEvent_getHistoricalPressureF_I);
@@ -1478,11 +1479,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalSize",
       "(I)F",
       &g_MotionEvent_getHistoricalSizeF_I);
@@ -1501,11 +1502,11 @@
     obj, JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalTouchMajor",
       "(I)F",
       &g_MotionEvent_getHistoricalTouchMajorF_I);
@@ -1524,11 +1525,11 @@
     obj, JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalTouchMinor",
       "(I)F",
       &g_MotionEvent_getHistoricalTouchMinorF_I);
@@ -1547,11 +1548,11 @@
     obj, JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalToolMajor",
       "(I)F",
       &g_MotionEvent_getHistoricalToolMajorF_I);
@@ -1570,11 +1571,11 @@
     obj, JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalToolMinor",
       "(I)F",
       &g_MotionEvent_getHistoricalToolMinorF_I);
@@ -1593,11 +1594,11 @@
     obj, JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalOrientation",
       "(I)F",
       &g_MotionEvent_getHistoricalOrientationF_I);
@@ -1618,11 +1619,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalAxisValue",
       "(II)F",
       &g_MotionEvent_getHistoricalAxisValueF_I_I);
@@ -1643,11 +1644,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalX",
       "(II)F",
       &g_MotionEvent_getHistoricalXF_I_I);
@@ -1668,11 +1669,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalY",
       "(II)F",
       &g_MotionEvent_getHistoricalYF_I_I);
@@ -1693,11 +1694,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalPressure",
       "(II)F",
       &g_MotionEvent_getHistoricalPressureF_I_I);
@@ -1718,11 +1719,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalSize",
       "(II)F",
       &g_MotionEvent_getHistoricalSizeF_I_I);
@@ -1743,11 +1744,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalTouchMajor",
       "(II)F",
       &g_MotionEvent_getHistoricalTouchMajorF_I_I);
@@ -1768,11 +1769,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalTouchMinor",
       "(II)F",
       &g_MotionEvent_getHistoricalTouchMinorF_I_I);
@@ -1793,11 +1794,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalToolMajor",
       "(II)F",
       &g_MotionEvent_getHistoricalToolMajorF_I_I);
@@ -1818,11 +1819,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalToolMinor",
       "(II)F",
       &g_MotionEvent_getHistoricalToolMinorF_I_I);
@@ -1843,11 +1844,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalOrientation",
       "(II)F",
       &g_MotionEvent_getHistoricalOrientationF_I_I);
@@ -1870,11 +1871,11 @@
     JniIntWrapper p2) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalAxisValue",
       "(III)F",
       &g_MotionEvent_getHistoricalAxisValueF_I_I_I);
@@ -1897,11 +1898,11 @@
     jobject p2) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getHistoricalPointerCoords",
       "(IILandroid/view/MotionEvent$PointerCoords;)V",
       &g_MotionEvent_getHistoricalPointerCoords);
@@ -1918,11 +1919,11 @@
 static jint Java_MotionEvent_getEdgeFlags(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, 0);
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "getEdgeFlags",
       "()I",
       &g_MotionEvent_getEdgeFlags);
@@ -1941,11 +1942,11 @@
     JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "setEdgeFlags",
       "(I)V",
       &g_MotionEvent_setEdgeFlags);
@@ -1963,11 +1964,11 @@
     p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "setAction",
       "(I)V",
       &g_MotionEvent_setAction);
@@ -1985,11 +1986,11 @@
     jfloat p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "offsetLocation",
       "(FF)V",
       &g_MotionEvent_offsetLocation);
@@ -2007,11 +2008,11 @@
     jfloat p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "setLocation",
       "(FF)V",
       &g_MotionEvent_setLocation);
@@ -2028,11 +2029,11 @@
 static void Java_MotionEvent_transform(JNIEnv* env, jobject obj, jobject p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "transform",
       "(Landroid/graphics/Matrix;)V",
       &g_MotionEvent_transform);
@@ -2060,11 +2061,11 @@
     JniIntWrapper p5) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "addBatch",
       "(JFFFFI)V",
       &g_MotionEvent_addBatchV_J_F_F_F_F_I);
@@ -2086,11 +2087,11 @@
     JniIntWrapper p2) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "addBatch",
       "(J[Landroid/view/MotionEvent$PointerCoords;I)V",
       &g_MotionEvent_addBatchV_J_LAVMEPC_I);
@@ -2109,11 +2110,11 @@
     Java_MotionEvent_toString(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz, NULL);
+      MotionEvent_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "toString",
       "()Ljava/lang/String;",
       &g_MotionEvent_toString);
@@ -2132,18 +2133,18 @@
 static base::android::ScopedJavaLocalRef<jstring>
     Java_MotionEvent_actionToString(JNIEnv* env, JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_MotionEvent_clazz,
-      g_MotionEvent_clazz, NULL);
+  CHECK_CLAZZ(env, MotionEvent_clazz(env),
+      MotionEvent_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "actionToString",
       "(I)Ljava/lang/String;",
       &g_MotionEvent_actionToString);
 
   jstring ret =
-      static_cast<jstring>(env->CallStaticObjectMethod(g_MotionEvent_clazz,
+      static_cast<jstring>(env->CallStaticObjectMethod(MotionEvent_clazz(env),
           method_id, as_jint(p0)));
   jni_generator::CheckException(env);
   return base::android::ScopedJavaLocalRef<jstring>(env, ret);
@@ -2156,18 +2157,18 @@
 static base::android::ScopedJavaLocalRef<jstring>
     Java_MotionEvent_axisToString(JNIEnv* env, JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_MotionEvent_clazz,
-      g_MotionEvent_clazz, NULL);
+  CHECK_CLAZZ(env, MotionEvent_clazz(env),
+      MotionEvent_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "axisToString",
       "(I)Ljava/lang/String;",
       &g_MotionEvent_axisToString);
 
   jstring ret =
-      static_cast<jstring>(env->CallStaticObjectMethod(g_MotionEvent_clazz,
+      static_cast<jstring>(env->CallStaticObjectMethod(MotionEvent_clazz(env),
           method_id, as_jint(p0)));
   jni_generator::CheckException(env);
   return base::android::ScopedJavaLocalRef<jstring>(env, ret);
@@ -2178,18 +2179,18 @@
     __attribute__ ((unused));
 static jint Java_MotionEvent_axisFromString(JNIEnv* env, jstring p0) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_MotionEvent_clazz,
-      g_MotionEvent_clazz, 0);
+  CHECK_CLAZZ(env, MotionEvent_clazz(env),
+      MotionEvent_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "axisFromString",
       "(Ljava/lang/String;)I",
       &g_MotionEvent_axisFromString);
 
   jint ret =
-      env->CallStaticIntMethod(g_MotionEvent_clazz,
+      env->CallStaticIntMethod(MotionEvent_clazz(env),
           method_id, p0);
   jni_generator::CheckException(env);
   return ret;
@@ -2202,11 +2203,11 @@
     JniIntWrapper p1) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_MotionEvent_clazz);
+      MotionEvent_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_MotionEvent_clazz,
+      env, MotionEvent_clazz(env),
       "writeToParcel",
       "(Landroid/os/Parcel;I)V",
       &g_MotionEvent_writeToParcel);
diff --git a/base/android/jni_generator/testEagerCalledByNativesOption.golden b/base/android/jni_generator/testEagerCalledByNativesOption.golden
index 4ff81ac..6c1323e 100644
--- a/base/android/jni_generator/testEagerCalledByNativesOption.golden
+++ b/base/android/jni_generator/testEagerCalledByNativesOption.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kTestClassPath[] = "org/chromium/example/jni_generator/Test";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_Test_clazz = NULL;
+#define Test_clazz(env) g_Test_clazz
 jmethodID g_Test_testMethodWithParam = NULL;
 jmethodID g_Test_testStaticMethodWithParam = NULL;
 jmethodID g_Test_testMethodWithNoParam = NULL;
@@ -46,20 +47,21 @@
 }
 
 static jint testStaticMethodWithParam(JNIEnv* env, JniIntWrapper iParam) {
-  jint ret = env->CallStaticIntMethod(g_Test_clazz,
+  jint ret = env->CallStaticIntMethod(Test_clazz(env),
       g_Test_testStaticMethodWithParam, as_jint(iParam));
   return ret;
 }
 
 static jdouble testMethodWithNoParam(JNIEnv* env) {
-  jdouble ret = env->CallStaticDoubleMethod(g_Test_clazz,
+  jdouble ret = env->CallStaticDoubleMethod(Test_clazz(env),
       g_Test_testMethodWithNoParam);
   return ret;
 }
 
 static base::android::ScopedJavaLocalRef<jstring>
     testStaticMethodWithNoParam(JNIEnv* env) {
-  jstring ret = static_cast<jstring>(env->CallStaticObjectMethod(g_Test_clazz,
+  jstring ret =
+      static_cast<jstring>(env->CallStaticObjectMethod(Test_clazz(env),
       g_Test_testStaticMethodWithNoParam));
   return base::android::ScopedJavaLocalRef<jstring>(env, ret);
 }
@@ -81,16 +83,16 @@
 
   const int kMethodsTestSize = arraysize(kMethodsTest);
 
-  if (env->RegisterNatives(g_Test_clazz,
+  if (env->RegisterNatives(Test_clazz(env),
                            kMethodsTest,
                            kMethodsTestSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_Test_clazz, __FILE__);
+        env, Test_clazz(env), __FILE__);
     return false;
   }
 
   g_Test_testMethodWithParam = env->GetMethodID(
-      g_Test_clazz,
+      Test_clazz(env),
       "testMethodWithParam",
 "("
 "I"
@@ -101,7 +103,7 @@
   }
 
   g_Test_testStaticMethodWithParam = env->GetStaticMethodID(
-      g_Test_clazz,
+      Test_clazz(env),
       "testStaticMethodWithParam",
 "("
 "I"
@@ -112,7 +114,7 @@
   }
 
   g_Test_testMethodWithNoParam = env->GetStaticMethodID(
-      g_Test_clazz,
+      Test_clazz(env),
       "testMethodWithNoParam",
 "("
 ")"
@@ -122,7 +124,7 @@
   }
 
   g_Test_testStaticMethodWithNoParam = env->GetStaticMethodID(
-      g_Test_clazz,
+      Test_clazz(env),
       "testStaticMethodWithNoParam",
 "("
 ")"
diff --git a/base/android/jni_generator/testFromJavaP.golden b/base/android/jni_generator/testFromJavaP.golden
index 34e2118..5827410 100644
--- a/base/android/jni_generator/testFromJavaP.golden
+++ b/base/android/jni_generator/testFromJavaP.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kInputStreamClassPath[] = "java/io/InputStream";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_InputStream_clazz = NULL;
+#define InputStream_clazz(env) g_InputStream_clazz
 
 }  // namespace
 
@@ -34,11 +35,11 @@
 static jint Java_InputStream_available(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InputStream_clazz, 0);
+      InputStream_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InputStream_clazz,
+      env, InputStream_clazz(env),
       "available",
       "()I",
       &g_InputStream_available);
@@ -56,11 +57,11 @@
 static void Java_InputStream_close(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InputStream_clazz);
+      InputStream_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InputStream_clazz,
+      env, InputStream_clazz(env),
       "close",
       "()V",
       &g_InputStream_close);
@@ -77,11 +78,11 @@
 static void Java_InputStream_mark(JNIEnv* env, jobject obj, JniIntWrapper p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InputStream_clazz);
+      InputStream_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InputStream_clazz,
+      env, InputStream_clazz(env),
       "mark",
       "(I)V",
       &g_InputStream_mark);
@@ -98,11 +99,11 @@
 static jboolean Java_InputStream_markSupported(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InputStream_clazz, false);
+      InputStream_clazz(env), false);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InputStream_clazz,
+      env, InputStream_clazz(env),
       "markSupported",
       "()Z",
       &g_InputStream_markSupported);
@@ -120,11 +121,11 @@
 static jint Java_InputStream_readI(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InputStream_clazz, 0);
+      InputStream_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InputStream_clazz,
+      env, InputStream_clazz(env),
       "read",
       "()I",
       &g_InputStream_readI);
@@ -142,11 +143,11 @@
 static jint Java_InputStream_readI_AB(JNIEnv* env, jobject obj, jbyteArray p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InputStream_clazz, 0);
+      InputStream_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InputStream_clazz,
+      env, InputStream_clazz(env),
       "read",
       "([B)I",
       &g_InputStream_readI_AB);
@@ -169,11 +170,11 @@
     JniIntWrapper p2) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InputStream_clazz, 0);
+      InputStream_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InputStream_clazz,
+      env, InputStream_clazz(env),
       "read",
       "([BII)I",
       &g_InputStream_readI_AB_I_I);
@@ -191,11 +192,11 @@
 static void Java_InputStream_reset(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InputStream_clazz);
+      InputStream_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InputStream_clazz,
+      env, InputStream_clazz(env),
       "reset",
       "()V",
       &g_InputStream_reset);
@@ -212,11 +213,11 @@
 static jlong Java_InputStream_skip(JNIEnv* env, jobject obj, jlong p0) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_InputStream_clazz, 0);
+      InputStream_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InputStream_clazz,
+      env, InputStream_clazz(env),
       "skip",
       "(J)J",
       &g_InputStream_skip);
@@ -234,18 +235,18 @@
 static base::android::ScopedJavaLocalRef<jobject>
     Java_InputStream_Constructor(JNIEnv* env) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_InputStream_clazz,
-      g_InputStream_clazz, NULL);
+  CHECK_CLAZZ(env, InputStream_clazz(env),
+      InputStream_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_InputStream_clazz,
+      env, InputStream_clazz(env),
       "<init>",
       "()V",
       &g_InputStream_Constructor);
 
   jobject ret =
-      env->NewObject(g_InputStream_clazz,
+      env->NewObject(InputStream_clazz(env),
           method_id);
   jni_generator::CheckException(env);
   return base::android::ScopedJavaLocalRef<jobject>(env, ret);
diff --git a/base/android/jni_generator/testFromJavaPGenerics.golden b/base/android/jni_generator/testFromJavaPGenerics.golden
index 48582fd..5d78390 100644
--- a/base/android/jni_generator/testFromJavaPGenerics.golden
+++ b/base/android/jni_generator/testFromJavaPGenerics.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kHashSetClassPath[] = "java/util/HashSet";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_HashSet_clazz = NULL;
+#define HashSet_clazz(env) g_HashSet_clazz
 
 }  // namespace
 
@@ -34,11 +35,11 @@
 static void Java_HashSet_dummy(JNIEnv* env, jobject obj) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_HashSet_clazz);
+      HashSet_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_HashSet_clazz,
+      env, HashSet_clazz(env),
       "dummy",
       "()V",
       &g_HashSet_dummy);
diff --git a/base/android/jni_generator/testInnerClassNatives.golden b/base/android/jni_generator/testInnerClassNatives.golden
index 56a2e9b..2dee84e 100644
--- a/base/android/jni_generator/testInnerClassNatives.golden
+++ b/base/android/jni_generator/testInnerClassNatives.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -22,6 +22,7 @@
 const char kMyInnerClassClassPath[] = "org/chromium/TestJni$MyInnerClass";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_TestJni_clazz = NULL;
+#define TestJni_clazz(env) g_TestJni_clazz
 
 }  // namespace
 
@@ -44,11 +45,11 @@
 
   const int kMethodsMyInnerClassSize = arraysize(kMethodsMyInnerClass);
 
-  if (env->RegisterNatives(g_MyInnerClass_clazz,
+  if (env->RegisterNatives(MyInnerClass_clazz(env),
                            kMethodsMyInnerClass,
                            kMethodsMyInnerClassSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_MyInnerClass_clazz, __FILE__);
+        env, MyInnerClass_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden b/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden
index 07b857f..6ffbaac 100644
--- a/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden
+++ b/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -23,6 +23,7 @@
 const char kTestJniClassPath[] = "org/chromium/TestJni";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_TestJni_clazz = NULL;
+#define TestJni_clazz(env) g_TestJni_clazz
 
 }  // namespace
 
@@ -55,21 +56,21 @@
   const int kMethodsMyOtherInnerClassSize =
       arraysize(kMethodsMyOtherInnerClass);
 
-  if (env->RegisterNatives(g_MyOtherInnerClass_clazz,
+  if (env->RegisterNatives(MyOtherInnerClass_clazz(env),
                            kMethodsMyOtherInnerClass,
                            kMethodsMyOtherInnerClassSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_MyOtherInnerClass_clazz, __FILE__);
+        env, MyOtherInnerClass_clazz(env), __FILE__);
     return false;
   }
 
   const int kMethodsTestJniSize = arraysize(kMethodsTestJni);
 
-  if (env->RegisterNatives(g_TestJni_clazz,
+  if (env->RegisterNatives(TestJni_clazz(env),
                            kMethodsTestJni,
                            kMethodsTestJniSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_TestJni_clazz, __FILE__);
+        env, TestJni_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_generator/testInnerClassNativesMultiple.golden b/base/android/jni_generator/testInnerClassNativesMultiple.golden
index 6a7f04d..b74e65f 100644
--- a/base/android/jni_generator/testInnerClassNativesMultiple.golden
+++ b/base/android/jni_generator/testInnerClassNativesMultiple.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -24,6 +24,7 @@
 const char kMyInnerClassClassPath[] = "org/chromium/TestJni$MyInnerClass";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_TestJni_clazz = NULL;
+#define TestJni_clazz(env) g_TestJni_clazz
 
 }  // namespace
 
@@ -56,21 +57,21 @@
   const int kMethodsMyOtherInnerClassSize =
       arraysize(kMethodsMyOtherInnerClass);
 
-  if (env->RegisterNatives(g_MyOtherInnerClass_clazz,
+  if (env->RegisterNatives(MyOtherInnerClass_clazz(env),
                            kMethodsMyOtherInnerClass,
                            kMethodsMyOtherInnerClassSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_MyOtherInnerClass_clazz, __FILE__);
+        env, MyOtherInnerClass_clazz(env), __FILE__);
     return false;
   }
 
   const int kMethodsMyInnerClassSize = arraysize(kMethodsMyInnerClass);
 
-  if (env->RegisterNatives(g_MyInnerClass_clazz,
+  if (env->RegisterNatives(MyInnerClass_clazz(env),
                            kMethodsMyInnerClass,
                            kMethodsMyInnerClassSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_MyInnerClass_clazz, __FILE__);
+        env, MyInnerClass_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_generator/testJNIInitNativeNameOption.golden b/base/android/jni_generator/testJNIInitNativeNameOption.golden
index 0d5d3c6..53b5f17 100644
--- a/base/android/jni_generator/testJNIInitNativeNameOption.golden
+++ b/base/android/jni_generator/testJNIInitNativeNameOption.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kTestClassPath[] = "org/chromium/example/jni_generator/Test";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_Test_clazz = NULL;
+#define Test_clazz(env) g_Test_clazz
 
 }  // namespace
 
@@ -49,11 +50,11 @@
 
   const int kMethodsTestSize = arraysize(kMethodsTest);
 
-  if (env->RegisterNatives(g_Test_clazz,
+  if (env->RegisterNatives(Test_clazz(env),
                            kMethodsTest,
                            kMethodsTestSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_Test_clazz, __FILE__);
+        env, Test_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_generator/testJarJarRemapping.golden b/base/android/jni_generator/testJarJarRemapping.golden
index 9b2c0b3..75a35c5 100644
--- a/base/android/jni_generator/testJarJarRemapping.golden
+++ b/base/android/jni_generator/testJarJarRemapping.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kExampleClassPath[] = "com/test/jni_generator/Example";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_Example_clazz = NULL;
+#define Example_clazz(env) g_Example_clazz
 
 }  // namespace
 
@@ -69,11 +70,11 @@
 
   const int kMethodsExampleSize = arraysize(kMethodsExample);
 
-  if (env->RegisterNatives(g_Example_clazz,
+  if (env->RegisterNatives(Example_clazz(env),
                            kMethodsExample,
                            kMethodsExampleSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_Example_clazz, __FILE__);
+        env, Example_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_generator/testMultipleJNIAdditionalImport.golden b/base/android/jni_generator/testMultipleJNIAdditionalImport.golden
index 9cc1256..df5b1c8 100644
--- a/base/android/jni_generator/testMultipleJNIAdditionalImport.golden
+++ b/base/android/jni_generator/testMultipleJNIAdditionalImport.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kFooClassPath[] = "org/chromium/foo/Foo";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_Foo_clazz = NULL;
+#define Foo_clazz(env) g_Foo_clazz
 
 }  // namespace
 
@@ -34,12 +35,12 @@
 static void Java_Foo_calledByNative(JNIEnv* env, jobject callback1,
     jobject callback2) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_Foo_clazz,
-      g_Foo_clazz);
+  CHECK_CLAZZ(env, Foo_clazz(env),
+      Foo_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_Foo_clazz,
+      env, Foo_clazz(env),
       "calledByNative",
 
 "("
@@ -49,7 +50,7 @@
 "V",
       &g_Foo_calledByNative);
 
-     env->CallStaticVoidMethod(g_Foo_clazz,
+     env->CallStaticVoidMethod(Foo_clazz(env),
           method_id, callback1, callback2);
   jni_generator::CheckException(env);
 
@@ -72,11 +73,11 @@
 
   const int kMethodsFooSize = arraysize(kMethodsFoo);
 
-  if (env->RegisterNatives(g_Foo_clazz,
+  if (env->RegisterNatives(Foo_clazz(env),
                            kMethodsFoo,
                            kMethodsFooSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_Foo_clazz, __FILE__);
+        env, Foo_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_generator/testNativeExportsOption.golden b/base/android/jni_generator/testNativeExportsOption.golden
index 231be7c..5beaa82 100644
--- a/base/android/jni_generator/testNativeExportsOption.golden
+++ b/base/android/jni_generator/testNativeExportsOption.golden
@@ -21,7 +21,8 @@
 const char kSampleForTestsClassPath[] =
     "org/chromium/example/jni_generator/SampleForTests";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
-jclass g_SampleForTests_clazz = NULL;
+base::subtle::AtomicWord g_SampleForTests_clazz = 0;
+#define SampleForTests_clazz(env) base::android::LazyGetClass(env, kSampleForTestsClassPath, &g_SampleForTests_clazz)
 
 }  // namespace
 
@@ -79,11 +80,11 @@
     JniIntWrapper iParam) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_SampleForTests_clazz);
+      SampleForTests_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "testMethodWithParam",
 
 "("
@@ -105,11 +106,11 @@
     JniIntWrapper iParam) {
   /* Must call RegisterNativesImpl()  */
   CHECK_CLAZZ(env, obj,
-      g_SampleForTests_clazz, NULL);
+      SampleForTests_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_INSTANCE>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "testMethodWithParamAndReturn",
 
 "("
@@ -129,12 +130,12 @@
 static jint Java_SampleForTests_testStaticMethodWithParam(JNIEnv* env,
     JniIntWrapper iParam) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_SampleForTests_clazz,
-      g_SampleForTests_clazz, 0);
+  CHECK_CLAZZ(env, SampleForTests_clazz(env),
+      SampleForTests_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "testStaticMethodWithParam",
 
 "("
@@ -144,7 +145,7 @@
       &g_SampleForTests_testStaticMethodWithParam);
 
   jint ret =
-      env->CallStaticIntMethod(g_SampleForTests_clazz,
+      env->CallStaticIntMethod(SampleForTests_clazz(env),
           method_id, as_jint(iParam));
   jni_generator::CheckException(env);
   return ret;
@@ -153,12 +154,12 @@
 static base::subtle::AtomicWord g_SampleForTests_testMethodWithNoParam = 0;
 static jdouble Java_SampleForTests_testMethodWithNoParam(JNIEnv* env) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_SampleForTests_clazz,
-      g_SampleForTests_clazz, 0);
+  CHECK_CLAZZ(env, SampleForTests_clazz(env),
+      SampleForTests_clazz(env), 0);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "testMethodWithNoParam",
 
 "("
@@ -167,7 +168,7 @@
       &g_SampleForTests_testMethodWithNoParam);
 
   jdouble ret =
-      env->CallStaticDoubleMethod(g_SampleForTests_clazz,
+      env->CallStaticDoubleMethod(SampleForTests_clazz(env),
           method_id);
   jni_generator::CheckException(env);
   return ret;
@@ -178,12 +179,12 @@
 static base::android::ScopedJavaLocalRef<jstring>
     Java_SampleForTests_testStaticMethodWithNoParam(JNIEnv* env) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_SampleForTests_clazz,
-      g_SampleForTests_clazz, NULL);
+  CHECK_CLAZZ(env, SampleForTests_clazz(env),
+      SampleForTests_clazz(env), NULL);
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_SampleForTests_clazz,
+      env, SampleForTests_clazz(env),
       "testStaticMethodWithNoParam",
 
 "("
@@ -192,7 +193,7 @@
       &g_SampleForTests_testStaticMethodWithNoParam);
 
   jstring ret =
-      static_cast<jstring>(env->CallStaticObjectMethod(g_SampleForTests_clazz,
+static_cast<jstring>(env->CallStaticObjectMethod(SampleForTests_clazz(env),
           method_id));
   jni_generator::CheckException(env);
   return base::android::ScopedJavaLocalRef<jstring>(env, ret);
@@ -202,7 +203,8 @@
 // Step 3: RegisterNatives.
 
 static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) {
-  g_SampleForTests_clazz = static_cast<jclass>(env->NewWeakGlobalRef(clazz));
+    base::subtle::Release_Store(&g_SampleForTests_clazz,
+      static_cast<base::subtle::AtomicWord>(env->NewWeakGlobalRef(clazz));
 
   return true;
 }
diff --git a/base/android/jni_generator/testNatives.golden b/base/android/jni_generator/testNatives.golden
index db69a5a..8708fa2 100644
--- a/base/android/jni_generator/testNatives.golden
+++ b/base/android/jni_generator/testNatives.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kTestJniClassPath[] = "org/chromium/TestJni";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_TestJni_clazz = NULL;
+#define TestJni_clazz(env) g_TestJni_clazz
 
 }  // namespace
 
@@ -202,11 +203,11 @@
 
   const int kMethodsTestJniSize = arraysize(kMethodsTestJni);
 
-  if (env->RegisterNatives(g_TestJni_clazz,
+  if (env->RegisterNatives(TestJni_clazz(env),
                            kMethodsTestJni,
                            kMethodsTestJniSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_TestJni_clazz, __FILE__);
+        env, TestJni_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_generator/testNativesLong.golden b/base/android/jni_generator/testNativesLong.golden
index 25b5fad..11e7c49 100644
--- a/base/android/jni_generator/testNativesLong.golden
+++ b/base/android/jni_generator/testNativesLong.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kTestJniClassPath[] = "org/chromium/TestJni";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_TestJni_clazz = NULL;
+#define TestJni_clazz(env) g_TestJni_clazz
 
 }  // namespace
 
@@ -49,11 +50,11 @@
 
   const int kMethodsTestJniSize = arraysize(kMethodsTestJni);
 
-  if (env->RegisterNatives(g_TestJni_clazz,
+  if (env->RegisterNatives(TestJni_clazz(env),
                            kMethodsTestJni,
                            kMethodsTestJniSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_TestJni_clazz, __FILE__);
+        env, TestJni_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_generator/testPureNativeMethodsOption.golden b/base/android/jni_generator/testPureNativeMethodsOption.golden
index 8d9ee9e..a45a386 100644
--- a/base/android/jni_generator/testPureNativeMethodsOption.golden
+++ b/base/android/jni_generator/testPureNativeMethodsOption.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kTestClassPath[] = "org/chromium/example/jni_generator/Test";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_Test_clazz = NULL;
+#define Test_clazz(env) g_Test_clazz
 
 }  // namespace
 
@@ -50,11 +51,11 @@
 
   const int kMethodsTestSize = arraysize(kMethodsTest);
 
-  if (env->RegisterNatives(g_Test_clazz,
+  if (env->RegisterNatives(Test_clazz(env),
                            kMethodsTest,
                            kMethodsTestSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_Test_clazz, __FILE__);
+        env, Test_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_generator/testSingleJNIAdditionalImport.golden b/base/android/jni_generator/testSingleJNIAdditionalImport.golden
index e395657..787f7f5 100644
--- a/base/android/jni_generator/testSingleJNIAdditionalImport.golden
+++ b/base/android/jni_generator/testSingleJNIAdditionalImport.golden
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -21,6 +21,7 @@
 const char kFooClassPath[] = "org/chromium/foo/Foo";
 // Leaking this jclass as we cannot use LazyInstance from some threads.
 jclass g_Foo_clazz = NULL;
+#define Foo_clazz(env) g_Foo_clazz
 
 }  // namespace
 
@@ -32,12 +33,12 @@
 static base::subtle::AtomicWord g_Foo_calledByNative = 0;
 static void Java_Foo_calledByNative(JNIEnv* env, jobject callback) {
   /* Must call RegisterNativesImpl()  */
-  CHECK_CLAZZ(env, g_Foo_clazz,
-      g_Foo_clazz);
+  CHECK_CLAZZ(env, Foo_clazz(env),
+      Foo_clazz(env));
   jmethodID method_id =
       base::android::MethodID::LazyGet<
       base::android::MethodID::TYPE_STATIC>(
-      env, g_Foo_clazz,
+      env, Foo_clazz(env),
       "calledByNative",
 
 "("
@@ -46,7 +47,7 @@
 "V",
       &g_Foo_calledByNative);
 
-     env->CallStaticVoidMethod(g_Foo_clazz,
+     env->CallStaticVoidMethod(Foo_clazz(env),
           method_id, callback);
   jni_generator::CheckException(env);
 
@@ -68,11 +69,11 @@
 
   const int kMethodsFooSize = arraysize(kMethodsFoo);
 
-  if (env->RegisterNatives(g_Foo_clazz,
+  if (env->RegisterNatives(Foo_clazz(env),
                            kMethodsFoo,
                            kMethodsFooSize) < 0) {
     jni_generator::HandleRegistrationError(
-        env, g_Foo_clazz, __FILE__);
+        env, Foo_clazz(env), __FILE__);
     return false;
   }
 
diff --git a/base/android/jni_utils.cc b/base/android/jni_utils.cc
new file mode 100644
index 0000000..b4d682b
--- /dev/null
+++ b/base/android/jni_utils.cc
@@ -0,0 +1,25 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/android/jni_utils.h"
+
+#include "base/android/jni_android.h"
+#include "base/android/scoped_java_ref.h"
+
+#include "jni/JNIUtils_jni.h"
+
+namespace base {
+namespace android {
+
+ScopedJavaLocalRef<jobject> GetClassLoader(JNIEnv* env) {
+  return Java_JNIUtils_getClassLoader(env);
+}
+
+bool RegisterJNIUtils(JNIEnv* env) {
+  return RegisterNativesImpl(env);
+}
+
+}  // namespace android
+}  // namespace base
+
diff --git a/base/android/jni_utils.h b/base/android/jni_utils.h
new file mode 100644
index 0000000..b793aed
--- /dev/null
+++ b/base/android/jni_utils.h
@@ -0,0 +1,27 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_ANDROID_JNI_UTILS_H_
+#define BASE_ANDROID_JNI_UTILS_H_
+
+#include <jni.h>
+
+#include "base/android/scoped_java_ref.h"
+
+namespace base {
+
+namespace android {
+
+// Gets a ClassLoader instance capable of loading Chromium java classes.
+// This should be called either from JNI_OnLoad or from within a method called
+// via JNI from Java.
+BASE_EXPORT ScopedJavaLocalRef<jobject> GetClassLoader(JNIEnv* env);
+
+bool RegisterJNIUtils(JNIEnv* env);
+
+}  // namespace android
+}  // namespace base
+
+#endif  // BASE_ANDROID_JNI_UTILS_H_
+
diff --git a/base/android/linker/linker_jni.cc b/base/android/linker/linker_jni.cc
index b0b464b..d33e6fa 100644
--- a/base/android/linker/linker_jni.cc
+++ b/base/android/linker/linker_jni.cc
@@ -451,7 +451,7 @@
   LOG_INFO("%s: Calling back to java with handler %p, opaque %p",
            __FUNCTION__, callback->handler, callback->opaque);
 
-  jlong arg = static_cast<jlong>(reinterpret_cast<intptr_t>(callback));
+  jlong arg = static_cast<jlong>(reinterpret_cast<uintptr_t>(callback));
   env->CallStaticVoidMethod(
       s_java_callback_bindings.clazz, s_java_callback_bindings.method_id, arg);
 
diff --git a/base/base.gyp b/base/base.gyp
index ee19b8b..d3c397c 100644
--- a/base/base.gyp
+++ b/base/base.gyp
@@ -1282,6 +1282,7 @@
             'android/java/src/org/chromium/base/EventLog.java',
             'android/java/src/org/chromium/base/FieldTrialList.java',
             'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java',
+            'android/java/src/org/chromium/base/JNIUtils.java',
             'android/java/src/org/chromium/base/library_loader/LibraryLoader.java',
             'android/java/src/org/chromium/base/MemoryPressureListener.java',
             'android/java/src/org/chromium/base/JavaHandlerThread.java',
diff --git a/base/base.gypi b/base/base.gypi
index 8a3a56c..cfa9d61 100644
--- a/base/base.gypi
+++ b/base/base.gypi
@@ -55,6 +55,8 @@
           'android/jni_registrar.h',
           'android/jni_string.cc',
           'android/jni_string.h',
+          'android/jni_utils.cc',
+          'android/jni_utils.h',
           'android/jni_weak_ref.cc',
           'android/jni_weak_ref.h',
           'android/library_loader/library_loader_hooks.cc',
diff --git a/base/base.target.darwin-arm.mk b/base/base.target.darwin-arm.mk
index 90b7760..e9557cf 100644
--- a/base/base.target.darwin-arm.mk
+++ b/base/base.target.darwin-arm.mk
@@ -57,6 +57,7 @@
 	base/android/jni_array.cc \
 	base/android/jni_registrar.cc \
 	base/android/jni_string.cc \
+	base/android/jni_utils.cc \
 	base/android/jni_weak_ref.cc \
 	base/android/library_loader/library_loader_hooks.cc \
 	base/android/memory_pressure_listener_android.cc \
diff --git a/base/base.target.darwin-arm64.mk b/base/base.target.darwin-arm64.mk
index ef1e083..eab46f9 100644
--- a/base/base.target.darwin-arm64.mk
+++ b/base/base.target.darwin-arm64.mk
@@ -57,6 +57,7 @@
 	base/android/jni_array.cc \
 	base/android/jni_registrar.cc \
 	base/android/jni_string.cc \
+	base/android/jni_utils.cc \
 	base/android/jni_weak_ref.cc \
 	base/android/library_loader/library_loader_hooks.cc \
 	base/android/memory_pressure_listener_android.cc \
diff --git a/base/base.target.darwin-mips.mk b/base/base.target.darwin-mips.mk
index b63bc38..f3651ef 100644
--- a/base/base.target.darwin-mips.mk
+++ b/base/base.target.darwin-mips.mk
@@ -57,6 +57,7 @@
 	base/android/jni_array.cc \
 	base/android/jni_registrar.cc \
 	base/android/jni_string.cc \
+	base/android/jni_utils.cc \
 	base/android/jni_weak_ref.cc \
 	base/android/library_loader/library_loader_hooks.cc \
 	base/android/memory_pressure_listener_android.cc \
diff --git a/base/base.target.darwin-x86.mk b/base/base.target.darwin-x86.mk
index 34516b4..66dd067 100644
--- a/base/base.target.darwin-x86.mk
+++ b/base/base.target.darwin-x86.mk
@@ -57,6 +57,7 @@
 	base/android/jni_array.cc \
 	base/android/jni_registrar.cc \
 	base/android/jni_string.cc \
+	base/android/jni_utils.cc \
 	base/android/jni_weak_ref.cc \
 	base/android/library_loader/library_loader_hooks.cc \
 	base/android/memory_pressure_listener_android.cc \
diff --git a/base/base.target.darwin-x86_64.mk b/base/base.target.darwin-x86_64.mk
index 9045196..81d6428 100644
--- a/base/base.target.darwin-x86_64.mk
+++ b/base/base.target.darwin-x86_64.mk
@@ -57,6 +57,7 @@
 	base/android/jni_array.cc \
 	base/android/jni_registrar.cc \
 	base/android/jni_string.cc \
+	base/android/jni_utils.cc \
 	base/android/jni_weak_ref.cc \
 	base/android/library_loader/library_loader_hooks.cc \
 	base/android/memory_pressure_listener_android.cc \
diff --git a/base/base.target.linux-arm.mk b/base/base.target.linux-arm.mk
index 90b7760..e9557cf 100644
--- a/base/base.target.linux-arm.mk
+++ b/base/base.target.linux-arm.mk
@@ -57,6 +57,7 @@
 	base/android/jni_array.cc \
 	base/android/jni_registrar.cc \
 	base/android/jni_string.cc \
+	base/android/jni_utils.cc \
 	base/android/jni_weak_ref.cc \
 	base/android/library_loader/library_loader_hooks.cc \
 	base/android/memory_pressure_listener_android.cc \
diff --git a/base/base.target.linux-arm64.mk b/base/base.target.linux-arm64.mk
index ef1e083..eab46f9 100644
--- a/base/base.target.linux-arm64.mk
+++ b/base/base.target.linux-arm64.mk
@@ -57,6 +57,7 @@
 	base/android/jni_array.cc \
 	base/android/jni_registrar.cc \
 	base/android/jni_string.cc \
+	base/android/jni_utils.cc \
 	base/android/jni_weak_ref.cc \
 	base/android/library_loader/library_loader_hooks.cc \
 	base/android/memory_pressure_listener_android.cc \
diff --git a/base/base.target.linux-mips.mk b/base/base.target.linux-mips.mk
index b63bc38..f3651ef 100644
--- a/base/base.target.linux-mips.mk
+++ b/base/base.target.linux-mips.mk
@@ -57,6 +57,7 @@
 	base/android/jni_array.cc \
 	base/android/jni_registrar.cc \
 	base/android/jni_string.cc \
+	base/android/jni_utils.cc \
 	base/android/jni_weak_ref.cc \
 	base/android/library_loader/library_loader_hooks.cc \
 	base/android/memory_pressure_listener_android.cc \
diff --git a/base/base.target.linux-x86.mk b/base/base.target.linux-x86.mk
index 34516b4..66dd067 100644
--- a/base/base.target.linux-x86.mk
+++ b/base/base.target.linux-x86.mk
@@ -57,6 +57,7 @@
 	base/android/jni_array.cc \
 	base/android/jni_registrar.cc \
 	base/android/jni_string.cc \
+	base/android/jni_utils.cc \
 	base/android/jni_weak_ref.cc \
 	base/android/library_loader/library_loader_hooks.cc \
 	base/android/memory_pressure_listener_android.cc \
diff --git a/base/base.target.linux-x86_64.mk b/base/base.target.linux-x86_64.mk
index 9045196..81d6428 100644
--- a/base/base.target.linux-x86_64.mk
+++ b/base/base.target.linux-x86_64.mk
@@ -57,6 +57,7 @@
 	base/android/jni_array.cc \
 	base/android/jni_registrar.cc \
 	base/android/jni_string.cc \
+	base/android/jni_utils.cc \
 	base/android/jni_weak_ref.cc \
 	base/android/library_loader/library_loader_hooks.cc \
 	base/android/memory_pressure_listener_android.cc \
diff --git a/base/base_jni_headers.target.darwin-arm.mk b/base/base_jni_headers.target.darwin-arm.mk
index 0adb114..10b2a3a 100644
--- a/base/base_jni_headers.target.darwin-arm.mk
+++ b/base/base_jni_headers.target.darwin-arm.mk
@@ -17,7 +17,7 @@
 
 
 ### Generated for rule "base_base_gyp_base_jni_headers_target_generate_jni_headers":
-# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -90,6 +90,15 @@
 	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/ImportantFileWriterAndroid.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
 
 
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: $(LOCAL_PATH)/base/android/java/src/org/chromium/base/JNIUtils.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(LOCAL_PATH)/android_webview/build/jarjar-rules.txt $(GYP_TARGET_DEPENDENCIES)
+	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/JNIUtils.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
+
+
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -190,6 +199,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
@@ -213,6 +223,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
diff --git a/base/base_jni_headers.target.darwin-arm64.mk b/base/base_jni_headers.target.darwin-arm64.mk
index 5bbe2cc..a417e5a 100644
--- a/base/base_jni_headers.target.darwin-arm64.mk
+++ b/base/base_jni_headers.target.darwin-arm64.mk
@@ -17,7 +17,7 @@
 
 
 ### Generated for rule "base_base_gyp_base_jni_headers_target_generate_jni_headers":
-# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -90,6 +90,15 @@
 	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/ImportantFileWriterAndroid.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
 
 
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: $(LOCAL_PATH)/base/android/java/src/org/chromium/base/JNIUtils.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(LOCAL_PATH)/android_webview/build/jarjar-rules.txt $(GYP_TARGET_DEPENDENCIES)
+	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/JNIUtils.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
+
+
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -190,6 +199,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
@@ -213,6 +223,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
diff --git a/base/base_jni_headers.target.darwin-mips.mk b/base/base_jni_headers.target.darwin-mips.mk
index e98ef31..a6064e1 100644
--- a/base/base_jni_headers.target.darwin-mips.mk
+++ b/base/base_jni_headers.target.darwin-mips.mk
@@ -17,7 +17,7 @@
 
 
 ### Generated for rule "base_base_gyp_base_jni_headers_target_generate_jni_headers":
-# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -90,6 +90,15 @@
 	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/ImportantFileWriterAndroid.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
 
 
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: $(LOCAL_PATH)/base/android/java/src/org/chromium/base/JNIUtils.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(LOCAL_PATH)/android_webview/build/jarjar-rules.txt $(GYP_TARGET_DEPENDENCIES)
+	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/JNIUtils.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
+
+
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -190,6 +199,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
@@ -213,6 +223,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
diff --git a/base/base_jni_headers.target.darwin-x86.mk b/base/base_jni_headers.target.darwin-x86.mk
index c3de127..be3acd2 100644
--- a/base/base_jni_headers.target.darwin-x86.mk
+++ b/base/base_jni_headers.target.darwin-x86.mk
@@ -17,7 +17,7 @@
 
 
 ### Generated for rule "base_base_gyp_base_jni_headers_target_generate_jni_headers":
-# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -90,6 +90,15 @@
 	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/ImportantFileWriterAndroid.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
 
 
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: $(LOCAL_PATH)/base/android/java/src/org/chromium/base/JNIUtils.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(LOCAL_PATH)/android_webview/build/jarjar-rules.txt $(GYP_TARGET_DEPENDENCIES)
+	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/JNIUtils.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
+
+
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -190,6 +199,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
@@ -213,6 +223,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
diff --git a/base/base_jni_headers.target.darwin-x86_64.mk b/base/base_jni_headers.target.darwin-x86_64.mk
index d355eaf..d6df8ab 100644
--- a/base/base_jni_headers.target.darwin-x86_64.mk
+++ b/base/base_jni_headers.target.darwin-x86_64.mk
@@ -17,7 +17,7 @@
 
 
 ### Generated for rule "base_base_gyp_base_jni_headers_target_generate_jni_headers":
-# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -90,6 +90,15 @@
 	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/ImportantFileWriterAndroid.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
 
 
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: $(LOCAL_PATH)/base/android/java/src/org/chromium/base/JNIUtils.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(LOCAL_PATH)/android_webview/build/jarjar-rules.txt $(GYP_TARGET_DEPENDENCIES)
+	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/JNIUtils.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
+
+
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -190,6 +199,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
@@ -213,6 +223,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
diff --git a/base/base_jni_headers.target.linux-arm.mk b/base/base_jni_headers.target.linux-arm.mk
index 0adb114..10b2a3a 100644
--- a/base/base_jni_headers.target.linux-arm.mk
+++ b/base/base_jni_headers.target.linux-arm.mk
@@ -17,7 +17,7 @@
 
 
 ### Generated for rule "base_base_gyp_base_jni_headers_target_generate_jni_headers":
-# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -90,6 +90,15 @@
 	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/ImportantFileWriterAndroid.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
 
 
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: $(LOCAL_PATH)/base/android/java/src/org/chromium/base/JNIUtils.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(LOCAL_PATH)/android_webview/build/jarjar-rules.txt $(GYP_TARGET_DEPENDENCIES)
+	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/JNIUtils.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
+
+
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -190,6 +199,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
@@ -213,6 +223,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
diff --git a/base/base_jni_headers.target.linux-arm64.mk b/base/base_jni_headers.target.linux-arm64.mk
index 5bbe2cc..a417e5a 100644
--- a/base/base_jni_headers.target.linux-arm64.mk
+++ b/base/base_jni_headers.target.linux-arm64.mk
@@ -17,7 +17,7 @@
 
 
 ### Generated for rule "base_base_gyp_base_jni_headers_target_generate_jni_headers":
-# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -90,6 +90,15 @@
 	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/ImportantFileWriterAndroid.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
 
 
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: $(LOCAL_PATH)/base/android/java/src/org/chromium/base/JNIUtils.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(LOCAL_PATH)/android_webview/build/jarjar-rules.txt $(GYP_TARGET_DEPENDENCIES)
+	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/JNIUtils.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
+
+
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -190,6 +199,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
@@ -213,6 +223,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
diff --git a/base/base_jni_headers.target.linux-mips.mk b/base/base_jni_headers.target.linux-mips.mk
index e98ef31..a6064e1 100644
--- a/base/base_jni_headers.target.linux-mips.mk
+++ b/base/base_jni_headers.target.linux-mips.mk
@@ -17,7 +17,7 @@
 
 
 ### Generated for rule "base_base_gyp_base_jni_headers_target_generate_jni_headers":
-# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -90,6 +90,15 @@
 	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/ImportantFileWriterAndroid.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
 
 
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: $(LOCAL_PATH)/base/android/java/src/org/chromium/base/JNIUtils.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(LOCAL_PATH)/android_webview/build/jarjar-rules.txt $(GYP_TARGET_DEPENDENCIES)
+	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/JNIUtils.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
+
+
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -190,6 +199,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
@@ -213,6 +223,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
diff --git a/base/base_jni_headers.target.linux-x86.mk b/base/base_jni_headers.target.linux-x86.mk
index c3de127..be3acd2 100644
--- a/base/base_jni_headers.target.linux-x86.mk
+++ b/base/base_jni_headers.target.linux-x86.mk
@@ -17,7 +17,7 @@
 
 
 ### Generated for rule "base_base_gyp_base_jni_headers_target_generate_jni_headers":
-# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -90,6 +90,15 @@
 	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/ImportantFileWriterAndroid.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
 
 
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: $(LOCAL_PATH)/base/android/java/src/org/chromium/base/JNIUtils.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(LOCAL_PATH)/android_webview/build/jarjar-rules.txt $(GYP_TARGET_DEPENDENCIES)
+	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/JNIUtils.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
+
+
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -190,6 +199,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
@@ -213,6 +223,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
diff --git a/base/base_jni_headers.target.linux-x86_64.mk b/base/base_jni_headers.target.linux-x86_64.mk
index d355eaf..d6df8ab 100644
--- a/base/base_jni_headers.target.linux-x86_64.mk
+++ b/base/base_jni_headers.target.linux-x86_64.mk
@@ -17,7 +17,7 @@
 
 
 ### Generated for rule "base_base_gyp_base_jni_headers_target_generate_jni_headers":
-# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
+# "{'inputs': ['../base/android/jni_generator/jni_generator.py', '../android_webview/build/jarjar-rules.txt'], 'process_outputs_as_sources': '1', 'extension': 'java', 'outputs': ['$(gyp_shared_intermediate_dir)/base/jni/%(INPUT_ROOT)s_jni.h'], 'rule_name': 'generate_jni_headers', 'rule_sources': ['android/java/src/org/chromium/base/ApplicationStatus.java', 'android/java/src/org/chromium/base/BuildInfo.java', 'android/java/src/org/chromium/base/CommandLine.java', 'android/java/src/org/chromium/base/ContentUriUtils.java', 'android/java/src/org/chromium/base/CpuFeatures.java', 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', 'android/java/src/org/chromium/base/PathService.java', 'android/java/src/org/chromium/base/PathUtils.java', 'android/java/src/org/chromium/base/PowerMonitor.java', 'android/java/src/org/chromium/base/SystemMessageHandler.java', 'android/java/src/org/chromium/base/SysUtils.java', 'android/java/src/org/chromium/base/ThreadUtils.java', 'android/java/src/org/chromium/base/TraceEvent.java'], 'action': ['../base/android/jni_generator/jni_generator.py', '--input_file', '$(RULE_SOURCES)', '--output_dir', '$(gyp_shared_intermediate_dir)/base/jni', '--includes', 'base/android/jni_generator/jni_generator_helper.h', '--optimize_generation', '0', '--jarjar', '../android_webview/build/jarjar-rules.txt', '--ptr_type', 'long', '--native_exports'], 'message': 'Generating JNI bindings from $(RULE_SOURCES)'}":
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/ApplicationStatus_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -90,6 +90,15 @@
 	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/ImportantFileWriterAndroid.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
 
 
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_local_path := $(LOCAL_PATH)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
+$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h: $(LOCAL_PATH)/base/android/java/src/org/chromium/base/JNIUtils.java $(LOCAL_PATH)/base/android/jni_generator/jni_generator.py $(LOCAL_PATH)/android_webview/build/jarjar-rules.txt $(GYP_TARGET_DEPENDENCIES)
+	mkdir -p $(gyp_shared_intermediate_dir)/base/jni; cd $(gyp_local_path)/base; ../base/android/jni_generator/jni_generator.py --input_file android/java/src/org/chromium/base/JNIUtils.java --output_dir "$(gyp_shared_intermediate_dir)/base/jni" --includes base/android/jni_generator/jni_generator_helper.h --optimize_generation 0 --jarjar ../android_webview/build/jarjar-rules.txt --ptr_type long --native_exports
+
+
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
@@ -190,6 +199,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
@@ -213,6 +223,7 @@
 	$(gyp_shared_intermediate_dir)/base/jni/EventLog_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/FieldTrialList_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/ImportantFileWriterAndroid_jni.h \
+	$(gyp_shared_intermediate_dir)/base/jni/JNIUtils_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/LibraryLoader_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/MemoryPressureListener_jni.h \
 	$(gyp_shared_intermediate_dir)/base/jni/JavaHandlerThread_jni.h \
diff --git a/base/mac/sdk_forward_declarations.h b/base/mac/sdk_forward_declarations.h
index 61b4a6a..fad141f 100644
--- a/base/mac/sdk_forward_declarations.h
+++ b/base/mac/sdk_forward_declarations.h
@@ -254,4 +254,18 @@
 
 #endif  // MAC_OS_X_VERSION_10_9
 
+#if !defined(MAC_OS_X_VERSION_10_10) || \
+    MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10
+
+@interface NSUserActivity : NSObject
+
+@property (readonly, copy) NSString* activityType;
+@property (copy) NSURL* webPageURL;
+
+@end
+
+BASE_EXPORT extern "C" NSString* const NSUserActivityTypeBrowsingWeb;
+
+#endif  // MAC_OS_X_VERSION_10_10
+
 #endif  // BASE_MAC_SDK_FORWARD_DECLARATIONS_H_
diff --git a/base/mac/sdk_forward_declarations.mm b/base/mac/sdk_forward_declarations.mm
index a402a41..22986da 100644
--- a/base/mac/sdk_forward_declarations.mm
+++ b/base/mac/sdk_forward_declarations.mm
@@ -12,3 +12,12 @@
     @"NSWindowWillEnterFullScreenNotification";
 
 #endif  // MAC_OS_X_VERSION_10_7
+
+// Replicate specific 10.10 SDK declarations for building with prior SDKs.
+#if !defined(MAC_OS_X_VERSION_10_10) || \
+    MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10
+
+NSString* const NSUserActivityTypeBrowsingWeb =
+    @"NSUserActivityTypeBrowsingWeb";
+
+#endif  // MAC_OS_X_VERSION_10_10
diff --git a/build/util/LASTCHANGE b/build/util/LASTCHANGE
index bb6266b..7e6e551 100644
--- a/build/util/LASTCHANGE
+++ b/build/util/LASTCHANGE
@@ -1 +1 @@
-LASTCHANGE=290690
+LASTCHANGE=a4726a104436
diff --git a/build/util/LASTCHANGE.blink b/build/util/LASTCHANGE.blink
index 2887aef..0558f2d 100644
--- a/build/util/LASTCHANGE.blink
+++ b/build/util/LASTCHANGE.blink
@@ -1 +1 @@
-LASTCHANGE=180871
+LASTCHANGE=181577
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index e6e60f5..87cb2f8 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -771,7 +771,7 @@
 
 // TODO(wjmaclean) Convert so that bounds returns SizeF.
 gfx::Size LayerImpl::bounds() const {
-  return ToFlooredSize(temporary_impl_bounds_);
+  return ToCeiledSize(temporary_impl_bounds_);
 }
 
 void LayerImpl::SetBounds(const gfx::Size& bounds) {
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index 49ad601..c477720 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -264,6 +264,12 @@
   // unused can be considered for removal.
   std::vector<PictureLayerTiling*> seen_tilings;
 
+  // Ignore missing tiles outside of viewport for tile priority. This is
+  // normally the same as draw viewport but can be independently overridden by
+  // embedders like Android WebView with SetExternalDrawConstraints.
+  gfx::Rect scaled_viewport_for_tile_priority = gfx::ScaleToEnclosingRect(
+      GetViewportForTilePriorityInContentSpace(), max_contents_scale);
+
   size_t missing_tile_count = 0u;
   size_t on_demand_missing_tile_count = 0u;
   for (PictureLayerTilingSet::CoverageIterator iter(tilings_.get(),
@@ -281,6 +287,7 @@
     append_quads_data->visible_content_area +=
         visible_geometry_rect.width() * visible_geometry_rect.height();
 
+    bool has_draw_quad = false;
     if (*iter && iter->IsReadyToDraw()) {
       const ManagedTileState::TileVersion& tile_version =
           iter->GetTileVersionForDrawing();
@@ -290,8 +297,10 @@
           gfx::Rect opaque_rect = iter->opaque_rect();
           opaque_rect.Intersect(geometry_rect);
 
-          if (iter->contents_scale() != ideal_contents_scale_)
+          if (iter->contents_scale() != ideal_contents_scale_ &&
+              geometry_rect.Intersects(scaled_viewport_for_tile_priority)) {
             append_quads_data->num_incomplete_tiles++;
+          }
 
           TileDrawQuad* quad =
               render_pass->CreateAndAppendDrawQuad<TileDrawQuad>();
@@ -303,6 +312,7 @@
                        texture_rect,
                        iter.texture_size(),
                        tile_version.contents_swizzled());
+          has_draw_quad = true;
           break;
         }
         case ManagedTileState::TileVersion::PICTURE_PILE_MODE: {
@@ -333,6 +343,7 @@
                        iter->content_rect(),
                        iter->contents_scale(),
                        pile_);
+          has_draw_quad = true;
           break;
         }
         case ManagedTileState::TileVersion::SOLID_COLOR_MODE: {
@@ -343,10 +354,13 @@
                        visible_geometry_rect,
                        tile_version.get_solid_color(),
                        false);
+          has_draw_quad = true;
           break;
         }
       }
-    } else {
+    }
+
+    if (!has_draw_quad) {
       if (draw_checkerboard_for_missing_tiles()) {
         CheckerboardDrawQuad* quad =
             render_pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>();
@@ -364,10 +378,12 @@
                      false);
       }
 
-      append_quads_data->num_missing_tiles++;
+      if (geometry_rect.Intersects(scaled_viewport_for_tile_priority)) {
+        append_quads_data->num_missing_tiles++;
+        ++missing_tile_count;
+      }
       append_quads_data->approximated_visible_content_area +=
           visible_geometry_rect.width() * visible_geometry_rect.height();
-      ++missing_tile_count;
       continue;
     }
 
@@ -472,6 +488,28 @@
   if (!tiling_needs_update)
     return;
 
+  gfx::Rect visible_rect_in_content_space(
+      GetViewportForTilePriorityInContentSpace());
+  visible_rect_in_content_space.Intersect(visible_content_rect());
+  gfx::Rect visible_layer_rect = gfx::ScaleToEnclosingRect(
+      visible_rect_in_content_space, 1.f / contents_scale_x());
+  WhichTree tree =
+      layer_tree_impl()->IsActiveTree() ? ACTIVE_TREE : PENDING_TREE;
+  for (size_t i = 0; i < tilings_->num_tilings(); ++i) {
+    tilings_->tiling_at(i)->UpdateTilePriorities(tree,
+                                                 visible_layer_rect,
+                                                 ideal_contents_scale_,
+                                                 current_frame_time_in_seconds,
+                                                 occlusion_tracker,
+                                                 render_target(),
+                                                 draw_transform());
+  }
+
+  // Tile priorities were modified.
+  layer_tree_impl()->DidModifyTilePriorities();
+}
+
+gfx::Rect PictureLayerImpl::GetViewportForTilePriorityInContentSpace() const {
   // If visible_rect_for_tile_priority_ is empty or
   // viewport_rect_for_tile_priority_ is set to be different from the device
   // viewport, try to inverse project the viewport into layer space and use
@@ -492,22 +530,7 @@
     }
   }
 
-  gfx::Rect visible_layer_rect = gfx::ScaleToEnclosingRect(
-      visible_rect_in_content_space, 1.f / contents_scale_x());
-  WhichTree tree =
-      layer_tree_impl()->IsActiveTree() ? ACTIVE_TREE : PENDING_TREE;
-  for (size_t i = 0; i < tilings_->num_tilings(); ++i) {
-    tilings_->tiling_at(i)->UpdateTilePriorities(tree,
-                                                 visible_layer_rect,
-                                                 ideal_contents_scale_,
-                                                 current_frame_time_in_seconds,
-                                                 occlusion_tracker,
-                                                 render_target(),
-                                                 draw_transform());
-  }
-
-  // Tile priorities were modified.
-  layer_tree_impl()->DidModifyTilePriorities();
+  return visible_rect_in_content_space;
 }
 
 void PictureLayerImpl::NotifyTileStateChanged(const Tile* tile) {
@@ -765,6 +788,12 @@
 
   gfx::Rect rect(visible_content_rect());
 
+  // Only mark tiles inside the viewport for tile priority as required for
+  // activation. This viewport is normally the same as the draw viewport but
+  // can be independently overridden by embedders like Android WebView with
+  // SetExternalDrawConstraints.
+  rect.Intersect(GetViewportForTilePriorityInContentSpace());
+
   float min_acceptable_scale =
       std::min(raster_contents_scale_, ideal_contents_scale_);
 
diff --git a/cc/layers/picture_layer_impl.h b/cc/layers/picture_layer_impl.h
index 7623c4d..f70d3a2 100644
--- a/cc/layers/picture_layer_impl.h
+++ b/cc/layers/picture_layer_impl.h
@@ -172,6 +172,7 @@
       float contents_scale,
       const gfx::Rect& rect,
       const Region& missing_region) const;
+  gfx::Rect GetViewportForTilePriorityInContentSpace() const;
 
   void DoPostCommitInitializationIfNeeded() {
     if (needs_post_commit_initialization_)
diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc
index 5eae6a6..ec999e6 100644
--- a/cc/layers/picture_layer_impl_unittest.cc
+++ b/cc/layers/picture_layer_impl_unittest.cc
@@ -1450,6 +1450,97 @@
   EXPECT_GT(num_offscreen, 0);
 }
 
+TEST_F(PictureLayerImplTest, TileOutsideOfViewportForTilePriorityNotRequired) {
+  base::TimeTicks time_ticks;
+  time_ticks += base::TimeDelta::FromMilliseconds(1);
+  host_impl_.SetCurrentFrameTimeTicks(time_ticks);
+
+  gfx::Size tile_size(100, 100);
+  gfx::Size layer_bounds(400, 400);
+  gfx::Rect external_viewport_for_tile_priority(400, 200);
+  gfx::Rect visible_content_rect(200, 400);
+
+  scoped_refptr<FakePicturePileImpl> active_pile =
+      FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
+  scoped_refptr<FakePicturePileImpl> pending_pile =
+      FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
+  SetupTrees(pending_pile, active_pile);
+
+  active_layer_->set_fixed_tile_size(tile_size);
+  pending_layer_->set_fixed_tile_size(tile_size);
+  ASSERT_TRUE(pending_layer_->CanHaveTilings());
+  PictureLayerTiling* tiling = pending_layer_->AddTiling(1.f);
+
+  // Set external viewport for tile priority.
+  gfx::Rect viewport = gfx::Rect(layer_bounds);
+  gfx::Transform transform;
+  gfx::Transform transform_for_tile_priority;
+  bool resourceless_software_draw = false;
+  host_impl_.SetExternalDrawConstraints(transform,
+                                        viewport,
+                                        viewport,
+                                        external_viewport_for_tile_priority,
+                                        transform_for_tile_priority,
+                                        resourceless_software_draw);
+  host_impl_.pending_tree()->UpdateDrawProperties();
+
+  // Set visible content rect that is different from
+  // external_viewport_for_tile_priority.
+  pending_layer_->draw_properties().visible_content_rect = visible_content_rect;
+  time_ticks += base::TimeDelta::FromMilliseconds(200);
+  host_impl_.SetCurrentFrameTimeTicks(time_ticks);
+  pending_layer_->UpdateTiles(NULL);
+
+  pending_layer_->MarkVisibleResourcesAsRequired();
+
+  // Intersect the two rects. Any tile outside should not be required for
+  // activation.
+  gfx::Rect viewport_for_tile_priority =
+      pending_layer_->GetViewportForTilePriorityInContentSpace();
+  viewport_for_tile_priority.Intersect(pending_layer_->visible_content_rect());
+
+  int num_inside = 0;
+  int num_outside = 0;
+  for (PictureLayerTiling::CoverageIterator iter(
+           tiling, pending_layer_->contents_scale_x(), gfx::Rect(layer_bounds));
+       iter;
+       ++iter) {
+    if (!*iter)
+      continue;
+    Tile* tile = *iter;
+    if (viewport_for_tile_priority.Intersects(iter.geometry_rect())) {
+      num_inside++;
+      // Mark everything in viewport for tile priority as ready to draw.
+      ManagedTileState::TileVersion& tile_version =
+          tile->GetTileVersionForTesting(
+              tile->DetermineRasterModeForTree(PENDING_TREE));
+      tile_version.SetSolidColorForTesting(SK_ColorRED);
+    } else {
+      num_outside++;
+      EXPECT_FALSE(tile->required_for_activation());
+    }
+  }
+
+  EXPECT_GT(num_inside, 0);
+  EXPECT_GT(num_outside, 0);
+
+  // Activate and draw active layer.
+  host_impl_.ActivateSyncTree();
+  host_impl_.active_tree()->UpdateDrawProperties();
+  active_layer_->draw_properties().visible_content_rect = visible_content_rect;
+
+  MockOcclusionTracker<LayerImpl> occlusion_tracker;
+  scoped_ptr<RenderPass> render_pass = RenderPass::Create();
+  AppendQuadsData data;
+  active_layer_->WillDraw(DRAW_MODE_SOFTWARE, NULL);
+  active_layer_->AppendQuads(render_pass.get(), occlusion_tracker, &data);
+  active_layer_->DidDraw(NULL);
+
+  // All tiles in activation rect is ready to draw.
+  EXPECT_EQ(0u, data.num_missing_tiles);
+  EXPECT_EQ(0u, data.num_incomplete_tiles);
+}
+
 TEST_F(PictureLayerImplTest, HighResRequiredWhenUnsharedActiveAllReady) {
   gfx::Size layer_bounds(400, 400);
   gfx::Size tile_size(100, 100);
@@ -3101,6 +3192,66 @@
   EXPECT_NE(0u, pending_mask_content->num_tilings());
 }
 
+class PictureLayerImplTestWithDelegatingRenderer : public PictureLayerImplTest {
+ public:
+  PictureLayerImplTestWithDelegatingRenderer() : PictureLayerImplTest() {}
+
+  virtual void InitializeRenderer() OVERRIDE {
+    host_impl_.InitializeRenderer(
+        FakeOutputSurface::CreateDelegating3d().PassAs<OutputSurface>());
+  }
+};
+
+TEST_F(PictureLayerImplTestWithDelegatingRenderer,
+       DelegatingRendererWithTileOOM) {
+  // This test is added for crbug.com/402321, where quad should be produced when
+  // raster on demand is not allowed and tile is OOM.
+  gfx::Size tile_size = host_impl_.settings().default_tile_size;
+  gfx::Size layer_bounds(1000, 1000);
+
+  // Create tiles.
+  scoped_refptr<FakePicturePileImpl> pending_pile =
+      FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
+  SetupPendingTree(pending_pile);
+  pending_layer_->SetBounds(layer_bounds);
+  host_impl_.SetViewportSize(layer_bounds);
+  ActivateTree();
+  host_impl_.active_tree()->UpdateDrawProperties();
+  std::vector<Tile*> tiles =
+      active_layer_->HighResTiling()->AllTilesForTesting();
+  host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles);
+
+  // Force tiles after max_tiles to be OOM. TileManager uses
+  // GlobalStateThatImpactsTilesPriority from LayerTreeHostImpl, and we cannot
+  // directly set state to host_impl_, so we set policy that would change the
+  // state. We also need to update tree priority separately.
+  GlobalStateThatImpactsTilePriority state;
+  size_t max_tiles = 1;
+  size_t memory_limit = max_tiles * 4 * tile_size.width() * tile_size.height();
+  size_t resource_limit = max_tiles;
+  ManagedMemoryPolicy policy(memory_limit,
+                             gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING,
+                             resource_limit);
+  host_impl_.SetMemoryPolicy(policy);
+  host_impl_.SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES);
+  host_impl_.ManageTiles();
+
+  MockOcclusionTracker<LayerImpl> occlusion_tracker;
+  scoped_ptr<RenderPass> render_pass = RenderPass::Create();
+  AppendQuadsData data;
+  active_layer_->WillDraw(DRAW_MODE_HARDWARE, NULL);
+  active_layer_->AppendQuads(render_pass.get(), occlusion_tracker, &data);
+  active_layer_->DidDraw(NULL);
+
+  // Even when OOM, quads should be produced, and should be different material
+  // from quads with resource.
+  EXPECT_LT(max_tiles, render_pass->quad_list.size());
+  EXPECT_EQ(DrawQuad::Material::TILED_CONTENT,
+            render_pass->quad_list.front()->material);
+  EXPECT_EQ(DrawQuad::Material::SOLID_COLOR,
+            render_pass->quad_list.back()->material);
+}
+
 class OcclusionTrackingSettings : public ImplSidePaintingSettings {
  public:
   OcclusionTrackingSettings() { use_occlusion_for_tile_prioritization = true; }
diff --git a/cc/resources/picture_layer_tiling.cc b/cc/resources/picture_layer_tiling.cc
index b335e50..947bb21 100644
--- a/cc/resources/picture_layer_tiling.cc
+++ b/cc/resources/picture_layer_tiling.cc
@@ -497,8 +497,7 @@
   eviction_tiles_cache_valid_ = false;
 
   TilePriority now_priority(resolution_, TilePriority::NOW, 0);
-  float content_to_screen_scale =
-      1.0f / (contents_scale_ * ideal_contents_scale);
+  float content_to_screen_scale = ideal_contents_scale / contents_scale_;
 
   // Assign now priority to all visible tiles.
   bool include_borders = true;
diff --git a/cc/resources/picture_layer_tiling_unittest.cc b/cc/resources/picture_layer_tiling_unittest.cc
index 032ffec..a8caf48 100644
--- a/cc/resources/picture_layer_tiling_unittest.cc
+++ b/cc/resources/picture_layer_tiling_unittest.cc
@@ -622,13 +622,39 @@
       ACTIVE_TREE, viewport, 2.0f, 3.0, NULL, NULL, gfx::Transform());
 
   priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
-  EXPECT_FLOAT_EQ(34.f, priority.distance_to_visible);
+  EXPECT_FLOAT_EQ(136.f, priority.distance_to_visible);
 
   priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
-  EXPECT_FLOAT_EQ(14.f, priority.distance_to_visible);
+  EXPECT_FLOAT_EQ(56.f, priority.distance_to_visible);
 
   priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
   EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
+
+  // Test additional scales.
+  tiling = TestablePictureLayerTiling::Create(0.2f, layer_bounds, &client);
+  tiling->UpdateTilePriorities(
+      ACTIVE_TREE, viewport, 1.0f, 4.0, NULL, NULL, gfx::Transform());
+
+  priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
+  EXPECT_FLOAT_EQ(110.f, priority.distance_to_visible);
+
+  priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
+  EXPECT_FLOAT_EQ(70.f, priority.distance_to_visible);
+
+  priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
+  EXPECT_FLOAT_EQ(60.f, priority.distance_to_visible);
+
+  tiling->UpdateTilePriorities(
+      ACTIVE_TREE, viewport, 0.5f, 5.0, NULL, NULL, gfx::Transform());
+
+  priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
+  EXPECT_FLOAT_EQ(55.f, priority.distance_to_visible);
+
+  priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
+  EXPECT_FLOAT_EQ(35.f, priority.distance_to_visible);
+
+  priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
+  EXPECT_FLOAT_EQ(30.f, priority.distance_to_visible);
 }
 
 TEST(PictureLayerTilingTest, ExpandRectEqual) {
diff --git a/cc/resources/picture_pile.cc b/cc/resources/picture_pile.cc
index 3037521..7ecd8b1 100644
--- a/cc/resources/picture_pile.cc
+++ b/cc/resources/picture_pile.cc
@@ -226,34 +226,143 @@
     gfx::Rect old_tiling_rect_over_tiles =
         tiling_.ExpandRectToTileBounds(gfx::Rect(old_tiling_size));
     if (min_toss_x < tiling_.num_tiles_x()) {
-      int unrecorded_left = std::max(tiling_.TilePositionX(min_toss_x),
-                                     interest_rect_over_tiles.right());
+      // The bounds which we want to invalidate are the tiles along the old
+      // edge of the pile. We'll call this bounding box the OLD EDGE RECT.
+      //
+      // In the picture below, the old edge rect would be the bounding box
+      // of tiles {h,i,j}. |min_toss_x| would be equal to the horizontal index
+      // of the same tiles.
+      //
+      //  old pile edge-v  new pile edge-v
+      // ---------------+ - - - - - - - -+
+      // mmppssvvyybbeeh|h               .
+      // mmppssvvyybbeeh|h               .
+      // nnqqttwwzzccffi|i               .
+      // nnqqttwwzzccffi|i               .
+      // oorruuxxaaddggj|j               .
+      // oorruuxxaaddggj|j               .
+      // ---------------+ - - - - - - - -+ <- old pile edge
+      //                                 .
+      //  - - - - - - - - - - - - - - - -+ <- new pile edge
+      //
+      // If you were to slide a vertical beam from the left edge of the
+      // old edge rect toward the right, it would either hit the right edge
+      // of the old edge rect, or the interest rect (expanded to the bounds
+      // of the tiles it touches). The same is true for a beam parallel to
+      // any of the four edges, sliding accross the old edge rect. We use
+      // the union of these four rectangles generated by these beams to
+      // determine which part of the old edge rect is outside of the expanded
+      // interest rect.
+      //
+      // Case 1: Intersect rect is outside the old edge rect. It can be
+      // either on the left or the right. The |left_rect| and |right_rect|,
+      // cover this case, one will be empty and one will cover the full
+      // old edge rect. In the picture below, |left_rect| would cover the
+      // old edge rect, and |right_rect| would be empty.
+      // +----------------------+ |^^^^^^^^^^^^^^^|
+      // |===>   OLD EDGE RECT  | |               |
+      // |===>                  | | INTEREST RECT |
+      // |===>                  | |               |
+      // |===>                  | |               |
+      // +----------------------+ |vvvvvvvvvvvvvvv|
+      //
+      // Case 2: Interest rect is inside the old edge rect. It will always
+      // fill the entire old edge rect horizontally since the old edge rect
+      // is a single tile wide, and the interest rect has been expanded to the
+      // bounds of the tiles it touches. In this case the |left_rect| and
+      // |right_rect| will be empty, but the case is handled by the |top_rect|
+      // and |bottom_rect|. In the picture below, neither the |top_rect| nor
+      // |bottom_rect| would empty, they would each cover the area of the old
+      // edge rect outside the expanded interest rect.
+      // +-----------------+
+      // |:::::::::::::::::|
+      // |:::::::::::::::::|
+      // |vvvvvvvvvvvvvvvvv|
+      // |                 |
+      // +-----------------+
+      // | INTEREST RECT   |
+      // |                 |
+      // +-----------------+
+      // |                 |
+      // | OLD EDGE RECT   |
+      // +-----------------+
+      //
+      // Lastly, we need to consider tiles inside the expanded interest rect.
+      // For those tiles, we want to invalidate exactly the newly exposed
+      // pixels. In the picture below the tiles in the old edge rect have been
+      // resized and the area covered by periods must be invalidated. The
+      // |exposed_rect| will cover exactly that area.
+      //           v-old pile edge
+      // +---------+-------+
+      // |         ........|
+      // |         ........|
+      // |  OLD EDGE.RECT..|
+      // |         ........|
+      // |         ........|
+      // |         ........|
+      // |         ........|
+      // |         ........|
+      // |         ........|
+      // +---------+-------+
+
+      int left = tiling_.TilePositionX(min_toss_x);
+      int right = left + tiling_.TileSizeX(min_toss_x);
+      int top = old_tiling_rect_over_tiles.y();
+      int bottom = old_tiling_rect_over_tiles.bottom();
+
+      int left_until = std::min(interest_rect_over_tiles.x(), right);
+      int right_until = std::max(interest_rect_over_tiles.right(), left);
+      int top_until = std::min(interest_rect_over_tiles.y(), bottom);
+      int bottom_until = std::max(interest_rect_over_tiles.bottom(), top);
+
       int exposed_left = old_tiling_size.width();
-      int left = std::min(unrecorded_left, exposed_left);
-      int tile_right =
-          tiling_.TilePositionX(min_toss_x) + tiling_.TileSizeX(min_toss_x);
-      int exposed_right = tiling_size().width();
-      int right = std::min(tile_right, exposed_right);
-      gfx::Rect right_side(left,
-                           old_tiling_rect_over_tiles.y(),
-                           right - left,
-                           old_tiling_rect_over_tiles.height());
-      resize_invalidation.Union(right_side);
+      int exposed_left_until = right;
+      DCHECK_GE(exposed_left, left);
+
+      gfx::Rect left_rect(left, top, left_until - left, bottom - top);
+      gfx::Rect right_rect(right_until, top, right - right_until, bottom - top);
+      gfx::Rect top_rect(left, top, right - left, top_until - top);
+      gfx::Rect bottom_rect(
+          left, bottom_until, right - left, bottom - bottom_until);
+      gfx::Rect exposed_rect(
+          exposed_left, top, exposed_left_until - exposed_left, bottom - top);
+      resize_invalidation.Union(left_rect);
+      resize_invalidation.Union(right_rect);
+      resize_invalidation.Union(top_rect);
+      resize_invalidation.Union(bottom_rect);
+      resize_invalidation.Union(exposed_rect);
     }
     if (min_toss_y < tiling_.num_tiles_y()) {
-      int unrecorded_top = std::max(tiling_.TilePositionY(min_toss_y),
-                                    interest_rect_over_tiles.bottom());
+      // The same thing occurs here as in the case above, but the invalidation
+      // rect is the bounding box around the bottom row of tiles in the old
+      // pile. This would be tiles {o,r,u,x,a,d,g,j} in the above picture.
+
+      int top = tiling_.TilePositionY(min_toss_y);
+      int bottom = top + tiling_.TileSizeY(min_toss_y);
+      int left = old_tiling_rect_over_tiles.x();
+      int right = old_tiling_rect_over_tiles.right();
+
+      int top_until = std::min(interest_rect_over_tiles.y(), bottom);
+      int bottom_until = std::max(interest_rect_over_tiles.bottom(), top);
+      int left_until = std::min(interest_rect_over_tiles.x(), right);
+      int right_until = std::max(interest_rect_over_tiles.right(), left);
+
       int exposed_top = old_tiling_size.height();
-      int top = std::min(unrecorded_top, exposed_top);
-      int tile_bottom =
-          tiling_.TilePositionY(min_toss_y) + tiling_.TileSizeY(min_toss_y);
-      int exposed_bottom = tiling_size().height();
-      int bottom = std::min(tile_bottom, exposed_bottom);
-      gfx::Rect bottom_side(old_tiling_rect_over_tiles.x(),
-                            top,
-                            old_tiling_rect_over_tiles.width(),
-                            bottom - top);
-      resize_invalidation.Union(bottom_side);
+      int exposed_top_until = bottom;
+      DCHECK_GE(exposed_top, top);
+
+      gfx::Rect left_rect(left, top, left_until - left, bottom - top);
+      gfx::Rect right_rect(right_until, top, right - right_until, bottom - top);
+      gfx::Rect top_rect(left, top, right - left, top_until - top);
+      gfx::Rect bottom_rect(
+          left, bottom_until, right - left, bottom - bottom_until);
+      gfx::Rect exposed_rect(
+          left, exposed_top, right - left, exposed_top_until - exposed_top);
+      resize_invalidation.Union(left_rect);
+      resize_invalidation.Union(right_rect);
+      resize_invalidation.Union(top_rect);
+      resize_invalidation.Union(bottom_rect);
+      resize_invalidation.Union(exposed_rect);
     }
   }
 
diff --git a/cc/resources/picture_pile_unittest.cc b/cc/resources/picture_pile_unittest.cc
index 31e0a2a..c48b66c 100644
--- a/cc/resources/picture_pile_unittest.cc
+++ b/cc/resources/picture_pile_unittest.cc
@@ -36,9 +36,9 @@
     virtual ~TestPicturePile() {}
 };
 
-class PicturePileTest : public testing::Test {
+class PicturePileTestBase {
  public:
-  PicturePileTest()
+  PicturePileTestBase()
       : pile_(new TestPicturePile()),
         background_color_(SK_ColorBLUE),
         min_scale_(0.125),
@@ -91,6 +91,8 @@
   bool contents_opaque_;
 };
 
+class PicturePileTest : public PicturePileTestBase, public testing::Test {};
+
 TEST_F(PicturePileTest, SmallInvalidateInflated) {
   // Invalidate something inside a tile.
   Region invalidate_rect(gfx::Rect(50, 50, 1, 1));
@@ -384,14 +386,48 @@
   EXPECT_EQ(expected_invalidation.ToString(), invalidation.ToString());
 }
 
-TEST_F(PicturePileTest, ResizePileOutsideInterestRect) {
+enum Corner {
+  TOP_LEFT,
+  TOP_RIGHT,
+  BOTTOM_LEFT,
+  BOTTOM_RIGHT,
+};
+
+class PicturePileResizeCornerTest : public PicturePileTestBase,
+                                    public testing::TestWithParam<Corner> {
+ protected:
+  static gfx::Rect CornerSinglePixelRect(Corner corner, const gfx::Size& s) {
+    switch (corner) {
+      case TOP_LEFT:
+        return gfx::Rect(0, 0, 1, 1);
+      case TOP_RIGHT:
+        return gfx::Rect(s.width() - 1, 0, 1, 1);
+      case BOTTOM_LEFT:
+        return gfx::Rect(0, s.height() - 1, 1, 1);
+      case BOTTOM_RIGHT:
+        return gfx::Rect(s.width() - 1, s.height() - 1, 1, 1);
+    }
+    NOTREACHED();
+    return gfx::Rect();
+  }
+};
+
+TEST_P(PicturePileResizeCornerTest, ResizePileOutsideInterestRect) {
+  Corner corner = GetParam();
+
   // This size chosen to be larger than the interest rect size, which is
   // at least kPixelDistanceToRecord * 2 in each dimension.
   int tile_size = 100000;
-  gfx::Size base_tiling_size(5 * tile_size, 5 * tile_size);
-  gfx::Size grow_down_tiling_size(5 * tile_size, 7 * tile_size);
-  gfx::Size grow_right_tiling_size(7 * tile_size, 5 * tile_size);
-  gfx::Size grow_both_tiling_size(7 * tile_size, 7 * tile_size);
+  // The small number subtracted keeps the last tile in each axis larger than
+  // the interest rect also.
+  int offset = -100;
+  gfx::Size base_tiling_size(6 * tile_size + offset, 6 * tile_size + offset);
+  gfx::Size grow_down_tiling_size(6 * tile_size + offset,
+                                  8 * tile_size + offset);
+  gfx::Size grow_right_tiling_size(8 * tile_size + offset,
+                                   6 * tile_size + offset);
+  gfx::Size grow_both_tiling_size(8 * tile_size + offset,
+                                  8 * tile_size + offset);
 
   Region invalidation;
   Region expected_invalidation;
@@ -412,13 +448,15 @@
   }
 
   UpdateAndExpandInvalidation(
-      &invalidation, grow_down_tiling_size, gfx::Rect(1, 1));
+      &invalidation,
+      grow_down_tiling_size,
+      CornerSinglePixelRect(corner, grow_down_tiling_size));
 
   // We should have lost the recordings in the bottom row.
   EXPECT_EQ(6, pile_->tiling().num_tiles_x());
   EXPECT_EQ(8, pile_->tiling().num_tiles_y());
-  for (int i = 0; i < pile_->tiling().num_tiles_x(); ++i) {
-    for (int j = 0; j < pile_->tiling().num_tiles_y(); ++j) {
+  for (int i = 0; i < 6; ++i) {
+    for (int j = 0; j < 6; ++j) {
       TestPicturePile::PictureMapKey key(i, j);
       TestPicturePile::PictureMap& map = pile_->picture_map();
       TestPicturePile::PictureMap::iterator it = map.find(key);
@@ -433,7 +471,9 @@
   invalidation.Clear();
 
   UpdateWholePile();
-  UpdateAndExpandInvalidation(&invalidation, base_tiling_size, gfx::Rect(1, 1));
+  UpdateAndExpandInvalidation(&invalidation,
+                              base_tiling_size,
+                              CornerSinglePixelRect(corner, base_tiling_size));
 
   // We should have lost the recordings that are now outside the tiling only.
   EXPECT_EQ(6, pile_->tiling().num_tiles_x());
@@ -454,13 +494,15 @@
 
   UpdateWholePile();
   UpdateAndExpandInvalidation(
-      &invalidation, grow_right_tiling_size, gfx::Rect(1, 1));
+      &invalidation,
+      grow_right_tiling_size,
+      CornerSinglePixelRect(corner, grow_right_tiling_size));
 
   // We should have lost the recordings in the right column.
   EXPECT_EQ(8, pile_->tiling().num_tiles_x());
   EXPECT_EQ(6, pile_->tiling().num_tiles_y());
-  for (int i = 0; i < pile_->tiling().num_tiles_x(); ++i) {
-    for (int j = 0; j < pile_->tiling().num_tiles_y(); ++j) {
+  for (int i = 0; i < 6; ++i) {
+    for (int j = 0; j < 6; ++j) {
       TestPicturePile::PictureMapKey key(i, j);
       TestPicturePile::PictureMap& map = pile_->picture_map();
       TestPicturePile::PictureMap::iterator it = map.find(key);
@@ -475,7 +517,9 @@
   invalidation.Clear();
 
   UpdateWholePile();
-  UpdateAndExpandInvalidation(&invalidation, base_tiling_size, gfx::Rect(1, 1));
+  UpdateAndExpandInvalidation(&invalidation,
+                              base_tiling_size,
+                              CornerSinglePixelRect(corner, base_tiling_size));
 
   // We should have lost the recordings that are now outside the tiling only.
   EXPECT_EQ(6, pile_->tiling().num_tiles_x());
@@ -496,13 +540,15 @@
 
   UpdateWholePile();
   UpdateAndExpandInvalidation(
-      &invalidation, grow_both_tiling_size, gfx::Rect(1, 1));
+      &invalidation,
+      grow_both_tiling_size,
+      CornerSinglePixelRect(corner, grow_both_tiling_size));
 
   // We should have lost the recordings in the right column and bottom row.
   EXPECT_EQ(8, pile_->tiling().num_tiles_x());
   EXPECT_EQ(8, pile_->tiling().num_tiles_y());
-  for (int i = 0; i < pile_->tiling().num_tiles_x(); ++i) {
-    for (int j = 0; j < pile_->tiling().num_tiles_y(); ++j) {
+  for (int i = 0; i < 6; ++i) {
+    for (int j = 0; j < 6; ++j) {
       TestPicturePile::PictureMapKey key(i, j);
       TestPicturePile::PictureMap& map = pile_->picture_map();
       TestPicturePile::PictureMap::iterator it = map.find(key);
@@ -539,14 +585,22 @@
   invalidation.Clear();
 }
 
-TEST_F(PicturePileTest, SmallResizePileOutsideInterestRect) {
+TEST_P(PicturePileResizeCornerTest, SmallResizePileOutsideInterestRect) {
+  Corner corner = GetParam();
+
   // This size chosen to be larger than the interest rect size, which is
   // at least kPixelDistanceToRecord * 2 in each dimension.
   int tile_size = 100000;
-  gfx::Size base_tiling_size(5 * tile_size, 5 * tile_size);
-  gfx::Size grow_down_tiling_size(5 * tile_size, 5 * tile_size + 5);
-  gfx::Size grow_right_tiling_size(5 * tile_size + 5, 5 * tile_size);
-  gfx::Size grow_both_tiling_size(5 * tile_size + 5, 5 * tile_size + 5);
+  // The small number subtracted keeps the last tile in each axis larger than
+  // the interest rect also.
+  int offset = -100;
+  gfx::Size base_tiling_size(6 * tile_size + offset, 6 * tile_size + offset);
+  gfx::Size grow_down_tiling_size(6 * tile_size + offset,
+                                  6 * tile_size + offset + 5);
+  gfx::Size grow_right_tiling_size(6 * tile_size + offset + 5,
+                                   6 * tile_size + offset);
+  gfx::Size grow_both_tiling_size(6 * tile_size + offset + 5,
+                                  6 * tile_size + offset + 5);
 
   Region invalidation;
   Region expected_invalidation;
@@ -567,9 +621,12 @@
   }
 
   UpdateAndExpandInvalidation(
-      &invalidation, grow_down_tiling_size, gfx::Rect(1, 1));
+      &invalidation,
+      grow_down_tiling_size,
+      CornerSinglePixelRect(corner, grow_down_tiling_size));
 
-  // We should have lost the recordings in the bottom row.
+  // We should have lost the recordings in the bottom row that do not intersect
+  // the interest rect.
   EXPECT_EQ(6, pile_->tiling().num_tiles_x());
   EXPECT_EQ(6, pile_->tiling().num_tiles_y());
   for (int i = 0; i < pile_->tiling().num_tiles_x(); ++i) {
@@ -577,18 +634,53 @@
       TestPicturePile::PictureMapKey key(i, j);
       TestPicturePile::PictureMap& map = pile_->picture_map();
       TestPicturePile::PictureMap::iterator it = map.find(key);
-      EXPECT_EQ(j < 5, it != map.end() && it->second.GetPicture());
+      bool expect_tile;
+      switch (corner) {
+        case TOP_LEFT:
+        case TOP_RIGHT:
+          expect_tile = j < 5;
+          break;
+        case BOTTOM_LEFT:
+          // The interest rect in the bottom left tile means we'll record it.
+          expect_tile = j < 5 || (j == 5 && i == 0);
+          break;
+        case BOTTOM_RIGHT:
+          // The interest rect in the bottom right tile means we'll record it.
+          expect_tile = j < 5 || (j == 5 && i == 5);
+          break;
+      }
+      EXPECT_EQ(expect_tile, it != map.end() && it->second.GetPicture());
     }
   }
 
-  // We invalidated the bottom row.
-  expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(0, 5),
-                                          pile_->tiling().TileBounds(5, 5));
+  // We invalidated the bottom row outside the new interest rect. The tile that
+  // insects the interest rect in invalidated only on its new pixels.
+  switch (corner) {
+    case TOP_LEFT:
+    case TOP_RIGHT:
+      expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(0, 5),
+                                              pile_->tiling().TileBounds(5, 5));
+      break;
+    case BOTTOM_LEFT:
+      expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(1, 5),
+                                              pile_->tiling().TileBounds(5, 5));
+      expected_invalidation.Union(SubtractRects(
+          pile_->tiling().TileBounds(0, 5), gfx::Rect(base_tiling_size)));
+      break;
+    case BOTTOM_RIGHT:
+      expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(0, 5),
+                                              pile_->tiling().TileBounds(4, 5));
+      expected_invalidation.Union(SubtractRects(
+          pile_->tiling().TileBounds(5, 5), gfx::Rect(base_tiling_size)));
+      break;
+  }
   EXPECT_EQ(expected_invalidation.ToString(), invalidation.ToString());
   invalidation.Clear();
 
   UpdateWholePile();
-  UpdateAndExpandInvalidation(&invalidation, base_tiling_size, gfx::Rect(1, 1));
+  UpdateAndExpandInvalidation(&invalidation,
+                              base_tiling_size,
+                              CornerSinglePixelRect(corner, base_tiling_size));
 
   // We should have lost nothing.
   EXPECT_EQ(6, pile_->tiling().num_tiles_x());
@@ -609,7 +701,9 @@
 
   UpdateWholePile();
   UpdateAndExpandInvalidation(
-      &invalidation, grow_right_tiling_size, gfx::Rect(1, 1));
+      &invalidation,
+      grow_right_tiling_size,
+      CornerSinglePixelRect(corner, grow_right_tiling_size));
 
   // We should have lost the recordings in the right column.
   EXPECT_EQ(6, pile_->tiling().num_tiles_x());
@@ -619,18 +713,53 @@
       TestPicturePile::PictureMapKey key(i, j);
       TestPicturePile::PictureMap& map = pile_->picture_map();
       TestPicturePile::PictureMap::iterator it = map.find(key);
-      EXPECT_EQ(i < 5, it != map.end() && it->second.GetPicture());
+      bool expect_tile;
+      switch (corner) {
+        case TOP_LEFT:
+        case BOTTOM_LEFT:
+          expect_tile = i < 5;
+          break;
+        case TOP_RIGHT:
+          // The interest rect in the top right tile means we'll record it.
+          expect_tile = i < 5 || (j == 0 && i == 5);
+          break;
+        case BOTTOM_RIGHT:
+          // The interest rect in the bottom right tile means we'll record it.
+          expect_tile = i < 5 || (j == 5 && i == 5);
+          break;
+      }
+      EXPECT_EQ(expect_tile, it != map.end() && it->second.GetPicture());
     }
   }
 
-  // We invalidated the right column.
-  expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(5, 0),
-                                          pile_->tiling().TileBounds(5, 5));
+  // We invalidated the right column outside the new interest rect. The tile
+  // that insects the interest rect in invalidated only on its new pixels.
+  switch (corner) {
+    case TOP_LEFT:
+    case BOTTOM_LEFT:
+      expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(5, 0),
+                                              pile_->tiling().TileBounds(5, 5));
+      break;
+    case TOP_RIGHT:
+      expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(5, 1),
+                                              pile_->tiling().TileBounds(5, 5));
+      expected_invalidation.Union(SubtractRects(
+          pile_->tiling().TileBounds(5, 0), gfx::Rect(base_tiling_size)));
+      break;
+    case BOTTOM_RIGHT:
+      expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(5, 0),
+                                              pile_->tiling().TileBounds(5, 4));
+      expected_invalidation.Union(SubtractRects(
+          pile_->tiling().TileBounds(5, 5), gfx::Rect(base_tiling_size)));
+      break;
+  }
   EXPECT_EQ(expected_invalidation.ToString(), invalidation.ToString());
   invalidation.Clear();
 
   UpdateWholePile();
-  UpdateAndExpandInvalidation(&invalidation, base_tiling_size, gfx::Rect(1, 1));
+  UpdateAndExpandInvalidation(&invalidation,
+                              base_tiling_size,
+                              CornerSinglePixelRect(corner, base_tiling_size));
 
   // We should have lost nothing.
   EXPECT_EQ(6, pile_->tiling().num_tiles_x());
@@ -651,9 +780,12 @@
 
   UpdateWholePile();
   UpdateAndExpandInvalidation(
-      &invalidation, grow_both_tiling_size, gfx::Rect(1, 1));
+      &invalidation,
+      grow_both_tiling_size,
+      CornerSinglePixelRect(corner, grow_both_tiling_size));
 
-  // We should have lost the recordings in the right column and bottom row.
+  // We should have lost the recordings in the right column and bottom row. The
+  // tile that insects the interest rect in invalidated only on its new pixels.
   EXPECT_EQ(6, pile_->tiling().num_tiles_x());
   EXPECT_EQ(6, pile_->tiling().num_tiles_y());
   for (int i = 0; i < pile_->tiling().num_tiles_x(); ++i) {
@@ -661,20 +793,71 @@
       TestPicturePile::PictureMapKey key(i, j);
       TestPicturePile::PictureMap& map = pile_->picture_map();
       TestPicturePile::PictureMap::iterator it = map.find(key);
-      EXPECT_EQ(i < 5 && j < 5, it != map.end() && it->second.GetPicture());
+      bool expect_tile;
+      switch (corner) {
+        case TOP_LEFT:
+          expect_tile = i < 5 && j < 5;
+          break;
+        case TOP_RIGHT:
+          // The interest rect in the top right tile means we'll record it.
+          expect_tile = (i < 5 && j < 5) || (j == 0 && i == 5);
+          break;
+        case BOTTOM_LEFT:
+          // The interest rect in the bottom left tile means we'll record it.
+          expect_tile = (i < 5 && j < 5) || (j == 5 && i == 0);
+          break;
+        case BOTTOM_RIGHT:
+          // The interest rect in the bottom right tile means we'll record it.
+          expect_tile = (i < 5 && j < 5) || (j == 5 && i == 5);
+          break;
+      }
+      EXPECT_EQ(expect_tile, it != map.end() && it->second.GetPicture())
+          << i << "," << j;
     }
   }
 
-  // We invalidated the right column and the bottom row.
-  expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(5, 0),
-                                          pile_->tiling().TileBounds(5, 5));
-  expected_invalidation.Union(gfx::UnionRects(
-      pile_->tiling().TileBounds(0, 5), pile_->tiling().TileBounds(5, 5)));
+  // We invalidated the right column and the bottom row outside the new interest
+  // rect. The tile that insects the interest rect in invalidated only on its
+  // new pixels.
+  switch (corner) {
+    case TOP_LEFT:
+      expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(5, 0),
+                                              pile_->tiling().TileBounds(5, 5));
+      expected_invalidation.Union(gfx::UnionRects(
+          pile_->tiling().TileBounds(0, 5), pile_->tiling().TileBounds(5, 5)));
+      break;
+    case TOP_RIGHT:
+      expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(5, 1),
+                                              pile_->tiling().TileBounds(5, 5));
+      expected_invalidation.Union(gfx::UnionRects(
+          pile_->tiling().TileBounds(0, 5), pile_->tiling().TileBounds(5, 5)));
+      expected_invalidation.Union(SubtractRects(
+          pile_->tiling().TileBounds(5, 0), gfx::Rect(base_tiling_size)));
+      break;
+    case BOTTOM_LEFT:
+      expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(5, 0),
+                                              pile_->tiling().TileBounds(5, 5));
+      expected_invalidation.Union(gfx::UnionRects(
+          pile_->tiling().TileBounds(1, 5), pile_->tiling().TileBounds(5, 5)));
+      expected_invalidation.Union(SubtractRects(
+          pile_->tiling().TileBounds(0, 5), gfx::Rect(base_tiling_size)));
+      break;
+    case BOTTOM_RIGHT:
+      expected_invalidation = gfx::UnionRects(pile_->tiling().TileBounds(5, 0),
+                                              pile_->tiling().TileBounds(5, 4));
+      expected_invalidation.Union(gfx::UnionRects(
+          pile_->tiling().TileBounds(0, 5), pile_->tiling().TileBounds(4, 5)));
+      expected_invalidation.Union(SubtractRegions(
+          pile_->tiling().TileBounds(5, 5), gfx::Rect(base_tiling_size)));
+      break;
+  }
   EXPECT_EQ(expected_invalidation.ToString(), invalidation.ToString());
   invalidation.Clear();
 
   UpdateWholePile();
-  UpdateAndExpandInvalidation(&invalidation, base_tiling_size, gfx::Rect(1, 1));
+  UpdateAndExpandInvalidation(&invalidation,
+                              base_tiling_size,
+                              CornerSinglePixelRect(corner, base_tiling_size));
 
   // We should have lost nothing.
   EXPECT_EQ(6, pile_->tiling().num_tiles_x());
@@ -694,6 +877,11 @@
   invalidation.Clear();
 }
 
+INSTANTIATE_TEST_CASE_P(
+    PicturePileResizeCornerTests,
+    PicturePileResizeCornerTest,
+    ::testing::Values(TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT));
+
 TEST_F(PicturePileTest, ResizePileInsideInterestRect) {
   // This size chosen to be small enough that all the rects below fit inside the
   // the interest rect, so they are smaller than kPixelDistanceToRecord in each
diff --git a/cc/resources/pixel_buffer_raster_worker_pool.cc b/cc/resources/pixel_buffer_raster_worker_pool.cc
index d755473..67ae593 100644
--- a/cc/resources/pixel_buffer_raster_worker_pool.cc
+++ b/cc/resources/pixel_buffer_raster_worker_pool.cc
@@ -515,10 +515,13 @@
       continue;
     }
 
-    // All raster tasks need to be throttled by bytes of pending uploads.
+    // All raster tasks need to be throttled by bytes of pending uploads,
+    // but if it's the only task allow it to complete no matter what its size,
+    // to prevent starvation of the task queue.
     size_t new_bytes_pending_upload = bytes_pending_upload;
     new_bytes_pending_upload += task->resource()->bytes();
-    if (new_bytes_pending_upload > max_bytes_pending_upload_) {
+    if (new_bytes_pending_upload > max_bytes_pending_upload_ &&
+        bytes_pending_upload) {
       did_throttle_raster_tasks = true;
       if (item.required_for_activation)
         did_throttle_raster_tasks_required_for_activation = true;
diff --git a/cc/resources/prioritized_tile_set.cc b/cc/resources/prioritized_tile_set.cc
index 82c7f16..d0104cb 100644
--- a/cc/resources/prioritized_tile_set.cc
+++ b/cc/resources/prioritized_tile_set.cc
@@ -40,13 +40,20 @@
 
 namespace {
 
+bool TilePriorityTieBreaker(const Tile* tile_i, const Tile* tile_j) {
+  // When two tiles has same priority use Id as tie breaker.
+  return tile_i->id() < tile_j->id();
+}
+
 typedef std::vector<Tile*> TileVector;
 
 void SortBinTiles(ManagedTileBin bin, TileVector* tiles) {
   switch (bin) {
-    case NOW_AND_READY_TO_DRAW_BIN:
     case NEVER_BIN:
       break;
+    case NOW_AND_READY_TO_DRAW_BIN:
+      std::sort(tiles->begin(), tiles->end(), TilePriorityTieBreaker);
+      break;
     case NOW_BIN:
     case SOON_BIN:
     case EVENTUALLY_AND_ACTIVE_BIN:
diff --git a/cc/resources/raster_worker_pool_unittest.cc b/cc/resources/raster_worker_pool_unittest.cc
index 3b43c09..2179161 100644
--- a/cc/resources/raster_worker_pool_unittest.cc
+++ b/cc/resources/raster_worker_pool_unittest.cc
@@ -27,6 +27,11 @@
 namespace cc {
 namespace {
 
+const size_t kMaxTransferBufferUsageBytes = 10000U;
+// A resource of this dimension^2 * 4 must be greater than the above transfer
+// buffer constant.
+const size_t kLargeResourceDimension = 1000U;
+
 enum RasterWorkerPoolType {
   RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER,
   RASTER_WORKER_POOL_TYPE_IMAGE,
@@ -126,7 +131,7 @@
             RasterWorkerPool::GetTaskGraphRunner(),
             context_provider_.get(),
             resource_provider_.get(),
-            std::numeric_limits<size_t>::max());
+            kMaxTransferBufferUsageBytes);
         break;
       case RASTER_WORKER_POOL_TYPE_IMAGE:
         raster_worker_pool_ = ImageRasterWorkerPool::Create(
@@ -203,9 +208,7 @@
     raster_worker_pool_->AsRasterizer()->ScheduleTasks(&queue);
   }
 
-  void AppendTask(unsigned id) {
-    const gfx::Size size(1, 1);
-
+  void AppendTask(unsigned id, const gfx::Size& size) {
     scoped_ptr<ScopedResource> resource(
         ScopedResource::Create(resource_provider_.get()));
     resource->Allocate(size, ResourceProvider::TextureUsageAny, RGBA_8888);
@@ -221,6 +224,8 @@
         &empty));
   }
 
+  void AppendTask(unsigned id) { AppendTask(id, gfx::Size(1, 1)); }
+
   void AppendBlockingTask(unsigned id, base::Lock* lock) {
     const gfx::Size size(1, 1);
 
@@ -324,6 +329,27 @@
   RunMessageLoopUntilAllTasksHaveCompleted();
 }
 
+TEST_P(RasterWorkerPoolTest, LargeResources) {
+  gfx::Size size(kLargeResourceDimension, kLargeResourceDimension);
+
+  {
+    // Verify a resource of this size is larger than the transfer buffer.
+    scoped_ptr<ScopedResource> resource(
+        ScopedResource::Create(resource_provider_.get()));
+    resource->Allocate(size, ResourceProvider::TextureUsageAny, RGBA_8888);
+    EXPECT_GE(resource->bytes(), kMaxTransferBufferUsageBytes);
+  }
+
+  AppendTask(0u, size);
+  AppendTask(1u, size);
+  AppendTask(2u, size);
+  ScheduleTasks();
+
+  // This will time out if a resource that is larger than the throttle limit
+  // never gets scheduled.
+  RunMessageLoopUntilAllTasksHaveCompleted();
+}
+
 INSTANTIATE_TEST_CASE_P(RasterWorkerPoolTests,
                         RasterWorkerPoolTest,
                         ::testing::Values(RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER,
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
index 30d5849..d88bdd2 100644
--- a/cc/resources/resource_provider.cc
+++ b/cc/resources/resource_provider.cc
@@ -111,25 +111,16 @@
   return kSkia8888_GrPixelConfig;
 }
 
-class IdentityAllocator : public SkBitmap::Allocator {
- public:
-  explicit IdentityAllocator(void* buffer) : buffer_(buffer) {}
-  virtual bool allocPixelRef(SkBitmap* dst, SkColorTable*) OVERRIDE {
-    dst->setPixels(buffer_);
-    return true;
-  }
-
- private:
-  void* buffer_;
-};
-
-void CopyBitmap(const SkBitmap& src, uint8_t* dst, SkColorType dst_colorType) {
-  SkBitmap dst_bitmap;
-  IdentityAllocator allocator(dst);
-  src.copyTo(&dst_bitmap, dst_colorType, &allocator);
+void CopyBitmap(const SkBitmap& src, uint8_t* dst, SkColorType dst_color_type) {
+  SkImageInfo dst_info = src.info();
+  dst_info.fColorType = dst_color_type;
   // TODO(kaanb): The GL pipeline assumes a 4-byte alignment for the
-  // bitmap data. This check will be removed once crbug.com/293728 is fixed.
-  CHECK_EQ(0u, dst_bitmap.rowBytes() % 4);
+  // bitmap data. There will be no need to call SkAlign4 once crbug.com/293728
+  // is fixed.
+  const size_t dst_row_bytes = SkAlign4(dst_info.minRowBytes());
+  CHECK_EQ(0u, dst_row_bytes % 4);
+  bool success = src.readPixels(dst_info, dst, dst_row_bytes, 0, 0);
+  CHECK_EQ(true, success);
 }
 
 class ScopedSetActiveTexture {
diff --git a/cc/resources/tile.h b/cc/resources/tile.h
index 6588ac5..5e1ce5a 100644
--- a/cc/resources/tile.h
+++ b/cc/resources/tile.h
@@ -131,6 +131,7 @@
 
   void set_picture_pile(scoped_refptr<PicturePileImpl> pile) {
     DCHECK(pile->CanRaster(contents_scale_, content_rect_))
+        << "Recording rect: "
         << gfx::ScaleToEnclosingRect(content_rect_, 1.f / contents_scale_)
                .ToString();
     picture_pile_ = pile;
diff --git a/cc/resources/tile_manager.h b/cc/resources/tile_manager.h
index fa5c650..eec5629 100644
--- a/cc/resources/tile_manager.h
+++ b/cc/resources/tile_manager.h
@@ -123,7 +123,8 @@
       ManagedTileState::TileVersion& tile_version =
           mts.tile_versions[HIGH_QUALITY_RASTER_MODE];
 
-      tile_version.resource_ = resource_pool_->AcquireResource(gfx::Size(1, 1));
+      tile_version.resource_ =
+          resource_pool_->AcquireResource(tiles[i]->size());
 
       bytes_releasable_ += BytesConsumedIfAllocated(tiles[i]);
       ++resources_releasable_;
diff --git a/cc/resources/video_resource_updater.cc b/cc/resources/video_resource_updater.cc
index d113e8b..bf72b45 100644
--- a/cc/resources/video_resource_updater.cc
+++ b/cc/resources/video_resource_updater.cc
@@ -249,11 +249,7 @@
     {
       ResourceProvider::ScopedWriteLockSoftware lock(
           resource_provider_, plane_resources[0].resource_id);
-      video_renderer_->Paint(video_frame.get(),
-                             lock.sk_canvas(),
-                             video_frame->visible_rect(),
-                             0xff,
-                             media::VIDEO_ROTATION_0);
+      video_renderer_->Copy(video_frame.get(), lock.sk_canvas());
     }
 
     RecycleResourceData recycle_data = {
diff --git a/cc/test/fake_picture_layer_impl.h b/cc/test/fake_picture_layer_impl.h
index 86d83ba..4b68d7f 100644
--- a/cc/test/fake_picture_layer_impl.h
+++ b/cc/test/fake_picture_layer_impl.h
@@ -58,6 +58,7 @@
   using PictureLayerImpl::MarkVisibleResourcesAsRequired;
   using PictureLayerImpl::DoPostCommitInitializationIfNeeded;
   using PictureLayerImpl::MinimumContentsScale;
+  using PictureLayerImpl::GetViewportForTilePriorityInContentSpace;
   using PictureLayerImpl::SanityCheckTilingState;
 
   using PictureLayerImpl::UpdateIdealScales;
diff --git a/cc/test/test_in_process_context_provider.cc b/cc/test/test_in_process_context_provider.cc
index a466d87..b4d580f 100644
--- a/cc/test/test_in_process_context_provider.cc
+++ b/cc/test/test_in_process_context_provider.cc
@@ -36,16 +36,18 @@
   attribs.bind_generates_resource = false;
   gfx::GpuPreference gpu_preference = gfx::PreferDiscreteGpu;
 
-  scoped_ptr<gpu::GLInProcessContext> context = make_scoped_ptr(
-      gpu::GLInProcessContext::Create(NULL,
-                                      NULL,
-                                      is_offscreen,
-                                      gfx::kNullAcceleratedWidget,
-                                      gfx::Size(1, 1),
-                                      NULL,
-                                      share_resources,
-                                      attribs,
-                                      gpu_preference));
+  scoped_ptr<gpu::GLInProcessContext> context =
+      make_scoped_ptr(gpu::GLInProcessContext::Create(
+          NULL,
+          NULL,
+          is_offscreen,
+          gfx::kNullAcceleratedWidget,
+          gfx::Size(1, 1),
+          NULL,
+          share_resources,
+          attribs,
+          gpu_preference,
+          gpu::GLInProcessContextSharedMemoryLimits()));
 
   DCHECK(context);
   return context.Pass();
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index 167b65a..f01d0f9 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -3040,6 +3040,21 @@
                  wheel_scroll_delta);
 }
 
+TEST_F(LayerTreeHostImplTest, ScrollViewportRounding) {
+  int width = 332;
+  int height = 20;
+  int scale = 3;
+  SetupScrollAndContentsLayers(gfx::Size(width, height));
+  host_impl_->SetViewportSize(gfx::Size(width * scale - 1, height * scale));
+  host_impl_->SetDeviceScaleFactor(scale);
+  host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f);
+
+  LayerImpl* inner_viewport_scroll_layer =
+      host_impl_->active_tree()->InnerViewportScrollLayer();
+  EXPECT_EQ(gfx::Vector2d(0, 0),
+            inner_viewport_scroll_layer->MaxScrollOffset());
+}
+
 class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate {
  public:
   TestScrollOffsetDelegate()
diff --git a/chrome/VERSION b/chrome/VERSION
index c61ab1f..4173e24 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=38
 MINOR=0
 BUILD=2125
-PATCH=23
+PATCH=57
diff --git a/chrome/android/java/res/anim/menu_enter.xml b/chrome/android/java/res/anim/menu_enter.xml
index 63194a9..e6c4936 100644
--- a/chrome/android/java/res/anim/menu_enter.xml
+++ b/chrome/android/java/res/anim/menu_enter.xml
@@ -16,4 +16,8 @@
     <alpha android:interpolator="@android:anim/linear_interpolator"
         android:fromAlpha="0" android:toAlpha="1"
         android:duration="200" />
+    <translate android:interpolator="@interpolator/transform_curve_interpolator"
+        android:fromYDelta="@dimen/menu_negative_software_vertical_offset"
+        android:toYDelta="0"
+        android:duration="200" />
 </set>
\ No newline at end of file
diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/java/res/values-sw600dp/dimens.xml
index d8fed33..ba5395e 100644
--- a/chrome/android/java/res/values-sw600dp/dimens.xml
+++ b/chrome/android/java/res/values-sw600dp/dimens.xml
@@ -7,5 +7,5 @@
 <resources>
     <!-- Menu Dimensions -->
     <!-- Necessary to align the menu icon with the actual button. -->
-    <dimen name="menu_software_vertical_offset">-6dp</dimen>
+    <dimen name="menu_negative_software_vertical_offset">6dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
index 72172f2..fa87b13 100644
--- a/chrome/android/java/res/values/dimens.xml
+++ b/chrome/android/java/res/values/dimens.xml
@@ -17,7 +17,7 @@
 
     <!-- Custom Menu dimensions -->
     <dimen name="menu_width">258dp</dimen>
-    <dimen name="menu_software_vertical_offset">0dp</dimen>
+    <dimen name="menu_negative_software_vertical_offset">0dp</dimen>
     <!-- The amount to fade the edges of the menu to indicate more content is available
          via scrolling. -->
     <dimen name="menu_vertical_fade_distance">15dp</dimen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/EmptyTabObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/EmptyTabObserver.java
index 2ec6b9b..56c8a44 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/EmptyTabObserver.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/EmptyTabObserver.java
@@ -39,6 +39,9 @@
     public void onContextMenuShown(Tab tab, ContextMenu menu) { }
 
     @Override
+    public void onWebContentsInstantSupportDisabled() { }
+
+    @Override
     public void onLoadStarted(Tab tabBase) { }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java
index c76ebc3..3c4a5b6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java
@@ -830,6 +830,11 @@
         }
 
         for (TabObserver observer : mObservers) observer.onContentChanged(this);
+
+        // For browser tabs, we want to set accessibility focus to the page
+        // when it loads. This is not the default behavior for embedded
+        // web views.
+        mContentViewCore.setShouldSetAccessibilityFocusOnPageLoad(true);
     }
 
     /**
@@ -998,6 +1003,15 @@
     }
 
     /**
+     * A helper method to allow subclasses to handle the Instant support
+     * disabled event.
+     */
+    @CalledByNative
+    private void onWebContentsInstantSupportDisabled() {
+      for (TabObserver observer : mObservers) observer.onWebContentsInstantSupportDisabled();
+    }
+
+    /**
      * A helper method to allow subclasses to build their own menu populator.
      * @return An instance of a {@link ContextMenuPopulator}.
      */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/TabObserver.java
index 42f0eb6..e801bc1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/TabObserver.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/TabObserver.java
@@ -78,6 +78,11 @@
      */
     void onContextMenuShown(Tab tab, ContextMenu menu);
 
+    /**
+     * Called when the WebContents Instant support is disabled.
+     */
+    void onWebContentsInstantSupportDisabled();
+
     // WebContentsDelegateAndroid methods ---------------------------------------------------------
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java
index af48e84..3f3ac68 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java
@@ -9,6 +9,7 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -46,7 +47,7 @@
     private final int mItemRowHeight;
     private final int mItemDividerHeight;
     private final int mVerticalFadeDistance;
-    private final int mAdditionalVerticalOffset;
+    private final int mNegativeSoftwareVerticalOffset;
     private ListPopupWindow mPopup;
     private AppMenuAdapter mAdapter;
     private AppMenuHandler mHandler;
@@ -73,8 +74,8 @@
         mItemDividerHeight = itemDividerHeight;
         assert mItemDividerHeight >= 0;
 
-        mAdditionalVerticalOffset =
-                res.getDimensionPixelSize(R.dimen.menu_software_vertical_offset);
+        mNegativeSoftwareVerticalOffset =
+                res.getDimensionPixelSize(R.dimen.menu_negative_software_vertical_offset);
         mVerticalFadeDistance = res.getDimensionPixelSize(R.dimen.menu_vertical_fade_distance);
     }
 
@@ -106,6 +107,11 @@
             }
         });
 
+        // Some OEMs don't actually let us change the background... but they still return the
+        // padding of the new background, which breaks the menu height.  If we still have a
+        // drawable here even though our style says @null we should use this padding instead...
+        Drawable originalBgDrawable = mPopup.getBackground();
+
         // Need to explicitly set the background here.  Relying on it being set in the style caused
         // an incorrectly drawn background.
         if (isByHardwareButton) {
@@ -140,6 +146,14 @@
             }
         }
 
+        Rect sizingPadding = new Rect(bgPadding);
+        if (isByHardwareButton && originalBgDrawable != null) {
+            Rect originalPadding = new Rect();
+            originalBgDrawable.getPadding(originalPadding);
+            sizingPadding.top = originalPadding.top;
+            sizingPadding.bottom = originalPadding.bottom;
+        }
+
         boolean showMenuButton = !mIsByHardwareButton;
         if (!SHOW_SW_MENU_BUTTON) showMenuButton = false;
         // A List adapter for visible items in the Menu. The first row is added as a header to the
@@ -148,8 +162,8 @@
                 this, menuItems, LayoutInflater.from(context), showMenuButton);
         mPopup.setAdapter(mAdapter);
 
-        setMenuHeight(menuItems.size(), visibleDisplayFrame, screenHeight);
-        setPopupOffset(mPopup, mCurrentScreenRotation, visibleDisplayFrame);
+        setMenuHeight(menuItems.size(), visibleDisplayFrame, screenHeight, sizingPadding);
+        setPopupOffset(mPopup, mCurrentScreenRotation, visibleDisplayFrame, sizingPadding);
         mPopup.setOnItemClickListener(this);
         mPopup.show();
         mPopup.getListView().setItemsCanFocus(true);
@@ -175,9 +189,8 @@
         }
     }
 
-    private void setPopupOffset(ListPopupWindow popup, int screenRotation, Rect appRect) {
-        Rect paddingRect = new Rect();
-        popup.getBackground().getPadding(paddingRect);
+    private void setPopupOffset(
+            ListPopupWindow popup, int screenRotation, Rect appRect, Rect padding) {
         int[] anchorLocation = new int[2];
         popup.getAnchorView().getLocationInWindow(anchorLocation);
         int anchorHeight = popup.getAnchorView().getHeight();
@@ -201,13 +214,13 @@
                     break;
             }
             popup.setHorizontalOffset(horizontalOffset);
-            // The menu is displayed above the anchored view, so shift the menu up by the top
+            // The menu is displayed above the anchored view, so shift the menu up by the bottom
             // padding of the background.
-            popup.setVerticalOffset(-paddingRect.bottom);
+            popup.setVerticalOffset(-padding.bottom);
         } else {
             // The menu is displayed over and below the anchored view, so shift the menu up by the
             // height of the anchor view.
-            popup.setVerticalOffset(mAdditionalVerticalOffset - anchorHeight);
+            popup.setVerticalOffset(-mNegativeSoftwareVerticalOffset - anchorHeight);
         }
     }
 
@@ -274,7 +287,8 @@
         return mPopup;
     }
 
-    private void setMenuHeight(int numMenuItems, Rect appDimensions, int screenHeight) {
+    private void setMenuHeight(
+            int numMenuItems, Rect appDimensions, int screenHeight, Rect padding) {
         assert mPopup.getAnchorView() != null;
         View anchorView = mPopup.getAnchorView();
         int[] anchorViewLocation = new int[2];
@@ -289,9 +303,8 @@
         int availableScreenSpace = Math.max(anchorViewLocation[1],
                 appDimensions.height() - anchorViewLocation[1] - anchorViewImpactHeight);
 
-        Rect padding = new Rect();
-        mPopup.getBackground().getPadding(padding);
-        availableScreenSpace -= mIsByHardwareButton ? padding.top : padding.bottom;
+        availableScreenSpace -= padding.bottom;
+        if (mIsByHardwareButton) availableScreenSpace -= padding.top;
 
         int numCanFit = availableScreenSpace / (mItemRowHeight + mItemDividerHeight);
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareHelper.java
index 30dd6c2..6f3bf0c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareHelper.java
@@ -57,11 +57,11 @@
      * @param screenshot Screenshot of the page to be shared.
      */
     public static void share(boolean shareDirectly, Activity activity, String title, String url,
-            Bitmap screenshot) {
+            Bitmap screenshot, int extraIntentFlags) {
         if (shareDirectly) {
-            shareWithLastUsed(activity, title, url, screenshot);
+            shareWithLastUsed(activity, title, url, screenshot, extraIntentFlags);
         } else {
-            showShareDialog(activity, title, url, screenshot);
+            showShareDialog(activity, title, url, screenshot, extraIntentFlags);
         }
     }
 
@@ -72,10 +72,11 @@
      * @param title Title of the page to be shared.
      * @param url URL of the page to be shared.
      * @param screenshot Screenshot of the page to be shared.
+     * @param extraIntentFlags Additional flags that should be added to the share intent.
      */
     private static void showShareDialog(final Activity activity, final String title,
-            final String url, final Bitmap screenshot) {
-        Intent intent = getShareIntent(title, url, screenshot);
+            final String url, final Bitmap screenshot, final int extraIntentFlags) {
+        Intent intent = getShareIntent(title, url, screenshot, extraIntentFlags);
         PackageManager manager = activity.getPackageManager();
         List<ResolveInfo> resolveInfoList = manager.queryIntentActivities(intent, 0);
         assert resolveInfoList.size() > 0;
@@ -98,7 +99,8 @@
                 ComponentName component =
                         new ComponentName(ai.applicationInfo.packageName, ai.name);
                 setLastShareComponentName(activity, component);
-                Intent intent = getDirectShareIntentForComponent(title, url, screenshot, component);
+                Intent intent = getDirectShareIntentForComponent(title, url, screenshot, component,
+                        extraIntentFlags);
                 activity.startActivity(intent);
                 dialog.dismiss();
             }
@@ -112,12 +114,14 @@
      * @param title Title of the page to be shared.
      * @param url URL of the page to be shared.
      * @param screenshot Screenshot of the page to be shared.
+     * @param extraIntentFlags Additional flags that should be added to the share intent.
      */
     private static void shareWithLastUsed(
-            Activity activity, String title, String url, Bitmap screenshot) {
+            Activity activity, String title, String url, Bitmap screenshot, int extraIntentFlags) {
         ComponentName component = getLastShareComponentName(activity);
         if (component == null) return;
-        Intent intent = getDirectShareIntentForComponent(title, url, screenshot, component);
+        Intent intent = getDirectShareIntentForComponent(
+                title, url, screenshot, component, extraIntentFlags);
         activity.startActivity(intent);
     }
 
@@ -150,8 +154,10 @@
         }
     }
 
-    private static Intent getShareIntent(String title, String url, Bitmap screenshot) {
+    private static Intent getShareIntent(String title, String url, Bitmap screenshot,
+            int extraIntentFlags) {
         Intent intent = new Intent(Intent.ACTION_SEND);
+        intent.addFlags(extraIntentFlags);
         intent.setType("text/plain");
         intent.putExtra(Intent.EXTRA_SUBJECT, title);
         intent.putExtra(Intent.EXTRA_TEXT, url);
@@ -160,8 +166,8 @@
     }
 
     private static Intent getDirectShareIntentForComponent(String title, String url,
-            Bitmap screenshot, ComponentName component) {
-        Intent intent = getShareIntent(title, url, screenshot);
+            Bitmap screenshot, ComponentName component, int extraIntentFlags) {
+        Intent intent = getShareIntent(title, url, screenshot, extraIntentFlags);
         intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT
                 | Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
         intent.setComponent(component);
diff --git a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
index 05608d3..0a5e8c5 100644
--- a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
+++ b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
@@ -284,6 +284,7 @@
         return super.onKeyDown(keyCode, event);
     }
 
+    @SuppressWarnings("deprecation")
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         ChromeShellTab activeTab = getActiveTab();
@@ -322,7 +323,8 @@
             case R.id.share_menu_id:
             case R.id.direct_share_menu_id:
                 ShareHelper.share(item.getItemId() == R.id.direct_share_menu_id, this,
-                        activeTab.getTitle(), activeTab.getUrl(), null);
+                        activeTab.getTitle(), activeTab.getUrl(), null,
+                        Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                 return true;
             default:
                 return super.onOptionsItemSelected(item);
diff --git a/chrome/app/app-Info.plist b/chrome/app/app-Info.plist
index 3cd5f6a..b6fc276 100644
--- a/chrome/app/app-Info.plist
+++ b/chrome/app/app-Info.plist
@@ -324,6 +324,10 @@
 	<string>BrowserCrApplication</string>
 	<key>NSSupportsAutomaticGraphicsSwitching</key>
 	<true/>
+	<key>NSUserActivityTypes</key>
+	<array>
+		<string>NSUserActivityTypeBrowsingWeb</string>
+	</array>
 	<key>UTExportedTypeDeclarations</key>
 	<array>
 		<dict>
diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd
index 06c5cf8..cfe9aef 100644
--- a/chrome/app/chromium_strings.grd
+++ b/chrome/app/chromium_strings.grd
@@ -1205,7 +1205,7 @@
 
       <!-- Contextual Search -->
       <message name="IDS_CONTEXTUAL_SEARCH_PROMO_DESCRIPTION" desc="Description of the Contextual Search feature.">
-        Enabling "Tap to Search" provides an easy way to search for terms on a web page by simply tapping on them.  The word tapped and surrounding page will be sent to Google.
+        “Touch to Search” provides an easy way to search for terms on a web page by simply touching on them.  The touched word and surrounding page will be sent to Google.
       </message>
       <message name="IDS_CONTEXTUAL_SEARCH_PROMO_OPTIN" desc="Text for the button the user clicks to opt in.">
         Yes, please
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index ee46a22..ff61f5e 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -14538,7 +14538,7 @@
     </message>
     <!-- Strings for notification shown when the Chromebook is added to Easy Unlock -->
     <message name="IDS_EASY_UNLOCK_CHROMEBOOK_ADDED_NOTIFICATION_TITLE" desc="Title for notification shown when this Chromebook is added to Easy Unlock as an additional Easy Unlock device.">
-      Easy unock is now enabled
+      Easy unlock is now enabled
     </message>
     <message name="IDS_EASY_UNLOCK_CHROMEBOOK_ADDED_NOTIFICATION_MESSAGE" desc="Message for the notification shown when this Chromebook is added to Easy Unlock as an additional Easy Unlock device.">
       You can start using your Android phone to unlock this <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph>, too - no additional setup necessary.
diff --git a/chrome/app/google_chrome_strings.grd b/chrome/app/google_chrome_strings.grd
index f45570c..b6f2e50 100644
--- a/chrome/app/google_chrome_strings.grd
+++ b/chrome/app/google_chrome_strings.grd
@@ -1130,7 +1130,7 @@
 
       <!-- Contextual Search -->
       <message name="IDS_CONTEXTUAL_SEARCH_PROMO_DESCRIPTION" desc="Description of the Contextual Search feature.">
-        Enabling "Tap to Search" provides an easy way to search for terms on a web page by simply tapping on them.  The word tapped and surrounding page will be sent to Google.
+        “Touch to Search” provides an easy way to search for terms on a web page by simply touching on them.  The touched word and surrounding page will be sent to Google.
       </message>
       <message name="IDS_CONTEXTUAL_SEARCH_PROMO_OPTIN" desc="Text for the button the user clicks to opt in.">
         Yes, please
diff --git a/chrome/app/resources/locale_settings_chromiumos.grd b/chrome/app/resources/locale_settings_chromiumos.grd
index 8273021..6141a4f 100644
--- a/chrome/app/resources/locale_settings_chromiumos.grd
+++ b/chrome/app/resources/locale_settings_chromiumos.grd
@@ -208,7 +208,7 @@
       <!-- The default value for |WebPreference::standard_font_family_map| for
            Japanese script. -->
       <message name="IDS_STANDARD_FONT_FAMILY_JAPANESE" use_name_for_id="true">
-        IPAPGothic
+        Noto Sans CJK Japanese
       </message>
 
       <!-- The default value for |WebPreference::fixed_font_family_map| for
@@ -226,13 +226,13 @@
       <!-- The default value for |WebPreference::sans_serif_font_family_map| for
            Japanese script.  -->
       <message name="IDS_SANS_SERIF_FONT_FAMILY_JAPANESE" use_name_for_id="true">
-        IPAPGothic
+        Noto Sans CJK Japanese
       </message>
 
      <!-- The default value for |WebPreference::standard_font_family_map| for
            Korean script. -->
       <message name="IDS_STANDARD_FONT_FAMILY_KOREAN" use_name_for_id="true">
-        NanumGothic
+        Noto Sans CJK Korean
       </message>
 
       <!-- The default value for |WebPreference::fixed_font_family_map| for
@@ -250,55 +250,55 @@
       <!-- The default value for |WebPreference::sans_serif_font_family_map| for
            Korean script.  -->
       <message name="IDS_SANS_SERIF_FONT_FAMILY_KOREAN" use_name_for_id="true">
-        NanumGothic
+        Noto Sans CJK Korean
       </message>
 
       <!-- The default value for |WebPreference::standard_font_family_map| for
            Simplified Chinese script. -->
       <message name="IDS_STANDARD_FONT_FAMILY_SIMPLIFIED_HAN" use_name_for_id="true">
-        Droid Sans Fallback
+        Noto Sans CJK Simplified Chinese
       </message>
 
       <!-- The default value for |WebPreference::fixed_font_family_map| for
            Simplified Chinese script. -->
       <message name="IDS_FIXED_FONT_FAMILY_SIMPLIFIED_HAN" use_name_for_id="true">
-        Droid Sans Fallback
+        Noto Sans CJK Simplfieid Chinese
       </message>
 
       <!-- The default value for |WebPreference::serif_font_family_map| for
            Simplified Chinese script. -->
       <message name="IDS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN" use_name_for_id="true">
-        Droid Sans Fallback
+        Noto Sans CJK Simplfieid Chinese
       </message>
 
       <!-- The default value for |WebPreference::sans_serif_font_family_map| for
            Simplified Chinese script.  -->
       <message name="IDS_SANS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN" use_name_for_id="true">
-        Droid Sans Fallback
+        Noto Sans CJK Simplfieid Chinese
       </message>
 
       <!-- The default value for |WebPreference::standard_font_family_map| for
            Traditional Chinese script. -->
       <message name="IDS_STANDARD_FONT_FAMILY_TRADITIONAL_HAN" use_name_for_id="true">
-        Droid Sans Fallback
+        Noto Sans CJK Traditional Chinese
       </message>
 
       <!-- The default value for |WebPreference::fixed_font_family_map| for
            Traditional Chinese script. -->
       <message name="IDS_FIXED_FONT_FAMILY_TRADITIONAL_HAN" use_name_for_id="true">
-        Droid Sans Fallback
+        Noto Sans CJK Traditional Chinese
       </message>
 
       <!-- The default value for |WebPreference::serif_font_family_map| for
            Traditional Chinese script. -->
       <message name="IDS_SERIF_FONT_FAMILY_TRADITIONAL_HAN" use_name_for_id="true">
-        Droid Sans Fallback
+        Noto Sans CJK Traditional Chinese
       </message>
 
       <!-- The default value for |WebPreference::sans_serif_font_family_map| for
            Traditional Chinese script.  -->
       <message name="IDS_SANS_SERIF_FONT_FAMILY_TRADITIONAL_HAN" use_name_for_id="true">
-        Droid Sans Fallback
+        Noto Sans CJK Traditional Chinese
       </message>
 
       <!-- The default value for |WebPreference::default_font_size| -->
diff --git a/chrome/app/resources/locale_settings_google_chromeos.grd b/chrome/app/resources/locale_settings_google_chromeos.grd
index 2901289..a553732 100644
--- a/chrome/app/resources/locale_settings_google_chromeos.grd
+++ b/chrome/app/resources/locale_settings_google_chromeos.grd
@@ -208,7 +208,7 @@
       <!-- The default value for |WebPreference::standard_font_family_map| for
            Japanese script. -->
       <message name="IDS_STANDARD_FONT_FAMILY_JAPANESE" use_name_for_id="true">
-        MotoyaG04Gothic
+        Noto Sans CJK Japanese
       </message>
 
       <!-- The default value for |WebPreference::fixed_font_family_map| for
@@ -226,13 +226,13 @@
       <!-- The default value for |WebPreference::sans_serif_font_family_map| for
            Japanese script.  -->
       <message name="IDS_SANS_SERIF_FONT_FAMILY_JAPANESE" use_name_for_id="true">
-        MotoyaG04Gothic
+        Noto Sans CJK Japanese
       </message>
 
      <!-- The default value for |WebPreference::standard_font_family_map| for
            Korean script. -->
       <message name="IDS_STANDARD_FONT_FAMILY_KOREAN" use_name_for_id="true">
-        NanumGothic
+        Noto Sans CJK Korean
       </message>
 
       <!-- The default value for |WebPreference::fixed_font_family_map| for
@@ -250,19 +250,19 @@
       <!-- The default value for |WebPreference::sans_serif_font_family_map| for
            Korean script.  -->
       <message name="IDS_SANS_SERIF_FONT_FAMILY_KOREAN" use_name_for_id="true">
-        NanumGothic
+        Noto Sans CJK Korean
       </message>
 
       <!-- The default value for |WebPreference::standard_font_family_map| for
            Simplified Chinese script. -->
       <message name="IDS_STANDARD_FONT_FAMILY_SIMPLIFIED_HAN" use_name_for_id="true">
-        MYingHeiGB18030
+        Noto Sans CJK Simplified Chinese
       </message>
 
       <!-- The default value for |WebPreference::fixed_font_family_map| for
            Simplified Chinese script. -->
       <message name="IDS_FIXED_FONT_FAMILY_SIMPLIFIED_HAN" use_name_for_id="true">
-        MYingHeiGB18030
+        Noto Sans CJK Simplified Chinese
       </message>
 
       <!-- The default value for |WebPreference::serif_font_family_map| for
@@ -274,19 +274,19 @@
       <!-- The default value for |WebPreference::sans_serif_font_family_map| for
            Simplified Chinese script.  -->
       <message name="IDS_SANS_SERIF_FONT_FAMILY_SIMPLIFIED_HAN" use_name_for_id="true">
-        MYingHeiGB18030
+        Noto Sans CJK Simplified Chinese
       </message>
 
       <!-- The default value for |WebPreference::standard_font_family_map| for
            Traditional Chinese script. -->
       <message name="IDS_STANDARD_FONT_FAMILY_TRADITIONAL_HAN" use_name_for_id="true">
-        MYingHeiB5HK
+        Noto Sans CJK Traditional  Chinese
       </message>
 
       <!-- The default value for |WebPreference::fixed_font_family_map| for
            Traditional Chinese script. -->
       <message name="IDS_FIXED_FONT_FAMILY_TRADITIONAL_HAN" use_name_for_id="true">
-        MYingHeiB5HK
+        Noto Sans CJK Traditional  Chinese
       </message>
 
       <!-- The default value for |WebPreference::serif_font_family_map| for
@@ -298,7 +298,7 @@
       <!-- The default value for |WebPreference::sans_serif_font_family_map| for
            Traditional Chinese script.  -->
       <message name="IDS_SANS_SERIF_FONT_FAMILY_TRADITIONAL_HAN" use_name_for_id="true">
-        MYingHeiB5HK
+        Noto Sans CJK Traditional  Chinese
       </message>
 
       <!-- The default value for |WebPreference::default_font_size| -->
diff --git a/chrome/app/resources/platform_locale_settings/locale_settings_cros_ja.xtb b/chrome/app/resources/platform_locale_settings/locale_settings_cros_ja.xtb
index 7d36881..819d457 100644
--- a/chrome/app/resources/platform_locale_settings/locale_settings_cros_ja.xtb
+++ b/chrome/app/resources/platform_locale_settings/locale_settings_cros_ja.xtb
@@ -1,17 +1,15 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="ja">
+<translation id="IDS_STANDARD_FONT_FAMILY">Noto Sans CJK Japanese</translation>
+<translation id="IDS_SANS_SERIF_FONT_FAMILY">Noto Sans CJK Japanese</translation>
 <if expr="_google_chrome">
-  <translation id="IDS_STANDARD_FONT_FAMILY">MotoyaG04Gothic</translation>
   <translation id="IDS_FIXED_FONT_FAMILY">MotoyaG04GothicMono</translation>
   <translation id="IDS_SERIF_FONT_FAMILY">MotoyaG04Mincho</translation>
-  <translation id="IDS_SANS_SERIF_FONT_FAMILY">MotoyaG04Gothic</translation>
 </if>
 <if expr="not _google_chrome">
-  <translation id="IDS_STANDARD_FONT_FAMILY">IPAPGothic</translation>
   <translation id="IDS_FIXED_FONT_FAMILY">IPAGothic</translation>
   <translation id="IDS_SERIF_FONT_FAMILY">IPAPMincho</translation>
-  <translation id="IDS_SANS_SERIF_FONT_FAMILY">IPAPGothic</translation>
 </if>
 <translation id="IDS_MINIMUM_FONT_SIZE">10</translation>
 <translation id="IDS_MINIMUM_LOGICAL_FONT_SIZE">10</translation>
diff --git a/chrome/app/resources/platform_locale_settings/locale_settings_cros_ko.xtb b/chrome/app/resources/platform_locale_settings/locale_settings_cros_ko.xtb
index cb0db2a..a696d89 100644
--- a/chrome/app/resources/platform_locale_settings/locale_settings_cros_ko.xtb
+++ b/chrome/app/resources/platform_locale_settings/locale_settings_cros_ko.xtb
@@ -2,10 +2,10 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ko">
 <!-- TODO(jungshik): remove this line once we fix bug 14691 -->
-<translation id="IDS_STANDARD_FONT_FAMILY">NanumGothic</translation>
+<translation id="IDS_STANDARD_FONT_FAMILY">Noto Sans CJK Korean</translation>
 <translation id="IDS_FIXED_FONT_FAMILY">Monospace</translation>
 <translation id="IDS_SERIF_FONT_FAMILY">NanumMyeongjo</translation>
-<translation id="IDS_SANS_SERIF_FONT_FAMILY">NanumGothic</translation>
+<translation id="IDS_SANS_SERIF_FONT_FAMILY">Noto Sans CJK Korean</translation>
 <translation id="IDS_MINIMUM_FONT_SIZE">10</translation>
 <translation id="IDS_MINIMUM_LOGICAL_FONT_SIZE">10</translation>
 </translationbundle>
diff --git a/chrome/app/resources/platform_locale_settings/locale_settings_cros_zh-CN.xtb b/chrome/app/resources/platform_locale_settings/locale_settings_cros_zh-CN.xtb
index cfd9f1e..1a98e1d 100644
--- a/chrome/app/resources/platform_locale_settings/locale_settings_cros_zh-CN.xtb
+++ b/chrome/app/resources/platform_locale_settings/locale_settings_cros_zh-CN.xtb
@@ -1,16 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-CN">
+<translation id="IDS_STANDARD_FONT_FAMILY">Noto Sans CJK Simplified Chinese</translation>
+<translation id="IDS_FIXED_FONT_FAMILY">Noto Sans CJK Simplified Chinese</translation>
+<translation id="IDS_SANS_SERIF_FONT_FAMILY">Noto Sans CJK Simplified Chinese</translation>
 <if expr="_google_chrome">
-  <translation id="IDS_STANDARD_FONT_FAMILY">MYingHeiGB18030</translation>
-  <translation id="IDS_FIXED_FONT_FAMILY">MYingHeiGB18030</translation>
   <translation id="IDS_SERIF_FONT_FAMILY">MSung GB18030</translation>
-  <translation id="IDS_SANS_SERIF_FONT_FAMILY">MYingHeiGB18030</translation>
 </if>
 <if expr="not _google_chrome">
-  <translation id="IDS_STANDARD_FONT_FAMILY">Droid Sans Fallback</translation>
-  <translation id="IDS_FIXED_FONT_FAMILY">Droid Sans Fallback</translation>
-  <translation id="IDS_SANS_SERIF_FONT_FAMILY">Droid Sans Fallback</translation>
+  <translation id="IDS_SERIF_FONT_FAMILY">Noto Sans CJK Simplified Chinese</translation>
 </if>
 <translation id="IDS_MINIMUM_FONT_SIZE">12</translation>
 <translation id="IDS_MINIMUM_LOGICAL_FONT_SIZE">12</translation>
diff --git a/chrome/app/resources/platform_locale_settings/locale_settings_cros_zh-TW.xtb b/chrome/app/resources/platform_locale_settings/locale_settings_cros_zh-TW.xtb
index 74e2a1d..00e9094 100644
--- a/chrome/app/resources/platform_locale_settings/locale_settings_cros_zh-TW.xtb
+++ b/chrome/app/resources/platform_locale_settings/locale_settings_cros_zh-TW.xtb
@@ -1,16 +1,14 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-TW">
+<translation id="IDS_STANDARD_FONT_FAMILY">Noto Sans CJK Traditional Chinese</translation>
+<translation id="IDS_FIXED_FONT_FAMILY">Noto Sans CJK Traditional Chinese</translation>
+<translation id="IDS_SANS_SERIF_FONT_FAMILY">Noto Sans CJK Traditional Chinese</translation>
 <if expr="_google_chrome">
-  <translation id="IDS_STANDARD_FONT_FAMILY">MYingHeiB5HK</translation>
-  <translation id="IDS_FIXED_FONT_FAMILY">MYingHeiB5HK</translation>
   <translation id="IDS_SERIF_FONT_FAMILY">MSung B5HK</translation>
-  <translation id="IDS_SANS_SERIF_FONT_FAMILY">MYingHeiB5HK</translation>
 </if>
 <if expr="not _google_chrome">
-  <translation id="IDS_STANDARD_FONT_FAMILY">Droid Sans Fallback</translation>
-  <translation id="IDS_FIXED_FONT_FAMILY">Droid Sans Fallback</translation>
-  <translation id="IDS_SANS_SERIF_FONT_FAMILY">Droid Sans Fallback</translation>
+<translation id="IDS_SERIF_FONT_FAMILY">Noto Sans CJK Traditional Chinese</translation>
 </if>
 <translation id="IDS_MINIMUM_FONT_SIZE">12</translation>
 <translation id="IDS_MINIMUM_LOGICAL_FONT_SIZE">12</translation>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 2a87d86..881c154 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1119,7 +1119,7 @@
     "enable-password-generation",
     IDS_FLAGS_ENABLE_PASSWORD_GENERATION_NAME,
     IDS_FLAGS_ENABLE_PASSWORD_GENERATION_DESCRIPTION,
-    kOsWin | kOsLinux | kOsCrOS,
+    kOsWin | kOsLinux | kOsCrOS | kOsMac,
     ENABLE_DISABLE_VALUE_TYPE(autofill::switches::kEnablePasswordGeneration,
                               autofill::switches::kDisablePasswordGeneration)
   },
diff --git a/chrome/browser/android/most_visited_sites.cc b/chrome/browser/android/most_visited_sites.cc
index e13597c..7b71164 100644
--- a/chrome/browser/android/most_visited_sites.cc
+++ b/chrome/browser/android/most_visited_sites.cc
@@ -24,8 +24,11 @@
 #include "chrome/browser/profiles/profile_android.h"
 #include "chrome/browser/search/suggestions/suggestions_service_factory.h"
 #include "chrome/browser/search/suggestions/suggestions_source.h"
+#include "chrome/browser/sync/profile_sync_service.h"
+#include "chrome/browser/sync/profile_sync_service_factory.h"
 #include "chrome/browser/thumbnails/thumbnail_list_source.h"
 #include "components/suggestions/suggestions_service.h"
+#include "components/suggestions/suggestions_utils.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/notification_source.h"
 #include "content/public/browser/url_data_source.h"
@@ -46,6 +49,7 @@
 using suggestions::SuggestionsProfile;
 using suggestions::SuggestionsService;
 using suggestions::SuggestionsServiceFactory;
+using suggestions::SyncState;
 
 namespace {
 
@@ -171,6 +175,18 @@
     counter->Add(position);
 }
 
+// Return the current SyncState for use with the SuggestionsService.
+SyncState GetSyncState(Profile* profile) {
+  ProfileSyncService* sync =
+      ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile);
+  if (!sync)
+    return SyncState::SYNC_OR_HISTORY_SYNC_DISABLED;
+  return suggestions::GetSyncState(
+      sync->IsSyncEnabledAndLoggedIn(),
+      sync->sync_initialized(),
+      sync->GetActiveDataTypes().Has(syncer::HISTORY_DELETE_DIRECTIVES));
+}
+
 }  // namespace
 
 MostVisitedSites::MostVisitedSites(Profile* profile)
@@ -182,9 +198,21 @@
   content::URLDataSource::Add(profile_,
                               new suggestions::SuggestionsSource(profile_));
   content::URLDataSource::Add(profile_, new ThumbnailListSource(profile_));
+
+  // Register this class as an observer to the sync service. It is important to
+  // be notified of changes in the sync state such as initialization, sync
+  // being enabled or disabled, etc.
+  ProfileSyncService* profile_sync_service =
+      ProfileSyncServiceFactory::GetForProfile(profile_);
+  if (profile_sync_service)
+    profile_sync_service->AddObserver(this);
 }
 
 MostVisitedSites::~MostVisitedSites() {
+  ProfileSyncService* profile_sync_service =
+      ProfileSyncServiceFactory::GetForProfile(profile_);
+  if (profile_sync_service && profile_sync_service->HasObserver(this))
+    profile_sync_service->RemoveObserver(this);
 }
 
 void MostVisitedSites::Destroy(JNIEnv* env, jobject obj) {
@@ -230,11 +258,13 @@
   std::string url_string = ConvertJavaStringToUTF8(env, url);
   scoped_refptr<TopSites> top_sites(profile_->GetTopSites());
 
-  // If the Suggestions service is enabled, create a callback to fetch a
-  // server thumbnail from it, in case the local thumbnail is not found.
+  // If the Suggestions service is enabled and in use, create a callback to
+  // fetch a server thumbnail from it, in case the local thumbnail is not found.
   SuggestionsService* suggestions_service =
       SuggestionsServiceFactory::GetForProfile(profile_);
-  base::Closure lookup_failed_callback = suggestions_service ?
+  bool use_suggestions_service = suggestions_service &&
+      mv_source_ == SUGGESTIONS_SERVICE;
+  base::Closure lookup_failed_callback = use_suggestions_service ?
       base::Bind(&MostVisitedSites::GetSuggestionsThumbnailOnUIThread,
                  weak_ptr_factory_.GetWeakPtr(),
                  suggestions_service, url_string,
@@ -317,6 +347,13 @@
   }
 }
 
+void MostVisitedSites::OnStateChanged() {
+  // There have been changes to the sync state. This class cares about a few
+  // (just initialized, enabled/disabled or history sync state changed). Re-run
+  // the query code which will use the proper state.
+  QueryMostVisitedURLs();
+}
+
 // static
 bool MostVisitedSites::Register(JNIEnv* env) {
   return RegisterNativesImpl(env);
@@ -328,6 +365,7 @@
   if (suggestions_service) {
     // Suggestions service is enabled, initiate a query.
     suggestions_service->FetchSuggestionsData(
+        GetSyncState(profile_),
         base::Bind(
           &MostVisitedSites::OnSuggestionsProfileAvailable,
           weak_ptr_factory_.GetWeakPtr(),
diff --git a/chrome/browser/android/most_visited_sites.h b/chrome/browser/android/most_visited_sites.h
index 39ecceb..4a24ad7 100644
--- a/chrome/browser/android/most_visited_sites.h
+++ b/chrome/browser/android/most_visited_sites.h
@@ -12,6 +12,7 @@
 #include "base/memory/weak_ptr.h"
 #include "chrome/browser/history/history_types.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/sync/profile_sync_service_observer.h"
 #include "components/suggestions/proto/suggestions.pb.h"
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
@@ -21,7 +22,8 @@
 }
 
 // Provides the list of most visited sites and their thumbnails to Java.
-class MostVisitedSites : public content::NotificationObserver {
+class MostVisitedSites : public ProfileSyncServiceObserver,
+                         public content::NotificationObserver {
  public:
   typedef base::Callback<
       void(base::android::ScopedJavaGlobalRef<jobject>* bitmap,
@@ -47,6 +49,9 @@
                        const content::NotificationSource& source,
                        const content::NotificationDetails& details) OVERRIDE;
 
+  // ProfileSyncServiceObserver implementation.
+  virtual void OnStateChanged() OVERRIDE;
+
   // Registers JNI methods.
   static bool Register(JNIEnv* env);
 
diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
index 0e40ea0..6d536f3 100644
--- a/chrome/browser/android/tab_android.cc
+++ b/chrome/browser/android/tab_android.cc
@@ -306,6 +306,17 @@
       did_finish_load);
 }
 
+void TabAndroid::OnWebContentsInstantSupportDisabled(
+    const content::WebContents* contents) {
+  DCHECK(contents);
+  if (web_contents() != contents)
+    return;
+
+  JNIEnv* env = base::android::AttachCurrentThread();
+  Java_Tab_onWebContentsInstantSupportDisabled(env,
+                                               weak_java_tab_.get(env).obj());
+}
+
 void TabAndroid::Observe(int type,
                          const content::NotificationSource& source,
                          const content::NotificationDetails& details) {
@@ -371,6 +382,7 @@
   WindowAndroidHelper::FromWebContents(web_contents())->
       SetWindowAndroid(content_view_core->GetWindowAndroid());
   CoreTabHelper::FromWebContents(web_contents())->set_delegate(this);
+  SearchTabHelper::FromWebContents(web_contents())->set_delegate(this);
   web_contents_delegate_.reset(
       new chrome::android::ChromeWebContentsDelegateAndroid(
           env, jweb_contents_delegate));
diff --git a/chrome/browser/android/tab_android.h b/chrome/browser/android/tab_android.h
index d09aa93..c25d16e 100644
--- a/chrome/browser/android/tab_android.h
+++ b/chrome/browser/android/tab_android.h
@@ -13,6 +13,7 @@
 #include "base/strings/string16.h"
 #include "chrome/browser/sessions/session_id.h"
 #include "chrome/browser/sync/glue/synced_tab_delegate_android.h"
+#include "chrome/browser/ui/search/search_tab_helper_delegate.h"
 #include "chrome/browser/ui/tab_contents/core_tab_helper_delegate.h"
 #include "chrome/browser/ui/toolbar/toolbar_model.h"
 #include "content/public/browser/notification_observer.h"
@@ -42,6 +43,7 @@
 }
 
 class TabAndroid : public CoreTabHelperDelegate,
+                   public SearchTabHelperDelegate,
                    public content::NotificationObserver {
  public:
   enum TabLoadStatus {
@@ -111,6 +113,10 @@
                                bool did_start_load,
                                bool did_finish_load) OVERRIDE;
 
+  // Overridden from SearchTabHelperDelegate:
+  virtual void OnWebContentsInstantSupportDisabled(
+      const content::WebContents* web_contents) OVERRIDE;
+
   // NotificationObserver -----------------------------------------------------
   virtual void Observe(int type,
                        const content::NotificationSource& source,
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm
index 57fb281..6c5f2bb 100644
--- a/chrome/browser/app_controller_mac.mm
+++ b/chrome/browser/app_controller_mac.mm
@@ -1546,6 +1546,36 @@
       WorkAreaChanged());
 }
 
+- (BOOL)application:(NSApplication*)application
+    willContinueUserActivityWithType:(NSString*)userActivityType {
+  return [userActivityType isEqualToString:NSUserActivityTypeBrowsingWeb];
+}
+
+- (BOOL)application:(NSApplication*)application
+    continueUserActivity:(NSUserActivity*)userActivity
+      restorationHandler:(void (^)(NSArray*))restorationHandler {
+  if (![userActivity.activityType
+          isEqualToString:NSUserActivityTypeBrowsingWeb]) {
+    return NO;
+  }
+
+  NSURL* url = userActivity.webPageURL;
+  if (!url)
+    return NO;
+
+  GURL gurl(base::SysNSStringToUTF8([url absoluteString]));
+  std::vector<GURL> gurlVector;
+  gurlVector.push_back(gurl);
+
+  [self openUrls:gurlVector];
+  return YES;
+}
+
+- (void)application:(NSApplication*)application
+    didFailToContinueUserActivityWithType:(NSString*)userActivityType
+                                    error:(NSError*)error {
+}
+
 @end  // @implementation AppController
 
 //---------------------------------------------------------------------------
diff --git a/chrome/browser/chrome_browser_main_linux.cc b/chrome/browser/chrome_browser_main_linux.cc
index b7967f8..942daad 100644
--- a/chrome/browser/chrome_browser_main_linux.cc
+++ b/chrome/browser/chrome_browser_main_linux.cc
@@ -4,6 +4,8 @@
 
 #include "chrome/browser/chrome_browser_main_linux.h"
 
+#include <fontconfig/fontconfig.h>
+
 #include "chrome/browser/browser_process.h"
 #include "components/breakpad/app/breakpad_linux.h"
 #include "components/metrics/metrics_service.h"
@@ -22,6 +24,15 @@
 ChromeBrowserMainPartsLinux::~ChromeBrowserMainPartsLinux() {
 }
 
+void ChromeBrowserMainPartsLinux::ToolkitInitialized() {
+  // Explicitly initialize Fontconfig early on to prevent races later due to
+  // implicit initialization in response to threads' first calls to Fontconfig:
+  // http://crbug.com/404311
+  FcInit();
+
+  ChromeBrowserMainPartsPosix::ToolkitInitialized();
+}
+
 void ChromeBrowserMainPartsLinux::PreProfileInit() {
 #if !defined(OS_CHROMEOS)
   // Needs to be called after we have chrome::DIR_USER_DATA and
diff --git a/chrome/browser/chrome_browser_main_linux.h b/chrome/browser/chrome_browser_main_linux.h
index 37f35ce..9d9a92a 100644
--- a/chrome/browser/chrome_browser_main_linux.h
+++ b/chrome/browser/chrome_browser_main_linux.h
@@ -17,6 +17,7 @@
   virtual ~ChromeBrowserMainPartsLinux();
 
   // ChromeBrowserMainParts overrides.
+  virtual void ToolkitInitialized() OVERRIDE;
   virtual void PreProfileInit() OVERRIDE;
   virtual void PostProfileInit() OVERRIDE;
 
diff --git a/chrome/browser/chromeos/boot_times_loader.cc b/chrome/browser/chromeos/boot_times_loader.cc
index eb4633e..1e5c22e 100644
--- a/chrome/browser/chromeos/boot_times_loader.cc
+++ b/chrome/browser/chromeos/boot_times_loader.cc
@@ -146,7 +146,7 @@
 }
 
 std::string BootTimesLoader::Stats::SerializeToString() const {
-  if (uptime_.empty() || disk_.empty())
+  if (uptime_.empty() && disk_.empty())
     return std::string();
   base::DictionaryValue dictionary;
   dictionary.SetString(kUptime, uptime_);
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
index 094e5ff..5540993 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
@@ -62,7 +62,7 @@
 }
 
 std::vector<linked_ptr<api::file_browser_private::ProfileInfo> >
-GetLoggedInProfileInfoList(content::WebContents* contents) {
+GetLoggedInProfileInfoList() {
   DCHECK(user_manager::UserManager::IsInitialized());
   const std::vector<Profile*>& profiles =
       g_browser_process->profile_manager()->GetLoadedProfiles();
@@ -89,18 +89,6 @@
     // TODO(hirono): Remove the property from the profile_info.
     profile_info->is_current_profile = true;
 
-    // Make an icon URL of the profile.
-    if (contents) {
-      const gfx::Image& image =
-          ash::GetAvatarImageForContext(contents->GetBrowserContext());
-      const gfx::ImageSkia& skia = image.AsImageSkia();
-      profile_info->profile_image.reset(
-          new api::file_browser_private::ImageSet);
-      profile_info->profile_image->scale1x_url =
-          webui::GetBitmapDataUrl(skia.GetRepresentation(1.0f).sk_bitmap());
-      profile_info->profile_image->scale2x_url =
-          webui::GetBitmapDataUrl(skia.GetRepresentation(2.0f).sk_bitmap());
-    }
     result_profiles.push_back(profile_info);
   }
 
@@ -380,7 +368,7 @@
 
 bool FileBrowserPrivateGetProfilesFunction::RunSync() {
   const std::vector<linked_ptr<api::file_browser_private::ProfileInfo> >&
-      profiles = GetLoggedInProfileInfoList(GetAssociatedWebContents());
+      profiles = GetLoggedInProfileInfoList();
 
   // Obtains the display profile ID.
   apps::AppWindow* const app_window = GetCurrentAppWindow(this);
@@ -404,7 +392,7 @@
   using api::file_browser_private::VisitDesktop::Params;
   const scoped_ptr<Params> params(Params::Create(*args_));
   const std::vector<linked_ptr<api::file_browser_private::ProfileInfo> >&
-      profiles = GetLoggedInProfileInfoList(GetAssociatedWebContents());
+      profiles = GetLoggedInProfileInfoList();
 
   chrome::MultiUserWindowManager* const window_manager =
       chrome::MultiUserWindowManager::GetInstance();
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
index 31c1c38..1c4cb33 100644
--- a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
+++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
@@ -1221,24 +1221,6 @@
 
 // Slow tests are disabled on debug build. http://crbug.com/327719
 #if !defined(NDEBUG)
-#define MAYBE_PRE_Badge DISABLED_PRE_Badge
-#define MAYBE_Badge DISABLED_Badge
-#else
-#define MAYBE_PRE_Badge PRE_Badge
-#define MAYBE_Badge Badge
-#endif
-IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, MAYBE_PRE_Badge) {
-  AddAllUsers();
-}
-
-IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, MAYBE_Badge) {
-  // Test the profile badge to be correctly shown and hidden.
-  set_test_case_name("multiProfileBadge");
-  StartTest();
-}
-
-// Slow tests are disabled on debug build. http://crbug.com/327719
-#if !defined(NDEBUG)
 #define MAYBE_PRE_VisitDesktopMenu DISABLED_PRE_VisitDesktopMenu
 #define MAYBE_VisitDesktopMenu DISABLED_VisitDesktopMenu
 #else
diff --git a/chrome/browser/chromeos/login/chrome_restart_request.cc b/chrome/browser/chromeos/login/chrome_restart_request.cc
index 7e6aeae..02757ab 100644
--- a/chrome/browser/chromeos/login/chrome_restart_request.cc
+++ b/chrome/browser/chromeos/login/chrome_restart_request.cc
@@ -153,6 +153,7 @@
     ::switches::kDisableWebRtcHWDecoding,
     ::switches::kDisableWebRtcHWEncoding,
     ::switches::kEnableWebRtcHWVp8Encoding,
+    ::switches::kEnableWebRtcHWH264Encoding,
 #endif
     ::switches::kDisableVaapiAcceleratedVideoEncode,
 #if defined(USE_OZONE)
diff --git a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc
index 7650d1a..d24d75c 100644
--- a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc
+++ b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.cc
@@ -164,7 +164,7 @@
 }
 
 void AutoEnrollmentController::StartClient(
-    const std::vector<std::string>& state_keys) {
+    const std::vector<std::string>& state_keys, bool first_boot) {
   policy::BrowserPolicyConnectorChromeOS* connector =
       g_browser_process->platform_part()->browser_policy_connector_chromeos();
   policy::DeviceManagementService* service =
@@ -185,7 +185,8 @@
   std::string device_id;
   if (GetMode() == MODE_FORCED_RE_ENROLLMENT) {
     retrieve_device_state = true;
-    device_id = state_keys.empty() ? std::string() : state_keys.front();
+    if (!state_keys.empty() && !first_boot)
+      device_id = state_keys.front();
   } else {
     device_id = policy::DeviceCloudPolicyManagerChromeOS::GetMachineID();
   }
diff --git a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h
index 67f31d5..cb7b2ee 100644
--- a/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h
+++ b/chrome/browser/chromeos/login/enrollment/auto_enrollment_controller.h
@@ -75,7 +75,7 @@
       DeviceSettingsService::OwnershipStatus status);
 
   // Starts the auto-enrollment client.
-  void StartClient(const std::vector<std::string>& state_keys);
+  void StartClient(const std::vector<std::string>& state_keys, bool first_boot);
 
   // Sets |state_| and notifies |progress_callbacks_|.
   void UpdateState(policy::AutoEnrollmentState state);
diff --git a/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.cc b/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.cc
index 4eecbd9..a6eff90 100644
--- a/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.cc
+++ b/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.cc
@@ -126,28 +126,16 @@
     }
   }
 
-  if (new_recommended_locales.empty()) {
-    // There are no recommended locales.
-    PublicSessionRecommendedLocaleMap::iterator it =
-        public_session_recommended_locales_.find(user_id);
-    if (it != public_session_recommended_locales_.end()) {
-      // If there previously were recommended locales, remove them from
-      // |public_session_recommended_locales_| and notify the UI.
-      public_session_recommended_locales_.erase(it);
-      SetPublicSessionLocales(user_id, &new_recommended_locales);
-    }
-    return;
-  }
-
-  // There are recommended locales.
   std::vector<std::string>& recommended_locales =
       public_session_recommended_locales_[user_id];
-  if (new_recommended_locales != recommended_locales) {
-    // If the list of recommended locales has changed, update
-    // |public_session_recommended_locales_| and notify the UI.
+
+  if (new_recommended_locales != recommended_locales)
+    SetPublicSessionLocales(user_id, new_recommended_locales);
+
+  if (new_recommended_locales.empty())
+    public_session_recommended_locales_.erase(user_id);
+  else
     recommended_locales = new_recommended_locales;
-    SetPublicSessionLocales(user_id, &new_recommended_locales);
-  }
 }
 
 void ChromeUserSelectionScreen::SetPublicSessionDisplayName(
@@ -164,29 +152,31 @@
 
 void ChromeUserSelectionScreen::SetPublicSessionLocales(
     const std::string& user_id,
-    const std::vector<std::string>* recommended_locales) {
+    const std::vector<std::string>& recommended_locales) {
   if (!handler_initialized_)
     return;
 
   // Construct the list of available locales. This list consists of the
   // recommended locales, followed by all others.
-  scoped_ptr<base::ListValue> locales =
-      GetUILanguageList(recommended_locales, std::string());
+  scoped_ptr<base::ListValue> available_locales =
+      GetUILanguageList(&recommended_locales, std::string());
 
-  // Set the initially selected locale. If the list of recommended locales is
-  // not empty, select its first entry. Otherwise, select the current UI locale.
-  const std::string& default_locale = recommended_locales->empty() ?
-      g_browser_process->GetApplicationLocale() : recommended_locales->front();
+  // Set the initially selected locale to the first recommended locale that is
+  // actually available or the current UI locale if none of them are available.
+  const std::string default_locale = FindMostRelevantLocale(
+      recommended_locales,
+      *available_locales.get(),
+      g_browser_process->GetApplicationLocale());
 
   // Set a flag to indicate whether the list of recommended locales contains at
   // least two entries. This is used to decide whether the public session pod
   // expands to its basic form (for zero or one recommended locales) or the
   // advanced form (two or more recommended locales).
-  const bool two_or_more_recommended_locales = recommended_locales->size() >= 2;
+  const bool two_or_more_recommended_locales = recommended_locales.size() >= 2;
 
   // Notify the UI.
   handler_->SetPublicSessionLocales(user_id,
-                                    locales.Pass(),
+                                    available_locales.Pass(),
                                     default_locale,
                                     two_or_more_recommended_locales);
 }
diff --git a/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.h b/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.h
index 46e71ff..db17645 100644
--- a/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.h
+++ b/chrome/browser/chromeos/login/screens/chrome_user_selection_screen.h
@@ -52,7 +52,7 @@
   // of the |recommended_locales| followed by all other available locales.
   void SetPublicSessionLocales(
       const std::string& user_id,
-      const std::vector<std::string>* recommended_locales);
+      const std::vector<std::string>& recommended_locales);
 
   bool handler_initialized_;
 
diff --git a/chrome/browser/chromeos/login/screens/user_selection_screen.cc b/chrome/browser/chromeos/login/screens/user_selection_screen.cc
index 41c3024..be0c782 100644
--- a/chrome/browser/chromeos/login/screens/user_selection_screen.cc
+++ b/chrome/browser/chromeos/login/screens/user_selection_screen.cc
@@ -4,8 +4,6 @@
 
 #include "chrome/browser/chromeos/login/screens/user_selection_screen.h"
 
-#include <vector>
-
 #include "ash/shell.h"
 #include "base/location.h"
 #include "base/logging.h"
@@ -66,23 +64,27 @@
   }
 
   std::vector<std::string> kEmptyRecommendedLocales;
-  const std::vector<std::string>* recommended_locales =
+  const std::vector<std::string>& recommended_locales =
       public_session_recommended_locales ?
-          public_session_recommended_locales : &kEmptyRecommendedLocales;
+          *public_session_recommended_locales : kEmptyRecommendedLocales;
 
-  // Set |kKeyInitialLocales| to the list of available locales. This list
-  // consists of the recommended locales, followed by all others.
-  user_dict->Set(
-      kKeyInitialLocales,
-      GetUILanguageList(recommended_locales, std::string()).release());
+  // Construct the list of available locales. This list consists of the
+  // recommended locales, followed by all others.
+  scoped_ptr<base::ListValue> available_locales =
+      GetUILanguageList(&recommended_locales, std::string());
 
-  // Set |kKeyInitialLocale| to the initially selected locale. If the list of
-  // recommended locales is not empty, select its first entry. Otherwise,
-  // select the current UI locale.
-  user_dict->SetString(kKeyInitialLocale,
-                       recommended_locales->empty() ?
-                           g_browser_process->GetApplicationLocale() :
-                           recommended_locales->front());
+  // Select the the first recommended locale that is actually available or the
+  // current UI locale if none of them are available.
+  const std::string selected_locale = FindMostRelevantLocale(
+      recommended_locales,
+      *available_locales.get(),
+      g_browser_process->GetApplicationLocale());
+
+  // Set |kKeyInitialLocales| to the list of available locales.
+  user_dict->Set(kKeyInitialLocales, available_locales.release());
+
+  // Set |kKeyInitialLocale| to the initially selected locale.
+  user_dict->SetString(kKeyInitialLocale, selected_locale);
 
   // Set |kKeyInitialMultipleRecommendedLocales| to indicate whether the list
   // of recommended locales contains at least two entries. This is used to
@@ -90,7 +92,7 @@
   // or one recommended locales) or the advanced form (two or more recommended
   // locales).
   user_dict->SetBoolean(kKeyInitialMultipleRecommendedLocales,
-                        recommended_locales->size() >= 2);
+                        recommended_locales.size() >= 2);
 
   // Set |kKeyInitialKeyboardLayout| to the current keyboard layout. This
   // value will be used temporarily only because the UI immediately requests a
@@ -362,6 +364,9 @@
 void UserSelectionScreen::SetAuthType(
     const std::string& username,
     ScreenlockBridge::LockHandler::AuthType auth_type) {
+  DCHECK(GetAuthType(username) !=
+             ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD ||
+         auth_type == ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD);
   user_auth_type_map_[username] = auth_type;
 }
 
diff --git a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
index 32aab49..254ef61 100644
--- a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
+++ b/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc
@@ -218,13 +218,7 @@
       // Users with a policy that prevents them being added to a session will be
       // shown in login UI but will be grayed out.
       // Same applies to owner account (see http://crbug.com/385034).
-      if (check == MultiProfileUserController::ALLOWED ||
-          check == MultiProfileUserController::NOT_ALLOWED_POLICY_FORBIDS ||
-          check == MultiProfileUserController::NOT_ALLOWED_OWNER_AS_SECONDARY ||
-          check ==
-              MultiProfileUserController::NOT_ALLOWED_POLICY_CERT_TAINTED) {
-        result.push_back(*it);
-      }
+      result.push_back(*it);
     }
   }
 
diff --git a/chrome/browser/chromeos/policy/device_local_account_browsertest.cc b/chrome/browser/chromeos/policy/device_local_account_browsertest.cc
index 077d915..ec2803b 100644
--- a/chrome/browser/chromeos/policy/device_local_account_browsertest.cc
+++ b/chrome/browser/chromeos/policy/device_local_account_browsertest.cc
@@ -128,12 +128,12 @@
 #include "net/url_request/url_request_status.h"
 #include "policy/policy_constants.h"
 #include "testing/gmock/include/gmock/gmock.h"
+#include "third_party/icu/source/common/unicode/locid.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/window_open_disposition.h"
 #include "ui/gfx/image/image_skia.h"
 #include "ui/views/widget/widget.h"
 #include "url/gurl.h"
-//#include "third_party/cros_system_api/dbus/service_constants.h"
 
 namespace em = enterprise_management;
 
@@ -190,6 +190,9 @@
   "fr",
   "nl",
 };
+const char* kInvalidRecommendedLocale[] = {
+  "xx",
+};
 const char kPublicSessionLocale[] = "de";
 const char kPublicSessionInputMethodIDTemplate[] = "_comp_ime_%sxkb:de:neo:ger";
 
@@ -377,23 +380,6 @@
   return user_manager::UserManager::Get()->IsSessionStarted();
 }
 
-// GetKeyboardLayoutsForLocale() posts a task to a background task runner. This
-// method flushes that task runner and the current thread's message loop to
-// ensure that GetKeyboardLayoutsForLocale() is finished.
-void WaitForGetKeyboardLayoutsForLocaleToFinish() {
-  base::SequencedWorkerPool* worker_pool =
-      content::BrowserThread::GetBlockingPool();
-   scoped_refptr<base::SequencedTaskRunner> background_task_runner =
-       worker_pool->GetSequencedTaskRunner(
-           worker_pool->GetNamedSequenceToken(kSequenceToken));
-  base::RunLoop run_loop;
-  background_task_runner->PostTaskAndReply(FROM_HERE,
-                                           base::Bind(&base::DoNothing),
-                                           run_loop.QuitClosure());
-  run_loop.Run();
-  base::RunLoop().RunUntilIdle();
-}
-
 }  // namespace
 
 class DeviceLocalAccountTest : public DevicePolicyCrosBrowserTest,
@@ -460,6 +446,9 @@
   virtual void SetUpOnMainThread() OVERRIDE {
     DevicePolicyCrosBrowserTest::SetUpOnMainThread();
 
+    initial_locale_ = g_browser_process->GetApplicationLocale();
+    initial_language_ = l10n_util::GetLanguage(initial_locale_);
+
     content::WindowedNotificationObserver(
         chrome::NOTIFICATION_LOGIN_OR_LOCK_WEBUI_VISIBLE,
         content::NotificationService::AllSources()).Wait();
@@ -655,6 +644,47 @@
     WaitForDisplayName(user_id_1_, kDisplayName1);
   }
 
+  void ExpandPublicSessionPod(bool expect_advanced) {
+    bool advanced = false;
+    // Click on the pod to expand it.
+    ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
+        contents_,
+        base::StringPrintf(
+            "var pod ="
+            "    document.getElementById('pod-row').getPodWithUsername_('%s');"
+            "pod.click();"
+            "domAutomationController.send(pod.classList.contains('advanced'));",
+            user_id_1_.c_str()),
+        &advanced));
+    // Verify that the pod expanded to its basic/advanced form, as expected.
+    EXPECT_EQ(expect_advanced, advanced);
+
+    // Verify that the construction of the pod's language list did not affect
+    // the current ICU locale.
+    EXPECT_EQ(initial_language_, icu::Locale::getDefault().getLanguage());
+  }
+
+  // GetKeyboardLayoutsForLocale() posts a task to a background task runner.
+  // This method flushes that task runner and the current thread's message loop
+  // to ensure that GetKeyboardLayoutsForLocale() is finished.
+  void WaitForGetKeyboardLayoutsForLocaleToFinish() {
+    base::SequencedWorkerPool* worker_pool =
+        content::BrowserThread::GetBlockingPool();
+     scoped_refptr<base::SequencedTaskRunner> background_task_runner =
+         worker_pool->GetSequencedTaskRunner(
+             worker_pool->GetNamedSequenceToken(kSequenceToken));
+    base::RunLoop run_loop;
+    background_task_runner->PostTaskAndReply(FROM_HERE,
+                                             base::Bind(&base::DoNothing),
+                                             run_loop.QuitClosure());
+    run_loop.Run();
+    base::RunLoop().RunUntilIdle();
+
+    // Verify that the construction of the keyboard layout list did not affect
+    // the current ICU locale.
+    EXPECT_EQ(initial_language_, icu::Locale::getDefault().getLanguage());
+  }
+
   void StartLogin(const std::string& locale,
                   const std::string& input_method) {
     // Start login into the device-local account.
@@ -699,6 +729,9 @@
   const std::string user_id_2_;
   const std::string public_session_input_method_id_;
 
+  std::string initial_locale_;
+  std::string initial_language_;
+
   scoped_ptr<base::RunLoop> run_loop_;
 
   UserPolicyBuilder device_local_account_policy_;
@@ -1395,26 +1428,12 @@
 };
 
 IN_PROC_BROWSER_TEST_F(DeviceLocalAccountTest, NoRecommendedLocaleNoSwitch) {
-  const std::string initial_locale = g_browser_process->GetApplicationLocale();
-
   UploadAndInstallDeviceLocalAccountPolicy();
   AddPublicSessionToDevicePolicy(kAccountId1);
 
   WaitForPolicy();
 
-  // Click on the pod to expand it. Verify that the pod expands to its basic
-  // form as there are no recommended locales.
-  bool advanced = false;
-  ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-      contents_,
-      base::StringPrintf(
-          "var pod ="
-          "    document.getElementById('pod-row').getPodWithUsername_('%s');"
-          "pod.click();"
-          "domAutomationController.send(pod.classList.contains('advanced'));",
-          user_id_1_.c_str()),
-      &advanced));
-  EXPECT_FALSE(advanced);
+  ExpandPublicSessionPod(false);
 
   // Click the enter button to start the session.
   ASSERT_TRUE(content::ExecuteScript(
@@ -1428,7 +1447,8 @@
 
   // Verify that the locale has not changed and the first keyboard layout
   // applicable to the locale was chosen.
-  EXPECT_EQ(initial_locale, g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(initial_locale_, g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(initial_language_, icu::Locale::getDefault().getLanguage());
   VerifyKeyboardLayoutMatchesLocale();
 }
 
@@ -1438,22 +1458,11 @@
 
   WaitForPolicy();
 
-  // Click on the pod to expand it. Verify that the pod expands to its basic
-  // form as there are no recommended locales.
-  bool advanced = false;
-  ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-      contents_,
-      base::StringPrintf(
-          "var pod ="
-          "    document.getElementById('pod-row').getPodWithUsername_('%s');"
-          "pod.click();"
-          "domAutomationController.send(pod.classList.contains('advanced'));",
-          user_id_1_.c_str()),
-      &advanced));
-  EXPECT_FALSE(advanced);
+  ExpandPublicSessionPod(false);
 
   // Click the link that switches the pod to its advanced form. Verify that the
   // pod switches from basic to advanced.
+  bool advanced = false;
   ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
       contents_,
       base::StringPrintf(
@@ -1498,6 +1507,8 @@
 
   // Verify that the locale and keyboard layout have been applied.
   EXPECT_EQ(kPublicSessionLocale, g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(l10n_util::GetLanguage(kPublicSessionLocale),
+            icu::Locale::getDefault().getLanguage());
   EXPECT_EQ(public_session_input_method_id_,
             chromeos::input_method::InputMethodManager::Get()->
                 GetCurrentInputMethod().id());
@@ -1512,19 +1523,7 @@
 
   WaitForPolicy();
 
-  // Click on the pod to expand it. Verify that the pod expands to its basic
-  // form as there is only one recommended locale.
-  bool advanced = false;
-  ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-      contents_,
-      base::StringPrintf(
-          "var pod ="
-          "    document.getElementById('pod-row').getPodWithUsername_('%s');"
-          "pod.click();"
-          "domAutomationController.send(pod.classList.contains('advanced'));",
-          user_id_1_.c_str()),
-      &advanced));
-  EXPECT_FALSE(advanced);
+  ExpandPublicSessionPod(false);
 
   // Click the enter button to start the session.
   ASSERT_TRUE(content::ExecuteScript(
@@ -1540,6 +1539,8 @@
   // layout applicable to the locale was chosen.
   EXPECT_EQ(kSingleRecommendedLocale[0],
             g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(l10n_util::GetLanguage(kSingleRecommendedLocale[0]),
+            icu::Locale::getDefault().getLanguage());
   VerifyKeyboardLayoutMatchesLocale();
 }
 
@@ -1552,19 +1553,7 @@
 
   WaitForPolicy();
 
-  // Click on the pod to expand it. Verify that the pod expands to its advanced
-  // form directly as there are two or more recommended locales.
-  bool advanced = false;
-  ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-      contents_,
-      base::StringPrintf(
-          "var pod ="
-          "    document.getElementById('pod-row').getPodWithUsername_('%s');"
-          "pod.click();"
-          "domAutomationController.send(pod.classList.contains('advanced'));",
-          user_id_1_.c_str()),
-      &advanced));
-  EXPECT_TRUE(advanced);
+  ExpandPublicSessionPod(true);
 
   // Verify that the pod shows a list of locales beginning with the recommended
   // ones, followed by others.
@@ -1727,6 +1716,7 @@
   const base::DictionaryValue* state = NULL;
   ASSERT_TRUE(value_ptr);
   ASSERT_TRUE(value_ptr->GetAsDictionary(&state));
+  bool advanced = false;
   EXPECT_TRUE(state->GetBoolean("advanced", &advanced));
   EXPECT_TRUE(advanced);
   EXPECT_TRUE(state->GetString("locale", &selected_locale));
@@ -1747,15 +1737,58 @@
 
   // Verify that the locale and keyboard layout have been applied.
   EXPECT_EQ(kPublicSessionLocale, g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(l10n_util::GetLanguage(kPublicSessionLocale),
+            icu::Locale::getDefault().getLanguage());
   EXPECT_EQ(public_session_input_method_id_,
             chromeos::input_method::InputMethodManager::Get()->
                 GetCurrentInputMethod().id());
 }
 
+IN_PROC_BROWSER_TEST_F(DeviceLocalAccountTest, InvalidRecommendedLocale) {
+  // Specify an invalid recommended locale.
+  SetRecommendedLocales(kInvalidRecommendedLocale,
+                        arraysize(kInvalidRecommendedLocale));
+  UploadAndInstallDeviceLocalAccountPolicy();
+  AddPublicSessionToDevicePolicy(kAccountId1);
+
+  WaitForPolicy();
+
+  // Click on the pod to expand it. Verify that the pod expands to its basic
+  // form as there is only one recommended locale.
+  bool advanced = false;
+  ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
+      contents_,
+      base::StringPrintf(
+          "var pod ="
+          "    document.getElementById('pod-row').getPodWithUsername_('%s');"
+          "pod.click();"
+          "domAutomationController.send(pod.classList.contains('advanced'));",
+          user_id_1_.c_str()),
+      &advanced));
+  EXPECT_FALSE(advanced);
+  EXPECT_EQ(l10n_util::GetLanguage(initial_locale_),
+            icu::Locale::getDefault().getLanguage());
+
+  // Click the enter button to start the session.
+  ASSERT_TRUE(content::ExecuteScript(
+      contents_,
+      base::StringPrintf(
+          "document.getElementById('pod-row').getPodWithUsername_('%s')"
+          "    .querySelector('.enter-button').click();",
+          user_id_1_.c_str())));
+
+  WaitForSessionStart();
+
+  // Verify that since the recommended locale was invalid, the locale has not
+  // changed and the first keyboard layout applicable to the locale was chosen.
+  EXPECT_EQ(initial_locale_, g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(l10n_util::GetLanguage(initial_locale_),
+            icu::Locale::getDefault().getLanguage());
+  VerifyKeyboardLayoutMatchesLocale();
+}
+
 IN_PROC_BROWSER_TEST_F(DeviceLocalAccountTest,
                        AutoLoginWithoutRecommendedLocales) {
-  const std::string initial_locale = g_browser_process->GetApplicationLocale();
-
   UploadAndInstallDeviceLocalAccountPolicy();
   AddPublicSessionToDevicePolicy(kAccountId1);
   EnableAutoLogin();
@@ -1766,7 +1799,8 @@
 
   // Verify that the locale has not changed and the first keyboard layout
   // applicable to the locale was chosen.
-  EXPECT_EQ(initial_locale, g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(initial_locale_, g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(initial_language_, icu::Locale::getDefault().getLanguage());
   VerifyKeyboardLayoutMatchesLocale();
 }
 
@@ -1785,6 +1819,8 @@
   // Verify that the first recommended locale has been applied and the first
   // keyboard layout applicable to the locale was chosen.
   EXPECT_EQ(kRecommendedLocales1[0], g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(l10n_util::GetLanguage(kRecommendedLocales1[0]),
+            icu::Locale::getDefault().getLanguage());
   VerifyKeyboardLayoutMatchesLocale();
 }
 
@@ -1872,6 +1908,8 @@
 
   // Verify that the locale and keyboard layout have been applied.
   EXPECT_EQ(kPublicSessionLocale, g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(l10n_util::GetLanguage(kPublicSessionLocale),
+            icu::Locale::getDefault().getLanguage());
   EXPECT_EQ(public_session_input_method_id_,
             chromeos::input_method::InputMethodManager::Get()->
                 GetCurrentInputMethod().id());
@@ -1884,6 +1922,8 @@
 
   // Verify that the locale and keyboard layout are still in force.
   EXPECT_EQ(kPublicSessionLocale, g_browser_process->GetApplicationLocale());
+  EXPECT_EQ(l10n_util::GetLanguage(kPublicSessionLocale),
+            icu::Locale::getDefault().getLanguage());
   EXPECT_EQ(public_session_input_method_id_,
             chromeos::input_method::InputMethodManager::Get()->
                 GetCurrentInputMethod().id());
diff --git a/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc b/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc
index 5e447e9..a75e7b8 100644
--- a/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc
+++ b/chrome/browser/chromeos/policy/enrollment_handler_chromeos.cc
@@ -207,7 +207,7 @@
 }
 
 void EnrollmentHandlerChromeOS::CheckStateKeys(
-    const std::vector<std::string>& state_keys) {
+    const std::vector<std::string>& state_keys, bool /* first_boot */) {
   CHECK_EQ(STEP_STATE_KEYS, enrollment_step_);
 
   // Make sure state keys are available if forced re-enrollment is on.
diff --git a/chrome/browser/chromeos/policy/enrollment_handler_chromeos.h b/chrome/browser/chromeos/policy/enrollment_handler_chromeos.h
index 90d6516..275aa2b 100644
--- a/chrome/browser/chromeos/policy/enrollment_handler_chromeos.h
+++ b/chrome/browser/chromeos/policy/enrollment_handler_chromeos.h
@@ -121,7 +121,8 @@
   };
 
   // Handles the response to a request for server-backed state keys.
-  void CheckStateKeys(const std::vector<std::string>& state_keys);
+  void CheckStateKeys(const std::vector<std::string>& state_keys,
+                      bool first_boot);
 
   // Starts registration if the store is initialized.
   void AttemptRegistration();
diff --git a/chrome/browser/chromeos/policy/server_backed_state_keys_broker.cc b/chrome/browser/chromeos/policy/server_backed_state_keys_broker.cc
index df174e2..99d945d 100644
--- a/chrome/browser/chromeos/policy/server_backed_state_keys_broker.cc
+++ b/chrome/browser/chromeos/policy/server_backed_state_keys_broker.cc
@@ -28,6 +28,7 @@
     scoped_refptr<base::TaskRunner> delayed_task_runner)
     : session_manager_client_(session_manager_client),
       delayed_task_runner_(delayed_task_runner),
+      first_boot_(false),
       requested_(false),
       initial_retrieval_completed_(false),
       weak_factory_(this) {
@@ -53,7 +54,7 @@
   }
 
   if (!callback.is_null())
-    callback.Run(state_keys_);
+    callback.Run(state_keys_, first_boot_);
   return;
 }
 
@@ -67,7 +68,7 @@
 }
 
 void ServerBackedStateKeysBroker::StoreStateKeys(
-    const std::vector<std::string>& state_keys) {
+    const std::vector<std::string>& state_keys, bool first_boot) {
   bool send_notification = !initial_retrieval_completed_;
 
   requested_ = false;
@@ -80,6 +81,7 @@
   } else {
     send_notification |= state_keys_ != state_keys;
     state_keys_ = state_keys;
+    first_boot_ = first_boot;
   }
 
   if (send_notification)
@@ -92,7 +94,7 @@
        callback != callbacks.end();
        ++callback) {
     if (!callback->is_null())
-      callback->Run(state_keys_);
+      callback->Run(state_keys_, first_boot_);
   }
 
   delayed_task_runner_->PostDelayedTask(
diff --git a/chrome/browser/chromeos/policy/server_backed_state_keys_broker.h b/chrome/browser/chromeos/policy/server_backed_state_keys_broker.h
index 3711cad..9f9add4 100644
--- a/chrome/browser/chromeos/policy/server_backed_state_keys_broker.h
+++ b/chrome/browser/chromeos/policy/server_backed_state_keys_broker.h
@@ -30,7 +30,7 @@
 class ServerBackedStateKeysBroker {
  public:
   typedef scoped_ptr<base::CallbackList<void()>::Subscription> Subscription;
-  typedef base::Callback<void(const std::vector<std::string>&)>
+  typedef base::Callback<void(const std::vector<std::string>&, bool)>
       StateKeysCallback;
 
   ServerBackedStateKeysBroker(
@@ -71,7 +71,8 @@
   void FetchStateKeys();
 
   // Stores newly-received state keys and notifies consumers.
-  void StoreStateKeys(const std::vector<std::string>& state_keys);
+  void StoreStateKeys(const std::vector<std::string>& state_keys,
+                      bool first_boot);
 
   chromeos::SessionManagerClient* session_manager_client_;
 
@@ -80,6 +81,9 @@
   // The current set of state keys.
   std::vector<std::string> state_keys_;
 
+  // Set to true on first run after factory reset.
+  bool first_boot_;
+
   // Whether a request for state keys is pending.
   bool requested_;
 
diff --git a/chrome/browser/chromeos/policy/server_backed_state_keys_broker_unittest.cc b/chrome/browser/chromeos/policy/server_backed_state_keys_broker_unittest.cc
index 2dad66b..32ddf18 100644
--- a/chrome/browser/chromeos/policy/server_backed_state_keys_broker_unittest.cc
+++ b/chrome/browser/chromeos/policy/server_backed_state_keys_broker_unittest.cc
@@ -20,6 +20,7 @@
   ServerBackedStateKeysBrokerTest()
       : task_runner_(new base::TestSimpleTaskRunner()),
         broker_(&fake_session_manager_client_, task_runner_),
+        first_boot_(false),
         updated_(false),
         callback_invoked_(false) {
     state_keys_.push_back("1");
@@ -40,9 +41,11 @@
     EXPECT_EQ(state_keys_.front(), broker_.current_state_key());
   }
 
-  void HandleStateKeysCallback(const std::vector<std::string>& state_keys) {
+  void HandleStateKeysCallback(const std::vector<std::string>& state_keys,
+                               bool first_boot) {
     callback_invoked_ = true;
     callback_state_keys_ = state_keys;
+    first_boot_ = first_boot;
   }
 
  protected:
@@ -51,6 +54,7 @@
   chromeos::FakeSessionManagerClient fake_session_manager_client_;
   ServerBackedStateKeysBroker broker_;
   std::vector<std::string> state_keys_;
+  bool first_boot_;
   bool updated_;
   std::vector<std::string> callback_state_keys_;
   bool callback_invoked_;
@@ -133,6 +137,7 @@
   base::RunLoop().RunUntilIdle();
   ExpectGood();
   EXPECT_TRUE(callback_invoked_);
+  EXPECT_FALSE(first_boot_);
   EXPECT_EQ(state_keys_, callback_state_keys_);
 }
 
diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc
index 1dc5111..d4b4dd0 100644
--- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc
+++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.cc
@@ -289,6 +289,16 @@
                     new base::StringValue("primary-only"),
                     NULL);
   }
+
+  // Set EasyUnlockAllowed policy to false by default for managed accounts.
+  if (store()->has_policy() &&
+      !policy_map->Get(key::kEasyUnlockAllowed)) {
+    policy_map->Set(key::kEasyUnlockAllowed,
+                    POLICY_LEVEL_MANDATORY,
+                    POLICY_SCOPE_USER,
+                    new base::FundamentalValue(false),
+                    NULL);
+  }
 }
 
 void UserCloudPolicyManagerChromeOS::FetchPolicyOAuthTokenUsingSigninProfile() {
diff --git a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
index d25d7dc..980c255 100644
--- a/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
+++ b/chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos_unittest.cc
@@ -115,6 +115,10 @@
                     POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
                     new base::StringValue("primary-only"),
                     NULL);
+    policy_map_.Set(key::kEasyUnlockAllowed,
+                    POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+                    new base::FundamentalValue(false),
+                    NULL);
     expected_bundle_.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
         .CopyFrom(policy_map_);
 
diff --git a/chrome/browser/chromeos/system_logs/debug_daemon_log_source.cc b/chrome/browser/chromeos/system_logs/debug_daemon_log_source.cc
index fa3c395..213986f 100644
--- a/chrome/browser/chromeos/system_logs/debug_daemon_log_source.cc
+++ b/chrome/browser/chromeos/system_logs/debug_daemon_log_source.cc
@@ -12,10 +12,11 @@
 #include "base/memory/weak_ptr.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/chromeos/profiles/profile_helper.h"
 #include "chrome/common/chrome_switches.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/debug_daemon_client.h"
+#include "components/user_manager/user.h"
 #include "components/user_manager/user_manager.h"
 #include "content/public/browser/browser_thread.h"
 
@@ -134,20 +135,24 @@
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
   if (succeeded) {
     SystemLogsResponse* response = new SystemLogsResponse;
-    std::vector<Profile*> last_used = ProfileManager::GetLastOpenedProfiles();
 
-    if (last_used.empty() && user_manager::UserManager::IsInitialized() &&
-        user_manager::UserManager::Get()->IsLoggedInAsKioskApp()) {
-      // Use the kiosk app profile explicitly because kiosk session does not
-      // open any browsers thus ProfileManager::GetLastOpenedProfiles returns
-      // an empty |last_used|.
-      last_used.push_back(ProfileManager::GetActiveUserProfile());
+    const user_manager::UserList& users =
+        user_manager::UserManager::Get()->GetLoggedInUsers();
+    std::vector<base::FilePath> profile_dirs;
+    for (user_manager::UserList::const_iterator it = users.begin();
+         it != users.end();
+         ++it) {
+      if ((*it)->username_hash().empty())
+        continue;
+      profile_dirs.push_back(
+          chromeos::ProfileHelper::GetProfilePathByUserIdHash(
+              (*it)->username_hash()));
     }
 
     content::BrowserThread::PostBlockingPoolTaskAndReply(
         FROM_HERE,
         base::Bind(&DebugDaemonLogSource::ReadUserLogFiles,
-                   user_log_files, last_used, response),
+                   user_log_files, profile_dirs, response),
         base::Bind(&DebugDaemonLogSource::MergeResponse,
                    weak_ptr_factory_.GetWeakPtr(),
                    base::Owned(response)));
@@ -160,9 +165,9 @@
 // static
 void DebugDaemonLogSource::ReadUserLogFiles(
     const KeyValueMap& user_log_files,
-    const std::vector<Profile*>& last_used_profiles,
+    const std::vector<base::FilePath>& profile_dirs,
     SystemLogsResponse* response) {
-  for (size_t i = 0; i < last_used_profiles.size(); ++i) {
+  for (size_t i = 0; i < profile_dirs.size(); ++i) {
     std::string profile_prefix = "Profile[" + base::UintToString(i) + "] ";
     for (KeyValueMap::const_iterator it = user_log_files.begin();
          it != user_log_files.end();
@@ -170,9 +175,8 @@
       std::string key = it->first;
       std::string value;
       std::string filename = it->second;
-      base::FilePath profile_dir = last_used_profiles[i]->GetPath();
       bool read_success = base::ReadFileToString(
-          profile_dir.Append(filename), &value);
+          profile_dirs[i].Append(filename), &value);
 
       if (read_success && !value.empty())
         (*response)[profile_prefix + key] = value;
diff --git a/chrome/browser/chromeos/system_logs/debug_daemon_log_source.h b/chrome/browser/chromeos/system_logs/debug_daemon_log_source.h
index f1c5728..8beb30d 100644
--- a/chrome/browser/chromeos/system_logs/debug_daemon_log_source.h
+++ b/chrome/browser/chromeos/system_logs/debug_daemon_log_source.h
@@ -9,6 +9,7 @@
 #include <string>
 #include <vector>
 
+#include "base/files/file_path.h"
 #include "base/memory/weak_ptr.h"
 #include "chrome/browser/feedback/system_logs/system_logs_fetcher_base.h"
 
@@ -45,7 +46,7 @@
   // the response parameter.
   static void ReadUserLogFiles(
       const KeyValueMap& user_log_files,
-      const std::vector<Profile*>& last_used_profiles,
+      const std::vector<base::FilePath>& profile_dirs,
       SystemLogsResponse* response);
 
   // Merge the responses from ReadUserLogFiles into the main response dict and
diff --git a/chrome/browser/component_updater/widevine_cdm_component_installer.cc b/chrome/browser/component_updater/widevine_cdm_component_installer.cc
index 3d04ec9..663f48e 100644
--- a/chrome/browser/component_updater/widevine_cdm_component_installer.cc
+++ b/chrome/browser/component_updater/widevine_cdm_component_installer.cc
@@ -126,7 +126,9 @@
   plugin_info->is_out_of_process = true;
   plugin_info->path = path;
   plugin_info->name = kWidevineCdmDisplayName;
-  plugin_info->description = kWidevineCdmDescription;
+  plugin_info->description = kWidevineCdmDescription +
+                             std::string(" (version: ") + version.GetString() +
+                             ")";
   plugin_info->version = version.GetString();
   content::WebPluginMimeType widevine_cdm_mime_type(
       kWidevineCdmPluginMimeType,
diff --git a/chrome/browser/devtools/device/adb/adb_client_socket.cc b/chrome/browser/devtools/device/adb/adb_client_socket.cc
index 41b3c9b..0845f92 100644
--- a/chrome/browser/devtools/device/adb/adb_client_socket.cc
+++ b/chrome/browser/devtools/device/adb/adb_client_socket.cc
@@ -20,6 +20,9 @@
 const char kHostTransportCommand[] = "host:transport:%s";
 const char kLocalhost[] = "127.0.0.1";
 
+typedef base::Callback<void(int, const std::string&)> CommandCallback;
+typedef base::Callback<void(int, net::StreamSocket*)> SocketCallback;
+
 std::string EncodeMessage(const std::string& message) {
   static const char kHexChars[] = "0123456789ABCDEF";
 
@@ -70,14 +73,14 @@
   void OnSocketAvailable(int result, const std::string& response) {
     if (!CheckNetResultOrDie(result))
       return;
-    callback_.Run(net::OK, socket_.Pass());
+    callback_.Run(net::OK, socket_.release());
     delete this;
   }
 
   bool CheckNetResultOrDie(int result) {
     if (result >= 0)
       return true;
-    callback_.Run(result, make_scoped_ptr<net::StreamSocket>(NULL));
+    callback_.Run(result, NULL);
     delete this;
     return false;
   }
diff --git a/chrome/browser/devtools/device/adb/adb_client_socket.h b/chrome/browser/devtools/device/adb/adb_client_socket.h
index f331b02..f0d26ad 100644
--- a/chrome/browser/devtools/device/adb/adb_client_socket.h
+++ b/chrome/browser/devtools/device/adb/adb_client_socket.h
@@ -13,7 +13,7 @@
  public:
   typedef base::Callback<void(int, const std::string&)> CommandCallback;
   typedef base::Callback<void(int result,
-                              scoped_ptr<net::StreamSocket>)> SocketCallback;
+                              net::StreamSocket*)> SocketCallback;
 
   static void AdbQuery(int port,
                        const std::string& query,
diff --git a/chrome/browser/devtools/device/android_device_manager.cc b/chrome/browser/devtools/device/android_device_manager.cc
index c35cdeb..9020d60 100644
--- a/chrome/browser/devtools/device/android_device_manager.cc
+++ b/chrome/browser/devtools/device/android_device_manager.cc
@@ -50,9 +50,9 @@
     scoped_refptr<base::MessageLoopProxy> response_message_loop,
     const AndroidDeviceManager::SocketCallback& callback,
     int result,
-    scoped_ptr<net::StreamSocket> socket) {
-  response_message_loop->PostTask(
-      FROM_HERE, base::Bind(callback, result, base::Passed(&socket)));
+    net::StreamSocket* socket) {
+  response_message_loop->PostTask(FROM_HERE,
+                                  base::Bind(callback, result, socket));
 }
 
 class HttpRequest {
@@ -61,41 +61,39 @@
   typedef AndroidDeviceManager::SocketCallback SocketCallback;
 
   static void CommandRequest(const std::string& request,
-                             const CommandCallback& callback,
-                             int result,
-                             scoped_ptr<net::StreamSocket> socket) {
+                           const CommandCallback& callback,
+                           int result,
+                           net::StreamSocket* socket) {
     if (result != net::OK) {
       callback.Run(result, std::string());
       return;
     }
-    new HttpRequest(socket.Pass(), request, callback);
+    new HttpRequest(socket, request, callback);
   }
 
   static void SocketRequest(const std::string& request,
-                            const SocketCallback& callback,
-                            int result,
-                            scoped_ptr<net::StreamSocket> socket) {
+                          const SocketCallback& callback,
+                          int result,
+                          net::StreamSocket* socket) {
     if (result != net::OK) {
-      callback.Run(result, make_scoped_ptr<net::StreamSocket>(NULL));
+      callback.Run(result, NULL);
       return;
     }
-    new HttpRequest(socket.Pass(), request, callback);
+    new HttpRequest(socket, request, callback);
   }
 
  private:
-  HttpRequest(scoped_ptr<net::StreamSocket> socket,
+  HttpRequest(net::StreamSocket* socket,
               const std::string& request,
               const CommandCallback& callback)
-      : socket_(socket.Pass()),
-        command_callback_(callback),
-        body_pos_(0) {
+      : socket_(socket), command_callback_(callback), body_pos_(0) {
     SendRequest(request);
   }
 
-  HttpRequest(scoped_ptr<net::StreamSocket> socket,
-              const std::string& request,
-              const SocketCallback& callback)
-    : socket_(socket.Pass()),
+  HttpRequest(net::StreamSocket* socket,
+                      const std::string& request,
+                      const SocketCallback& callback)
+    : socket_(socket),
       socket_callback_(callback),
       body_pos_(0) {
     SendRequest(request);
@@ -171,7 +169,7 @@
       if (!command_callback_.is_null())
         command_callback_.Run(net::OK, response_.substr(body_pos_));
       else
-        socket_callback_.Run(net::OK, socket_.Pass());
+        socket_callback_.Run(net::OK, socket_.release());
       delete this;
       return;
     }
@@ -193,7 +191,7 @@
     if (!command_callback_.is_null())
       command_callback_.Run(result, std::string());
     else
-      socket_callback_.Run(result, make_scoped_ptr<net::StreamSocket>(NULL));
+      socket_callback_.Run(result, NULL);
     delete this;
     return false;
   }
diff --git a/chrome/browser/devtools/device/android_device_manager.h b/chrome/browser/devtools/device/android_device_manager.h
index fbc00cd..219e5ce 100644
--- a/chrome/browser/devtools/device/android_device_manager.h
+++ b/chrome/browser/devtools/device/android_device_manager.h
@@ -24,8 +24,7 @@
       public base::NonThreadSafe {
  public:
   typedef base::Callback<void(int, const std::string&)> CommandCallback;
-  typedef base::Callback<void(int result, scoped_ptr<net::StreamSocket>)>
-      SocketCallback;
+  typedef base::Callback<void(int result, net::StreamSocket*)> SocketCallback;
   typedef base::Callback<void(const std::vector<std::string>&)> SerialsCallback;
 
   struct BrowserInfo {
@@ -54,21 +53,32 @@
 
   typedef base::Callback<void(const DeviceInfo&)> DeviceInfoCallback;
 
-  class AndroidWebSocket {
+  class AndroidWebSocket : public base::RefCountedThreadSafe<AndroidWebSocket> {
    public:
     class Delegate {
      public:
       virtual void OnSocketOpened() = 0;
       virtual void OnFrameRead(const std::string& message) = 0;
-      virtual void OnSocketClosed() = 0;
+      virtual void OnSocketClosed(bool closed_by_device) = 0;
 
      protected:
       virtual ~Delegate() {}
     };
 
+    AndroidWebSocket() {}
+
+    virtual void Connect() = 0;
+    virtual void Disconnect() = 0;
+    virtual void SendFrame(const std::string& message) = 0;
+    virtual void ClearDelegate() = 0;
+
+   protected:
     virtual ~AndroidWebSocket() {}
 
-    virtual void SendFrame(const std::string& message) = 0;
+   private:
+    friend class base::RefCountedThreadSafe<AndroidWebSocket>;
+
+    DISALLOW_COPY_AND_ASSIGN(AndroidWebSocket);
   };
 
   class DeviceProvider;
@@ -93,7 +103,7 @@
                      const std::string& url,
                      const SocketCallback& callback);
 
-    AndroidWebSocket* CreateWebSocket(
+    scoped_refptr<AndroidWebSocket> CreateWebSocket(
         const std::string& socket_name,
         const std::string& url,
         AndroidWebSocket::Delegate* delegate);
diff --git a/chrome/browser/devtools/device/android_web_socket.cc b/chrome/browser/devtools/device/android_web_socket.cc
index a0054da..81d2627 100644
--- a/chrome/browser/devtools/device/android_web_socket.cc
+++ b/chrome/browser/devtools/device/android_web_socket.cc
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/memory/weak_ptr.h"
 #include "base/message_loop/message_loop.h"
 #include "base/rand_util.h"
 #include "chrome/browser/devtools/device/android_device_manager.h"
@@ -19,127 +18,85 @@
 
 const int kBufferSize = 16 * 1024;
 
-class WebSocketImpl {
- public:
-  typedef AndroidDeviceManager::AndroidWebSocket::Delegate Delegate;
-
-  WebSocketImpl(Delegate* delegate,
-                scoped_ptr<net::StreamSocket> socket);
-  void StartListening();
-  void SendFrame(const std::string& message);
-
- private:
-  void OnBytesRead(scoped_refptr<net::IOBuffer> response_buffer, int result);
-  void SendPendingRequests(int result);
-  void Disconnect();
-
-  Delegate* delegate_;
-  scoped_ptr<net::StreamSocket> socket_;
-  std::string response_buffer_;
-  std::string request_buffer_;
-  base::ThreadChecker thread_checker_;
-  DISALLOW_COPY_AND_ASSIGN(WebSocketImpl);
-};
-
-class DelegateWrapper
-    : public AndroidDeviceManager::AndroidWebSocket::Delegate {
- public:
-  DelegateWrapper(base::WeakPtr<Delegate> weak_delegate,
-                  scoped_refptr<base::MessageLoopProxy> message_loop)
-      : weak_delegate_(weak_delegate),
-        message_loop_(message_loop) {
-  }
-
-  virtual ~DelegateWrapper() {}
-
-  // AndroidWebSocket::Delegate implementation
-  virtual void OnSocketOpened() OVERRIDE {
-    message_loop_->PostTask(FROM_HERE,
-        base::Bind(&Delegate::OnSocketOpened, weak_delegate_));
-  }
-
-  virtual void OnFrameRead(const std::string& message) OVERRIDE {
-    message_loop_->PostTask(FROM_HERE,
-        base::Bind(&Delegate::OnFrameRead, weak_delegate_, message));
-  }
-
-  virtual void OnSocketClosed() OVERRIDE {
-    message_loop_->PostTask(FROM_HERE,
-        base::Bind(&Delegate::OnSocketClosed, weak_delegate_));
-  }
-
- private:
-  base::WeakPtr<Delegate> weak_delegate_;
-  scoped_refptr<base::MessageLoopProxy> message_loop_;
-};
-
-class AndroidWebSocketImpl
-    : public AndroidDeviceManager::AndroidWebSocket,
-      public AndroidDeviceManager::AndroidWebSocket::Delegate {
+class WebSocketImpl : public AndroidDeviceManager::AndroidWebSocket {
  public:
   typedef AndroidDeviceManager::Device Device;
-  AndroidWebSocketImpl(
-      scoped_refptr<base::MessageLoopProxy> device_message_loop,
-      scoped_refptr<Device> device,
-      const std::string& socket_name,
-      const std::string& url,
-      AndroidWebSocket::Delegate* delegate);
+  WebSocketImpl(scoped_refptr<base::MessageLoopProxy> device_message_loop,
+                scoped_refptr<Device> device,
+                const std::string& socket_name,
+                const std::string& url,
+                Delegate* delegate);
 
-  virtual ~AndroidWebSocketImpl();
-
-  // AndroidWebSocket implementation
+  virtual void Connect() OVERRIDE;
+  virtual void Disconnect() OVERRIDE;
   virtual void SendFrame(const std::string& message) OVERRIDE;
-
-  // AndroidWebSocket::Delegate implementation
-  virtual void OnSocketOpened() OVERRIDE;
-  virtual void OnFrameRead(const std::string& message) OVERRIDE;
-  virtual void OnSocketClosed() OVERRIDE;
+  virtual void ClearDelegate() OVERRIDE;
 
  private:
-  void Connected(int result, scoped_ptr<net::StreamSocket> socket);
+  friend class base::RefCountedThreadSafe<AndroidWebSocket>;
+
+  virtual ~WebSocketImpl();
+
+  void Connected(int result, net::StreamSocket* socket);
+  void StartListeningOnHandlerThread();
+  void OnBytesRead(scoped_refptr<net::IOBuffer> response_buffer, int result);
+  void SendFrameOnHandlerThread(const std::string& message);
+  void SendPendingRequests(int result);
+  void DisconnectOnHandlerThread(bool closed_by_device);
+
+  void OnSocketOpened();
+  void OnFrameRead(const std::string& message);
+  void OnSocketClosed(bool closed_by_device);
 
   scoped_refptr<base::MessageLoopProxy> device_message_loop_;
   scoped_refptr<Device> device_;
   std::string socket_name_;
   std::string url_;
-  WebSocketImpl* connection_;
-  DelegateWrapper* delegate_wrapper_;
-  AndroidWebSocket::Delegate* delegate_;
-  base::WeakPtrFactory<AndroidWebSocketImpl> weak_factory_;
-  DISALLOW_COPY_AND_ASSIGN(AndroidWebSocketImpl);
+  scoped_ptr<net::StreamSocket> socket_;
+  Delegate* delegate_;
+  std::string response_buffer_;
+  std::string request_buffer_;
 };
 
-AndroidWebSocketImpl::AndroidWebSocketImpl(
+WebSocketImpl::WebSocketImpl(
     scoped_refptr<base::MessageLoopProxy> device_message_loop,
     scoped_refptr<Device> device,
     const std::string& socket_name,
     const std::string& url,
-    AndroidWebSocket::Delegate* delegate)
+    Delegate* delegate)
     : device_message_loop_(device_message_loop),
       device_(device),
       socket_name_(socket_name),
       url_(url),
-      delegate_(delegate),
-      weak_factory_(this) {
-  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-  DCHECK(delegate_);
-  device_->HttpUpgrade(
-      socket_name_, url_,
-      base::Bind(&AndroidWebSocketImpl::Connected, weak_factory_.GetWeakPtr()));
+      delegate_(delegate) {
 }
 
-void AndroidWebSocketImpl::SendFrame(const std::string& message) {
+void WebSocketImpl::Connect() {
+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+  device_->HttpUpgrade(
+      socket_name_, url_, base::Bind(&WebSocketImpl::Connected, this));
+}
+
+void WebSocketImpl::Disconnect() {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
   device_message_loop_->PostTask(
       FROM_HERE,
-      base::Bind(&WebSocketImpl::SendFrame,
-                 base::Unretained(connection_), message));
+      base::Bind(&WebSocketImpl::DisconnectOnHandlerThread, this, false));
 }
 
 void WebSocketImpl::SendFrame(const std::string& message) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  if (!socket_)
-    return;
+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+  device_message_loop_->PostTask(
+      FROM_HERE,
+      base::Bind(&WebSocketImpl::SendFrameOnHandlerThread, this, message));
+}
+
+void WebSocketImpl::ClearDelegate() {
+  delegate_ = NULL;
+}
+
+void WebSocketImpl::SendFrameOnHandlerThread(const std::string& message) {
+  DCHECK_EQ(device_message_loop_, base::MessageLoopProxy::current());
   int mask = base::RandInt(0, 0x7FFFFFFF);
   std::string encoded_frame = WebSocket::EncodeFrameHybi17(message, mask);
   request_buffer_ += encoded_frame;
@@ -147,55 +104,43 @@
     SendPendingRequests(0);
 }
 
-AndroidWebSocketImpl::~AndroidWebSocketImpl() {
+WebSocketImpl::~WebSocketImpl() {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-  device_message_loop_->DeleteSoon(FROM_HERE, connection_);
-  device_message_loop_->DeleteSoon(FROM_HERE, delegate_wrapper_);
 }
 
-WebSocketImpl::WebSocketImpl(Delegate* delegate,
-                             scoped_ptr<net::StreamSocket> socket)
-                             : delegate_(delegate),
-                               socket_(socket.Pass()) {
-  thread_checker_.DetachFromThread();
-}
-
-void AndroidWebSocketImpl::Connected(int result,
-                                     scoped_ptr<net::StreamSocket> socket) {
+void WebSocketImpl::Connected(int result, net::StreamSocket* socket) {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
   if (result != net::OK || socket == NULL) {
-    OnSocketClosed();
+    OnSocketClosed(true);
     return;
   }
-  delegate_wrapper_ = new DelegateWrapper(weak_factory_.GetWeakPtr(),
-                                          base::MessageLoopProxy::current());
-  connection_ = new WebSocketImpl(delegate_wrapper_, socket.Pass());
+  socket_.reset(socket);
   device_message_loop_->PostTask(
       FROM_HERE,
-      base::Bind(&WebSocketImpl::StartListening,
-                 base::Unretained(connection_)));
+      base::Bind(&WebSocketImpl::StartListeningOnHandlerThread, this));
   OnSocketOpened();
 }
 
-void WebSocketImpl::StartListening() {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  DCHECK(socket_);
+void WebSocketImpl::StartListeningOnHandlerThread() {
+  DCHECK_EQ(device_message_loop_, base::MessageLoopProxy::current());
   scoped_refptr<net::IOBuffer> response_buffer =
       new net::IOBuffer(kBufferSize);
   int result = socket_->Read(
       response_buffer.get(),
       kBufferSize,
-      base::Bind(&WebSocketImpl::OnBytesRead,
-                 base::Unretained(this), response_buffer));
+      base::Bind(&WebSocketImpl::OnBytesRead, this, response_buffer));
   if (result != net::ERR_IO_PENDING)
     OnBytesRead(response_buffer, result);
 }
 
-void WebSocketImpl::OnBytesRead(scoped_refptr<net::IOBuffer> response_buffer,
-                                int result) {
-  DCHECK(thread_checker_.CalledOnValidThread());
+void WebSocketImpl::OnBytesRead(
+    scoped_refptr<net::IOBuffer> response_buffer, int result) {
+  DCHECK_EQ(device_message_loop_, base::MessageLoopProxy::current());
+  if (!socket_)
+    return;
+
   if (result <= 0) {
-    Disconnect();
+    DisconnectOnHandlerThread(true);
     return;
   }
 
@@ -209,30 +154,32 @@
 
   while (parse_result == WebSocket::FRAME_OK) {
     response_buffer_ = response_buffer_.substr(bytes_consumed);
-    delegate_->OnFrameRead(output);
+    BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
+        base::Bind(&WebSocketImpl::OnFrameRead, this, output));
     parse_result = WebSocket::DecodeFrameHybi17(
         response_buffer_, false, &bytes_consumed, &output);
   }
 
   if (parse_result == WebSocket::FRAME_ERROR ||
       parse_result == WebSocket::FRAME_CLOSE) {
-    Disconnect();
+    DisconnectOnHandlerThread(true);
     return;
   }
 
   result = socket_->Read(
       response_buffer.get(),
       kBufferSize,
-      base::Bind(&WebSocketImpl::OnBytesRead,
-                 base::Unretained(this), response_buffer));
+      base::Bind(&WebSocketImpl::OnBytesRead, this, response_buffer));
   if (result != net::ERR_IO_PENDING)
     OnBytesRead(response_buffer, result);
 }
 
 void WebSocketImpl::SendPendingRequests(int result) {
-  DCHECK(thread_checker_.CalledOnValidThread());
+  DCHECK_EQ(device_message_loop_, base::MessageLoopProxy::current());
+  if (!socket_)
+    return;
   if (result < 0) {
-    Disconnect();
+    DisconnectOnHandlerThread(true);
     return;
   }
   request_buffer_ = request_buffer_.substr(result);
@@ -243,39 +190,43 @@
       new net::StringIOBuffer(request_buffer_);
   result = socket_->Write(buffer.get(), buffer->size(),
                           base::Bind(&WebSocketImpl::SendPendingRequests,
-                                     base::Unretained(this)));
+                                     this));
   if (result != net::ERR_IO_PENDING)
     SendPendingRequests(result);
 }
 
-void WebSocketImpl::Disconnect() {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  socket_.reset();
-  delegate_->OnSocketClosed();
+void WebSocketImpl::DisconnectOnHandlerThread(bool closed_by_device) {
+  DCHECK_EQ(device_message_loop_, base::MessageLoopProxy::current());
+  if (!socket_)
+    return;
+  // Wipe out socket_ first since Disconnect can re-enter this method.
+  scoped_ptr<net::StreamSocket> socket(socket_.release());
+  socket->Disconnect();
+  BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
+      base::Bind(&WebSocketImpl::OnSocketClosed, this, closed_by_device));
 }
 
-void AndroidWebSocketImpl::OnSocketOpened() {
-  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-  delegate_->OnSocketOpened();
+void WebSocketImpl::OnSocketOpened() {
+  if (delegate_)
+    delegate_->OnSocketOpened();
 }
 
-void AndroidWebSocketImpl::OnFrameRead(const std::string& message) {
-  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-  delegate_->OnFrameRead(message);
+void WebSocketImpl::OnFrameRead(const std::string& message) {
+  if (delegate_)
+    delegate_->OnFrameRead(message);
 }
 
-void AndroidWebSocketImpl::OnSocketClosed() {
-  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-  delegate_->OnSocketClosed();
+void WebSocketImpl::OnSocketClosed(bool closed_by_device) {
+  if (delegate_)
+    delegate_->OnSocketClosed(closed_by_device);
 }
 
 }  // namespace
 
-AndroidDeviceManager::AndroidWebSocket*
+scoped_refptr<AndroidDeviceManager::AndroidWebSocket>
 AndroidDeviceManager::Device::CreateWebSocket(
     const std::string& socket,
     const std::string& url,
     AndroidDeviceManager::AndroidWebSocket::Delegate* delegate) {
-  return new AndroidWebSocketImpl(
-      device_message_loop_, this, socket, url, delegate);
+  return new WebSocketImpl(device_message_loop_, this, socket, url, delegate);
 }
diff --git a/chrome/browser/devtools/device/devtools_android_bridge.cc b/chrome/browser/devtools/device/devtools_android_bridge.cc
index e58a857..c25c469 100644
--- a/chrome/browser/devtools/device/devtools_android_bridge.cc
+++ b/chrome/browser/devtools/device/devtools_android_bridge.cc
@@ -186,12 +186,11 @@
  private:
   virtual void OnSocketOpened() OVERRIDE;
   virtual void OnFrameRead(const std::string& message) OVERRIDE;
-  virtual void OnSocketClosed() OVERRIDE;
-  virtual ~ProtocolCommand();
+  virtual void OnSocketClosed(bool closed_by_device) OVERRIDE;
 
   const std::string command_;
   const base::Closure callback_;
-  scoped_ptr<DevToolsAndroidBridge::AndroidWebSocket> web_socket_;
+  scoped_refptr<DevToolsAndroidBridge::AndroidWebSocket> web_socket_;
 
   DISALLOW_COPY_AND_ASSIGN(ProtocolCommand);
 };
@@ -202,8 +201,9 @@
     const std::string& command,
     const base::Closure callback)
     : command_(command),
-      callback_(callback),
-      web_socket_(browser->CreateWebSocket(debug_url, this)) {
+      callback_(callback){
+  web_socket_ = browser->CreateWebSocket(debug_url, this);
+  web_socket_->Connect();
 }
 
 void ProtocolCommand::OnSocketOpened() {
@@ -211,16 +211,14 @@
 }
 
 void ProtocolCommand::OnFrameRead(const std::string& message) {
-  delete this;
+  web_socket_->Disconnect();
 }
 
-void ProtocolCommand::OnSocketClosed() {
-  delete this;
-}
-
-ProtocolCommand::~ProtocolCommand() {
-  if (!callback_.is_null())
+void ProtocolCommand::OnSocketClosed(bool closed_by_device) {
+  if (!callback_.is_null()) {
     callback_.Run();
+  }
+  delete this;
 }
 
 }  // namespace
@@ -293,15 +291,14 @@
       const std::string& message) OVERRIDE;
   virtual void OnSocketOpened() OVERRIDE;
   virtual void OnFrameRead(const std::string& message) OVERRIDE;
-  virtual void OnSocketClosed() OVERRIDE;
+  virtual void OnSocketClosed(bool closed_by_device) OVERRIDE;
 
   const std::string id_;
-  scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser_;
-  const std::string debug_url_;
   bool socket_opened_;
+  bool detached_;
   bool is_web_view_;
   std::vector<std::string> pending_messages_;
-  scoped_ptr<DevToolsAndroidBridge::AndroidWebSocket> web_socket_;
+  scoped_refptr<DevToolsAndroidBridge::AndroidWebSocket> web_socket_;
   content::DevToolsAgentHost* agent_host_;
   content::DevToolsExternalAgentProxy* proxy_;
   DISALLOW_COPY_AND_ASSIGN(AgentHostDelegate);
@@ -330,10 +327,10 @@
     scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser,
     const std::string& debug_url)
     : id_(id),
-      browser_(browser),
-      debug_url_(debug_url),
       socket_opened_(false),
+      detached_(false),
       is_web_view_(browser->IsWebView()),
+      web_socket_(browser->CreateWebSocket(debug_url, this)),
       agent_host_(NULL),
       proxy_(NULL) {
   g_host_delegates.Get()[id] = this;
@@ -341,17 +338,20 @@
 
 AgentHostDelegate::~AgentHostDelegate() {
   g_host_delegates.Get().erase(id_);
+  web_socket_->ClearDelegate();
 }
 
 void AgentHostDelegate::Attach(content::DevToolsExternalAgentProxy* proxy) {
   proxy_ = proxy;
   content::RecordAction(base::UserMetricsAction(is_web_view_ ?
       "DevTools_InspectAndroidWebView" : "DevTools_InspectAndroidPage"));
-  web_socket_.reset(browser_->CreateWebSocket(debug_url_, this));
+  web_socket_->Connect();
 }
 
 void AgentHostDelegate::Detach() {
-  web_socket_.reset();
+  detached_ = true;
+  if (socket_opened_)
+    web_socket_->Disconnect();
 }
 
 void AgentHostDelegate::SendMessageToBackend(const std::string& message) {
@@ -362,6 +362,11 @@
 }
 
 void AgentHostDelegate::OnSocketOpened() {
+  if (detached_) {
+    web_socket_->Disconnect();
+    return;
+  }
+
   socket_opened_ = true;
   for (std::vector<std::string>::iterator it = pending_messages_.begin();
        it != pending_messages_.end(); ++it) {
@@ -375,8 +380,8 @@
       proxy_->DispatchOnClientHost(message);
 }
 
-void AgentHostDelegate::OnSocketClosed() {
-  if (proxy_)
+void AgentHostDelegate::OnSocketClosed(bool closed_by_device) {
+  if (proxy_ && closed_by_device)
     proxy_->ConnectionClosed();
 }
 
@@ -609,7 +614,7 @@
       "adb:" + device_->serial() + ":" + socket_, this, kBrowserTargetSocket);
 }
 
-DevToolsAndroidBridge::AndroidWebSocket*
+scoped_refptr<DevToolsAndroidBridge::AndroidWebSocket>
 DevToolsAndroidBridge::RemoteBrowser::CreateWebSocket(
     const std::string& url,
     DevToolsAndroidBridge::AndroidWebSocket::Delegate* delegate) {
diff --git a/chrome/browser/devtools/device/devtools_android_bridge.h b/chrome/browser/devtools/device/devtools_android_bridge.h
index b9cbb76..ddc34bb 100644
--- a/chrome/browser/devtools/device/devtools_android_bridge.h
+++ b/chrome/browser/devtools/device/devtools_android_bridge.h
@@ -121,7 +121,7 @@
 
     scoped_refptr<content::DevToolsAgentHost> GetAgentHost();
 
-    AndroidWebSocket* CreateWebSocket(
+    scoped_refptr<AndroidWebSocket> CreateWebSocket(
         const std::string& url,
         DevToolsAndroidBridge::AndroidWebSocket::Delegate* delegate);
 
diff --git a/chrome/browser/devtools/device/port_forwarding_controller.cc b/chrome/browser/devtools/device/port_forwarding_controller.cc
index 35c3652..df610d1 100644
--- a/chrome/browser/devtools/device/port_forwarding_controller.cc
+++ b/chrome/browser/devtools/device/port_forwarding_controller.cc
@@ -59,11 +59,11 @@
                           int port,
                           const CounterCallback& callback,
                           int result,
-                          scoped_ptr<net::StreamSocket> socket) {
+                          net::StreamSocket* socket) {
     if (result < 0)
       return;
     SocketTunnel* tunnel = new SocketTunnel(callback);
-    tunnel->Start(socket.Pass(), host, port);
+    tunnel->Start(socket, host, port);
   }
 
  private:
@@ -75,9 +75,8 @@
     callback_.Run(1);
   }
 
-  void Start(scoped_ptr<net::StreamSocket> socket,
-             const std::string& host, int port) {
-    remote_socket_.swap(socket);
+  void Start(net::StreamSocket* socket, const std::string& host, int port) {
+    remote_socket_.reset(socket);
 
     host_resolver_ = net::HostResolver::CreateDefaultResolver(NULL);
     net::HostResolver::RequestInfo request_info(net::HostPortPair(host, port));
@@ -255,13 +254,15 @@
 }  // namespace
 
 class PortForwardingController::Connection
-    : public DevToolsAndroidBridge::AndroidWebSocket::Delegate {
+    : public DevToolsAndroidBridge::AndroidWebSocket::Delegate,
+      public base::RefCountedThreadSafe<
+          Connection,
+          content::BrowserThread::DeleteOnUIThread> {
  public:
   Connection(Registry* registry,
              scoped_refptr<DevToolsAndroidBridge::RemoteDevice> device,
              scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser,
              const ForwardingMap& forwarding_map);
-  virtual ~Connection();
 
   const PortStatusMap& GetPortStatusMap();
 
@@ -274,6 +275,7 @@
       content::BrowserThread::UI>;
   friend class base::DeleteHelper<Connection>;
 
+  virtual ~Connection();
 
   typedef std::map<int, std::string> ForwardingMap;
 
@@ -290,25 +292,23 @@
   void ProcessBindResponse(int port, PortStatus status);
   void ProcessUnbindResponse(int port, PortStatus status);
 
-  static void UpdateSocketCountOnHandlerThread(
-      base::WeakPtr<Connection> weak_connection, int port, int increment);
+  void UpdateSocketCountOnHandlerThread(int port, int increment);
   void UpdateSocketCount(int port, int increment);
 
   // DevToolsAndroidBridge::AndroidWebSocket::Delegate implementation:
   virtual void OnSocketOpened() OVERRIDE;
   virtual void OnFrameRead(const std::string& message) OVERRIDE;
-  virtual void OnSocketClosed() OVERRIDE;
+  virtual void OnSocketClosed(bool closed_by_device) OVERRIDE;
 
   PortForwardingController::Registry* registry_;
   scoped_refptr<DevToolsAndroidBridge::RemoteDevice> device_;
   scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser_;
-  scoped_ptr<DevToolsAndroidBridge::AndroidWebSocket> web_socket_;
+  scoped_refptr<DevToolsAndroidBridge::AndroidWebSocket> web_socket_;
   int command_id_;
   bool connected_;
   ForwardingMap forwarding_map_;
   CommandCallbackMap pending_responses_;
   PortStatusMap port_status_;
-  base::WeakPtrFactory<Connection> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(Connection);
 };
@@ -323,18 +323,27 @@
       browser_(browser),
       command_id_(0),
       connected_(false),
-      forwarding_map_(forwarding_map),
-      weak_factory_(this) {
+      forwarding_map_(forwarding_map) {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
   (*registry_)[device_->serial()] = this;
-  web_socket_.reset(
-      browser->CreateWebSocket(kDevToolsRemoteBrowserTarget, this));
+  web_socket_ = browser->CreateWebSocket(kDevToolsRemoteBrowserTarget, this);
+  web_socket_->Connect();
+  AddRef();  // Balanced in OnSocketClosed();
+}
+
+void PortForwardingController::Connection::Shutdown() {
+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+  registry_ = NULL;
+  // This will have no effect if the socket is not connected yet.
+  web_socket_->Disconnect();
 }
 
 PortForwardingController::Connection::~Connection() {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-  DCHECK(registry_->find(device_->serial()) != registry_->end());
-  registry_->erase(device_->serial());
+  if (registry_) {
+    DCHECK(registry_->find(device_->serial()) != registry_->end());
+    registry_->erase(device_->serial());
+  }
 }
 
 void PortForwardingController::Connection::UpdateForwardingMap(
@@ -431,12 +440,10 @@
     port_status_.erase(it);
 }
 
-// static
 void PortForwardingController::Connection::UpdateSocketCountOnHandlerThread(
-    base::WeakPtr<Connection> weak_connection, int port, int increment) {
+    int port, int increment) {
   BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
-     base::Bind(&Connection::UpdateSocketCount,
-                weak_connection, port, increment));
+     base::Bind(&Connection::UpdateSocketCount, this, port, increment));
 }
 
 void PortForwardingController::Connection::UpdateSocketCount(
@@ -460,12 +467,19 @@
 
 void PortForwardingController::Connection::OnSocketOpened() {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+  if (!registry_) {
+    // Socket was created after Shutdown was called. Disconnect immediately.
+    web_socket_->Disconnect();
+    return;
+  }
   connected_ = true;
   SerializeChanges(kTetheringBind, ForwardingMap(), forwarding_map_);
 }
 
-void PortForwardingController::Connection::OnSocketClosed() {
-  delete this;
+void PortForwardingController::Connection::OnSocketClosed(
+    bool closed_by_device) {
+  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+  Release();  // Balanced in the constructor.
 }
 
 void PortForwardingController::Connection::OnFrameRead(
@@ -505,8 +519,7 @@
   std::string destination_host = tokens[0];
 
   SocketTunnel::CounterCallback callback =
-      base::Bind(&Connection::UpdateSocketCountOnHandlerThread,
-                 weak_factory_.GetWeakPtr(), port);
+      base::Bind(&Connection::UpdateSocketCountOnHandlerThread, this, port);
 
   device_->OpenSocket(
       connection_id.c_str(),
@@ -593,7 +606,7 @@
     UpdateConnections();
   } else {
     StopListening();
-    STLDeleteValues(&registry_);
+    ShutdownConnections();
     NotifyListeners(DevicesStatus());
   }
 }
@@ -624,6 +637,12 @@
     it->second->UpdateForwardingMap(forwarding_map_);
 }
 
+void PortForwardingController::ShutdownConnections() {
+  for (Registry::iterator it = registry_.begin(); it != registry_.end(); ++it)
+    it->second->Shutdown();
+  registry_.clear();
+}
+
 void PortForwardingController::NotifyListeners(
     const DevicesStatus& status) const {
   Listeners copy(listeners_);  // Iterate over copy.
diff --git a/chrome/browser/devtools/device/port_forwarding_controller.h b/chrome/browser/devtools/device/port_forwarding_controller.h
index a904ef5..ae491d7 100644
--- a/chrome/browser/devtools/device/port_forwarding_controller.h
+++ b/chrome/browser/devtools/device/port_forwarding_controller.h
@@ -77,6 +77,7 @@
   void StopListening();
 
   void UpdateConnections();
+  void ShutdownConnections();
 
   void NotifyListeners(const DevicesStatus& status) const;
 
diff --git a/chrome/browser/devtools/device/self_device_provider.cc b/chrome/browser/devtools/device/self_device_provider.cc
index f6930b5..ee0f043 100644
--- a/chrome/browser/devtools/device/self_device_provider.cc
+++ b/chrome/browser/devtools/device/self_device_provider.cc
@@ -17,9 +17,9 @@
 
 static void RunSocketCallback(
     const AndroidDeviceManager::SocketCallback& callback,
-    scoped_ptr<net::StreamSocket> socket,
+    net::StreamSocket* socket,
     int result) {
-  callback.Run(result, socket.Pass());
+  callback.Run(result, socket);
 }
 
 }  // namespace
@@ -61,8 +61,7 @@
   base::StringToInt(socket_name, &port);
   net::AddressList address_list =
       net::AddressList::CreateFromIPAddress(ip_number, port);
-  scoped_ptr<net::StreamSocket> socket(new net::TCPClientSocket(
-      address_list, NULL, net::NetLog::Source()));
-  socket->Connect(
-      base::Bind(&RunSocketCallback, callback, base::Passed(&socket)));
+  net::TCPClientSocket* socket = new net::TCPClientSocket(
+      address_list, NULL, net::NetLog::Source());
+  socket->Connect(base::Bind(&RunSocketCallback, callback, socket));
 }
diff --git a/chrome/browser/devtools/device/usb/usb_device_provider.cc b/chrome/browser/devtools/device/usb/usb_device_provider.cc
index 4931499..93c9429 100644
--- a/chrome/browser/devtools/device/usb/usb_device_provider.cc
+++ b/chrome/browser/devtools/device/usb/usb_device_provider.cc
@@ -19,12 +19,9 @@
 const int kBufferSize = 16 * 1024;
 
 void OnOpenSocket(const UsbDeviceProvider::SocketCallback& callback,
-                  net::StreamSocket* socket_raw,
+                  net::StreamSocket* socket,
                   int result) {
-  scoped_ptr<net::StreamSocket> socket(socket_raw);
-  if (result != net::OK)
-    socket.reset();
-  callback.Run(result, socket.Pass());
+  callback.Run(result, result == net::OK ? socket : NULL);
 }
 
 void OnRead(net::StreamSocket* socket,
@@ -71,8 +68,7 @@
     callback.Run(net::ERR_CONNECTION_FAILED, std::string());
     return;
   }
-  int result = socket->Connect(
-      base::Bind(&OpenedForCommand, callback, socket));
+  int result = socket->Connect(base::Bind(&OpenedForCommand, callback, socket));
   if (result != net::ERR_IO_PENDING)
     callback.Run(result, std::string());
 }
@@ -111,21 +107,19 @@
                                    const SocketCallback& callback) {
   UsbDeviceMap::iterator it = device_map_.find(serial);
   if (it == device_map_.end()) {
-    callback.Run(net::ERR_CONNECTION_FAILED,
-                 make_scoped_ptr<net::StreamSocket>(NULL));
+    callback.Run(net::ERR_CONNECTION_FAILED, NULL);
     return;
   }
   std::string socket_name =
       base::StringPrintf(kLocalAbstractCommand, name.c_str());
   net::StreamSocket* socket = it->second->CreateSocket(socket_name);
   if (!socket) {
-    callback.Run(net::ERR_CONNECTION_FAILED,
-                 make_scoped_ptr<net::StreamSocket>(NULL));
+    callback.Run(net::ERR_CONNECTION_FAILED, NULL);
     return;
   }
   int result = socket->Connect(base::Bind(&OnOpenSocket, callback, socket));
   if (result != net::ERR_IO_PENDING)
-    callback.Run(result, make_scoped_ptr<net::StreamSocket>(NULL));
+    callback.Run(result, NULL);
 }
 
 void UsbDeviceProvider::ReleaseDevice(const std::string& serial) {
diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/browser/domain_reliability/service_factory.cc
index 0809074..5b4f267 100644
--- a/chrome/browser/domain_reliability/service_factory.cc
+++ b/chrome/browser/domain_reliability/service_factory.cc
@@ -6,7 +6,10 @@
 
 #include "base/command_line.h"
 #include "base/metrics/field_trial.h"
+#include "base/prefs/pref_service.h"
+#include "chrome/browser/browser_process.h"
 #include "chrome/common/chrome_switches.h"
+#include "chrome/common/pref_names.h"
 #include "components/domain_reliability/service.h"
 #include "components/keyed_service/content/browser_context_dependency_manager.h"
 #include "content/public/browser/browser_context.h"
@@ -56,6 +59,11 @@
   if (!IsDomainReliabilityMonitoringEnabled())
     return NULL;
 
+  if (!g_browser_process->local_state()->GetBoolean(
+          prefs::kMetricsReportingEnabled)) {
+    return NULL;
+  }
+
   return DomainReliabilityService::Create(
       kDomainReliabilityUploadReporterString);
 }
diff --git a/chrome/browser/extensions/api/app_window/app_window_api.cc b/chrome/browser/extensions/api/app_window/app_window_api.cc
index 0f578ac..797596b 100644
--- a/chrome/browser/extensions/api/app_window/app_window_api.cc
+++ b/chrome/browser/extensions/api/app_window/app_window_api.cc
@@ -242,6 +242,9 @@
 
     if (options->alpha_enabled.get()) {
       const char* whitelist[] = {
+#if defined(OS_CHROMEOS)
+        "B58B99751225318C7EB8CF4688B5434661083E07",  // http://crbug.com/410550
+#endif
         "0F42756099D914A026DADFA182871C015735DD95",  // http://crbug.com/323773
         "2D22CDB6583FD0A13758AEBE8B15E45208B4E9A7",
         "E7E2461CE072DF036CF9592740196159E2D7C089",  // http://crbug.com/356200
diff --git a/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_api.cc b/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_api.cc
index eefdbbf..cbd8f83 100644
--- a/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_api.cc
+++ b/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_api.cc
@@ -436,11 +436,13 @@
   results_ = bluetooth_socket::ListenUsingL2cap::Results::Create();
 }
 
-BluetoothSocketConnectFunction::BluetoothSocketConnectFunction() {}
+BluetoothSocketAbstractConnectFunction::
+    BluetoothSocketAbstractConnectFunction() {}
 
-BluetoothSocketConnectFunction::~BluetoothSocketConnectFunction() {}
+BluetoothSocketAbstractConnectFunction::
+    ~BluetoothSocketAbstractConnectFunction() {}
 
-bool BluetoothSocketConnectFunction::Prepare() {
+bool BluetoothSocketAbstractConnectFunction::Prepare() {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
   params_ = bluetooth_socket::Connect::Params::Create(*args_);
   EXTENSION_FUNCTION_VALIDATE(params_.get());
@@ -449,13 +451,13 @@
   return socket_event_dispatcher_ != NULL;
 }
 
-void BluetoothSocketConnectFunction::AsyncWorkStart() {
+void BluetoothSocketAbstractConnectFunction::AsyncWorkStart() {
   DCHECK(BrowserThread::CurrentlyOn(work_thread_id()));
   device::BluetoothAdapterFactory::GetAdapter(
-      base::Bind(&BluetoothSocketConnectFunction::OnGetAdapter, this));
+      base::Bind(&BluetoothSocketAbstractConnectFunction::OnGetAdapter, this));
 }
 
-void BluetoothSocketConnectFunction::OnGetAdapter(
+void BluetoothSocketAbstractConnectFunction::OnGetAdapter(
     scoped_refptr<device::BluetoothAdapter> adapter) {
   DCHECK(BrowserThread::CurrentlyOn(work_thread_id()));
   BluetoothApiSocket* socket = GetSocket(params_->socket_id);
@@ -486,13 +488,10 @@
     return;
   }
 
-  device->ConnectToService(
-      uuid,
-      base::Bind(&BluetoothSocketConnectFunction::OnConnect, this),
-      base::Bind(&BluetoothSocketConnectFunction::OnConnectError, this));
+  ConnectToService(device, uuid);
 }
 
-void BluetoothSocketConnectFunction::OnConnect(
+void BluetoothSocketAbstractConnectFunction::OnConnect(
     scoped_refptr<device::BluetoothSocket> socket) {
   DCHECK(BrowserThread::CurrentlyOn(work_thread_id()));
 
@@ -516,13 +515,26 @@
   AsyncWorkCompleted();
 }
 
-void BluetoothSocketConnectFunction::OnConnectError(
+void BluetoothSocketAbstractConnectFunction::OnConnectError(
     const std::string& message) {
   DCHECK(BrowserThread::CurrentlyOn(work_thread_id()));
   error_ = message;
   AsyncWorkCompleted();
 }
 
+BluetoothSocketConnectFunction::BluetoothSocketConnectFunction() {}
+
+BluetoothSocketConnectFunction::~BluetoothSocketConnectFunction() {}
+
+void BluetoothSocketConnectFunction::ConnectToService(
+    device::BluetoothDevice* device,
+    const device::BluetoothUUID& uuid) {
+  device->ConnectToService(
+      uuid,
+      base::Bind(&BluetoothSocketConnectFunction::OnConnect, this),
+      base::Bind(&BluetoothSocketConnectFunction::OnConnectError, this));
+}
+
 BluetoothSocketDisconnectFunction::BluetoothSocketDisconnectFunction() {}
 
 BluetoothSocketDisconnectFunction::~BluetoothSocketDisconnectFunction() {}
diff --git a/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_api.h b/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_api.h
index 9ed7406..34da64b 100644
--- a/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_api.h
+++ b/chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_api.h
@@ -208,7 +208,35 @@
   scoped_ptr<bluetooth_socket::ListenUsingL2cap::Params> params_;
 };
 
-class BluetoothSocketConnectFunction : public BluetoothSocketAsyncApiFunction {
+class BluetoothSocketAbstractConnectFunction :
+    public BluetoothSocketAsyncApiFunction {
+ public:
+  BluetoothSocketAbstractConnectFunction();
+
+ protected:
+  virtual ~BluetoothSocketAbstractConnectFunction();
+
+  // BluetoothSocketAsyncApiFunction:
+  virtual bool Prepare() OVERRIDE;
+  virtual void AsyncWorkStart() OVERRIDE;
+
+  // Subclasses should implement this method to connect to the service
+  // registered with |uuid| on the |device|.
+  virtual void ConnectToService(device::BluetoothDevice* device,
+                                const device::BluetoothUUID& uuid) = 0;
+
+  virtual void OnConnect(scoped_refptr<device::BluetoothSocket> socket);
+  virtual void OnConnectError(const std::string& message);
+
+ private:
+  virtual void OnGetAdapter(scoped_refptr<device::BluetoothAdapter> adapter);
+
+  scoped_ptr<bluetooth_socket::Connect::Params> params_;
+  BluetoothSocketEventDispatcher* socket_event_dispatcher_;
+};
+
+class BluetoothSocketConnectFunction :
+    public BluetoothSocketAbstractConnectFunction {
  public:
   DECLARE_EXTENSION_FUNCTION("bluetoothSocket.connect",
                              BLUETOOTHSOCKET_CONNECT);
@@ -218,17 +246,9 @@
  protected:
   virtual ~BluetoothSocketConnectFunction();
 
-  // BluetoothSocketAsyncApiFunction:
-  virtual bool Prepare() OVERRIDE;
-  virtual void AsyncWorkStart() OVERRIDE;
-
- private:
-  virtual void OnGetAdapter(scoped_refptr<device::BluetoothAdapter> adapter);
-  virtual void OnConnect(scoped_refptr<device::BluetoothSocket> socket);
-  virtual void OnConnectError(const std::string& message);
-
-  scoped_ptr<bluetooth_socket::Connect::Params> params_;
-  BluetoothSocketEventDispatcher* socket_event_dispatcher_;
+  // BluetoothSocketAbstractConnectFunction:
+  virtual void ConnectToService(device::BluetoothDevice* device,
+                                const device::BluetoothUUID& uuid) OVERRIDE;
 };
 
 class BluetoothSocketDisconnectFunction
diff --git a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc
index 2c242b1..2864688 100644
--- a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc
+++ b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.cc
@@ -60,6 +60,8 @@
       return EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE;
     case easy_unlock_private::STATE_PHONE_NOT_NEARBY:
       return EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_NEARBY;
+    case easy_unlock_private::STATE_PHONE_UNSUPPORTED:
+      return EasyUnlockScreenlockStateHandler::STATE_PHONE_UNSUPPORTED;
     case easy_unlock_private::STATE_AUTHENTICATED:
       return EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED;
     default:
@@ -401,6 +403,26 @@
   }
 }
 
+EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction::
+    EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction() {}
+
+EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction::
+    ~EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction() {}
+
+void EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction::
+    ConnectToService(device::BluetoothDevice* device,
+                     const device::BluetoothUUID& uuid) {
+  easy_unlock::ConnectToBluetoothServiceInsecurely(
+      device,
+      uuid,
+      base::Bind(&EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction::
+                     OnConnect,
+                 this),
+      base::Bind(&EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction::
+                     OnConnectError,
+                 this));
+}
+
 EasyUnlockPrivateUpdateScreenlockStateFunction::
     EasyUnlockPrivateUpdateScreenlockStateFunction() {}
 
diff --git a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.h b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.h
index 215b469..e325ff6 100644
--- a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.h
+++ b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_api.h
@@ -9,6 +9,7 @@
 
 #include "base/basictypes.h"
 #include "base/memory/scoped_ptr.h"
+#include "chrome/browser/extensions/api/bluetooth_socket/bluetooth_socket_api.h"
 #include "extensions/browser/browser_context_keyed_api_factory.h"
 #include "extensions/browser/extension_function.h"
 
@@ -164,6 +165,25 @@
       EasyUnlockPrivateSeekBluetoothDeviceByAddressFunction);
 };
 
+class EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction
+    : public BluetoothSocketAbstractConnectFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION(
+      "easyUnlockPrivate.connectToBluetoothServiceInsecurely",
+      EASYUNLOCKPRIVATE_CONNECTTOBLUETOOTHSERVICEINSECURELY)
+  EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction();
+
+ private:
+  virtual ~EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction();
+
+  // BluetoothSocketAbstractConnectFunction:
+  virtual void ConnectToService(device::BluetoothDevice* device,
+                                const device::BluetoothUUID& uuid) OVERRIDE;
+
+  DISALLOW_COPY_AND_ASSIGN(
+      EasyUnlockPrivateConnectToBluetoothServiceInsecurelyFunction);
+};
+
 class EasyUnlockPrivateUpdateScreenlockStateFunction
     : public SyncExtensionFunction {
  public:
diff --git a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util.cc b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util.cc
index 2881152..a8ee859 100644
--- a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util.cc
+++ b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util.cc
@@ -6,6 +6,8 @@
 
 #include "base/callback.h"
 
+using device::BluetoothDevice;
+
 namespace extensions {
 namespace api {
 namespace easy_unlock {
@@ -24,6 +26,14 @@
   result.error_message = kApiUnavailable;
   callback.Run(result);
 }
+
+void ConnectToBluetoothServiceInsecurely(
+    device::BluetoothDevice* device,
+    const device::BluetoothUUID& uuid,
+    const BluetoothDevice::ConnectToServiceCallback& callback,
+    const BluetoothDevice::ConnectToServiceErrorCallback& error_callback) {
+  error_callback.Run(kApiUnavailable);
+}
 #endif  // !defined(OS_CHROMEOS)
 
 }  // namespace easy_unlock
diff --git a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util.h b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util.h
index 7679ad4..10a0c28 100644
--- a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util.h
+++ b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util.h
@@ -8,6 +8,11 @@
 #include <string>
 
 #include "base/callback_forward.h"
+#include "device/bluetooth/bluetooth_device.h"
+
+namespace device {
+class BluetoothUUID;
+}
 
 namespace extensions {
 namespace api {
@@ -28,6 +33,13 @@
 void SeekBluetoothDeviceByAddress(const std::string& device_address,
                                   const SeekDeviceCallback& callback);
 
+void ConnectToBluetoothServiceInsecurely(
+    device::BluetoothDevice* device,
+    const device::BluetoothUUID& uuid,
+    const device::BluetoothDevice::ConnectToServiceCallback& callback,
+    const device::BluetoothDevice::ConnectToServiceErrorCallback&
+        error_callback);
+
 }  // namespace easy_unlock
 }  // namespace api
 }  // namespace extensions
diff --git a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util_chromeos.cc b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util_chromeos.cc
index e83e9b7..80a8d2b 100644
--- a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util_chromeos.cc
+++ b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_bluetooth_util_chromeos.cc
@@ -22,6 +22,7 @@
 #include "base/time/time.h"
 #include "content/public/browser/browser_thread.h"
 #include "device/bluetooth/bluetooth_device.h"
+#include "device/bluetooth/bluetooth_device_chromeos.h"
 #include "net/socket/socket_descriptor.h"
 
 namespace extensions {
@@ -119,6 +120,15 @@
       callback);
 }
 
+void ConnectToBluetoothServiceInsecurely(
+    device::BluetoothDevice* device,
+    const device::BluetoothUUID& uuid,
+    const BluetoothDevice::ConnectToServiceCallback& callback,
+    const BluetoothDevice::ConnectToServiceErrorCallback& error_callback) {
+  static_cast<chromeos::BluetoothDeviceChromeOS*>(device)
+      ->ConnectToServiceInsecurely(uuid, callback, error_callback);
+}
+
 }  // namespace easy_unlock
 }  // namespace api
 }  // namespace extensions
diff --git a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_crypto_delegate_chromeos.cc b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_crypto_delegate_chromeos.cc
index 5a18d9e..f5b0d11 100644
--- a/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_crypto_delegate_chromeos.cc
+++ b/chrome/browser/extensions/api/easy_unlock_private/easy_unlock_private_crypto_delegate_chromeos.cc
@@ -93,7 +93,7 @@
   }
 
  private:
-  scoped_ptr<chromeos::EasyUnlockClient> dbus_client_;
+  chromeos::EasyUnlockClient* dbus_client_;
 
   DISALLOW_COPY_AND_ASSIGN(EasyUnlockPrivateCryptoDelegateChromeOS);
 };
diff --git a/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc b/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc
index eb7b6e2..f5e44b2 100644
--- a/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc
+++ b/chrome/browser/extensions/api/screenlock_private/screenlock_private_api.cc
@@ -57,6 +57,8 @@
       // locking.
       NOTREACHED();
       return screenlock::AUTH_TYPE_NONE;
+    case ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD:
+      return screenlock::AUTH_TYPE_OFFLINEPASSWORD;
   }
   NOTREACHED();
   return screenlock::AUTH_TYPE_OFFLINEPASSWORD;
diff --git a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
index 9e6b95c..a25e02d 100644
--- a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
+++ b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
@@ -29,6 +29,7 @@
 #include "content/public/browser/render_view_host.h"
 #include "content/public/browser/site_instance.h"
 #include "content/public/browser/web_contents.h"
+#include "content/public/common/content_switches.h"
 #include "extensions/browser/extension_host.h"
 #include "extensions/browser/extension_message_filter.h"
 #include "extensions/browser/extension_registry.h"
@@ -564,8 +565,12 @@
   if (!process)
     return;
   DCHECK(profile);
-  if (ProcessMap::Get(profile)->Contains(process->GetID()))
+  if (ProcessMap::Get(profile)->Contains(process->GetID())) {
     command_line->AppendSwitch(switches::kExtensionProcess);
+#if defined(ENABLE_WEBRTC)
+    command_line->AppendSwitch(::switches::kEnableWebRtcHWH264Encoding);
+#endif
+  }
 }
 
 }  // namespace extensions
diff --git a/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.cc b/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.cc
index 82bf26c..947068f 100644
--- a/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.cc
+++ b/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.cc
@@ -207,6 +207,7 @@
 class MTPDeviceDelegateImplLinux::MTPFileNode {
  public:
   MTPFileNode(uint32 file_id,
+              const std::string& file_name,
               MTPFileNode* parent,
               FileIdToMTPFileNodeMap* file_id_to_node_map);
   ~MTPFileNode();
@@ -222,6 +223,7 @@
   bool DeleteChild(uint32 file_id);
 
   uint32 file_id() const { return file_id_; }
+  const std::string& file_name() const { return file_name_; }
   MTPFileNode* parent() { return parent_; }
 
  private:
@@ -229,6 +231,8 @@
   typedef base::ScopedPtrHashMap<std::string, MTPFileNode> ChildNodes;
 
   const uint32 file_id_;
+  const std::string file_name_;
+
   ChildNodes children_;
   MTPFileNode* const parent_;
   FileIdToMTPFileNodeMap* file_id_to_node_map_;
@@ -238,9 +242,11 @@
 
 MTPDeviceDelegateImplLinux::MTPFileNode::MTPFileNode(
     uint32 file_id,
+    const std::string& file_name,
     MTPFileNode* parent,
     FileIdToMTPFileNodeMap* file_id_to_node_map)
     : file_id_(file_id),
+      file_name_(file_name),
       parent_(parent),
       file_id_to_node_map_(file_id_to_node_map) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
@@ -272,7 +278,7 @@
 
   children_.set(
       name,
-      make_scoped_ptr(new MTPFileNode(id, this, file_id_to_node_map_)));
+      make_scoped_ptr(new MTPFileNode(id, name, this, file_id_to_node_map_)));
 }
 
 void MTPDeviceDelegateImplLinux::MTPFileNode::ClearNonexistentChildren(
@@ -309,7 +315,8 @@
       task_in_progress_(false),
       device_path_(device_location),
       root_node_(new MTPFileNode(mtpd::kRootFileId,
-                                 NULL,
+                                 "",    // Root node has no name.
+                                 NULL,  // And no parent node.
                                  &file_id_to_node_map_)),
       weak_ptr_factory_(this) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
@@ -328,6 +335,24 @@
     const ErrorCallback& error_callback) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   DCHECK(!file_path.empty());
+
+  // If a ReadDirectory operation is in progress, the file info may already be
+  // cached.
+  FileInfoCache::const_iterator it = file_info_cache_.find(file_path);
+  if (it != file_info_cache_.end()) {
+    // TODO(thestig): This code is repeated in several places. Combine them.
+    // e.g. c/b/media_galleries/win/mtp_device_operations_util.cc
+    const fileapi::DirectoryEntry& cached_file_entry = it->second;
+    base::File::Info info;
+    info.size = cached_file_entry.size;
+    info.is_directory = cached_file_entry.is_directory;
+    info.is_symbolic_link = false;
+    info.last_modified = cached_file_entry.last_modified_time;
+    info.creation_time = base::Time();
+
+    success_callback.Run(info);
+    return;
+  }
   base::Closure closure =
       base::Bind(&MTPDeviceDelegateImplLinux::GetFileInfoInternal,
                  weak_ptr_factory_.GetWeakPtr(),
@@ -733,6 +758,17 @@
   DCHECK(it != file_id_to_node_map_.end());
   MTPFileNode* dir_node = it->second;
 
+  // Traverse the MTPFileNode tree to reconstuct the full path for |dir_id|.
+  std::deque<std::string> dir_path_parts;
+  MTPFileNode* parent_node = dir_node;
+  while (parent_node->parent()) {
+    dir_path_parts.push_front(parent_node->file_name());
+    parent_node = parent_node->parent();
+  }
+  base::FilePath dir_path = device_path_;
+  for (size_t i = 0; i < dir_path_parts.size(); ++i)
+    dir_path = dir_path.Append(dir_path_parts[i]);
+
   fileapi::AsyncFileUtil::EntryList normalized_file_list;
   for (size_t i = 0; i < file_list.size(); ++i) {
     normalized_file_list.push_back(file_list[i]);
@@ -751,6 +787,9 @@
     // Refresh the in memory tree.
     dir_node->EnsureChildExists(entry.name, file_id);
     child_nodes_seen_.insert(entry.name);
+
+    // Add to |file_info_cache_|.
+    file_info_cache_[dir_path.Append(entry.name)] = entry;
   }
 
   success_callback.Run(normalized_file_list, has_more);
@@ -760,6 +799,7 @@
   // Last call, finish book keeping and continue with the next request.
   dir_node->ClearNonexistentChildren(child_nodes_seen_);
   child_nodes_seen_.clear();
+  file_info_cache_.clear();
 
   PendingRequestDone();
 }
diff --git a/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.h b/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.h
index 44d390d..770c060 100644
--- a/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.h
+++ b/chrome/browser/media_galleries/linux/mtp_device_delegate_impl_linux.h
@@ -60,6 +60,9 @@
   // Maps file ids to file nodes.
   typedef std::map<uint32, MTPFileNode*> FileIdToMTPFileNodeMap;
 
+  // Maps file paths to file info.
+  typedef std::map<base::FilePath, fileapi::DirectoryEntry> FileInfoCache;
+
   // Should only be called by CreateMTPDeviceAsyncDelegate() factory call.
   // Defer the device initializations until the first file operation request.
   // Do all the initializations in EnsureInitAndRunTask() function.
@@ -278,6 +281,11 @@
   // can return results over multiple callbacks, is in progress.
   std::set<std::string> child_nodes_seen_;
 
+  // A cache to store file metadata for file entries read during a ReadDirectory
+  // operation. Used to service incoming GetFileInfo calls for the duration of
+  // the ReadDirectory operation.
+  FileInfoCache file_info_cache_;
+
   // For callbacks that may run after destruction.
   base::WeakPtrFactory<MTPDeviceDelegateImplLinux> weak_ptr_factory_;
 
diff --git a/chrome/browser/net/prediction_options.cc b/chrome/browser/net/prediction_options.cc
index a01f5ee..f525388 100644
--- a/chrome/browser/net/prediction_options.cc
+++ b/chrome/browser/net/prediction_options.cc
@@ -12,56 +12,38 @@
 #include "content/public/browser/browser_thread.h"
 #include "net/base/network_change_notifier.h"
 
+namespace chrome_browser_net {
+
 namespace {
 
 // Since looking up preferences and current network connection are presumably
 // both cheap, we do not cache them here.
-bool CanPrefetchAndPrerender(int network_prediction_options,
-                             bool network_prediction_enabled) {
+bool CanPrefetchAndPrerender(int network_prediction_options) {
   switch (network_prediction_options) {
-    case chrome_browser_net::NETWORK_PREDICTION_ALWAYS:
+    case NETWORK_PREDICTION_ALWAYS:
       return true;
-    case chrome_browser_net::NETWORK_PREDICTION_WIFI_ONLY:
-      return !net::NetworkChangeNotifier::IsConnectionCellular(
-          net::NetworkChangeNotifier::GetConnectionType());
-    case chrome_browser_net::NETWORK_PREDICTION_NEVER:
+    case NETWORK_PREDICTION_NEVER:
       return false;
-    case chrome_browser_net::NETWORK_PREDICTION_UNSET:
-      return network_prediction_enabled;
     default:
-      NOTREACHED() << "Unknown kNetworkPredictionOptions value.";
-      return false;
+      DCHECK_EQ(NETWORK_PREDICTION_WIFI_ONLY, network_prediction_options);
+      return !net::NetworkChangeNotifier::IsConnectionCellular(
+                 net::NetworkChangeNotifier::GetConnectionType());
   }
 }
 
-bool CanPreresolveAndPreconnect(int network_prediction_options,
-                                bool network_prediction_enabled) {
-  switch (network_prediction_options) {
-    case chrome_browser_net::NETWORK_PREDICTION_ALWAYS:
-      return true;
-    // DNS preresolution and TCP preconnect are performed even on cellular
-    // networks if the user setting is WIFI_ONLY.
-    case chrome_browser_net::NETWORK_PREDICTION_WIFI_ONLY:
-      return true;
-    case chrome_browser_net::NETWORK_PREDICTION_NEVER:
-      return false;
-    case chrome_browser_net::NETWORK_PREDICTION_UNSET:
-      return network_prediction_enabled;
-    default:
-      NOTREACHED() << "Unknown kNetworkPredictionOptions value.";
-      return false;
-  }
+bool CanPreresolveAndPreconnect(int network_prediction_options) {
+  // DNS preresolution and TCP preconnect are performed even on cellular
+  // networks if the user setting is WIFI_ONLY.
+  return network_prediction_options != NETWORK_PREDICTION_NEVER;
 }
 
 }  // namespace
 
-namespace chrome_browser_net {
-
 void RegisterPredictionOptionsProfilePrefs(
     user_prefs::PrefRegistrySyncable* registry) {
   registry->RegisterIntegerPref(
       prefs::kNetworkPredictionOptions,
-      chrome_browser_net::NETWORK_PREDICTION_UNSET,
+      NETWORK_PREDICTION_DEFAULT,
       user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
 }
 
@@ -81,8 +63,7 @@
   if (network_prediction_enabled->GetAsBoolean(&value)) {
     pref_service->SetInteger(
         prefs::kNetworkPredictionOptions,
-        value ? chrome_browser_net::NETWORK_PREDICTION_WIFI_ONLY
-              : chrome_browser_net::NETWORK_PREDICTION_NEVER);
+        value ? NETWORK_PREDICTION_WIFI_ONLY : NETWORK_PREDICTION_NEVER);
   }
 }
 
@@ -90,16 +71,14 @@
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
   DCHECK(profile_io_data);
   return CanPrefetchAndPrerender(
-      profile_io_data->network_prediction_options()->GetValue(),
-      profile_io_data->network_prediction_enabled()->GetValue());
+      profile_io_data->network_prediction_options()->GetValue());
 }
 
 bool CanPrefetchAndPrerenderUI(PrefService* prefs) {
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
   DCHECK(prefs);
   return CanPrefetchAndPrerender(
-      prefs->GetInteger(prefs::kNetworkPredictionOptions),
-      prefs->GetBoolean(prefs::kNetworkPredictionEnabled));
+      prefs->GetInteger(prefs::kNetworkPredictionOptions));
 }
 
 bool CanPredictNetworkActionsUI(PrefService* prefs) {
@@ -110,16 +89,14 @@
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
   DCHECK(profile_io_data);
   return CanPreresolveAndPreconnect(
-      profile_io_data->network_prediction_options()->GetValue(),
-      profile_io_data->network_prediction_enabled()->GetValue());
+      profile_io_data->network_prediction_options()->GetValue());
 }
 
 bool CanPreresolveAndPreconnectUI(PrefService* prefs) {
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
   DCHECK(prefs);
   return CanPreresolveAndPreconnect(
-      prefs->GetInteger(prefs::kNetworkPredictionOptions),
-      prefs->GetBoolean(prefs::kNetworkPredictionEnabled));
+      prefs->GetInteger(prefs::kNetworkPredictionOptions));
 }
 
 }  // namespace chrome_browser_net
diff --git a/chrome/browser/net/prediction_options.h b/chrome/browser/net/prediction_options.h
index 49c33df..1fec4cc 100644
--- a/chrome/browser/net/prediction_options.h
+++ b/chrome/browser/net/prediction_options.h
@@ -17,14 +17,11 @@
 // Enum describing when to allow network predictions based on connection type.
 // The numerical value is stored in the prefs file, therefore the same enum
 // with the same order must be used by the platform-dependent components.
-// TODO(bnc): implement as per crbug.com/334602.
-// NETWORK_PREDICTION_UNSET means that the old preferences,
-// kNetworkPredictionEnabled and kAllowPrerender, should be observed.
 enum NetworkPredictionOptions {
   NETWORK_PREDICTION_ALWAYS,
   NETWORK_PREDICTION_WIFI_ONLY,
   NETWORK_PREDICTION_NEVER,
-  NETWORK_PREDICTION_UNSET,
+  NETWORK_PREDICTION_DEFAULT = NETWORK_PREDICTION_WIFI_ONLY,
 };
 
 void RegisterPredictionOptionsProfilePrefs(
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc
index c5c50bf..4a8b5d3 100644
--- a/chrome/browser/password_manager/chrome_password_manager_client.cc
+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
@@ -92,9 +92,6 @@
 
 bool ChromePasswordManagerClient::IsPasswordManagerEnabledForCurrentPage()
     const {
-  if (EnabledForSyncSignin())
-    return true;
-
   DCHECK(web_contents());
   content::NavigationEntry* entry =
       web_contents()->GetController().GetLastCommittedEntry();
@@ -102,6 +99,14 @@
     // TODO(gcasto): Determine if fix for crbug.com/388246 is relevant here.
     return true;
   }
+
+  // Disable the password manager for online password management.
+  if (IsURLPasswordWebsiteReauth(entry->GetURL()))
+    return false;
+
+  if (EnabledForSyncSignin())
+    return true;
+
   // Do not fill nor save password when a user is signing in for sync. This
   // is because users need to remember their password if they are syncing as
   // this is effectively their master password.
@@ -403,6 +408,26 @@
                                     &ignored_value);
 }
 
+bool ChromePasswordManagerClient::IsURLPasswordWebsiteReauth(
+    const GURL& url) const {
+  if (url.GetOrigin() != GaiaUrls::GetInstance()->gaia_url().GetOrigin())
+    return false;
+
+  // "rart" param signals this page is for transactional reauth.
+  std::string param_value;
+  if (!net::GetValueForKeyInQuery(url, "rart", &param_value))
+    return false;
+
+  // Check the "continue" param to see if this reauth page is for the passwords
+  // website.
+  param_value.clear();
+  if (!net::GetValueForKeyInQuery(url, "continue", &param_value))
+    return false;
+
+  return GURL(param_value).host() ==
+      GURL(chrome::kPasswordManagerAccountDashboardURL).host();
+}
+
 bool ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled() {
 #if !defined(USE_AURA)
   return false;
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.h b/chrome/browser/password_manager/chrome_password_manager_client.h
index 4fbed64..ccab0ed 100644
--- a/chrome/browser/password_manager/chrome_password_manager_client.h
+++ b/chrome/browser/password_manager/chrome_password_manager_client.h
@@ -138,6 +138,10 @@
   // Google property.
   bool LastLoadWasTransactionalReauthPage() const;
 
+  // Returns true if |url| is the reauth page for accessing the password
+  // website.
+  bool IsURLPasswordWebsiteReauth(const GURL& url) const;
+
   // Sets |autofill_state_| based on experiment and flag values.
   void SetUpAutofillSyncState();
 
diff --git a/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc b/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc
index 802bdce..157aaee 100644
--- a/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc
+++ b/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc
@@ -266,3 +266,58 @@
   NavigateAndCommit(GURL("https://accounts.google.com/Login"));
   EXPECT_TRUE(client->ShouldFilterAutofillResult(form));
 }
+
+TEST_F(ChromePasswordManagerClientTest,
+       IsPasswordManagerEnabledForCurrentPage) {
+  ChromePasswordManagerClient* client = GetClient();
+  NavigateAndCommit(
+      GURL("https://accounts.google.com/ServiceLogin?continue="
+           "https://passwords.google.com/settings&rart=123"));
+  EXPECT_FALSE(client->IsPasswordManagerEnabledForCurrentPage());
+
+  // Password site is inaccesible via HTTP, but because of HSTS the following
+  // link should still continue to https://passwords.google.com.
+  NavigateAndCommit(
+      GURL("https://accounts.google.com/ServiceLogin?continue="
+           "http://passwords.google.com/settings&rart=123"));
+  EXPECT_FALSE(client->IsPasswordManagerEnabledForCurrentPage());
+
+  // Specifying default port still passes.
+  NavigateAndCommit(
+      GURL("https://accounts.google.com/ServiceLogin?continue="
+           "https://passwords.google.com:443/settings&rart=123"));
+  EXPECT_FALSE(client->IsPasswordManagerEnabledForCurrentPage());
+
+  // Encoded URL is considered the same.
+  NavigateAndCommit(
+      GURL("https://accounts.google.com/ServiceLogin?continue="
+           "https://passwords.%67oogle.com/settings&rart=123"));
+  EXPECT_FALSE(client->IsPasswordManagerEnabledForCurrentPage());
+
+  // Fully qualified domain name is considered a different hostname by GURL.
+  // Ideally this would not be the case, but this quirk can be avoided by
+  // verification on the server. This test is simply documentation of this
+  // behavior.
+  NavigateAndCommit(
+      GURL("https://accounts.google.com/ServiceLogin?continue="
+           "https://passwords.google.com./settings&rart=123"));
+  EXPECT_TRUE(client->IsPasswordManagerEnabledForCurrentPage());
+
+  // Not a transactional reauth page.
+  NavigateAndCommit(
+      GURL("https://accounts.google.com/ServiceLogin?continue="
+           "https://passwords.google.com/settings"));
+  EXPECT_TRUE(client->IsPasswordManagerEnabledForCurrentPage());
+
+  // Should be enabled for other transactional reauth pages.
+  NavigateAndCommit(
+      GURL("https://accounts.google.com/ServiceLogin?continue="
+           "https://mail.google.com&rart=234"));
+  EXPECT_TRUE(client->IsPasswordManagerEnabledForCurrentPage());
+
+  // Reauth pages are only on accounts.google.com
+  NavigateAndCommit(
+      GURL("https://other.site.com/ServiceLogin?continue="
+           "https://passwords.google.com&rart=234"));
+  EXPECT_TRUE(client->IsPasswordManagerEnabledForCurrentPage());
+}
diff --git a/chrome/browser/policy/cloud/cloud_policy_browsertest.cc b/chrome/browser/policy/cloud/cloud_policy_browsertest.cc
index 238fdd1..0d854e4 100644
--- a/chrome/browser/policy/cloud/cloud_policy_browsertest.cc
+++ b/chrome/browser/policy/cloud/cloud_policy_browsertest.cc
@@ -142,6 +142,11 @@
                   POLICY_SCOPE_USER,
                   new base::StringValue("primary-only"),
                   NULL);
+  policy_map->Set(key::kEasyUnlockAllowed,
+                  POLICY_LEVEL_MANDATORY,
+                  POLICY_SCOPE_USER,
+                  new base::FundamentalValue(false),
+                  NULL);
 #endif
 }
 
@@ -178,6 +183,11 @@
                 POLICY_SCOPE_USER,
                 new base::StringValue("primary-only"),
                 NULL);
+  expected->Set(key::kEasyUnlockAllowed,
+                POLICY_LEVEL_MANDATORY,
+                POLICY_SCOPE_USER,
+                new base::FundamentalValue(false),
+                NULL);
 #endif
 }
 
diff --git a/chrome/browser/prefetch/prefetch.cc b/chrome/browser/prefetch/prefetch.cc
index c38147f..4b23f86 100644
--- a/chrome/browser/prefetch/prefetch.cc
+++ b/chrome/browser/prefetch/prefetch.cc
@@ -19,17 +19,6 @@
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
 
   ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
-  DCHECK(io_data);
-
-  // TODO(bnc): Remove this condition once the new
-  // predictive preference is used on all platforms. See crbug.com/334602.
-  if (io_data->network_prediction_options()->GetValue() ==
-          chrome_browser_net::NETWORK_PREDICTION_UNSET &&
-      net::NetworkChangeNotifier::IsConnectionCellular(
-          net::NetworkChangeNotifier::GetConnectionType())) {
-    return false;
-  }
-
   return chrome_browser_net::CanPrefetchAndPrerenderIO(io_data) &&
          !DisableForFieldTrial();
 }
diff --git a/chrome/browser/prefetch/prefetch_browsertest.cc b/chrome/browser/prefetch/prefetch_browsertest.cc
index bd8ba5b..0f371fc 100644
--- a/chrome/browser/prefetch/prefetch_browsertest.cc
+++ b/chrome/browser/prefetch/prefetch_browsertest.cc
@@ -6,6 +6,7 @@
 #include "base/prefs/pref_service.h"
 #include "base/run_loop.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/net/prediction_options.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -17,39 +18,50 @@
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/test/browser_test_utils.h"
+#include "net/base/network_change_notifier.h"
 #include "net/url_request/url_request_filter.h"
 #include "net/url_request/url_request_job.h"
 
+using chrome_browser_net::NetworkPredictionOptions;
 using content::BrowserThread;
+using net::NetworkChangeNotifier;
 
 namespace {
 
 const char kPrefetchPage[] = "files/prerender/simple_prefetch.html";
 
+class MockNetworkChangeNotifierWIFI : public NetworkChangeNotifier {
+ public:
+  virtual ConnectionType GetCurrentConnectionType() const OVERRIDE {
+    return NetworkChangeNotifier::CONNECTION_WIFI;
+  }
+};
+
+class MockNetworkChangeNotifier4G : public NetworkChangeNotifier {
+ public:
+  virtual ConnectionType GetCurrentConnectionType() const OVERRIDE {
+    return NetworkChangeNotifier::CONNECTION_4G;
+  }
+};
+
 class PrefetchBrowserTestBase : public InProcessBrowserTest {
  public:
-  explicit PrefetchBrowserTestBase(bool do_predictive_networking,
-                                   bool do_prefetch_field_trial)
-      : do_predictive_networking_(do_predictive_networking),
-        do_prefetch_field_trial_(do_prefetch_field_trial) {}
+  explicit PrefetchBrowserTestBase(bool disabled_via_field_trial)
+      : disabled_via_field_trial_(disabled_via_field_trial) {}
 
   virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
-    if (do_prefetch_field_trial_) {
+    if (disabled_via_field_trial_) {
       command_line->AppendSwitchASCII(switches::kForceFieldTrials,
                                       "Prefetch/ExperimentDisabled/");
-    } else {
-      command_line->AppendSwitchASCII(switches::kForceFieldTrials,
-                                      "Prefetch/ExperimentEnabled/");
     }
   }
 
-  virtual void SetUpOnMainThread() OVERRIDE {
-    browser()->profile()->GetPrefs()->SetBoolean(
-        prefs::kNetworkPredictionEnabled, do_predictive_networking_);
+  void SetPreference(NetworkPredictionOptions value) {
+    browser()->profile()->GetPrefs()->SetInteger(
+        prefs::kNetworkPredictionOptions, value);
   }
 
   bool RunPrefetchExperiment(bool expect_success, Browser* browser) {
-    CHECK(test_server()->Start());
     GURL url = test_server()->GetURL(kPrefetchPage);
 
     const base::string16 expected_title =
@@ -62,32 +74,17 @@
   }
 
  private:
-  bool do_predictive_networking_;
-  bool do_prefetch_field_trial_;
+  bool disabled_via_field_trial_;
 };
 
-class PrefetchBrowserTestPredictionOnExpOn : public PrefetchBrowserTestBase {
+class PrefetchBrowserTestPrediction : public PrefetchBrowserTestBase {
  public:
-  PrefetchBrowserTestPredictionOnExpOn()
-      : PrefetchBrowserTestBase(true, true) {}
+  PrefetchBrowserTestPrediction() : PrefetchBrowserTestBase(false) {}
 };
 
-class PrefetchBrowserTestPredictionOnExpOff : public PrefetchBrowserTestBase {
+class PrefetchBrowserTestPredictionDisabled : public PrefetchBrowserTestBase {
  public:
-  PrefetchBrowserTestPredictionOnExpOff()
-      : PrefetchBrowserTestBase(true, false) {}
-};
-
-class PrefetchBrowserTestPredictionOffExpOn : public PrefetchBrowserTestBase {
- public:
-  PrefetchBrowserTestPredictionOffExpOn()
-      : PrefetchBrowserTestBase(false, true) {}
-};
-
-class PrefetchBrowserTestPredictionOffExpOff : public PrefetchBrowserTestBase {
- public:
-  PrefetchBrowserTestPredictionOffExpOff()
-      : PrefetchBrowserTestBase(false, false) {}
+  PrefetchBrowserTestPredictionDisabled() : PrefetchBrowserTestBase(true) {}
 };
 
 // URLRequestJob (and associated handler) which hangs.
@@ -134,29 +131,59 @@
       url, never_respond_handler.Pass());
 }
 
-// Privacy option is on, experiment is on.  Prefetch should succeed.
-IN_PROC_BROWSER_TEST_F(PrefetchBrowserTestPredictionOnExpOn, PredOnExpOn) {
+// Prefetch is disabled via field experiment.  Prefetch should be dropped.
+IN_PROC_BROWSER_TEST_F(PrefetchBrowserTestPredictionDisabled,
+                       ExperimentDisabled) {
+  CHECK(test_server()->Start());
+  EXPECT_TRUE(RunPrefetchExperiment(false, browser()));
+  // Should not prefetch even if preference is ALWAYS.
+  SetPreference(NetworkPredictionOptions::NETWORK_PREDICTION_ALWAYS);
   EXPECT_TRUE(RunPrefetchExperiment(false, browser()));
 }
 
-// Privacy option is on, experiment is off.  Prefetch should be dropped.
-IN_PROC_BROWSER_TEST_F(PrefetchBrowserTestPredictionOnExpOff, PredOnExpOff) {
-  EXPECT_TRUE(RunPrefetchExperiment(true, browser()));
-}
+// Prefetch should be allowed depending on preference and network type.
+IN_PROC_BROWSER_TEST_F(PrefetchBrowserTestPrediction, PreferenceWorks) {
+  CHECK(test_server()->Start());
+  // Set real NetworkChangeNotifier singleton aside.
+  scoped_ptr<NetworkChangeNotifier::DisableForTest> disable_for_test(
+      new NetworkChangeNotifier::DisableForTest);
 
-// Privacy option is off, experiment is on.  Prefetch should be dropped.
-IN_PROC_BROWSER_TEST_F(PrefetchBrowserTestPredictionOffExpOn, PredOffExpOn) {
-  EXPECT_TRUE(RunPrefetchExperiment(false, browser()));
-}
+  // Preference defaults to WIFI_ONLY: prefetch when not on cellular.
+  {
+    scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifierWIFI);
+    EXPECT_TRUE(RunPrefetchExperiment(true, browser()));
+  }
+  {
+    scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifier4G);
+    EXPECT_TRUE(RunPrefetchExperiment(false, browser()));
+  }
 
-// Privacy option is off, experiment is off.  Prefetch should be dropped.
-IN_PROC_BROWSER_TEST_F(PrefetchBrowserTestPredictionOffExpOff, PredOffExpOff) {
-  EXPECT_TRUE(RunPrefetchExperiment(false, browser()));
+  // Set preference to ALWAYS: always prefetch.
+  SetPreference(NetworkPredictionOptions::NETWORK_PREDICTION_ALWAYS);
+  {
+    scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifierWIFI);
+    EXPECT_TRUE(RunPrefetchExperiment(true, browser()));
+  }
+  {
+    scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifier4G);
+    EXPECT_TRUE(RunPrefetchExperiment(true, browser()));
+  }
+
+  // Set preference to NEVER: never prefetch.
+  SetPreference(NetworkPredictionOptions::NETWORK_PREDICTION_NEVER);
+  {
+    scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifierWIFI);
+    EXPECT_TRUE(RunPrefetchExperiment(false, browser()));
+  }
+  {
+    scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifier4G);
+    EXPECT_TRUE(RunPrefetchExperiment(false, browser()));
+  }
 }
 
 // Bug 339909: When in incognito mode the browser crashed due to an
 // uninitialized preference member. Verify that it no longer does.
-IN_PROC_BROWSER_TEST_F(PrefetchBrowserTestPredictionOnExpOff, IncognitoTest) {
+IN_PROC_BROWSER_TEST_F(PrefetchBrowserTestPrediction, IncognitoTest) {
   Profile* incognito_profile = browser()->profile()->GetOffTheRecordProfile();
   Browser* incognito_browser = new Browser(
       Browser::CreateParams(incognito_profile, browser()->host_desktop_type()));
@@ -165,6 +192,7 @@
   // WebContents for the incognito browser.
   ui_test_utils::OpenURLOffTheRecord(browser()->profile(), GURL("about:blank"));
 
+  CHECK(test_server()->Start());
   EXPECT_TRUE(RunPrefetchExperiment(true, incognito_browser));
 }
 
@@ -173,8 +201,7 @@
 // - if a prefetch is in progress, but the originating renderer is destroyed,
 //   that the pending prefetch request is cleaned up cleanly and does not
 //   result in a crash.
-IN_PROC_BROWSER_TEST_F(PrefetchBrowserTestPredictionOnExpOff,
-                       PrefetchFromBrowser) {
+IN_PROC_BROWSER_TEST_F(PrefetchBrowserTestPrediction, PrefetchFromBrowser) {
   const GURL kHangingUrl("http://hanging-url.com");
   base::RunLoop loop_;
   BrowserThread::PostTask(BrowserThread::IO,
diff --git a/chrome/browser/prefs/incognito_mode_prefs.cc b/chrome/browser/prefs/incognito_mode_prefs.cc
index 3b7b327..1861ac1 100644
--- a/chrome/browser/prefs/incognito_mode_prefs.cc
+++ b/chrome/browser/prefs/incognito_mode_prefs.cc
@@ -82,6 +82,9 @@
 
 // static
 bool IncognitoModePrefs::CanOpenBrowser(Profile* profile) {
+  if (profile->IsGuestSession())
+    return true;
+
   switch (GetAvailability(profile->GetPrefs())) {
     case IncognitoModePrefs::ENABLED:
       return true;
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index ea4bba1..3627820 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -238,8 +238,7 @@
 
 PrerenderManager::PrerenderManager(Profile* profile,
                                    PrerenderTracker* prerender_tracker)
-    : enabled_(profile && profile->GetPrefs() &&
-          profile->GetPrefs()->GetBoolean(prefs::kNetworkPredictionEnabled)),
+    : enabled_(true),
       profile_(profile),
       prerender_tracker_(prerender_tracker),
       prerender_contents_factory_(PrerenderContents::CreateFactory()),
@@ -1862,24 +1861,9 @@
 bool PrerenderManager::IsEnabled() const {
   DCHECK(CalledOnValidThread());
 
-  // TODO(bnc): remove conditional as per crbug.com/334602.
-  if (profile_ && profile_->GetPrefs() &&
-        profile_->GetPrefs()->GetInteger(prefs::kNetworkPredictionOptions) !=
-        chrome_browser_net::NETWORK_PREDICTION_UNSET) {
-    return chrome_browser_net::CanPrefetchAndPrerenderUI(profile_->GetPrefs());
-  }
-  // TODO(bnc): remove rest of method as per crbug.com/334602.
   if (!enabled_)
     return false;
-  for (std::list<const PrerenderCondition*>::const_iterator it =
-           prerender_conditions_.begin();
-       it != prerender_conditions_.end();
-       ++it) {
-    const PrerenderCondition* condition = *it;
-    if (!condition->CanPrerender())
-      return false;
-  }
-  return true;
+  return chrome_browser_net::CanPrefetchAndPrerenderUI(profile_->GetPrefs());
 }
 
 void PrerenderManager::AddProfileNetworkBytesIfEnabled(int64 bytes) {
diff --git a/chrome/browser/profiles/gaia_info_update_service.cc b/chrome/browser/profiles/gaia_info_update_service.cc
index a68006b..010756c 100644
--- a/chrome/browser/profiles/gaia_info_update_service.cc
+++ b/chrome/browser/profiles/gaia_info_update_service.cc
@@ -159,6 +159,7 @@
   if (username.empty()) {
     // Unset the old user's GAIA info.
     cache.SetGAIANameOfProfileAtIndex(profile_index, base::string16());
+    cache.SetGAIAGivenNameOfProfileAtIndex(profile_index, base::string16());
     // The profile index may have changed.
     profile_index = cache.GetIndexOfProfileWithPath(profile_->GetPath());
     if (profile_index == std::string::npos)
diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/browser/profiles/off_the_record_profile_impl.cc
index 209ba2a..6159efe 100644
--- a/chrome/browser/profiles/off_the_record_profile_impl.cc
+++ b/chrome/browser/profiles/off_the_record_profile_impl.cc
@@ -124,8 +124,10 @@
   BrowserContextDependencyManager::GetInstance()->CreateBrowserContextServices(
       this);
 
-  DCHECK_NE(IncognitoModePrefs::DISABLED,
-            IncognitoModePrefs::GetAvailability(profile_->GetPrefs()));
+  // Guest profiles may always be OTR. Check IncognitoModePrefs otherwise.
+  DCHECK(profile_->IsGuestSession() ||
+         IncognitoModePrefs::GetAvailability(profile_->GetPrefs()) !=
+             IncognitoModePrefs::DISABLED);
 
 #if defined(OS_ANDROID) || defined(OS_IOS)
   UseSystemProxy();
diff --git a/chrome/browser/profiles/profile_info_cache.cc b/chrome/browser/profiles/profile_info_cache.cc
index 8aaa047..c5ba808 100644
--- a/chrome/browser/profiles/profile_info_cache.cc
+++ b/chrome/browser/profiles/profile_info_cache.cc
@@ -169,13 +169,10 @@
     }
   }
 
-  // If needed, start downloading the high-res avatars.
-  if (switches::IsNewAvatarMenu()) {
-    for (size_t i = 0; i < GetNumberOfProfiles(); i++) {
-      DownloadHighResAvatar(GetAvatarIconIndexOfProfileAtIndex(i),
-                            GetPathOfProfileAtIndex(i));
-    }
-  }
+  // If needed, start downloading the high-res avatars and migrate any legacy
+  // profile names.
+  if (switches::IsNewAvatarMenu())
+    MigrateLegacyProfileNamesAndDownloadAvatars();
 }
 
 ProfileInfoCache::~ProfileInfoCache() {
@@ -1067,3 +1064,45 @@
   delete avatar_images_downloads_in_progress_[file_name];
   avatar_images_downloads_in_progress_[file_name] = NULL;
 }
+
+void ProfileInfoCache::MigrateLegacyProfileNamesAndDownloadAvatars() {
+  DCHECK(switches::IsNewAvatarMenu());
+
+  // Only do this on desktop platforms.
+#if !defined(OS_ANDROID) && !defined(OS_IOS) && !defined(OS_CHROMEOS)
+  // Migrate any legacy profile names ("First user", "Default Profile") to
+  // new style default names ("Person 1"). The problem here is that every
+  // time you rename a profile, the ProfileInfoCache sorts itself, so
+  // whatever you were iterating through is no longer valid. We need to
+  // save a list of the profile paths (which thankfully do not change) that
+  // need to be renamed. We also can't pre-compute the new names, as they
+  // depend on the names of all the other profiles in the info cache, so they
+  // need to be re-computed after each rename.
+  std::vector<base::FilePath> profiles_to_rename;
+
+  const base::string16 default_profile_name = base::i18n::ToLower(
+      l10n_util::GetStringUTF16(IDS_DEFAULT_PROFILE_NAME));
+  const base::string16 default_legacy_profile_name = base::i18n::ToLower(
+      l10n_util::GetStringUTF16(IDS_LEGACY_DEFAULT_PROFILE_NAME));
+
+  for (size_t i = 0; i < GetNumberOfProfiles(); i++) {
+    // If needed, start downloading the high-res avatar for this profile.
+    DownloadHighResAvatar(GetAvatarIconIndexOfProfileAtIndex(i),
+                          GetPathOfProfileAtIndex(i));
+
+    base::string16 name = base::i18n::ToLower(GetNameOfProfileAtIndex(i));
+    if (name == default_profile_name || name == default_legacy_profile_name)
+      profiles_to_rename.push_back(GetPathOfProfileAtIndex(i));
+  }
+
+  // Rename the necessary profiles.
+  std::vector<base::FilePath>::const_iterator it;
+  for (it = profiles_to_rename.begin(); it != profiles_to_rename.end(); ++it) {
+    size_t profile_index = GetIndexOfProfileWithPath(*it);
+    SetProfileIsUsingDefaultNameAtIndex(profile_index, true);
+    // This will assign a new "Person %d" type name and re-sort the cache.
+    SetNameOfProfileAtIndex(profile_index, ChooseNameForNewProfile(
+        GetAvatarIconIndexOfProfileAtIndex(profile_index)));
+  }
+#endif
+}
diff --git a/chrome/browser/profiles/profile_info_cache.h b/chrome/browser/profiles/profile_info_cache.h
index f8c4390..41fc3df 100644
--- a/chrome/browser/profiles/profile_info_cache.h
+++ b/chrome/browser/profiles/profile_info_cache.h
@@ -206,6 +206,11 @@
   void OnAvatarPictureSaved(const std::string& file_name,
                             const base::FilePath& profile_path);
 
+  // Migrate any legacy profile names ("First user", "Default Profile") to
+  // new style default names ("Person 1"), and download and high-res avatars
+  // used by the profiles.
+  void MigrateLegacyProfileNamesAndDownloadAvatars();
+
   PrefService* prefs_;
   std::vector<std::string> sorted_keys_;
   base::FilePath user_data_dir_;
diff --git a/chrome/browser/profiles/profile_info_cache_unittest.cc b/chrome/browser/profiles/profile_info_cache_unittest.cc
index ab25357..9fa123c 100644
--- a/chrome/browser/profiles/profile_info_cache_unittest.cc
+++ b/chrome/browser/profiles/profile_info_cache_unittest.cc
@@ -590,4 +590,85 @@
   EXPECT_TRUE(base::DeleteFile(icon_path, true));
   EXPECT_FALSE(base::PathExists(icon_path));
 }
+
+TEST_F(ProfileInfoCacheTest, MigrateLegacyProfileNamesWithNewAvatarMenu) {
+  switches::EnableNewAvatarMenuForTesting(CommandLine::ForCurrentProcess());
+  EXPECT_EQ(0U, GetCache()->GetNumberOfProfiles());
+
+  base::FilePath path_1 = GetProfilePath("path_1");
+  GetCache()->AddProfileToCache(path_1, ASCIIToUTF16("Default Profile"),
+                                base::string16(), 0, std::string());
+  base::FilePath path_2 = GetProfilePath("path_2");
+  GetCache()->AddProfileToCache(path_2, ASCIIToUTF16("First user"),
+                                base::string16(), 1, std::string());
+  base::string16 name_3 = ASCIIToUTF16("Lemonade");
+  base::FilePath path_3 = GetProfilePath("path_3");
+  GetCache()->AddProfileToCache(path_3, name_3,
+                                base::string16(), 2, std::string());
+  base::string16 name_4 = ASCIIToUTF16("Batman");
+  base::FilePath path_4 = GetProfilePath("path_4");
+  GetCache()->AddProfileToCache(path_4, name_4,
+                                base::string16(), 3, std::string());
+  base::string16 name_5 = ASCIIToUTF16("Person 2");
+  base::FilePath path_5 = GetProfilePath("path_5");
+  GetCache()->AddProfileToCache(path_5, name_5,
+                                base::string16(), 2, std::string());
+
+  EXPECT_EQ(5U, GetCache()->GetNumberOfProfiles());
+
+
+  ResetCache();
+
+  // Legacy profile names like "Default Profile" and "First user" should be
+  // migrated to "Person %n" type names.
+  EXPECT_EQ(ASCIIToUTF16("Person 1"), GetCache()->GetNameOfProfileAtIndex(
+      GetCache()->GetIndexOfProfileWithPath(path_1)));
+  EXPECT_EQ(ASCIIToUTF16("Person 3"), GetCache()->GetNameOfProfileAtIndex(
+      GetCache()->GetIndexOfProfileWithPath(path_2)));
+
+  // Other profile names should not be migrated even if they're the old
+  // default cartoon profile names.
+  EXPECT_EQ(name_3, GetCache()->GetNameOfProfileAtIndex(
+      GetCache()->GetIndexOfProfileWithPath(path_3)));
+  EXPECT_EQ(name_4, GetCache()->GetNameOfProfileAtIndex(
+      GetCache()->GetIndexOfProfileWithPath(path_4)));
+  EXPECT_EQ(name_5, GetCache()->GetNameOfProfileAtIndex(
+      GetCache()->GetIndexOfProfileWithPath(path_5)));
+}
 #endif
+
+TEST_F(ProfileInfoCacheTest,
+       DontMigrateLegacyProfileNamesWithoutNewAvatarMenu) {
+  EXPECT_EQ(0U, GetCache()->GetNumberOfProfiles());
+
+  base::string16 name_1 = ASCIIToUTF16("Default Profile");
+  base::FilePath path_1 = GetProfilePath("path_1");
+  GetCache()->AddProfileToCache(path_1, name_1,
+                                base::string16(), 0, std::string());
+  base::string16 name_2 = ASCIIToUTF16("First user");
+  base::FilePath path_2 = GetProfilePath("path_2");
+  GetCache()->AddProfileToCache(path_2, name_2,
+                                base::string16(), 1, std::string());
+  base::string16 name_3 = ASCIIToUTF16("Lemonade");
+  base::FilePath path_3 = GetProfilePath("path_3");
+  GetCache()->AddProfileToCache(path_3, name_3,
+                                base::string16(), 2, std::string());
+  base::string16 name_4 = ASCIIToUTF16("Batman");
+  base::FilePath path_4 = GetProfilePath("path_4");
+  GetCache()->AddProfileToCache(path_4, name_4,
+                                base::string16(), 3, std::string());
+  EXPECT_EQ(4U, GetCache()->GetNumberOfProfiles());
+
+  ResetCache();
+
+  // Profile names should have been preserved.
+  EXPECT_EQ(name_1, GetCache()->GetNameOfProfileAtIndex(
+      GetCache()->GetIndexOfProfileWithPath(path_1)));
+  EXPECT_EQ(name_2, GetCache()->GetNameOfProfileAtIndex(
+      GetCache()->GetIndexOfProfileWithPath(path_2)));
+  EXPECT_EQ(name_3, GetCache()->GetNameOfProfileAtIndex(
+      GetCache()->GetIndexOfProfileWithPath(path_3)));
+  EXPECT_EQ(name_4, GetCache()->GetNameOfProfileAtIndex(
+      GetCache()->GetIndexOfProfileWithPath(path_4)));
+}
+
diff --git a/chrome/browser/profiles/profile_manager_unittest.cc b/chrome/browser/profiles/profile_manager_unittest.cc
index 1645dc1..6e47eb3 100644
--- a/chrome/browser/profiles/profile_manager_unittest.cc
+++ b/chrome/browser/profiles/profile_manager_unittest.cc
@@ -1085,17 +1085,27 @@
   EXPECT_EQ(default_profile_name,
             profiles::GetAvatarNameForProfile(profile1->GetPath()));
 
-  // We should display the actual profile name for signed in profiles.
+  // For a signed in profile with a default name we still display
+  // IDS_SINGLE_PROFILE_DISPLAY_NAME.
   cache.SetUserNameOfProfileAtIndex(0, ASCIIToUTF16("user@gmail.com"));
   EXPECT_EQ(profile_name1, cache.GetNameOfProfileAtIndex(0));
-  EXPECT_EQ(profile_name1,
+  EXPECT_EQ(default_profile_name,
             profiles::GetAvatarNameForProfile(profile1->GetPath()));
 
+  // For a signed in profile with a non-default Gaia given name we display the
+  // Gaia given name.
+  cache.SetUserNameOfProfileAtIndex(0, ASCIIToUTF16("user@gmail.com"));
+  const base::string16 gaia_given_name(ASCIIToUTF16("given name"));
+  cache.SetGAIAGivenNameOfProfileAtIndex(0, gaia_given_name);
+  EXPECT_EQ(gaia_given_name, cache.GetNameOfProfileAtIndex(0));
+  EXPECT_EQ(gaia_given_name,
+      profiles::GetAvatarNameForProfile(profile1->GetPath()));
+
   // Multiple profiles means displaying the actual profile names.
   const base::string16 profile_name2 = cache.ChooseNameForNewProfile(1);
   Profile* profile2 = AddProfileToCache(profile_manager,
                                         "path_2", profile_name2);
-  EXPECT_EQ(profile_name1,
+  EXPECT_EQ(gaia_given_name,
             profiles::GetAvatarNameForProfile(profile1->GetPath()));
   EXPECT_EQ(profile_name2,
             profiles::GetAvatarNameForProfile(profile2->GetPath()));
@@ -1105,7 +1115,7 @@
                                               ProfileManager::CreateCallback());
   // Spin the message loop so that all the callbacks can finish running.
   base::RunLoop().RunUntilIdle();
-  EXPECT_EQ(profile_name1,
+  EXPECT_EQ(gaia_given_name,
             profiles::GetAvatarNameForProfile(profile1->GetPath()));
 }
 #endif  // !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
diff --git a/chrome/browser/profiles/profiles_state.cc b/chrome/browser/profiles/profiles_state.cc
index 8552cdf..864ac7e 100644
--- a/chrome/browser/profiles/profiles_state.cc
+++ b/chrome/browser/profiles/profiles_state.cc
@@ -59,21 +59,19 @@
     if (index == std::string::npos)
       return l10n_util::GetStringUTF16(IDS_SINGLE_PROFILE_DISPLAY_NAME);
 
-    // Using the --new-profile-management flag, there's a couple of rules
-    // about what the avatar button displays. If there's a single, local
-    // profile, with a default name (i.e. of the form Person %d), it should
-    // display IDS_SINGLE_PROFILE_DISPLAY_NAME. If this is a signed in profile,
-    // or the user has edited the profile name, or there are multiple profiles,
-    // it will return the actual name  of the profile.
+    // Using the --new-avatar-menu flag, there's a couple of rules about what
+    // the avatar button displays. If there's a single profile, with a default
+    // name (i.e. of the form Person %d) not manually set, it should display
+    // IDS_SINGLE_PROFILE_DISPLAY_NAME. Otherwise, it will return the actual
+    // name of the profile.
     base::string16 profile_name = cache.GetNameOfProfileAtIndex(index);
-    bool has_default_name = cache.ProfileIsUsingDefaultNameAtIndex(index);
+    bool has_default_name = cache.ProfileIsUsingDefaultNameAtIndex(index) &&
+        cache.IsDefaultProfileName(profile_name);
 
-    if (cache.GetNumberOfProfiles() == 1 && has_default_name &&
-        cache.GetUserNameOfProfileAtIndex(index).empty()) {
+    if (cache.GetNumberOfProfiles() == 1 && has_default_name)
       display_name = l10n_util::GetStringUTF16(IDS_SINGLE_PROFILE_DISPLAY_NAME);
-    } else {
+    else
       display_name = profile_name;
-    }
   }
   return display_name;
 }
@@ -93,15 +91,19 @@
 
 void UpdateProfileName(Profile* profile,
                        const base::string16& new_profile_name) {
-  PrefService* pref_service = profile->GetPrefs();
   ProfileInfoCache& cache =
       g_browser_process->profile_manager()->GetProfileInfoCache();
+  size_t profile_index = cache.GetIndexOfProfileWithPath(profile->GetPath());
+  if (profile_index == std::string::npos)
+    return;
+
+  if (new_profile_name == cache.GetNameOfProfileAtIndex(profile_index))
+    return;
 
   // This is only called when updating the profile name through the UI,
   // so we can assume the user has done this on purpose.
-  size_t profile_index = cache.GetIndexOfProfileWithPath(profile->GetPath());
-  if (profile_index != std::string::npos)
-    pref_service->SetBoolean(prefs::kProfileUsingDefaultName, false);
+  PrefService* pref_service = profile->GetPrefs();
+  pref_service->SetBoolean(prefs::kProfileUsingDefaultName, false);
 
   // Updating the profile preference will cause the cache to be updated for
   // this preference.
diff --git a/chrome/browser/resources/chromeos/echo/manifest.json b/chrome/browser/resources/chromeos/echo/manifest.json
index 4a32569..fc7b750 100644
--- a/chrome/browser/resources/chromeos/echo/manifest.json
+++ b/chrome/browser/resources/chromeos/echo/manifest.json
@@ -40,7 +40,7 @@
   "externally_connectable": {
     "ids": ["*"],
     "matches": [
-      "*://www.google.com/*/chrome/devices/goodies.html*"
+      "*://www.google.com/*chrome/devices/goodies.html*"
     ]
   }
 }
diff --git a/chrome/browser/resources/chromeos/genius_app/manifest.json b/chrome/browser/resources/chromeos/genius_app/manifest.json
index 11d13b5..e9269ce 100644
--- a/chrome/browser/resources/chromeos/genius_app/manifest.json
+++ b/chrome/browser/resources/chromeos/genius_app/manifest.json
@@ -25,7 +25,9 @@
   "permissions": [
     "alarms",
     "identity",
+    "identity.email",
     "chromeosInfoPrivate",
+    "fileSystem",
     "firstRunPrivate",
     "management",
     "metricsPrivate",
@@ -45,7 +47,6 @@
   "oauth2": {
     "client_id": "929143421683.apps.googleusercontent.com",
     "scopes": [
-        "https://www.googleapis.com/auth/userinfo.email",
         "https://www.googleapis.com/auth/supportcontent",
         "https://www.google.com/accounts/OAuthLogin"
     ]
@@ -58,6 +59,13 @@
       ],
       "title": "Open Help Article"
     },
+    "hts": {
+      "matches": [
+        "https://support.google.com/chromeos-gethelp/rts*",
+        "https://support.google.com/chromeos-gethelp/helpouts*"
+      ],
+      "title": "Contact Support"
+    },
     "home": {
       "matches": [
         "https://support.google.com/chromeos-gethelp",
diff --git a/chrome/browser/resources/cryptotoken/manifest.json b/chrome/browser/resources/cryptotoken/manifest.json
index 43ab8d4..3764eab 100644
--- a/chrome/browser/resources/cryptotoken/manifest.json
+++ b/chrome/browser/resources/cryptotoken/manifest.json
@@ -19,6 +19,22 @@
           "productId": 512
         },
         {
+          "vendorId": 4176,
+          "productId": 275
+        },
+        {
+          "vendorId": 4176,
+          "productId": 277
+        },
+        {
+          "vendorId": 4176,
+          "productId": 288
+        },
+        {
+          "vendorId": 4176,
+          "productId": 1025
+        },
+        {
           "vendorId": 9601,
           "productId": 61904
         },
diff --git a/chrome/browser/resources/cryptotoken/usbgnubbydevice.js b/chrome/browser/resources/cryptotoken/usbgnubbydevice.js
index 09b3909..089ca15 100644
--- a/chrome/browser/resources/cryptotoken/usbgnubbydevice.js
+++ b/chrome/browser/resources/cryptotoken/usbgnubbydevice.js
@@ -374,26 +374,29 @@
 };
 
 /**
+ * @const
+ */
+UsbGnubbyDevice.WINUSB_VID_PIDS = [
+  {'vendorId': 4176, 'productId': 529}  // Yubico WinUSB
+];
+
+/**
  * @param {function(Array)} cb Enumerate callback
  */
 UsbGnubbyDevice.enumerate = function(cb) {
-  var permittedDevs;
   var numEnumerated = 0;
   var allDevs = [];
 
   function enumerated(devs) {
     allDevs = allDevs.concat(devs);
-    if (++numEnumerated == permittedDevs.length) {
+    if (++numEnumerated == UsbGnubbyDevice.WINUSB_VID_PIDS.length) {
       cb(allDevs);
     }
   }
 
-  GnubbyDevice.getPermittedUsbDevices(function(devs) {
-    permittedDevs = devs;
-    for (var i = 0; i < devs.length; i++) {
-      chrome.usb.getDevices(devs[i], enumerated);
-    }
-  });
+  for (var i = 0; i < UsbGnubbyDevice.WINUSB_VID_PIDS.length; i++) {
+    chrome.usb.getDevices(UsbGnubbyDevice.WINUSB_VID_PIDS[i], enumerated);
+  }
 };
 
 /**
diff --git a/chrome/browser/resources/easy_unlock/manifest.json b/chrome/browser/resources/easy_unlock/manifest.json
index b64d43f..38c7143 100644
--- a/chrome/browser/resources/easy_unlock/manifest.json
+++ b/chrome/browser/resources/easy_unlock/manifest.json
@@ -24,7 +24,10 @@
     "easyUnlockPrivate",
     "systemPrivate",
     "alarms",
-    "gcm"
+    "gcm",
+    "system.display",
+    "chromeosInfoPrivate",
+    "tabs"
   ],
 
   "app": {
diff --git a/chrome/browser/resources/gesture_config.css b/chrome/browser/resources/gesture_config.css
index eec68a9..5b70596 100644
--- a/chrome/browser/resources/gesture_config.css
+++ b/chrome/browser/resources/gesture_config.css
@@ -3,7 +3,7 @@
  * found in the LICENSE file. */
 
 body {
-  font-family: 'Noto Sans UI', 'Droid Sans Fallback', sans-serif;
+  font-family: 'Noto Sans UI', sans-serif;
   font-size: 12px;
 }
 
diff --git a/chrome/browser/resources/help_app/manifest.json b/chrome/browser/resources/help_app/manifest.json
index 89d4bbf..34de5e7 100644
--- a/chrome/browser/resources/help_app/manifest.json
+++ b/chrome/browser/resources/help_app/manifest.json
@@ -6,5 +6,26 @@
   "default_locale": "en",
   "manifest_version": 2,
   "content_security_policy": "default-src 'self'; img-src 'self' data:;",
+  "background": {
+    "scripts": [
+      "js/background-bundle.js"
+    ],
+    "persistent": false
+  },
+  "content_scripts": [
+    {
+      "js": ["js/content_script_head.js"],
+      "matches": ["https://support.google.com/chromebook/*"],
+      "run_at": "document_start"
+    },
+    {
+      "js": ["js/content_script_foot.js"],
+      "matches": ["https://support.google.com/chromebook/*"],
+      "run_at": "document_idle"
+    }
+  ],
+  "permissions": [
+    "storage"
+  ],
   "incognito": "split"
 }
diff --git a/chrome/browser/resources/local_ntp/local_ntp.css b/chrome/browser/resources/local_ntp/local_ntp.css
index 2e2acd0..9cdab2e 100644
--- a/chrome/browser/resources/local_ntp/local_ntp.css
+++ b/chrome/browser/resources/local_ntp/local_ntp.css
@@ -15,7 +15,16 @@
   text-align: -webkit-center;
 }
 
+#ntp-contents.classical {
+  margin-top: 157px;
+}
+
+#ntp-contents.md {
+  margin-top: 157px;
+}
+
 .non-google-page #ntp-contents {
+  margin-top: 0;
   position: absolute;
   top: calc(50% - 155px);
   width: 100%;
@@ -41,12 +50,14 @@
   background-size: 269px 95px;
   height: 95px;
   margin-bottom: 24px;
-  margin-top: 157px;
   width: 269px;
 }
 
 body.alternate-logo #logo {
-  background-image: url('images/white_google_logo.png@2x');
+  -webkit-mask-image: url('images/google_logo.png@2x');
+  -webkit-mask-repeat: no-repeat;
+  -webkit-mask-size: 100%;
+  background: #eee;
 }
 
 #fakebox {
@@ -61,7 +72,7 @@
   font-size: 18px;
   height: 36px;
   line-height: 36px;
-  max-width: 620px;
+  max-width: 672px;
   position: relative;
   /* #fakebox width (here and below) should be 2px less than #mv-tiles
      to account for its border. */
@@ -103,12 +114,17 @@
   color: #bbb;
   font-family: arial, sans-serif;
   font-size: 16px;
-  height: 16px;
+  height: 100%;
   left: 9px;
   margin-top: 1px;
+  overflow: hidden;
   position: absolute;
+  text-align: left;
+  text-overflow: ellipsis;
   vertical-align: middle;
-  visibility: hidden;
+  visibility: inherit;
+  white-space: nowrap;
+  width: calc(100% - 2 * 9px);
 }
 
 body[dir=rtl] #fakebox-text {
@@ -142,7 +158,7 @@
 
 body.fakebox-drag-focused #fakebox-text,
 body.fakebox-focused #fakebox-text {
-  visibility: inherit;
+  visibility: hidden;
 }
 
 body.fakebox-drag-focused #cursor {
@@ -164,7 +180,7 @@
 }
 
 .md #most-visited {
-  margin-top: 50px;
+  margin-top: 64px;
 }
 
 #mv-tiles {
@@ -183,8 +199,8 @@
 }
 
 .md #mv-tiles {
-  height: calc(2 * 126px);
-  line-height: 126px;
+  height: calc(2 * 146px);
+  line-height: 146px;
 }
 
 .mv-tile {
@@ -214,12 +230,12 @@
 }
 
 .md .mv-tile {
-  background: #f2f2f2;
+  background: rgb(242,242,242);
   border-radius: 1px;
-  height: 114px;
-  margin-left: 6px;
-  margin-right: 6px;
-  width: 146px;
+  height: 130px;
+  margin-left: 8px;
+  margin-right: 8px;
+  width: 156px;
 }
 
 .md .mv-page-ready {
@@ -228,7 +244,7 @@
 }
 
 .md.dark .mv-tile {
-  background: #333;
+  background: rgb(51,51,51);
 }
 
 .mv-tile-inner {
@@ -274,8 +290,8 @@
 .md .mv-mask {
   border-color: transparent;
   border-radius: 2px;
-  height: 112px;
-  width: 144px;
+  height: calc(130px - 2px);
+  width: calc(156px - 2px);
 }
 
 /* Styling border. */
@@ -304,11 +320,11 @@
 }
 
 /* Styling shadow. */
-.md .mv-page-ready .mv-mask {
+.default-theme.md .mv-page-ready .mv-mask {
   -webkit-transition: box-shadow 200ms, border 200ms;
 }
 .default-theme.md .mv-page-ready:hover .mv-mask {
-  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
+  box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1), 0 4px 8px 0 rgba(0,0,0,0.2);
 }
 
 .default-theme..md.dark .mv-page-ready:hover .mv-mask,
@@ -326,7 +342,7 @@
 
 .md .mv-page:focus .mv-mask {
   -webkit-transition: box-shadow 200ms, border 200ms,
-      background-color 100ms ease-in-out, ;
+      background-color 100ms ease-in-out;
   background: rgba(0, 0, 0, 0.3);
   border-color: rgba(0, 0, 0, 0.3);
 }
@@ -346,20 +362,20 @@
 .md .mv-title {
   bottom: auto;
   height: 15px;
-  left: 28px;
-  top: 7px;
-  width: 112px;
+  left: 32px;
+  top: 9px;
+  width: calc(156px - 32px - 4px);
 }
 
 @media (-webkit-min-device-pixel-ratio: 2) {
   .md .mv-title {
-    top: 6px;
+    top: 8px;
   }
 }
 
 body[dir=rtl] .md .mv-title {
   left: auto;
-  right: 28px;
+  right: 32px;
 }
 
 .mv-thumb {
@@ -389,10 +405,10 @@
 .md .mv-thumb,
 .md .mv-thumb-fallback {
   border-radius: 0;
-  height: 82px;
+  height: 94px;
   left: 4px;
-  top: 28px;
-  width: 138px;
+  top: 32px;
+  width: 148px;
 }
 
 body[dir=rtl] .md .mv-thumb,
@@ -402,30 +418,29 @@
 }
 
 .md .mv-thumb-fallback {
-  background: #fff;
-  padding: none;
+  background-color: #fff;
   position: absolute;
 }
 
 .md.dark .mv-thumb-fallback {
-  background: #555;
+  background-color: #555;
 }
 
 .md .mv-thumb-fallback .dot {
-  background: #f2f2f2;
-  border-radius: 16px;
+  background-color: #f2f2f2;
+  border-radius: 8px;
   display: block;
-  height: 32px;
+  height: 16px;
   left: 50%;
-  margin-left: -16px;
-  margin-top: -16px;
+  margin-left: -8px;
+  margin-top: -8px;
   position: absolute;
   top: 50%;
-  width: 32px;
+  width: 16px;
 }
 
 .md.dark .mv-thumb-fallback .dot {
-  background: #333;
+  background-color: #333;
 }
 
 .mv-x-hide .mv-x {
@@ -435,11 +450,8 @@
 /* An X button to blacklist a tile or hide the notification. */
 .mv-x {
   background-color: transparent;
-  background-image: url(images/close_2.png);
   border: none;
-  cursor: default;
-  height: 16px;
-  width: 16px;
+  cursor: pointer;
 }
 
 .mv-page .mv-x {
@@ -448,13 +460,20 @@
   position: absolute;
 }
 
-.mv-x:hover,
-#mv-notice-x:focus {
-  background-image: url(images/close_2_hover.png);
+.classical .mv-x {
+  background-image: url('images/close_2.png');
+  height: 16px;
+  width: 16px;
 }
 
-.mv-x:active {
-  background-image: url(images/close_2_active.png);
+.classical .mv-x:hover,
+.classical #mv-notice-x:focus {
+  background-image: url('images/close_2_hover.png');
+}
+
+.classical .mv-x:active,
+.classical #mv-notice-x:active {
+  background-image: url('images/close_2_active.png');
 }
 
 .classical .mv-page .mv-x {
@@ -462,30 +481,89 @@
   top: 2px;
 }
 
-.md .mv-x {
-  background-color: rgba(187,187,187,0.8);
-  border-radius: 8px;
-}
-
-.md.dark .mv-x {
-  background-color: rgba(119,119,119,0.8);
-}
-
-.md .mv-page .mv-x {
-  right: 4px;
-  top: 5px;
-}
-
 body[dir=rtl] .classical .mv-page .mv-x {
   left: 2px;
   right: auto;
 }
 
+#mv-notice-x {
+  display: inline-block;
+  position: relative;
+}
+
+.md #mv-notice-x {
+  -webkit-transform: translate(0,-8px);
+}
+
+.md .mv-x {
+  height: 32px;
+  width: 32px;
+}
+
+.md .mv-x .mv-x-inner {
+  -webkit-mask-image: -webkit-image-set(
+      url('images/close_3_mask.png') 1x,
+      url('images/close_3_mask.png@2x') 2x);
+  -webkit-mask-repeat: no-repeat;
+  -webkit-mask-size: 10px 10px;
+  background-color: rgba(90,90,90,0.7);
+  height: 10px;
+  left: 50%;
+  margin-left: -5px;
+  margin-top: -5px;
+  position: absolute;
+  top: 50%;
+  width: 10px;
+}
+
+.md.dark .mv-x .mv-x-inner {
+  background-color: rgba(255,255,255,0.7);
+}
+
+.md .mv-x:hover .mv-x-inner,
+.md #mv-notice-x:focus .mv-x-inner {
+  background-color: rgb(90,90,90);
+}
+
+.md.dark .mv-x:hover .mv-x-inner,
+.md.dark #mv-notice-x:focus .mv-x-inner {
+  background-color: rgb(255,255,255);
+}
+
+.md .mv-x:active .mv-x-inner,
+.md #mv-notice-x:active .mv-x-inner {
+  background-color: rgb(66,133,244);
+}
+
+.md.dark .mv-x:active .mv-x-inner,
+.md.dark #mv-notice-x:active .mv-x-inner {
+  background-color: rgba(255,255,255,0.5);
+}
+
+.md .mv-page .mv-x {
+  /* background color needs to match .md .mv-tile */
+  background: linear-gradient(to right, transparent, rgb(242,242,242) 10%);
+  right: 0;
+  top: 0;
+}
+
 body[dir=rtl] .md .mv-page .mv-x {
-  left: 4px;
+  /* background color needs to match .md .mv-tile */
+  background: linear-gradient(to left, transparent, rgb(242,242,242) 10%);
+  left: 0;
   right: auto;
 }
 
+.md.dark .mv-page .mv-x {
+  /* background color needs to match .md.dark .mv-tile */
+  background: linear-gradient(to right, transparent, rgba(51,51,51,0.9) 30%);
+}
+
+body[dir=rtl] .md.dark .mv-page .mv-x {
+  /* background color needs to match .md.dark .mv-tile */
+  background: linear-gradient(to left, transparent, rgba(51,51,51,0.9) 30%);
+}
+
 .mv-page-ready:hover .mv-x {
   -webkit-transition-delay: 500ms;
   opacity: 1;
@@ -509,14 +587,22 @@
 }
 
 .md .mv-favicon {
-  left: 6px;
-  top: 6px;
+  left: 8px;
+  top: 8px;
 }
 
 body[dir=rtl] .md .mv-favicon {
   left: auto;
-  right: 6px;
-  top: 6px;
+  right: 8px;
+  top: 8px;
+}
+
+.md .mv-favicon-fallback {
+  background-image: -webkit-image-set(
+      url('images/ntp_default_favicon.png') 1x,
+      url('images/ntp_default_favicon.png@2x') 2x);
+  background-repeat: no-repeat;
+  background-size: 16px 16px;
 }
 
 /* The notification shown when a tile is blacklisted. */
@@ -529,6 +615,10 @@
 
 #mv-notice span {
   cursor: default;
+  display: inline-block;
+  height: 16px;
+  line-height: 16px;
+  vertical-align: top;
 }
 
 /* Links in the notification. */
@@ -550,6 +640,10 @@
   color: #fff;
 }
 
+.default-theme.dark #mv-notice-links span {
+  color: #fff;
+}
+
 #mv-notice-links .mv-x {
   -webkit-margin-start: 8px;
   outline: none;
diff --git a/chrome/browser/resources/local_ntp/local_ntp.html b/chrome/browser/resources/local_ntp/local_ntp.html
index 44e79bb..dd43063 100644
--- a/chrome/browser/resources/local_ntp/local_ntp.html
+++ b/chrome/browser/resources/local_ntp/local_ntp.html
@@ -21,7 +21,7 @@
         <span id="mv-notice-links">
           <span id="mv-undo" tabIndex="1"></span>
           <span id="mv-restore" tabIndex="1"></span>
-          <button id="mv-notice-x" tabIndex="1" class="mv-x"></button>
+          <div id="mv-notice-x" tabIndex="1" class="mv-x"></div>
         </span>
       </div>
     </div>
diff --git a/chrome/browser/resources/local_ntp/local_ntp.js b/chrome/browser/resources/local_ntp/local_ntp.js
index 26bf34e..c37c0b6 100644
--- a/chrome/browser/resources/local_ntp/local_ntp.js
+++ b/chrome/browser/resources/local_ntp/local_ntp.js
@@ -28,6 +28,7 @@
   ALTERNATE_LOGO: 'alternate-logo', // Shows white logo if required by theme
   BLACKLIST: 'mv-blacklist', // triggers tile blacklist animation
   BLACKLIST_BUTTON: 'mv-x',
+  BLACKLIST_BUTTON_INNER: 'mv-x-inner',
   DARK: 'dark',
   DEFAULT_THEME: 'default-theme',
   DELAYED_HIDE_NOTIFICATION: 'mv-notice-delayed-hide',
@@ -176,13 +177,6 @@
 
 
 /**
- * Stores whether the current theme has a dark background.
- * @type {boolean}
- */
-var isBackgroundDark = false;
-
-
-/**
  * Current number of tiles columns shown based on the window width, including
  * those that just contain filler.
  * @type {number}
@@ -268,6 +262,13 @@
 
 
 /**
+ * The color of the title in RRGGBBAA format.
+ * @type {?string}
+ */
+var titleColor = null;
+
+
+/**
  * Hide most visited tiles for at most this many milliseconds while painting.
  * @type {number}
  * @const
@@ -306,17 +307,19 @@
 
 
 /**
- * Determines whether a theme should be considered to have dark background.
- * @param {ThemeBackgroundInfo} info Theme background information.
- * @return {boolean} Whether the theme has dark background.
+ * Heuristic to determine whether a theme should be considered to be dark, so
+ * the colors of various UI elements can be adjusted.
+ * @param {ThemeBackgroundInfo|undefined} info Theme background information.
+ * @return {boolean} Whether the theme is dark.
  * @private
  */
-function getIsBackgroundDark(info) {
-  if (info.imageUrl)
-    return true;
-  var rgba = info.backgroundColorRgba;
+function getIsThemeDark(info) {
+  if (!info)
+    return false;
+  // Heuristic: light text implies dark theme.
+  var rgba = info.textColorRgba;
   var luminance = 0.3 * rgba[0] + 0.59 * rgba[1] + 0.11 * rgba[2];
-  return luminance < 128;
+  return luminance >= 128;
 }
 
 
@@ -325,20 +328,37 @@
  * @private
  */
 function renderTheme() {
+  var fakeboxText = $(IDS.FAKEBOX_TEXT);
+  if (fakeboxText) {
+    fakeboxText.innerHTML = '';
+    if (NTP_DESIGN.showFakeboxHint &&
+        configData.translatedStrings.searchboxPlaceholder) {
+      fakeboxText.textContent =
+          configData.translatedStrings.searchboxPlaceholder;
+    }
+  }
+
   var info = ntpApiHandle.themeBackgroundInfo;
+  var isThemeDark = getIsThemeDark(info);
+  ntpContents.classList.toggle(CLASSES.DARK, isThemeDark);
   if (!info) {
-    isBackgroundDark = false;
+    titleColor = NTP_DESIGN.titleColor;
     return;
   }
 
-  isBackgroundDark = getIsBackgroundDark(info);
-  ntpContents.classList.toggle(CLASSES.DARK, isBackgroundDark);
+  if (!info.usingDefaultTheme && info.textColorRgba) {
+    titleColor = convertToRRGGBBAAColor(info.textColorRgba);
+  } else {
+    titleColor = isThemeDark ?
+        NTP_DESIGN.titleColorAgainstDark : NTP_DESIGN.titleColor;
+  }
 
   var background = [convertToRGBAColor(info.backgroundColorRgba),
                     info.imageUrl,
                     info.imageTiling,
                     info.imageHorizontalAlignment,
                     info.imageVerticalAlignment].join(' ').trim();
+
   document.body.style.background = background;
   document.body.classList.toggle(CLASSES.ALTERNATE_LOGO, info.alternateLogo);
   updateThemeAttribution(info.attributionUrl);
@@ -366,7 +386,6 @@
 function setCustomThemeStyle(opt_themeInfo) {
   var customStyleElement = $(IDS.CUSTOM_THEME_STYLE);
   var head = document.head;
-
   if (opt_themeInfo && !opt_themeInfo.usingDefaultTheme) {
     ntpContents.classList.remove(CLASSES.DEFAULT_THEME);
     var themeStyle =
@@ -444,6 +463,19 @@
 
 
  /**
+ * Converts an Array of color components into RRGGBBAA format.
+ * @param {Array.<number>} color Array of rgba color components.
+ * @return {string} Color string in RRGGBBAA format.
+ * @private
+ */
+function convertToRRGGBBAAColor(color) {
+  return color.map(function(t) {
+    return ('0' + t.toString(16)).slice(-2);  // To 2-digit, 0-padded hex.
+  }).join('');
+}
+
+
+ /**
  * Converts an Array of color components into RGBA format "rgba(R,G,B,A)".
  * @param {Array.<number>} color Array of rgba color components.
  * @return {string} CSS color in RGBA format.
@@ -585,8 +617,6 @@
 function getMostVisitedTitleIframeUrl(rid, position) {
   var url = 'chrome-search://most-visited/' +
       encodeURIComponent(MOST_VISITED_TITLE_IFRAME);
-  var titleColor = isBackgroundDark ? NTP_DESIGN.titleColorAgainstDark :
-      NTP_DESIGN.titleColor;
   var params = [
       'rid=' + encodeURIComponent(rid),
       'f=' + encodeURIComponent(NTP_DESIGN.fontFamily),
@@ -632,6 +662,11 @@
 function createTile(page, position) {
   var tileElem = document.createElement('div');
   tileElem.classList.add(CLASSES.TILE);
+  // Prevent tile from being selected (and highlighted) when areas outside the
+  // <iframe>s are clicked.
+  tileElem.addEventListener('mousedown', function(e) {
+    e.preventDefault();
+  });
   var innerElem = createAndAppendElement(tileElem, 'div', CLASSES.TILE_INNER);
 
   if (page) {
@@ -694,6 +729,8 @@
     // The button used to blacklist this page.
     var blacklistButton = createAndAppendElement(
         innerElem, 'div', CLASSES.BLACKLIST_BUTTON);
+    createAndAppendElement(
+        blacklistButton, 'div', CLASSES.BLACKLIST_BUTTON_INNER);
     var blacklistFunction = generateBlacklistFunction(rid);
     blacklistButton.addEventListener('click', blacklistFunction);
     blacklistButton.title = configData.translatedStrings.removeThumbnailTooltip;
@@ -757,6 +794,7 @@
  */
 function hideNotification() {
   notification.classList.add(CLASSES.HIDE_NOTIFICATION);
+  notification.classList.remove(CLASSES.DELAYED_HIDE_NOTIFICATION);
 }
 
 
@@ -785,11 +823,11 @@
 
 
 /**
- * Resizes elements because the number of tile columns may need to change in
- * response to resizing. Also shows or hides extra tiles tiles according to the
- * new width of the page.
+ * Recomputes the number of tile columns, and width of various contents based
+ * on the width of the window.
+ * @return {boolean} Whether the number of tile columns has changed.
  */
-function onResize() {
+function updateContentWidth() {
   var tileRequiredWidth = NTP_DESIGN.tileWidth + NTP_DESIGN.tileMargin;
   // If innerWidth is zero, then use the maximum snap size.
   var maxSnapSize = MAX_NUM_COLUMNS * tileRequiredWidth -
@@ -804,14 +842,28 @@
   else if (newNumColumns > MAX_NUM_COLUMNS)
     newNumColumns = MAX_NUM_COLUMNS;
 
-  if (numColumnsShown != newNumColumns) {
-    numColumnsShown = newNumColumns;
-    var tilesContainerWidth = numColumnsShown * tileRequiredWidth;
-    tilesContainer.style.width = tilesContainerWidth + 'px';
-    if (fakebox) {
-      fakebox.style.width =  // -2 to account for border.
-          (tilesContainerWidth - NTP_DESIGN.tileMargin - 2) + 'px';
-    }
+  if (numColumnsShown === newNumColumns)
+    return false;
+
+  numColumnsShown = newNumColumns;
+  var tilesContainerWidth = numColumnsShown * tileRequiredWidth;
+  tilesContainer.style.width = tilesContainerWidth + 'px';
+  if (fakebox) {
+    // -2 to account for border.
+    var fakeboxWidth = (tilesContainerWidth - NTP_DESIGN.tileMargin - 2);
+    fakebox.style.width = fakeboxWidth + 'px';
+  }
+  return true;
+}
+
+
+/**
+ * Resizes elements because the number of tile columns may need to change in
+ * response to resizing. Also shows or hides extra tiles tiles according to the
+ * new width of the page.
+ */
+function onResize() {
+  if (updateContentWidth()) {
     // Render without clearing tiles.
     renderAndShowTiles();
   }
@@ -1000,11 +1052,7 @@
     var fakeboxHtml = [];
     fakeboxHtml.push('<input id="' + IDS.FAKEBOX_INPUT +
         '" autocomplete="off" tabindex="-1" aria-hidden="true">');
-    if (NTP_DESIGN.showFakeboxHint &&
-        configData.translatedStrings.searchboxPlaceholder) {
-      fakeboxHtml.push('<div id="' + IDS.FAKEBOX_TEXT + '">' +
-          configData.translatedStrings.searchboxPlaceholder + '</div>');
-    }
+    fakeboxHtml.push('<div id="' + IDS.FAKEBOX_TEXT + '"></div>');
     fakeboxHtml.push('<div id="cursor"></div>');
     fakebox.innerHTML = fakeboxHtml.join('');
 
@@ -1014,6 +1062,9 @@
     document.body.classList.add(CLASSES.NON_GOOGLE_PAGE);
   }
 
+  // Hide notifications after fade out, so we can't focus on links via keyboard.
+  notification.addEventListener('webkitTransitionEnd', hideNotification);
+
   var notificationMessage = $(IDS.NOTIFICATION_MESSAGE);
   notificationMessage.textContent =
       configData.translatedStrings.thumbnailRemovedNotification;
@@ -1033,10 +1084,12 @@
       configData.translatedStrings.attributionIntro;
 
   var notificationCloseButton = $(IDS.NOTIFICATION_CLOSE_BUTTON);
+  createAndAppendElement(
+      notificationCloseButton, 'div', CLASSES.BLACKLIST_BUTTON_INNER);
   notificationCloseButton.addEventListener('click', hideNotification);
 
   window.addEventListener('resize', onResize);
-  onResize();
+  updateContentWidth();
 
   var topLevelHandle = getEmbeddedSearchApiHandle();
 
diff --git a/chrome/browser/resources/local_ntp/local_ntp_design.js b/chrome/browser/resources/local_ntp/local_ntp_design.js
index ec8db73..7434209 100644
--- a/chrome/browser/resources/local_ntp/local_ntp_design.js
+++ b/chrome/browser/resources/local_ntp/local_ntp_design.js
@@ -19,13 +19,13 @@
  * fontSize: Font size to use for the <iframe>s, in px.
  * tileWidth: The width of each suggestion tile, in px.
  * tileMargin: Spacing between successive tiles, in px.
- * titleColor: The RRGGBB color of title text.
- * titleColorAgainstDark: The RRGGBB color of title text against a dark theme.
+ * titleColor: The RRGGBBAA color of title text.
+ * titleColorAgainstDark: The RRGGBBAA color of title text against a dark theme.
  * titleTextAlign: (Optional) The alignment of title text. If unspecified, the
  *   default value is 'center'.
  * titleTextFade: (Optional) The number of pixels beyond which title
  *   text begins to fade. This overrides the default ellipsis style.
- * thumbnailTextColor: The RRGGBB color that thumbnail <iframe> may use to
+ * thumbnailTextColor: The RRGGBBAA color that thumbnail <iframe> may use to
  *   display text message in place of missing thumbnail.
  * thumbnailFallback: (Optional) A value in THUMBNAIL_FALLBACK to specify the
  *   thumbnail fallback strategy. If unassigned, then the thumbnail.html
@@ -63,13 +63,13 @@
       name: opt_name,
       fontFamily: 'arial, sans-serif',
       fontSize: 12,
-      tileWidth: 146,
-      tileMargin: 12,
-      titleColor: '000000',
-      titleColorAgainstDark: 'd2d2d2',
+      tileWidth: 156,
+      tileMargin: 16,
+      titleColor: '323232ff',
+      titleColorAgainstDark: 'd2d2d2ff',
       titleTextAlign: 'inherit',
-      titleTextFade: 112 - 24,  // 112px wide title with 24 pixel fade at end.
-      thumbnailTextColor: '777777',
+      titleTextFade: 122 - 36,  // 112px wide title with 32 pixel fade at end.
+      thumbnailTextColor: '323232ff',  // Unused.
       thumbnailFallback: THUMBNAIL_FALLBACK.DOT,
       showFakeboxHint: true
     };
@@ -80,11 +80,11 @@
       fontSize: 11,
       tileWidth: 140,
       tileMargin: 20,
-      titleColor: '777777',
-      titleColorAgainstDark: '777777',
+      titleColor: '777777ff',
+      titleColorAgainstDark: '777777ff',
       titleTextAlign: 'center',
       titleTextFade: null,  // Default to ellipsis.
-      thumbnailTextColor: '777777',
+      thumbnailTextColor: '777777ff',
       thumbnailFallback: null,  // Default to false.
       showFakeboxHint: false
     };
diff --git a/chrome/browser/resources/local_ntp/most_visited_util.js b/chrome/browser/resources/local_ntp/most_visited_util.js
index 91aa804..4309179 100644
--- a/chrome/browser/resources/local_ntp/most_visited_util.js
+++ b/chrome/browser/resources/local_ntp/most_visited_util.js
@@ -162,6 +162,38 @@
 
 
 /**
+ * Returns the color to display string with, depending on whether title is
+ * displayed, the current theme, and URL parameters.
+ * @param {Object.<string, string>} params URL parameters specifying style.
+ * @param {boolean} isTitle if the style is for the Most Visited Title.
+ * @return {string} The color to use, in "rgba(#,#,#,#)" format.
+ */
+function getTextColor(params, isTitle) {
+  // 'RRGGBBAA' color format overrides everything.
+  if ('c' in params && params.c.match(/^[0-9A-Fa-f]{8}$/)) {
+    // Extract the 4 pairs of hex digits, map to number, then form rgba().
+    var t = params.c.match(/(..)(..)(..)(..)/).slice(1).map(function(s) {
+      return parseInt(s, 16);
+    });
+    return 'rgba(' + t[0] + ',' + t[1] + ',' + t[2] + ',' + t[3] / 255 + ')';
+  }
+
+  // For backward compatibility with server-side NTP, look at themes directly
+  // and use param.c for non-title or as fallback.
+  var apiHandle = chrome.embeddedSearch.newTabPage;
+  var themeInfo = apiHandle.themeBackgroundInfo;
+  var c = '#777';
+  if (isTitle && themeInfo && !themeInfo.usingDefaultTheme) {
+    // Read from theme directly
+    c = convertArrayToRGBAColor(themeInfo.textColorRgba) || c;
+  } else if ('c' in params) {
+    c = convertToHexColor(parseInt(params.c, 16)) || c;
+  }
+  return c;
+}
+
+
+/**
  * Decodes most visited styles from URL parameters.
  * - c: A hexadecimal number interpreted as a hex color code.
  * - f: font-family.
@@ -174,18 +206,10 @@
  */
 function getMostVisitedStyles(params, isTitle) {
   var styles = {
-    color: '#777',
+    color: getTextColor(params, isTitle),  // Handles 'c' in params.
     fontFamily: '',
     fontSize: 11
   };
-  var apiHandle = chrome.embeddedSearch.newTabPage;
-  var themeInfo = apiHandle.themeBackgroundInfo;
-  if (isTitle && themeInfo && !themeInfo.usingDefaultTheme) {
-    styles.color = convertArrayToRGBAColor(themeInfo.textColorRgba) ||
-        styles.color;
-  } else if ('c' in params) {
-    styles.color = convertToHexColor(parseInt(params.c, 16)) || styles.color;
-  }
   if ('f' in params && /^[-0-9a-zA-Z ,]+$/.test(params.f))
     styles.fontFamily = params.f;
   if ('fs' in params && isFinite(parseInt(params.fs, 10)))
diff --git a/chrome/browser/resources/options/browser_options.css b/chrome/browser/resources/options/browser_options.css
index bc945bf..960aa5f 100644
--- a/chrome/browser/resources/options/browser_options.css
+++ b/chrome/browser/resources/options/browser_options.css
@@ -452,10 +452,13 @@
   -webkit-margin-start: 0.6em;
 }
 
-div[guestmode=true] #appearance-section,
-div[guestmode=true] #startup-section,
-div[guestmode=true] #searchBox,
-div[guestmode=true] #reset-profile-settings-section {
+div[guestmode=true] :-webkit-any(
+<if expr="not chromeos">
+    #searchBox,
+</if>
+    #appearance-section,
+    #startup-section,
+    #reset-profile-settings-section) {
   display: none;
 }
 
diff --git a/chrome/browser/resources/options/browser_options.html b/chrome/browser/resources/options/browser_options.html
index 425c2f2..4e9c4ed 100644
--- a/chrome/browser/resources/options/browser_options.html
+++ b/chrome/browser/resources/options/browser_options.html
@@ -154,22 +154,6 @@
   <section>
     <h3 id="voice-section-title" i18n-content="sectionTitleVoice" hidden></h3>
     <div id="voice-section-content">
-      <div id="hotword-search" hidden>
-        <div class="checkbox">
-          <span class="controlled-setting-with-label">
-            <input id="hotword-search-enable" pref="hotword.search_enabled_2"
-                metric="Options_HotwordCheckbox" type="checkbox" dialog-pref>
-            <span>
-              <label for="hotword-search-enable"
-                  i18n-values=".innerHTML:hotwordSearchEnable">
-              </label>
-              <span id="hotword-search-setting-indicator"
-                  pref="hotword.search_enabled_2" dialog-pref>
-              </span>
-            </span>
-          </span>
-        </div>
-      </div>
       <div id="hotword-always-on-search" hidden>
         <div class="checkbox">
           <span class="controlled-setting-with-label">
@@ -453,6 +437,22 @@
         </span>
       </div>
 </if>
+      <div id="hotword-search" hidden>
+        <div class="checkbox">
+          <span class="controlled-setting-with-label">
+            <input id="hotword-search-enable" pref="hotword.search_enabled_2"
+                metric="Options_HotwordCheckbox" type="checkbox" dialog-pref>
+            <span>
+              <label for="hotword-search-enable"
+                  i18n-values=".innerHTML:hotwordSearchEnable">
+              </label>
+              <span id="hotword-search-setting-indicator"
+                  pref="hotword.search_enabled_2" dialog-pref>
+              </span>
+            </span>
+          </span>
+        </div>
+      </div>
     </div>
   </section>
 <if expr="chromeos">
@@ -961,7 +961,7 @@
     </div>
   </section>
 </if>
-  <section id="reset-profile-settings-section" hidden>
+  <section id="reset-profile-settings-section">
     <h3 i18n-content="resetProfileSettingsSectionTitle"></h3>
     <div>
       <span class="settings-row" i18n-content="resetProfileSettingsDescription">
diff --git a/chrome/browser/resources/options/browser_options.js b/chrome/browser/resources/options/browser_options.js
index 618c749..6a7618b 100644
--- a/chrome/browser/resources/options/browser_options.js
+++ b/chrome/browser/resources/options/browser_options.js
@@ -1101,7 +1101,6 @@
      * @private
      */
     showHotwordSection_: function(opt_enabled, opt_error) {
-      $('voice-section-title').hidden = false;
       $('hotword-search').hidden = false;
       $('hotword-search-setting-indicator').setError(opt_error);
       if (opt_enabled && opt_error)
@@ -1114,6 +1113,7 @@
      * @private
      */
     showHotwordAlwaysOnSection_: function() {
+      $('voice-section-title').hidden = false;
       $('hotword-always-on-search').hidden = false;
       $('audio-logging').hidden = false;
     },
diff --git a/chrome/browser/resources/options/chromeos/internet_detail.js b/chrome/browser/resources/options/chromeos/internet_detail.js
index 7447b52..0cdd12b 100644
--- a/chrome/browser/resources/options/chromeos/internet_detail.js
+++ b/chrome/browser/resources/options/chromeos/internet_detail.js
@@ -1268,7 +1268,7 @@
           'prl-version',
           getActiveDictionaryValue(data, 'Cellular', 'PRLVersion'));
 
-      var family = getActiveDictionaryValue(data, 'Cellular', 'GSM');
+      var family = getActiveDictionaryValue(data, 'Cellular', 'Family');
       detailsPage.gsm = family == 'GSM';
       if (detailsPage.gsm) {
         $('iccid').textContent =
diff --git a/chrome/browser/resources/options/cookies_list.js b/chrome/browser/resources/options/cookies_list.js
index 0d7d5f4..29159c4 100644
--- a/chrome/browser/resources/options/cookies_list.js
+++ b/chrome/browser/resources/options/cookies_list.js
@@ -173,12 +173,12 @@
         return;
       this.expanded_ = expanded;
       if (expanded) {
+        this.classList.add('show-items');
         var oldExpanded = this.list.expandedItem;
         this.list.expandedItem = this;
         this.updateItems_();
         if (oldExpanded)
           oldExpanded.expanded = false;
-        this.classList.add('show-items');
       } else {
         if (this.list.expandedItem == this) {
           this.list.expandedItem = null;
@@ -535,7 +535,6 @@
       div.className = 'cookie-item';
       // Help out screen readers and such: this is a clickable thing.
       div.setAttribute('role', 'button');
-      div.tabIndex = 0;
       div.textContent = text;
       var apps = this.data.appsProtectingThis;
       if (apps)
diff --git a/chrome/browser/resources/options/cookies_view.css b/chrome/browser/resources/options/cookies_view.css
index ab7a62c..2377e57 100644
--- a/chrome/browser/resources/options/cookies_view.css
+++ b/chrome/browser/resources/options/cookies_view.css
@@ -116,6 +116,7 @@
   -webkit-margin-start: 14em;
   -webkit-padding-start: 7px;
   -webkit-transition: 150ms ease-in-out;
+  display: none;
   height: 0;
   opacity: 0;
   /* Make the cookie items wrap correctly. */
@@ -129,6 +130,7 @@
 }
 
 .show-items .cookie-items {
+  display: block;
   opacity: 1;
 }
 
diff --git a/chrome/browser/resources/user_manager/user_manager.css b/chrome/browser/resources/user_manager/user_manager.css
index c78fb69..cc1dd2e 100644
--- a/chrome/browser/resources/user_manager/user_manager.css
+++ b/chrome/browser/resources/user_manager/user_manager.css
@@ -20,6 +20,13 @@
 .pod {
   box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
   height: 226px;
+  /* On non-retina desktop, the text is blurry if we use the scale3d()
+  inherited from user_pod_row.js */
+  transform: scale(0.9);
+}
+
+podrow[ncolumns='6'] .pod {
+  transform: scale(0.8);
 }
 
 .pod.faded {
@@ -28,11 +35,11 @@
 
 .pod.hovered:not(.focused) {
   box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
-  opacity: 0.9;
 }
 
 .pod.focused {
   box-shadow: 0 16px 21px rgba(0, 0, 0, 0.2);
+  transform: scale(1) !important;
 }
 
 .pod.focused.locked {
@@ -136,6 +143,9 @@
 .action-box-area {
   background-color: #f5f5f5;
   height: 24px;
+  /* Because of crbug.com/406529, the text in the .name div is janky if there's
+  an opacity transition in this div. */
+  transition: none;
   width: 24px;
 }
 
@@ -158,3 +168,14 @@
 .action-box-area.active .action-box-button {
   border-top: 6px solid #4c4c4c;
 }
+
+.action-box-remove-user-warning .remove-warning-button {
+  height: 30px;
+}
+
+.action-box-remove-user-warning .remove-warning-button:focus {
+  /* Override the default blue border inherited from
+  button.custom-appearance:focus. */
+  border: 1px solid transparent !important;
+  box-shadow: inset 0 0 0 1px #fff;
+}
diff --git a/chrome/browser/search/local_ntp_source.cc b/chrome/browser/search/local_ntp_source.cc
index 2029b51..faf6e5f 100644
--- a/chrome/browser/search/local_ntp_source.cc
+++ b/chrome/browser/search/local_ntp_source.cc
@@ -59,9 +59,11 @@
   { "images/close_2_hover.png", IDR_CLOSE_2_H, "image/png" },
   { "images/close_2_active.png", IDR_CLOSE_2_P, "image/png" },
   { "images/close_2_white.png", IDR_CLOSE_2_MASK, "image/png" },
+  { "images/close_3_mask.png", IDR_CLOSE_3_MASK, "image/png" },
   { "images/google_logo.png", IDR_LOCAL_NTP_IMAGES_LOGO_PNG, "image/png" },
   { "images/white_google_logo.png",
     IDR_LOCAL_NTP_IMAGES_WHITE_LOGO_PNG, "image/png" },
+  { "images/ntp_default_favicon.png", IDR_NTP_DEFAULT_FAVICON, "image/png" },
 };
 
 // Strips any query parameters from the specified path.
diff --git a/chrome/browser/search/suggestions/suggestions_source.cc b/chrome/browser/search/suggestions/suggestions_source.cc
index aceabcc..a79589a 100644
--- a/chrome/browser/search/suggestions/suggestions_source.cc
+++ b/chrome/browser/search/suggestions/suggestions_source.cc
@@ -21,6 +21,7 @@
 #include "chrome/browser/search/suggestions/suggestions_service_factory.h"
 #include "chrome/common/url_constants.h"
 #include "components/suggestions/suggestions_service.h"
+#include "components/suggestions/suggestions_utils.h"
 #include "net/base/escape.h"
 #include "ui/base/l10n/time_format.h"
 #include "ui/gfx/codec/png_codec.h"
@@ -126,7 +127,10 @@
     return;
   }
 
+  // Since it's a debugging page, it's fine to specify that sync state is
+  // initialized.
   suggestions_service->FetchSuggestionsData(
+      INITIALIZED_ENABLED_HISTORY,
       base::Bind(&SuggestionsSource::OnSuggestionsAvailable,
                  weak_ptr_factory_.GetWeakPtr(), callback));
 }
diff --git a/chrome/browser/signin/easy_unlock_screenlock_state_handler.cc b/chrome/browser/signin/easy_unlock_screenlock_state_handler.cc
index 13816fc..fa03b4a 100644
--- a/chrome/browser/signin/easy_unlock_screenlock_state_handler.cc
+++ b/chrome/browser/signin/easy_unlock_screenlock_state_handler.cc
@@ -28,6 +28,7 @@
     case EasyUnlockScreenlockStateHandler::STATE_PHONE_LOCKED:
     case EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_NEARBY:
     case EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE:
+    case EasyUnlockScreenlockStateHandler::STATE_PHONE_UNSUPPORTED:
       return "chrome://theme/IDR_EASY_UNLOCK_LOCKED";
     case EasyUnlockScreenlockStateHandler::STATE_BLUETOOTH_CONNECTING:
       return "chrome://theme/IDR_EASY_UNLOCK_SPINNER";
@@ -42,13 +43,18 @@
   return state == EasyUnlockScreenlockStateHandler::STATE_NO_BLUETOOTH ||
          state == EasyUnlockScreenlockStateHandler::STATE_NO_PHONE ||
          state == EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_NEARBY ||
-         state == EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE;
+         state == EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE ||
+         state == EasyUnlockScreenlockStateHandler::STATE_PHONE_UNSUPPORTED;
 }
 
 bool HasAnimation(EasyUnlockScreenlockStateHandler::State state) {
   return state == EasyUnlockScreenlockStateHandler::STATE_BLUETOOTH_CONNECTING;
 }
 
+bool HardlockOnClick(EasyUnlockScreenlockStateHandler::State state) {
+  return state == EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED;
+}
+
 size_t GetTooltipResourceId(EasyUnlockScreenlockStateHandler::State state) {
   switch (state) {
     case EasyUnlockScreenlockStateHandler::STATE_NO_BLUETOOTH:
@@ -64,14 +70,21 @@
     case EasyUnlockScreenlockStateHandler::STATE_PHONE_NOT_NEARBY:
       return IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_PHONE_NOT_NEARBY;
     case EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED:
-      // TODO(tbarzic): When hard lock is enabled change this to
-      // IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_HARDLOCK_INSTRUCTIONS.
-      return 0;
+      return IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_HARDLOCK_INSTRUCTIONS;
+    case EasyUnlockScreenlockStateHandler::STATE_PHONE_UNSUPPORTED:
+      return IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_UNSUPPORTED_ANDROID_VERSION;
     default:
       return 0;
   }
 }
 
+bool TooltipContainsDeviceType(EasyUnlockScreenlockStateHandler::State state) {
+  return state == EasyUnlockScreenlockStateHandler::STATE_AUTHENTICATED ||
+         state == EasyUnlockScreenlockStateHandler::STATE_PHONE_UNLOCKABLE ||
+         state == EasyUnlockScreenlockStateHandler::STATE_NO_BLUETOOTH ||
+         state == EasyUnlockScreenlockStateHandler::STATE_PHONE_UNSUPPORTED;
+}
+
 }  // namespace
 
 
@@ -99,10 +112,13 @@
 
   state_ = new_state;
 
-  // If lock screen is not active, just cache the current state.
-  // The screenlock state will get refreshed in |ScreenDidLock|.
-  if (!screenlock_bridge_->IsLocked())
+  // If lock screen is not active or it forces offline password, just cache the
+  // current state. The screenlock state will get refreshed in |ScreenDidLock|.
+  if (!screenlock_bridge_->IsLocked() ||
+      screenlock_bridge_->lock_handler()->GetAuthType(user_email_) ==
+          ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD) {
     return;
+  }
 
   UpdateScreenlockAuthType();
 
@@ -115,7 +131,9 @@
   }
   icon_options.SetIconAsResourceURL(icon_url);
 
-  UpdateTooltipOptions(&icon_options);
+  bool trial_run = IsTrialRun();
+
+  UpdateTooltipOptions(trial_run, &icon_options);
 
   if (UseOpaqueIcon(state_))
     icon_options.SetOpacity(kOpaqueIconOpacity);
@@ -125,6 +143,13 @@
   if (HasAnimation(state_))
     icon_options.SetAnimation(kSpinnerResourceWidth, kSpinnerIntervalMs);
 
+  // Hardlocking is disabled in trial run.
+  if (!trial_run && HardlockOnClick(state_))
+    icon_options.SetHardlockOnClick();
+
+  if (trial_run && state_ == STATE_AUTHENTICATED)
+    MarkTrialRunComplete();
+
   screenlock_bridge_->lock_handler()->ShowUserPodCustomIcon(user_email_,
                                                             icon_options);
 }
@@ -140,16 +165,15 @@
 }
 
 void EasyUnlockScreenlockStateHandler::UpdateTooltipOptions(
+    bool trial_run,
     ScreenlockBridge::UserPodCustomIconOptions* icon_options) {
-  bool show_tutorial = ShouldShowTutorial();
-
   size_t resource_id = 0;
   base::string16 device_name;
-  if (show_tutorial) {
+  if (trial_run && state_ == STATE_AUTHENTICATED) {
     resource_id = IDS_EASY_UNLOCK_SCREENLOCK_TOOLTIP_TUTORIAL;
   } else {
     resource_id = GetTooltipResourceId(state_);
-    if (state_ == STATE_AUTHENTICATED || state_ == STATE_PHONE_UNLOCKABLE)
+    if (TooltipContainsDeviceType(state_))
       device_name = GetDeviceName();
   }
 
@@ -166,20 +190,17 @@
   if (tooltip.empty())
     return;
 
-  if (show_tutorial)
-    MarkTutorialShown();
-
-  icon_options->SetTooltip(tooltip, show_tutorial /* autoshow tooltip */);
+  icon_options->SetTooltip(
+      tooltip,
+      state_ == STATE_AUTHENTICATED && trial_run /* autoshow tooltip */);
 }
 
-bool EasyUnlockScreenlockStateHandler::ShouldShowTutorial() {
-  if (state_ != STATE_AUTHENTICATED)
-    return false;
+bool EasyUnlockScreenlockStateHandler::IsTrialRun() {
   return pref_service_ &&
          pref_service_->GetBoolean(prefs::kEasyUnlockShowTutorial);
 }
 
-void EasyUnlockScreenlockStateHandler::MarkTutorialShown() {
+void EasyUnlockScreenlockStateHandler::MarkTrialRunComplete() {
   if (!pref_service_)
     return;
   pref_service_->SetBoolean(prefs::kEasyUnlockShowTutorial, false);
@@ -195,6 +216,10 @@
 }
 
 void EasyUnlockScreenlockStateHandler::UpdateScreenlockAuthType() {
+  if (screenlock_bridge_->lock_handler()->GetAuthType(user_email_) ==
+          ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD)
+    return;
+
   if (state_ == STATE_AUTHENTICATED) {
     screenlock_bridge_->lock_handler()->SetAuthType(
         user_email_,
diff --git a/chrome/browser/signin/easy_unlock_screenlock_state_handler.h b/chrome/browser/signin/easy_unlock_screenlock_state_handler.h
index dc5c2cc..452687b 100644
--- a/chrome/browser/signin/easy_unlock_screenlock_state_handler.h
+++ b/chrome/browser/signin/easy_unlock_screenlock_state_handler.h
@@ -38,6 +38,9 @@
     // A phone eligible to unlock the device is found, but it's not close enough
     // to be allowed to unlock the device.
     STATE_PHONE_NOT_NEARBY,
+    // An Easy Unlock enabled phone is found, but it is not allowed to unlock
+    // the device because it does not support reporting it's lock screen state.
+    STATE_PHONE_UNSUPPORTED,
     // The device can be unlocked using Easy Unlock.
     STATE_AUTHENTICATED
   };
@@ -61,17 +64,20 @@
   virtual void OnScreenDidLock() OVERRIDE;
   virtual void OnScreenDidUnlock() OVERRIDE;
 
+  // Updates icon's tooltip options.
+  // |trial_run|: Whether the trial Easy Unlock run is in progress.
   void UpdateTooltipOptions(
+      bool trial_run,
       ScreenlockBridge::UserPodCustomIconOptions* icon_options);
 
-  // Whether the tutorial message should be shown to the user. The message is
-  // shown only once, when the user encounters STATE_AUTHENTICATED for the first
-  // time (across sessions). After the tutorial message is shown,
-  // |MarkTutorialShown| should be called to prevent further tutorial message.
-  bool ShouldShowTutorial();
+  // Whether this is the first, trial Easy Unlock run. If this is the case, a
+  // tutorial message should be shown and hard-locking be disabled in
+  // Authenticated state. The trial run will be active if Easy Unlock never
+  // entered Authenticated state (across sessions).
+  bool IsTrialRun();
 
-  // Sets user preference that prevents showing of tutorial messages.
-  void MarkTutorialShown();
+  // Sets user preference that marks trial run completed.
+  void MarkTrialRunComplete();
 
   // Gets the name to be used for the device. The name depends on the device
   // type (example values: Chromebook and Chromebox).
diff --git a/chrome/browser/signin/easy_unlock_service.cc b/chrome/browser/signin/easy_unlock_service.cc
index afbb94f..b9240aa 100644
--- a/chrome/browser/signin/easy_unlock_service.cc
+++ b/chrome/browser/signin/easy_unlock_service.cc
@@ -131,7 +131,7 @@
       user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
   registry->RegisterBooleanPref(
       prefs::kEasyUnlockShowTutorial,
-      false,
+      true,
       user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
   registry->RegisterDictionaryPref(
       prefs::kEasyUnlockPairing,
@@ -290,7 +290,15 @@
       base::Bind(&EasyUnlockService::OnPrefsChanged, base::Unretained(this)));
   OnPrefsChanged();
 
+#if defined(OS_CHROMEOS)
+  // Only start Bluetooth detection for ChromeOS since the feature is
+  // only offered on ChromeOS. Enabling this on non-ChromeOS platforms
+  // previously introduced a performance regression: http://crbug.com/404482
+  // Make sure not to reintroduce a performance regression if re-enabling on
+  // additional platforms.
+  // TODO(xiyuan): Revisit when non-chromeos platforms are supported.
   bluetooth_detector_->Initialize();
+#endif  // defined(OS_CHROMEOS)
 }
 
 void EasyUnlockService::LoadApp() {
@@ -361,6 +369,9 @@
   ClearRemoteDevices();
   SetTurnOffFlowStatus(IDLE);
 
+  // Make sure lock screen state set by the extension gets reset.
+  screenlock_state_handler_.reset();
+
   if (GetComponentLoader(profile_)->Exists(extension_misc::kEasyUnlockAppId)) {
     extensions::ExtensionSystem* extension_system =
         extensions::ExtensionSystem::Get(profile_);
diff --git a/chrome/browser/signin/screenlock_bridge.cc b/chrome/browser/signin/screenlock_bridge.cc
index 56c2910..4a95429 100644
--- a/chrome/browser/signin/screenlock_bridge.cc
+++ b/chrome/browser/signin/screenlock_bridge.cc
@@ -37,7 +37,8 @@
       animation_resource_width_(0u),
       animation_frame_length_ms_(0u),
       opacity_(100u),
-      autoshow_tooltip_(false) {
+      autoshow_tooltip_(false),
+      hardlock_on_click_(false) {
 }
 
 ScreenlockBridge::UserPodCustomIconOptions::~UserPodCustomIconOptions() {}
@@ -86,6 +87,10 @@
                           animation_frame_length_ms_);
     result->Set("animation", animation);
   }
+
+  if (hardlock_on_click_)
+    result->SetBoolean("hardlockOnClick", true);
+
   return result.Pass();
 }
 
@@ -130,6 +135,10 @@
   autoshow_tooltip_ = autoshow;
 }
 
+void ScreenlockBridge::UserPodCustomIconOptions::SetHardlockOnClick() {
+  hardlock_on_click_ = true;
+}
+
 // static
 std::string ScreenlockBridge::GetAuthenticatedUserEmail(Profile* profile) {
   // |profile| has to be a signed-in profile with SigninManager already
diff --git a/chrome/browser/signin/screenlock_bridge.h b/chrome/browser/signin/screenlock_bridge.h
index 72cec43..5391ca3 100644
--- a/chrome/browser/signin/screenlock_bridge.h
+++ b/chrome/browser/signin/screenlock_bridge.h
@@ -78,6 +78,10 @@
     // shown with the icon.
     void SetTooltip(const base::string16& tooltip, bool autoshow);
 
+    // If hardlock on click is set, clicking the icon in the screenlock will
+    // go to state where password is required for unlock.
+    void SetHardlockOnClick();
+
    private:
     std::string icon_resource_url_;
     scoped_ptr<gfx::Image> icon_image_;
@@ -95,6 +99,8 @@
     base::string16 tooltip_;
     bool autoshow_tooltip_;
 
+    bool hardlock_on_click_;
+
     DISALLOW_COPY_AND_ASSIGN(UserPodCustomIconOptions);
   };
 
@@ -108,6 +114,7 @@
       NUMERIC_PIN = 2,
       USER_CLICK = 3,
       EXPAND_THEN_USER_CLICK = 4,
+      FORCE_OFFLINE_PASSWORD = 5
     };
 
     // Displays |message| in a banner on the lock screen.
diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc
index 955a4b6..0769185 100644
--- a/chrome/browser/sync/profile_sync_service.cc
+++ b/chrome/browser/sync/profile_sync_service.cc
@@ -761,6 +761,8 @@
   last_get_token_error_ = error;
   switch (error.state()) {
     case GoogleServiceAuthError::CONNECTION_FAILED:
+    case GoogleServiceAuthError::REQUEST_CANCELED:
+    case GoogleServiceAuthError::SERVICE_ERROR:
     case GoogleServiceAuthError::SERVICE_UNAVAILABLE: {
       // Transient error. Retry after some time.
       request_access_token_backoff_.InformOfRequest(false);
@@ -774,7 +776,6 @@
       NotifyObservers();
       break;
     }
-    case GoogleServiceAuthError::SERVICE_ERROR:
     case GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS: {
       if (!sync_prefs_.SyncHasAuthError()) {
         sync_prefs_.SetSyncAuthError(true);
@@ -785,6 +786,9 @@
       // Fallthrough.
     }
     default: {
+      if (error.state() != GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS) {
+        LOG(ERROR) << "Unexpected persistent error: " << error.ToString();
+      }
       // Show error to user.
       UpdateAuthErrorState(error);
     }
diff --git a/chrome/browser/sync/test/integration/sync_auth_test.cc b/chrome/browser/sync/test/integration/sync_auth_test.cc
index c4bf4e7..71b8c4f 100644
--- a/chrome/browser/sync/test/integration/sync_auth_test.cc
+++ b/chrome/browser/sync/test/integration/sync_auth_test.cc
@@ -206,10 +206,10 @@
             GetSyncService((0))->GetAuthError().state());
 }
 
-// Verify that ProfileSyncService ends up with an SERVICE_ERROR auth error when
+// Verify that ProfileSyncService retries after SERVICE_ERROR auth error when
 // an invalid_client error is returned by OAuth2TokenService with an
 // HTTP_BAD_REQUEST (400) response code.
-IN_PROC_BROWSER_TEST_F(SyncAuthTest, InvalidClient) {
+IN_PROC_BROWSER_TEST_F(SyncAuthTest, RetryInvalidClient) {
   ASSERT_TRUE(SetupSync());
   ASSERT_FALSE(AttemptToTriggerAuthError());
   GetFakeServer()->SetUnauthenticated();
@@ -218,13 +218,12 @@
                          net::HTTP_BAD_REQUEST,
                          net::URLRequestStatus::SUCCESS);
   ASSERT_TRUE(AttemptToTriggerAuthError());
-  ASSERT_EQ(GoogleServiceAuthError::SERVICE_ERROR,
-            GetSyncService((0))->GetAuthError().state());
+  ASSERT_TRUE(GetSyncService((0))->IsRetryingAccessTokenFetchForTest());
 }
 
-// Verify that ProfileSyncService ends up with a REQUEST_CANCELED auth error
-// when when OAuth2TokenService has encountered a URLRequestStatus of CANCELED.
-IN_PROC_BROWSER_TEST_F(SyncAuthTest, RequestCanceled) {
+// Verify that ProfileSyncService retries after REQUEST_CANCELED auth error
+// when OAuth2TokenService has encountered a URLRequestStatus of CANCELED.
+IN_PROC_BROWSER_TEST_F(SyncAuthTest, RetryRequestCanceled) {
   ASSERT_TRUE(SetupSync());
   ASSERT_FALSE(AttemptToTriggerAuthError());
   GetFakeServer()->SetUnauthenticated();
@@ -233,8 +232,7 @@
                          net::HTTP_INTERNAL_SERVER_ERROR,
                          net::URLRequestStatus::CANCELED);
   ASSERT_TRUE(AttemptToTriggerAuthError());
-  ASSERT_EQ(GoogleServiceAuthError::REQUEST_CANCELED,
-            GetSyncService((0))->GetAuthError().state());
+  ASSERT_TRUE(GetSyncService((0))->IsRetryingAccessTokenFetchForTest());
 }
 
 // Verify that ProfileSyncService fails initial sync setup during backend
diff --git a/chrome/browser/thumbnails/thumbnail_list_source.cc b/chrome/browser/thumbnails/thumbnail_list_source.cc
index ad47041..bd447c2 100644
--- a/chrome/browser/thumbnails/thumbnail_list_source.cc
+++ b/chrome/browser/thumbnails/thumbnail_list_source.cc
@@ -94,6 +94,11 @@
     int render_process_id,
     int render_frame_id,
     const content::URLDataSource::GotDataCallback& callback) {
+  if (!profile_->GetTopSites()) {
+    callback.Run(NULL);
+    return;
+  }
+
   profile_->GetTopSites()->GetMostVisitedURLs(
       base::Bind(&ThumbnailListSource::OnMostVisitedURLsAvailable,
                  weak_ptr_factory_.GetWeakPtr(),
diff --git a/chrome/browser/ui/autofill/password_generation_popup_controller.h b/chrome/browser/ui/autofill/password_generation_popup_controller.h
index cd912ec..bcd0c9a 100644
--- a/chrome/browser/ui/autofill/password_generation_popup_controller.h
+++ b/chrome/browser/ui/autofill/password_generation_popup_controller.h
@@ -22,6 +22,9 @@
   // Spacing between the border of the popup and any text.
   static const int kHorizontalPadding = 10;
 
+  // Desired height of the password section.
+  static const int kPopupPasswordSectionHeight = 62;
+
   // Called by the view when the saved passwords link is clicked.
   virtual void OnSavedPasswordsLinkClicked() = 0;
 
diff --git a/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_bridge.mm b/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_bridge.mm
index 6c22cb8..9f4cd9a 100644
--- a/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_bridge.mm
+++ b/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_bridge.mm
@@ -9,8 +9,7 @@
 #include "base/logging.h"
 #include "chrome/browser/ui/autofill/autofill_popup_controller.h"
 #import "chrome/browser/ui/cocoa/autofill/password_generation_popup_view_cocoa.h"
-#include "ui/base/cocoa/window_size_constants.h"
-#include "ui/gfx/rect.h"
+#include "ui/gfx/size.h"
 
 namespace autofill {
 
@@ -36,8 +35,7 @@
 }
 
 gfx::Size PasswordGenerationPopupViewBridge::GetPreferredSizeOfPasswordView() {
-  // TODO(gcasto): Implement this function.
-  return gfx::Size();
+  return gfx::Size(NSSizeToCGSize([view_ preferredSize]));
 }
 
 void PasswordGenerationPopupViewBridge::UpdateBoundsAndRedrawPopup() {
@@ -50,8 +48,7 @@
 
 bool PasswordGenerationPopupViewBridge::IsPointInPasswordBounds(
     const gfx::Point& point) {
-  // TODO(gcasto): Implement this function.
-  return true;
+  return [view_ isPointInPasswordBounds:NSPointFromCGPoint(point.ToCGPoint())];
 }
 
 PasswordGenerationPopupView* PasswordGenerationPopupView::Create(
diff --git a/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_cocoa.h b/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_cocoa.h
index e475161..35dd04f 100644
--- a/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_cocoa.h
+++ b/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_cocoa.h
@@ -7,6 +7,7 @@
 
 #import <Cocoa/Cocoa.h>
 
+#include "base/mac/scoped_nsobject.h"
 #include "chrome/browser/ui/autofill/password_generation_popup_controller.h"
 #import "chrome/browser/ui/cocoa/autofill/autofill_popup_base_view_cocoa.h"
 
@@ -23,9 +24,12 @@
   // The cross-platform controller for this view.
   __weak autofill::PasswordGenerationPopupController* controller_;
 
-  __weak NSTextField* passwordField_;
-  __weak NSTextField* passwordSubtextField_;
-  __weak HyperlinkTextView* helpTextView_;
+  base::scoped_nsobject<NSView> passwordSection_;
+  base::scoped_nsobject<NSTextField> passwordField_;
+  base::scoped_nsobject<NSTextField> passwordTitleField_;
+  base::scoped_nsobject<NSImageView> keyIcon_;
+  base::scoped_nsobject<NSBox> divider_;
+  base::scoped_nsobject<HyperlinkTextView> helpTextView_;
 }
 
 // Designated initializer.
@@ -33,10 +37,17 @@
     (autofill::PasswordGenerationPopupController*)controller
                    frame:(NSRect)frame;
 
+// Determines whether |point| falls inside the password section of the popup.
+// |point| needs to be in the popup's coordinate system.
+- (BOOL)isPointInPasswordBounds:(NSPoint)point;
+
 // Informs the view that its controller has been (or will imminently be)
 // destroyed.
 - (void)controllerDestroyed;
 
+// The preferred size for the popup.
+- (NSSize)preferredSize;
+
 @end
 
 #endif  // CHROME_BROWSER_UI_COCOA_AUTOFILL_PASSWORD_GENERATION_POPUP_VIEW_COCOA_H_
diff --git a/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_cocoa.mm b/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_cocoa.mm
index a8a85fd..a3db139 100644
--- a/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_cocoa.mm
+++ b/chrome/browser/ui/cocoa/autofill/password_generation_popup_view_cocoa.mm
@@ -4,6 +4,8 @@
 
 #import "chrome/browser/ui/cocoa/autofill/password_generation_popup_view_cocoa.h"
 
+#include <cmath>
+
 #include "base/logging.h"
 #include "base/strings/sys_string_conversions.h"
 #include "chrome/browser/ui/autofill/autofill_popup_controller.h"
@@ -14,6 +16,7 @@
 #import "chrome/browser/ui/cocoa/hyperlink_text_view.h"
 #import "chrome/browser/ui/cocoa/l10n_util.h"
 #include "components/autofill/core/browser/popup_item_ids.h"
+#include "grit/theme_resources.h"
 #include "skia/ext/skia_utils_mac.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/gfx/font_list.h"
@@ -24,11 +27,19 @@
 #include "ui/gfx/text_constants.h"
 
 using autofill::AutofillPopupView;
+using autofill::PasswordGenerationPopupController;
 using autofill::PasswordGenerationPopupView;
 using base::scoped_nsobject;
 
 namespace {
 
+// The height of the divider between the password and help sections, in pixels.
+const CGFloat kDividerHeight = 1;
+
+// The amount of whitespace, in pixels, between lines of text in the password
+// section.
+const CGFloat kPasswordSectionVerticalSeparation = 5;
+
 NSColor* DividerColor() {
   return gfx::SkColorToCalibratedNSColor(
       PasswordGenerationPopupView::kDividerColor);
@@ -65,30 +76,52 @@
   if (self = [super initWithDelegate:controller frame:frame]) {
     controller_ = controller;
 
-    passwordField_ = [self textFieldWithText:controller_->password()
-                                       color:[self nameColor]
-                                   alignment:NSLeftTextAlignment];
-    [self addSubview:passwordField_];
+    passwordSection_.reset([[NSView alloc] initWithFrame:NSZeroRect]);
+    [self addSubview:passwordSection_];
 
-    passwordSubtextField_ = [self textFieldWithText:controller_->SuggestedText()
-                                              color:[self subtextColor]
-                                          alignment:NSRightTextAlignment];
-    [self addSubview:passwordSubtextField_];
+    passwordField_.reset(
+        [[self textFieldWithText:controller_->password()
+                      attributes:[self passwordAttributes]] retain]);
+    [passwordSection_ addSubview:passwordField_];
 
-    scoped_nsobject<HyperlinkTextView> helpTextView(
-        [[HyperlinkTextView alloc] initWithFrame:NSZeroRect]);
-    [helpTextView setMessage:base::SysUTF16ToNSString(controller_->HelpText())
-                    withFont:[self textFont]
-                messageColor:HelpTextColor()];
-    [helpTextView addLinkRange:controller_->HelpTextLinkRange().ToNSRange()
-                      withName:@""
-                     linkColor:HelpLinkColor()];
-    [helpTextView setDelegate:self];
-    [[helpTextView textContainer] setLineFragmentPadding:0.0f];
-    [helpTextView setVerticallyResizable:YES];
-    [self addSubview:helpTextView];
-    helpTextView_ = helpTextView.get();
-  }
+    passwordTitleField_.reset(
+        [[self textFieldWithText:controller_->SuggestedText()
+                      attributes:[self passwordTitleAttributes]] retain]);
+    [passwordSection_ addSubview:passwordTitleField_];
+
+    keyIcon_.reset([[NSImageView alloc] initWithFrame:NSZeroRect]);
+    NSImage* keyImage = ResourceBundle::GetSharedInstance()
+        .GetImageNamed(IDR_GENERATE_PASSWORD_KEY)
+        .ToNSImage();
+    [keyIcon_ setImage:keyImage];
+    [passwordSection_ addSubview:keyIcon_];
+
+    divider_.reset([[NSBox alloc] initWithFrame:NSZeroRect]);
+    [divider_ setBoxType:NSBoxCustom];
+    [divider_ setBorderType:NSLineBorder];
+    [divider_ setBorderColor:DividerColor()];
+    [self addSubview:divider_];
+
+    helpTextView_.reset([[HyperlinkTextView alloc] initWithFrame:NSZeroRect]);
+    [helpTextView_ setMessage:base::SysUTF16ToNSString(controller_->HelpText())
+                     withFont:[self textFont]
+                 messageColor:HelpTextColor()];
+    [helpTextView_ addLinkRange:controller_->HelpTextLinkRange().ToNSRange()
+                       withName:@""
+                      linkColor:HelpLinkColor()];
+    [helpTextView_ setDelegate:self];
+    [helpTextView_ setDrawsBackground:YES];
+    [helpTextView_ setBackgroundColor:HelpTextBackgroundColor()];
+    [helpTextView_
+        setTextContainerInset:NSMakeSize(controller_->kHorizontalPadding,
+                                         controller_->kHelpVerticalPadding)];
+    // Remove the underlining.
+    NSTextStorage* text = [helpTextView_ textStorage];
+    [text addAttribute:NSUnderlineStyleAttributeName
+                 value:@(NSUnderlineStyleNone)
+                 range:controller_->HelpTextLinkRange().ToNSRange()];
+    [self addSubview:helpTextView_];
+}
 
   return self;
 }
@@ -96,6 +129,8 @@
 #pragma mark NSView implementation:
 
 - (void)drawRect:(NSRect)dirtyRect {
+  [super drawRect:dirtyRect];
+
   // If the view is in the process of being destroyed, don't bother drawing.
   if (!controller_)
     return;
@@ -104,30 +139,119 @@
 
   if (controller_->password_selected()) {
     // Draw a highlight under the suggested password.
-    NSRect highlightBounds = [self passwordBounds];
+    NSRect highlightBounds = [passwordSection_ frame];
     [[self highlightColor] set];
     [NSBezierPath fillRect:highlightBounds];
   }
-
-  // Render the background of the help text.
-  [HelpTextBackgroundColor() set];
-  [NSBezierPath fillRect:[self helpBounds]];
-
-  // Render the divider.
-  [DividerColor() set];
-  [NSBezierPath fillRect:[self dividerBounds]];
 }
 
 #pragma mark Public API:
 
+- (NSSize)preferredSize {
+  const NSSize passwordTitleSize =
+      [base::SysUTF16ToNSString(controller_->SuggestedText())
+          sizeWithAttributes:@{ NSFontAttributeName : [self boldFont] }];
+  const NSSize passwordSize = [base::SysUTF16ToNSString(controller_->password())
+      sizeWithAttributes:@{ NSFontAttributeName : [self textFont] }];
+
+  CGFloat width =
+      autofill::kPopupBorderThickness +
+      controller_->kHorizontalPadding +
+      [[keyIcon_ image] size].width +
+      controller_->kHorizontalPadding +
+      std::max(passwordSize.width, passwordTitleSize.width) +
+      controller_->kHorizontalPadding +
+      autofill::kPopupBorderThickness;
+
+  width = std::max(width, (CGFloat)controller_->GetMinimumWidth());
+
+  CGFloat height =
+      autofill::kPopupBorderThickness +
+      controller_->kHelpVerticalPadding +
+      [self helpSizeForPopupWidth:width].height +
+      controller_->kHelpVerticalPadding +
+      autofill::kPopupBorderThickness;
+
+  if (controller_->display_password())
+    height += controller_->kPopupPasswordSectionHeight;
+
+  return NSMakeSize(width, height);
+}
+
 - (void)updateBoundsAndRedrawPopup {
-  [self positionView:passwordField_ inRect:[self passwordBounds]];
-  [self positionView:passwordSubtextField_ inRect:[self passwordBounds]];
-  [self positionView:helpTextView_ inRect:[self helpBounds]];
+  const CGFloat popupWidth = controller_->popup_bounds().width();
+  const CGFloat contentWidth =
+      popupWidth - (2 * autofill::kPopupBorderThickness);
+  const CGFloat contentHeight = controller_->popup_bounds().height() -
+                                (2 * autofill::kPopupBorderThickness);
+
+  if (controller_->display_password()) {
+    // The password can change while the bubble is shown: If the user has
+    // accepted the password and then selects the form again and starts deleting
+    // the password, the field will be initially invisible and then become
+    // visible.
+    [self updatePassword];
+
+    // Lay out the password section, which includes the key icon, the title, and
+    // the suggested password.
+    [passwordSection_
+        setFrame:NSMakeRect(autofill::kPopupBorderThickness,
+                            autofill::kPopupBorderThickness,
+                            contentWidth,
+                            controller_->kPopupPasswordSectionHeight)];
+
+    // The key icon falls to the left of the title and password.
+    const NSSize imageSize = [[keyIcon_ image] size];
+    const CGFloat keyX = controller_->kHorizontalPadding;
+    const CGFloat keyY =
+        std::ceil((controller_->kPopupPasswordSectionHeight / 2.0) -
+                  (imageSize.height / 2.0));
+    [keyIcon_ setFrame:{ NSMakePoint(keyX, keyY), imageSize }];
+
+    // The title and password fall to the right of the key icon and are centered
+    // vertically as a group with some padding in between.
+    [passwordTitleField_ sizeToFit];
+    [passwordField_ sizeToFit];
+    const CGFloat groupHeight = NSHeight([passwordField_ frame]) +
+                                kPasswordSectionVerticalSeparation +
+                                NSHeight([passwordTitleField_ frame]);
+    const CGFloat groupX =
+        NSMaxX([keyIcon_ frame]) + controller_->kHorizontalPadding;
+    const CGFloat groupY =
+        std::ceil((controller_->kPopupPasswordSectionHeight / 2.0) -
+                  (groupHeight / 2.0));
+    [passwordField_ setFrameOrigin:NSMakePoint(groupX, groupY)];
+    const CGFloat titleY = groupY +
+                           NSHeight([passwordField_ frame]) +
+                           kPasswordSectionVerticalSeparation;
+    [passwordTitleField_ setFrameOrigin:NSMakePoint(groupX, titleY)];
+
+    // Layout the divider, which falls immediately below the password section.
+    const CGFloat dividerX = autofill::kPopupBorderThickness;
+    const CGFloat dividerY = NSMaxY([passwordSection_ frame]);
+    NSRect dividerFrame =
+        NSMakeRect(dividerX, dividerY, contentWidth, kDividerHeight);
+    [divider_ setFrame:dividerFrame];
+  }
+
+  // Layout the help section beneath the divider (if applicable, otherwise
+  // beneath the border).
+  const CGFloat helpX = autofill::kPopupBorderThickness;
+  const CGFloat helpY = controller_->display_password()
+      ? NSMaxY([divider_ frame])
+      : autofill::kPopupBorderThickness;
+  const CGFloat helpHeight = contentHeight -
+                             NSHeight([passwordSection_ frame]) -
+                             NSHeight([divider_ frame]);
+  [helpTextView_ setFrame:NSMakeRect(helpX, helpY, contentWidth, helpHeight)];
 
   [super updateBoundsAndRedrawPopup];
 }
 
+- (BOOL)isPointInPasswordBounds:(NSPoint)point {
+  return NSPointInRect(point, [passwordSection_ frame]);
+}
+
 - (void)controllerDestroyed {
   controller_ = NULL;
   [super delegateDestroyed];
@@ -144,27 +268,45 @@
 
 #pragma mark Private helpers:
 
-- (NSTextField*)textFieldWithText:(const base::string16&)text
-                            color:(NSColor*)color
-                        alignment:(NSTextAlignment)alignment {
+- (void)updatePassword {
+  base::scoped_nsobject<NSMutableAttributedString> updatedPassword(
+      [[NSMutableAttributedString alloc]
+          initWithString:base::SysUTF16ToNSString(controller_->password())
+              attributes:[self passwordAttributes]]);
+  [passwordField_ setAttributedStringValue:updatedPassword];
+}
+
+- (NSDictionary*)passwordTitleAttributes {
   scoped_nsobject<NSMutableParagraphStyle> paragraphStyle(
       [[NSMutableParagraphStyle alloc] init]);
-  [paragraphStyle setAlignment:alignment];
-
-  NSDictionary* textAttributes = @{
-    NSFontAttributeName : [self textFont],
-    NSForegroundColorAttributeName : color,
-    NSParagraphStyleAttributeName : paragraphStyle
+  [paragraphStyle setAlignment:NSLeftTextAlignment];
+  return @{
+    NSFontAttributeName : [self boldFont],
+    NSForegroundColorAttributeName : [self nameColor],
+    NSParagraphStyleAttributeName : paragraphStyle.autorelease()
   };
+}
 
+- (NSDictionary*)passwordAttributes {
+  scoped_nsobject<NSMutableParagraphStyle> paragraphStyle(
+      [[NSMutableParagraphStyle alloc] init]);
+  [paragraphStyle setAlignment:NSLeftTextAlignment];
+  return @{
+    NSFontAttributeName : [self textFont],
+    NSForegroundColorAttributeName : [self nameColor],
+    NSParagraphStyleAttributeName : paragraphStyle.autorelease()
+  };
+}
+
+- (NSTextField*)textFieldWithText:(const base::string16&)text
+                       attributes:(NSDictionary*)attributes {
+  NSTextField* textField =
+      [[[NSTextField alloc] initWithFrame:NSZeroRect] autorelease];
   scoped_nsobject<NSAttributedString> attributedString(
       [[NSAttributedString alloc]
           initWithString:base::SysUTF16ToNSString(text)
-              attributes:textAttributes]);
-
-  NSTextField* textField =
-      [[[NSTextField alloc] initWithFrame:NSZeroRect] autorelease];
-  [textField setAttributedStringValue:attributedString];
+              attributes:attributes]);
+  [textField setAttributedStringValue:attributedString.autorelease()];
   [textField setEditable:NO];
   [textField setSelectable:NO];
   [textField setDrawsBackground:NO];
@@ -172,31 +314,25 @@
   return textField;
 }
 
-- (void)positionView:(NSView*)view inRect:(NSRect)bounds {
-  NSRect frame = NSInsetRect(bounds, controller_->kHorizontalPadding, 0);
-  [view setFrame:frame];
-
-  // Center the text vertically within the bounds.
-  NSSize delta = cocoa_l10n_util::WrapOrSizeToFit(view);
-  [view setFrameOrigin:
-      NSInsetRect(frame, 0, floor(-delta.height/2)).origin];
+- (NSSize)helpSizeForPopupWidth:(CGFloat)width {
+  const CGFloat helpWidth = width -
+                            2 * controller_->kHorizontalPadding -
+                            2 * autofill::kPopupBorderThickness;
+  const NSSize size = NSMakeSize(helpWidth, MAXFLOAT);
+  NSRect textFrame = [base::SysUTF16ToNSString(controller_->HelpText())
+      boundingRectWithSize:size
+                   options:NSLineBreakByWordWrapping |
+                           NSStringDrawingUsesLineFragmentOrigin
+                attributes:@{ NSFontAttributeName : [self textFont] }];
+  return textFrame.size;
 }
 
-- (NSRect)passwordBounds {
-  return NSZeroRect;
-}
-
-- (NSRect)helpBounds {
-  return NSZeroRect;
-}
-
-- (NSRect)dividerBounds {
-  return NSZeroRect;
+- (NSFont*)boldFont {
+  return [NSFont boldSystemFontOfSize:[NSFont smallSystemFontSize]];
 }
 
 - (NSFont*)textFont {
-  return ResourceBundle::GetSharedInstance().GetFontList(
-      ResourceBundle::SmallFont).GetPrimaryFont().GetNativeFont();
+  return [NSFont systemFontOfSize:[NSFont smallSystemFontSize]];
 }
 
 @end
diff --git a/chrome/browser/ui/cocoa/cocoa_profile_test.mm b/chrome/browser/ui/cocoa/cocoa_profile_test.mm
index 34a1195..87f757c 100644
--- a/chrome/browser/ui/cocoa/cocoa_profile_test.mm
+++ b/chrome/browser/ui/cocoa/cocoa_profile_test.mm
@@ -46,7 +46,7 @@
 
   ASSERT_TRUE(profile_manager_.SetUp());
 
-  profile_ = profile_manager_.CreateTestingProfile("default");
+  profile_ = profile_manager_.CreateTestingProfile("Person 1");
   ASSERT_TRUE(profile_);
 
   // TODO(shess): These are needed in case someone creates a browser
diff --git a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
index 7198d96..93ab5ec 100644
--- a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
+++ b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
@@ -84,6 +84,7 @@
 const int kBezelThickness = 3;  // Width of the bezel on an NSButton.
 const int kImageTitleSpacing = 10;
 const int kBlueButtonHeight = 30;
+const CGFloat kFocusRingLineWidth = 2;
 
 // Fixed size for embedded sign in pages as defined in Gaia.
 const CGFloat kFixedGaiaViewWidth = 360;
@@ -93,7 +94,7 @@
 const CGFloat kFixedAccountRemovalViewWidth = 280;
 
 // Fixed size for the switch user view.
-const int kFixedSwitchUserViewWidth = 280;
+const int kFixedSwitchUserViewWidth = 320;
 
 // The tag number for the primary account.
 const int kPrimaryProfileTag = -1;
@@ -229,7 +230,7 @@
   [container addSubview:button];
   [container addSubview:title_label];
   CGFloat height = std::max(NSMaxY([title_label frame]),
-                            NSMaxY([button frame])) + kSmallVerticalSpacing;
+                            NSMaxY([button frame])) + kVerticalSpacing;
   [container setFrameSize:NSMakeSize(NSWidth([container frame]), height)];
 
   return container.autorelease();
@@ -409,22 +410,34 @@
   return buttonSize;
 }
 
-@end
-
-// A custom button that has a transparent backround.
-@interface TransparentBackgroundButton : NSButton
-@end
-
-@implementation TransparentBackgroundButton
-- (id)initWithFrame:(NSRect)frameRect {
-  if ((self = [super initWithFrame:frameRect])) {
-    [self setBordered:NO];
-    [self setFont:[NSFont labelFontOfSize:kTextFontSize]];
-    [self setButtonType:NSMomentaryChangeButton];
-  }
-  return self;
+- (NSFocusRingType)focusRingType {
+  // This is taken care of by the custom drawing code.
+  return NSFocusRingTypeNone;
 }
 
+- (void)drawWithFrame:(NSRect)frame inView:(NSView *)controlView {
+  [super drawInteriorWithFrame:frame inView:controlView];
+
+  // Focus ring.
+  if ([self showsFirstResponder]) {
+    NSRect focusRingRect =
+        NSInsetRect(frame, kFocusRingLineWidth, kFocusRingLineWidth);
+    // TODO(noms): When we are targetting 10.7, we should change this to use
+    // -drawFocusRingMaskWithFrame instead.
+    [[[NSColor keyboardFocusIndicatorColor] colorWithAlphaComponent:1] set];
+    NSBezierPath* path = [NSBezierPath bezierPathWithRect:focusRingRect];
+    [path setLineWidth:kFocusRingLineWidth];
+    [path stroke];
+  }
+}
+
+@end
+
+// A custom image view that has a transparent backround.
+@interface TransparentBackgroundImageView : NSImageView
+@end
+
+@implementation TransparentBackgroundImageView
 - (void)drawRect:(NSRect)dirtyRect {
   NSColor* backgroundColor = [NSColor colorWithCalibratedWhite:1 alpha:0.6f];
   [backgroundColor setFill];
@@ -433,13 +446,31 @@
 }
 @end
 
+@interface CustomCircleImageCell : NSButtonCell
+@end
+
+@implementation CustomCircleImageCell
+- (void)drawWithFrame:(NSRect)frame inView:(NSView *)controlView {
+  // Display everything as a circle that spans the entire control.
+  NSBezierPath* path = [NSBezierPath bezierPathWithOvalInRect:frame];
+  [path addClip];
+
+  [super drawImage:[self image] withFrame:frame inView:controlView];
+
+  // Focus ring.
+  if ([self showsFirstResponder]) {
+    [[[NSColor keyboardFocusIndicatorColor] colorWithAlphaComponent:1] set];
+    [path setLineWidth:kFocusRingLineWidth];
+    [path stroke];
+  }
+}
+@end
+
 // A custom image control that shows a "Change" button when moused over.
-@interface EditableProfilePhoto : NSImageView {
+@interface EditableProfilePhoto : HoverImageButton {
  @private
   AvatarMenu* avatarMenu_;  // Weak; Owned by ProfileChooserController.
-  base::scoped_nsobject<TransparentBackgroundButton> changePhotoButton_;
-  // Used to display the "Change" button on hover.
-  ui::ScopedCrTrackingArea trackingArea_;
+  base::scoped_nsobject<TransparentBackgroundImageView> changePhotoImage_;
   ProfileChooserController* controller_;
 }
 
@@ -452,16 +483,6 @@
 // Called when the "Change" button is clicked.
 - (void)editPhoto:(id)sender;
 
-// When hovering over the profile photo, show the "Change" button.
-- (void)mouseEntered:(NSEvent*)event;
-
-// When hovering away from the profile photo, hide the "Change" button.
-- (void)mouseExited:(NSEvent*)event;
-@end
-
-@interface EditableProfilePhoto (Private)
-// Create the "Change" avatar photo button.
-- (TransparentBackgroundButton*)changePhotoButtonWithRect:(NSRect)rect;
 @end
 
 @implementation EditableProfilePhoto
@@ -473,24 +494,29 @@
   if ((self = [super initWithFrame:frameRect])) {
     avatarMenu_ = avatarMenu;
     controller_ = controller;
-    [self setImage:CreateProfileImage(
-        profileIcon, kLargeImageSide).ToNSImage()];
 
-    // Add a tracking area so that we can show/hide the button when hovering.
-    trackingArea_.reset([[CrTrackingArea alloc]
-        initWithRect:[self bounds]
-             options:NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways
-               owner:self
-            userInfo:nil]);
-    [self addTrackingArea:trackingArea_.get()];
+    [self setBordered:NO];
+
+    base::scoped_nsobject<CustomCircleImageCell> cell(
+        [[CustomCircleImageCell alloc] init]);
+    [self setCell:cell.get()];
+
+    [self setDefaultImage:CreateProfileImage(
+        profileIcon, kLargeImageSide).ToNSImage()];
+    [self setImagePosition:NSImageOnly];
 
     NSRect bounds = NSMakeRect(0, 0, kLargeImageSide, kLargeImageSide);
     if (editingAllowed) {
-      changePhotoButton_.reset([self changePhotoButtonWithRect:bounds]);
-      [self addSubview:changePhotoButton_];
+      [self setTarget:self];
+      [self setAction:@selector(editPhoto:)];
+      changePhotoImage_.reset([[TransparentBackgroundImageView alloc]
+          initWithFrame:bounds]);
+      [changePhotoImage_ setImage:ui::ResourceBundle::GetSharedInstance().
+          GetNativeImageNamed(IDR_ICON_PROFILES_EDIT_CAMERA).AsNSImage()];
+      [self addSubview:changePhotoImage_];
 
-      // Hide the button until the image is hovered over.
-      [changePhotoButton_ setHidden:YES];
+      // Hide the image until the button is hovered over.
+      [changePhotoImage_ setHidden:YES];
     }
 
     // Set the image cell's accessibility strings to be the same as the
@@ -522,36 +548,15 @@
   return self;
 }
 
-- (void)drawRect:(NSRect)dirtyRect {
-  NSRect bounds = [self bounds];
-
-  // Display the profile picture as a circle.
-  NSBezierPath* path = [NSBezierPath bezierPathWithOvalInRect:bounds];
-  [path addClip];
-  [self.image drawAtPoint:bounds.origin
-                 fromRect:bounds
-                operation:NSCompositeSourceOver
-                 fraction:1.0];
-
-}
-
 - (void)editPhoto:(id)sender {
   avatarMenu_->EditProfile(avatarMenu_->GetActiveProfileIndex());
   [controller_
       postActionPerformed:ProfileMetrics::PROFILE_DESKTOP_MENU_EDIT_IMAGE];
 }
 
-- (void)mouseEntered:(NSEvent*)event {
-  [changePhotoButton_ setHidden:NO];
-}
-
-- (void)mouseExited:(NSEvent*)event {
-  [changePhotoButton_ setHidden:YES];
-}
-
-// Make sure the element is focusable for accessibility.
-- (BOOL)canBecomeKeyView {
-  return YES;
+- (void)setHoverState:(HoverState)state {
+  [super setHoverState:state];
+  [changePhotoImage_ setHidden:([self hoverState] == kHoverStateNone)];
 }
 
 - (BOOL)accessibilityIsIgnored {
@@ -571,16 +576,6 @@
   [super accessibilityPerformAction:action];
 }
 
-- (TransparentBackgroundButton*)changePhotoButtonWithRect:(NSRect)rect {
-  TransparentBackgroundButton* button =
-      [[TransparentBackgroundButton alloc] initWithFrame:rect];
-  [button setImage:ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
-      IDR_ICON_PROFILES_EDIT_CAMERA).AsNSImage()];
-  [button setImagePosition:NSImageOnly];
-  [button setTarget:self];
-  [button setAction:@selector(editPhoto:)];
-  return button;
-}
 @end
 
 // A custom text control that turns into a textfield for editing when clicked.
@@ -772,6 +767,26 @@
 }
 @end
 
+// A custom dummy button that is used to clear focus from the bubble's controls.
+@interface DummyWindowFocusButton : NSButton
+@end
+
+@implementation DummyWindowFocusButton
+// Ignore accessibility, as this is a placeholder button.
+- (BOOL)accessibilityIsIgnored {
+  return YES;
+}
+
+- (id)accessibilityAttributeValue:(NSString*)attribute {
+  return @[];
+}
+
+- (BOOL)canBecomeKeyView {
+  return false;
+}
+
+@end
+
 @interface ProfileChooserController ()
 // Builds the profile chooser view.
 - (NSView*)buildProfileChooserView;
@@ -1126,7 +1141,15 @@
   if (viewMode_ != profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER)
     tutorialMode_ = profiles::TUTORIAL_MODE_NONE;
 
+  // Add a dummy, empty element so that we don't initially display any
+  // focus rings.
+  NSButton* dummyFocusButton =
+      [[[DummyWindowFocusButton alloc] initWithFrame:NSZeroRect] autorelease];
+  [dummyFocusButton setNextKeyView:subView];
+  [[self window] makeFirstResponder:dummyFocusButton];
+
   [contentView addSubview:subView];
+  [contentView addSubview:dummyFocusButton];
   SetWindowSize([self window],
       NSMakeSize(NSWidth([subView frame]), NSHeight([subView frame])));
 }
@@ -1670,7 +1693,8 @@
 - (NSButton*)createOtherProfileView:(int)itemIndex {
   const AvatarMenu::Item& item = avatarMenu_->GetItemAt(itemIndex);
 
-  NSRect rect = NSMakeRect(0, 0, kFixedMenuWidth, kBlueButtonHeight);
+  NSRect rect = NSMakeRect(
+      0, 0, kFixedMenuWidth, kBlueButtonHeight + kSmallVerticalSpacing);
   base::scoped_nsobject<BackgroundColorHoverButton> profileButton(
       [[BackgroundColorHoverButton alloc]
           initWithFrame:rect
@@ -1875,7 +1899,7 @@
   NSBox* separator = [self horizontalSeparatorWithFrame:
       NSMakeRect(0, yOffset, kFixedGaiaViewWidth, 0)];
   [container addSubview:separator];
-  yOffset = NSMaxY([separator frame]) + kSmallVerticalSpacing;
+  yOffset = NSMaxY([separator frame]) + kVerticalSpacing;
 
   NSView* titleView = BuildTitleCard(
       NSMakeRect(0, yOffset, kFixedGaiaViewWidth, 0),
@@ -1945,7 +1969,7 @@
   NSBox* separator = [self horizontalSeparatorWithFrame:
       NSMakeRect(0, yOffset, kFixedAccountRemovalViewWidth, 0)];
   [container addSubview:separator];
-  yOffset = NSMaxY([separator frame]) + kSmallVerticalSpacing;
+  yOffset = NSMaxY([separator frame]) + kVerticalSpacing;
 
   NSView* titleView = BuildTitleCard(
       NSMakeRect(0, yOffset, kFixedAccountRemovalViewWidth,0),
@@ -1985,7 +2009,7 @@
   yOffset = NSMaxY([disconnectButton frame]);
 
   NSBox* separator = [self horizontalSeparatorWithFrame:
-      NSMakeRect(0, yOffset, kFixedMenuWidth, 0)];
+      NSMakeRect(0, yOffset, kFixedSwitchUserViewWidth, 0)];
   [container addSubview:separator];
   yOffset = NSMaxY([separator frame]);
 
@@ -2001,7 +2025,7 @@
   yOffset = NSMaxY([addPersonButton frame]);
 
   separator = [self horizontalSeparatorWithFrame:
-      NSMakeRect(0, yOffset, kFixedMenuWidth, 0)];
+      NSMakeRect(0, yOffset, kFixedSwitchUserViewWidth, 0)];
   [container addSubview:separator];
   yOffset = NSMaxY([separator frame]);
 
@@ -2021,7 +2045,7 @@
   separator = [self horizontalSeparatorWithFrame:
       NSMakeRect(0, yOffset, kFixedSwitchUserViewWidth, 0)];
   [container addSubview:separator];
-  yOffset = NSMaxY([separator frame]) + kSmallVerticalSpacing;
+  yOffset = NSMaxY([separator frame]) + kVerticalSpacing;
 
   NSView* titleView = BuildTitleCard(
       NSMakeRect(0, yOffset, kFixedSwitchUserViewWidth,0),
@@ -2031,7 +2055,7 @@
   [container addSubview:titleView];
   yOffset = NSMaxY([titleView frame]);
 
-  [container setFrameSize:NSMakeSize(kFixedAccountRemovalViewWidth, yOffset)];
+  [container setFrameSize:NSMakeSize(kFixedSwitchUserViewWidth, yOffset)];
   return container.autorelease();
 }
 
diff --git a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm
index e253775..d4fdeb0 100644
--- a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller_unittest.mm
@@ -99,7 +99,7 @@
   StartProfileChooserController();
 
   NSArray* subviews = [[[controller() window] contentView] subviews];
-  ASSERT_EQ(1U, [subviews count]);
+  ASSERT_EQ(2U, [subviews count]);
   subviews = [[subviews objectAtIndex:0] subviews];
 
   // Three profiles means we should have one active card, one separator and
@@ -138,7 +138,7 @@
 
   // Profile icon.
   NSView* activeProfileImage = [activeCardSubviews objectAtIndex:2];
-  EXPECT_TRUE([activeProfileImage isKindOfClass:[NSImageView class]]);
+  EXPECT_TRUE([activeProfileImage isKindOfClass:[NSButton class]]);
 
   // Profile name.
   NSView* activeProfileName = [activeCardSubviews objectAtIndex:1];
@@ -166,7 +166,7 @@
   StartProfileChooserController();
 
   NSArray* subviews = [[[controller() window] contentView] subviews];
-  ASSERT_EQ(1U, [subviews count]);
+  ASSERT_EQ(2U, [subviews count]);
   subviews = [[subviews objectAtIndex:0] subviews];
 
   // Three profiles means we should have one active card and a
@@ -209,7 +209,7 @@
 
   // Profile icon.
   NSView* activeProfileImage = [activeCardSubviews objectAtIndex:2];
-  EXPECT_TRUE([activeProfileImage isKindOfClass:[NSImageView class]]);
+  EXPECT_TRUE([activeProfileImage isKindOfClass:[NSButton class]]);
 
   // Profile name.
   NSView* activeProfileName = [activeCardSubviews objectAtIndex:1];
@@ -240,7 +240,7 @@
   StartProfileChooserController();
 
   NSArray* subviews = [[[controller() window] contentView] subviews];
-  ASSERT_EQ(1U, [subviews count]);
+  ASSERT_EQ(2U, [subviews count]);
   subviews = [[subviews objectAtIndex:0] subviews];
   NSString* sortedNames[] = { @"Another Test",
                               @"New Profile",
@@ -272,7 +272,7 @@
   switches::EnableNewAvatarMenuForTesting(CommandLine::ForCurrentProcess());
   StartProfileChooserController();
   NSArray* subviews = [[[controller() window] contentView] subviews];
-  ASSERT_EQ(1U, [subviews count]);
+  ASSERT_EQ(2U, [subviews count]);
   subviews = [[subviews objectAtIndex:0] subviews];
   NSArray* activeCardSubviews = [[subviews objectAtIndex:2] subviews];
   NSArray* activeCardLinks = [[activeCardSubviews objectAtIndex:0] subviews];
@@ -301,7 +301,7 @@
 
   StartProfileChooserController();
   NSArray* subviews = [[[controller() window] contentView] subviews];
-  ASSERT_EQ(1U, [subviews count]);
+  ASSERT_EQ(2U, [subviews count]);
   subviews = [[subviews objectAtIndex:0] subviews];
   NSArray* activeCardSubviews = [[subviews objectAtIndex:2] subviews];
   NSArray* activeCardLinks = [[activeCardSubviews objectAtIndex:0] subviews];
@@ -323,7 +323,7 @@
 
   StartProfileChooserController();
   NSArray* subviews = [[[controller() window] contentView] subviews];
-  ASSERT_EQ(1U, [subviews count]);
+  ASSERT_EQ(2U, [subviews count]);
   subviews = [[subviews objectAtIndex:0] subviews];
   NSArray* activeCardSubviews = [[subviews objectAtIndex:2] subviews];
   NSArray* activeCardLinks = [[activeCardSubviews objectAtIndex:0] subviews];
@@ -358,7 +358,7 @@
       profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT];
 
   NSArray* subviews = [[[controller() window] contentView] subviews];
-  ASSERT_EQ(1U, [subviews count]);
+  ASSERT_EQ(2U, [subviews count]);
   subviews = [[subviews objectAtIndex:0] subviews];
 
   // There should be one active card, one accounts container, two separators
@@ -435,7 +435,7 @@
 
   // Profile icon.
   NSView* activeProfileImage = [activeCardSubviews objectAtIndex:2];
-  EXPECT_TRUE([activeProfileImage isKindOfClass:[NSImageView class]]);
+  EXPECT_TRUE([activeProfileImage isKindOfClass:[NSButton class]]);
 
   // Profile name.
   NSView* activeProfileName = [activeCardSubviews objectAtIndex:1];
diff --git a/chrome/browser/ui/views/autofill/password_generation_popup_view_views.cc b/chrome/browser/ui/views/autofill/password_generation_popup_view_views.cc
index 2979d42..3c836b2 100644
--- a/chrome/browser/ui/views/autofill/password_generation_popup_view_views.cc
+++ b/chrome/browser/ui/views/autofill/password_generation_popup_view_views.cc
@@ -25,7 +25,6 @@
 // The amount of whitespace that is present when there is no padding. Used
 // to get the proper spacing in the help section.
 const int kHelpVerticalOffset = 5;
-const int kPasswordSectionHeight = 62;
 
 // Wrapper around just the text portions of the generation UI (password and
 // prompting text).
@@ -173,7 +172,8 @@
   int height = kPopupBorderThickness;
   if (controller_->display_password()) {
     // Add divider height as well.
-    height += kPasswordSectionHeight + 1;
+    height +=
+        PasswordGenerationPopupController::kPopupPasswordSectionHeight + 1;
   }
   int width = controller_->GetMinimumWidth();
   int popup_width = width - 2 * kPopupBorderThickness;
@@ -217,7 +217,10 @@
     // it), but it can't change the other way around.
     CreatePasswordView();
     password_view_->SetBounds(
-        kPopupBorderThickness, y, popup_width, kPasswordSectionHeight);
+        kPopupBorderThickness,
+        y,
+        popup_width,
+        PasswordGenerationPopupController::kPopupPasswordSectionHeight);
     divider_bounds_ =
         gfx::Rect(kPopupBorderThickness, password_view_->bounds().bottom(),
                   popup_width, 1);
diff --git a/chrome/browser/ui/views/desktop_media_picker_views.cc b/chrome/browser/ui/views/desktop_media_picker_views.cc
index f4783b3..1f23944 100644
--- a/chrome/browser/ui/views/desktop_media_picker_views.cc
+++ b/chrome/browser/ui/views/desktop_media_picker_views.cc
@@ -11,6 +11,8 @@
 #include "chrome/grit/generated_resources.h"
 #include "components/web_modal/popup_manager.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_contents_delegate.h"
 #include "ui/aura/window_tree_host.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/events/event_constants.h"
@@ -358,7 +360,6 @@
 DesktopMediaPickerDialogView::DesktopMediaPickerDialogView(
     content::WebContents* parent_web_contents,
     gfx::NativeWindow context,
-    gfx::NativeWindow parent_window,
     DesktopMediaPickerViews* parent,
     const base::string16& app_name,
     const base::string16& target_name,
@@ -384,26 +385,25 @@
       GetMediaListViewHeightForRows(1), GetMediaListViewHeightForRows(2));
   AddChildView(scroll_view_);
 
-  // If |parent_web_contents| is set, the picker will be shown modal to the
-  // web contents. Otherwise, a new dialog widget inside |parent_window| will be
-  // created for the picker. Note that |parent_window| may also be NULL if
-  // parent web contents is not set. In this case the picker will be parented
-  // by a root window.
+  // If |parent_web_contents| is set and it's not a background page then the
+  // picker will be shown modal to the web contents. Otherwise the picker is
+  // shown in a separate window.
   views::Widget* widget = NULL;
-  if (parent_web_contents)
+  bool modal_dialog =
+      parent_web_contents &&
+      !parent_web_contents->GetDelegate()->IsNeverVisible(parent_web_contents);
+  if (modal_dialog) {
     widget = CreateWebModalDialogViews(this, parent_web_contents);
-  else
-    widget = DialogDelegate::CreateDialogWidget(this, context, parent_window);
+  } else {
+    widget = DialogDelegate::CreateDialogWidget(this, context, NULL);
+  }
 
-  // DesktopMediaList needs to know the ID of the picker window which
-  // matches the ID it gets from the OS. Depending on the OS and configuration
-  // we get this ID differently.
+  // If the picker is not modal to the calling web contents then it is displayed
+  // in its own top-level window, so in that case it needs to be filtered out of
+  // the list of top-level windows available for capture, and to achieve that
+  // the Id is passed to DesktopMediaList.
   DesktopMediaID::Id dialog_window_id = 0;
-
-  // If there is |parent_window| or |parent_web_contents|, the picker window
-  // is embedded in the parent and does not have its own native window id, so we
-  // do not filter in that case.
-  if (!parent_window && !parent_web_contents) {
+  if (!modal_dialog) {
 #if defined(USE_ASH)
     if (chrome::IsNativeWindowInAsh(widget->GetNativeWindow())) {
       dialog_window_id =
@@ -420,7 +420,7 @@
 
   list_view_->StartUpdating(dialog_window_id);
 
-  if (parent_web_contents) {
+  if (modal_dialog) {
     web_modal::PopupManager* popup_manager =
         web_modal::PopupManager::FromWebContents(parent_web_contents);
     popup_manager->ShowModalDialog(GetWidget()->GetNativeView(),
@@ -555,8 +555,7 @@
                                    const DoneCallback& done_callback) {
   callback_ = done_callback;
   dialog_ = new DesktopMediaPickerDialogView(
-      web_contents, context, parent, this, app_name, target_name,
-      media_list.Pass());
+      web_contents, context, this, app_name, target_name, media_list.Pass());
 }
 
 void DesktopMediaPickerViews::NotifyDialogResult(DesktopMediaID source) {
diff --git a/chrome/browser/ui/views/desktop_media_picker_views.h b/chrome/browser/ui/views/desktop_media_picker_views.h
index 50f8239..0bb9a5b 100644
--- a/chrome/browser/ui/views/desktop_media_picker_views.h
+++ b/chrome/browser/ui/views/desktop_media_picker_views.h
@@ -108,7 +108,6 @@
  public:
   DesktopMediaPickerDialogView(content::WebContents* parent_web_contents,
                                gfx::NativeWindow context,
-                               gfx::NativeWindow parent_window,
                                DesktopMediaPickerViews* parent,
                                const base::string16& app_name,
                                const base::string16& target_name,
diff --git a/chrome/browser/ui/views/desktop_media_picker_views_unittest.cc b/chrome/browser/ui/views/desktop_media_picker_views_unittest.cc
index 268435d..511493d 100644
--- a/chrome/browser/ui/views/desktop_media_picker_views_unittest.cc
+++ b/chrome/browser/ui/views/desktop_media_picker_views_unittest.cc
@@ -46,8 +46,8 @@
 
     picker_views_.reset(new DesktopMediaPickerViews());
     picker_views_->Show(NULL,
-                        NULL,
                         parent_widget_->GetNativeWindow(),
+                        NULL,
                         app_name,
                         app_name,
                         media_list.PassAs<DesktopMediaList>(),
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index cbfbb4b..f80d824 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -113,52 +113,6 @@
 // by 1 px.
 const int kSearchButtonInset = 1;
 
-// Given a containing |height| and a |base_font_list|, shrinks the font size
-// until the font list will fit within |height| while having its cap height
-// vertically centered.  Returns the correctly-sized font list.
-//
-// The expected layout:
-//   +--------+-----------------------------------------------+------------+
-//   |        | y offset                                      | space      |
-//   |        +--------+-------------------+------------------+ above      |
-//   |        |        |                   | internal leading | cap height |
-//   | box    | font   | ascent (baseline) +------------------+------------+
-//   | height | height |                   | cap height                    |
-//   |        |        |-------------------+------------------+------------+
-//   |        |        | descent (height - baseline)          | space      |
-//   |        +--------+--------------------------------------+ below      |
-//   |        | space at bottom                               | cap height |
-//   +--------+-----------------------------------------------+------------+
-// Goal:
-//     center of box height == center of cap height
-//     (i.e. space above cap height == space below cap height)
-// Restrictions:
-//     y offset >= 0
-//     space at bottom >= 0
-//     (i.e. Entire font must be visible inside the box.)
-gfx::FontList GetLargestFontListWithHeightBound(
-    const gfx::FontList& base_font_list,
-    int height) {
-  gfx::FontList font_list = base_font_list;
-  for (int font_size = font_list.GetFontSize(); font_size > 1; --font_size) {
-    const int internal_leading =
-        font_list.GetBaseline() - font_list.GetCapHeight();
-    // Some platforms don't support getting the cap height, and simply return
-    // the entire font ascent from GetCapHeight().  Centering the ascent makes
-    // the font look too low, so if GetCapHeight() returns the ascent, center
-    // the entire font height instead.
-    const int space =
-        height - ((internal_leading != 0) ?
-                  font_list.GetCapHeight() : font_list.GetHeight());
-    const int y_offset = space / 2 - internal_leading;
-    const int space_at_bottom = height - (y_offset + font_list.GetHeight());
-    if ((y_offset >= 0) && (space_at_bottom >= 0))
-      break;
-    font_list = font_list.DeriveWithSizeDelta(-1);
-  }
-  return font_list;
-}
-
 int GetEditLeadingInternalSpace() {
   // The textfield has 1 px of whitespace before the text in the RTL case only.
   return base::i18n::IsRTL() ? 1 : 0;
@@ -281,16 +235,15 @@
   // Shrink large fonts to make them fit.
   // TODO(pkasting): Stretch the location bar instead in this case.
   const int location_height = GetInternalHeight(true);
-  font_list = GetLargestFontListWithHeightBound(font_list, location_height);
+  font_list = font_list.DeriveWithHeightUpperBound(location_height);
 
   // Determine the font for use inside the bubbles.  The bubble background
   // images have 1 px thick edges, which we don't want to overlap.
   const int kBubbleInteriorVerticalPadding = 1;
   const int bubble_vertical_padding =
       (kBubblePadding + kBubbleInteriorVerticalPadding) * 2;
-  const gfx::FontList bubble_font_list(
-      GetLargestFontListWithHeightBound(
-          font_list, location_height - bubble_vertical_padding));
+  const gfx::FontList bubble_font_list(font_list.DeriveWithHeightUpperBound(
+      location_height - bubble_vertical_padding));
 
   const SkColor background_color =
       GetColor(ToolbarModel::NONE, LocationBarView::BACKGROUND);
diff --git a/chrome/browser/ui/views/profiles/new_avatar_button.cc b/chrome/browser/ui/views/profiles/new_avatar_button.cc
index 2fe40ae..2e3647c 100644
--- a/chrome/browser/ui/views/profiles/new_avatar_button.cc
+++ b/chrome/browser/ui/views/profiles/new_avatar_button.cc
@@ -61,6 +61,12 @@
       gfx::ShadowValue(gfx::Point(), 1.0f, SK_ColorDKGRAY)));
   SetTextSubpixelRenderingEnabled(false);
 
+  // The largest text height that fits in the button. If the font list height
+  // is larger than this, it will be shrunk to match it.
+  // TODO(noms): Calculate this constant algorithmically.
+  const int kDisplayFontHeight = 15;
+  SetFontList(GetFontList().DeriveWithHeightUpperBound(kDisplayFontHeight));
+
   ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance();
   if (button_style == THEMED_BUTTON) {
     const int kNormalImageSet[] = IMAGE_GRID(IDR_AVATAR_THEMED_BUTTON_NORMAL);
@@ -142,6 +148,11 @@
   UpdateAvatarButtonAndRelayoutParent();
 }
 
+void NewAvatarButton::OnProfileAvatarChanged(
+      const base::FilePath& profile_path) {
+  UpdateAvatarButtonAndRelayoutParent();
+}
+
 void NewAvatarButton::OnProfileSupervisedUserIdChanged(
       const base::FilePath& profile_path) {
   UpdateAvatarButtonAndRelayoutParent();
diff --git a/chrome/browser/ui/views/profiles/new_avatar_button.h b/chrome/browser/ui/views/profiles/new_avatar_button.h
index 76e3ac1..917a696 100644
--- a/chrome/browser/ui/views/profiles/new_avatar_button.h
+++ b/chrome/browser/ui/views/profiles/new_avatar_button.h
@@ -46,6 +46,8 @@
   virtual void OnProfileNameChanged(
       const base::FilePath& profile_path,
       const base::string16& old_profile_name) OVERRIDE;
+  virtual void OnProfileAvatarChanged(
+      const base::FilePath& profile_path) OVERRIDE;
   virtual void OnProfileSupervisedUserIdChanged(
       const base::FilePath& profile_path) OVERRIDE;
 
diff --git a/chrome/browser/ui/views/profiles/profile_chooser_view.cc b/chrome/browser/ui/views/profiles/profile_chooser_view.cc
index 752dc66..5cfbdd4 100644
--- a/chrome/browser/ui/views/profiles/profile_chooser_view.cc
+++ b/chrome/browser/ui/views/profiles/profile_chooser_view.cc
@@ -71,9 +71,11 @@
 const int kFixedGaiaViewHeight = 440;
 const int kFixedGaiaViewWidth = 360;
 const int kFixedAccountRemovalViewWidth = 280;
-const int kFixedSwitchUserViewWidth = 280;
+const int kFixedSwitchUserViewWidth = 320;
 const int kLargeImageSide = 88;
 
+const int kVerticalSpacing = 16;
+
 // Creates a GridLayout with a single column. This ensures that all the child
 // views added get auto-expanded to fill the full width of the bubble.
 views::GridLayout* CreateSingleColumnLayout(views::View* view, int width) {
@@ -420,8 +422,9 @@
     AddChildView(title_label_);
   }
 
-  // Creates a new view that has the |title_card| with padding at the top, an
-  // edge-to-edge separator below, and the specified |view| at the bottom.
+  // Creates a new view that has the |title_card| with horizontal padding at the
+  // top, an edge-to-edge separator below, and the specified |view| at the
+  // bottom.
   static views::View* AddPaddedTitleCard(views::View* view,
                                          TitleCard* title_card,
                                          int width) {
@@ -440,9 +443,9 @@
     layout->AddColumnSet(1)->AddColumn(views::GridLayout::FILL,
         views::GridLayout::FILL, 0,views::GridLayout::FIXED, width, width);
 
-    layout->StartRowWithPadding(1, 0, 0, views::kButtonVEdgeMarginNew);
+    layout->StartRowWithPadding(1, 0, 0, kVerticalSpacing);
     layout->AddView(title_card);
-    layout->StartRowWithPadding(1, 1, 0, views::kRelatedControlVerticalSpacing);
+    layout->StartRowWithPadding(1, 1, 0, kVerticalSpacing);
     layout->AddView(new views::Separator(views::Separator::HORIZONTAL));
 
     layout->StartRow(1, 1);
diff --git a/chrome/browser/ui/views/toolbar/browser_actions_container.cc b/chrome/browser/ui/views/toolbar/browser_actions_container.cc
index 828b916..e77f642 100644
--- a/chrome/browser/ui/views/toolbar/browser_actions_container.cc
+++ b/chrome/browser/ui/views/toolbar/browser_actions_container.cc
@@ -164,7 +164,6 @@
     // the Chrome menu.
     if (!overflow_experiment) {
       chevron_ = new ChevronMenuButton(NULL, base::string16(), this, false);
-      chevron_->SetBorder(views::Border::NullBorder());
       chevron_->EnableCanvasFlippingForRTLUI(true);
       chevron_->SetAccessibleName(
           l10n_util::GetStringUTF16(IDS_ACCNAME_EXTENSIONS_CHEVRON));
diff --git a/chrome/browser/ui/webui/chromeos/login/demo_mode_detector.cc b/chrome/browser/ui/webui/chromeos/login/demo_mode_detector.cc
index b3d8efb..d359bf7 100644
--- a/chrome/browser/ui/webui/chromeos/login/demo_mode_detector.cc
+++ b/chrome/browser/ui/webui/chromeos/login/demo_mode_detector.cc
@@ -8,6 +8,7 @@
 #include "base/prefs/pref_registry_simple.h"
 #include "base/prefs/pref_service.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/sys_info.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/chromeos/login/ui/login_display_host.h"
 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h"
@@ -34,6 +35,18 @@
 // Public methods.
 
 void DemoModeDetector::InitDetection() {
+  if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableDemoMode))
+    return;
+
+  if (base::SysInfo::IsRunningOnChromeOS()) {
+    std::string track;
+    // We're running on an actual device; if we cannot find our release track
+    // value or if the track contains "testimage", don't start demo mode.
+    if (!base::SysInfo::GetLsbReleaseValue("CHROMEOS_RELEASE_TRACK", &track) ||
+        track.find("testimage") != std::string::npos)
+      return;
+  }
+
   if (IsDerelict())
     StartIdleDetection();
   else
diff --git a/chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.cc
index e298ce8..04b1c32 100644
--- a/chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/hid_detection_screen_handler.cc
@@ -113,8 +113,7 @@
     show_on_init_ = true;
     return;
   }
-  if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableDemoMode))
-    core_oobe_actor_->InitDemoModeDetection();
+  core_oobe_actor_->InitDemoModeDetection();
   input_service_proxy_.AddObserver(this);
   UpdateDevices();
 
diff --git a/chrome/browser/ui/webui/chromeos/login/l10n_util.cc b/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
index 34a690d..4b75020 100644
--- a/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
+++ b/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
@@ -370,6 +370,32 @@
   return languages_list.Pass();
 }
 
+std::string FindMostRelevantLocale(
+    const std::vector<std::string>& most_relevant_language_codes,
+    const base::ListValue& available_locales,
+    const std::string& fallback_locale) {
+  for (std::vector<std::string>::const_iterator most_relevant_it =
+          most_relevant_language_codes.begin();
+       most_relevant_it != most_relevant_language_codes.end();
+       ++most_relevant_it) {
+    for (base::ListValue::const_iterator available_it =
+             available_locales.begin();
+         available_it != available_locales.end(); ++available_it) {
+      base::DictionaryValue* dict;
+      std::string available_locale;
+      if (!(*available_it)->GetAsDictionary(&dict) ||
+          !dict->GetString("value", &available_locale)) {
+        NOTREACHED();
+        continue;
+      }
+      if (available_locale == *most_relevant_it)
+        return *most_relevant_it;
+    }
+  }
+
+  return fallback_locale;
+}
+
 scoped_ptr<base::ListValue> GetAcceptLanguageList() {
   // Collect the language codes from the supported accept-languages.
   const std::string app_locale = g_browser_process->GetApplicationLocale();
@@ -457,13 +483,13 @@
 
   // Resolve |locale| on a background thread, then continue on the current
   // thread.
+  std::string (*get_application_locale)(const std::string&, bool) =
+      &l10n_util::GetApplicationLocale;
   base::PostTaskAndReplyWithResult(
       background_task_runner,
       FROM_HERE,
-      base::Bind(&l10n_util::GetApplicationLocale,
-                 locale),
-      base::Bind(&GetKeyboardLayoutsForResolvedLocale,
-                 callback));
+      base::Bind(get_application_locale, locale, false /* set_icu_locale */),
+      base::Bind(&GetKeyboardLayoutsForResolvedLocale, callback));
 }
 
 scoped_ptr<base::DictionaryValue> GetCurrentKeyboardLayout() {
diff --git a/chrome/browser/ui/webui/chromeos/login/l10n_util.h b/chrome/browser/ui/webui/chromeos/login/l10n_util.h
index aa9f4fb..3ea1e96 100644
--- a/chrome/browser/ui/webui/chromeos/login/l10n_util.h
+++ b/chrome/browser/ui/webui/chromeos/login/l10n_util.h
@@ -37,6 +37,14 @@
     const std::vector<std::string>* most_relevant_language_codes,
     const std::string& selected);
 
+// Returns the most first entry of |most_relevant_language_codes| that is
+// actually available (present in |available_locales|). If none of the entries
+// are present in |available_locales|, returns the |fallback_locale|.
+std::string FindMostRelevantLocale(
+    const std::vector<std::string>& most_relevant_language_codes,
+    const base::ListValue& available_locales,
+    const std::string& fallback_locale);
+
 // Return a list of supported accept languages. The listed languages can be used
 // in the Accept-Language header. The return value will look like:
 // [{'code': 'fi', 'displayName': 'Finnish', 'nativeDisplayName': 'suomi'}, ...]
diff --git a/chrome/browser/ui/webui/chromeos/login/l10n_util_unittest.cc b/chrome/browser/ui/webui/chromeos/login/l10n_util_unittest.cc
index 86e3d92..6e9be46 100644
--- a/chrome/browser/ui/webui/chromeos/login/l10n_util_unittest.cc
+++ b/chrome/browser/ui/webui/chromeos/login/l10n_util_unittest.cc
@@ -129,6 +129,39 @@
   VerifyOnlyUILanguages(*list);
 }
 
+TEST_F(L10nUtilTest, FindMostRelevantLocale) {
+  base::ListValue available_locales;
+  scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
+  dict->SetString("value", "de");
+  available_locales.Append(dict.release());
+  dict.reset(new base::DictionaryValue);
+  dict->SetString("value", "fr");
+  available_locales.Append(dict.release());
+  dict.reset(new base::DictionaryValue);
+  dict->SetString("value", "en-GB");
+  available_locales.Append(dict.release());
+
+  std::vector<std::string> most_relevant_language_codes;
+  EXPECT_EQ("en-US", FindMostRelevantLocale(most_relevant_language_codes,
+                                            available_locales,
+                                            "en-US"));
+
+  most_relevant_language_codes.push_back("xx");
+  EXPECT_EQ("en-US", FindMostRelevantLocale(most_relevant_language_codes,
+                                            available_locales,
+                                            "en-US"));
+
+  most_relevant_language_codes.push_back("fr");
+  EXPECT_EQ("fr", FindMostRelevantLocale(most_relevant_language_codes,
+                                         available_locales,
+                                         "en-US"));
+
+  most_relevant_language_codes.push_back("de");
+  EXPECT_EQ("fr", FindMostRelevantLocale(most_relevant_language_codes,
+                                         available_locales,
+                                         "en-US"));
+}
+
 void InitStartupCustomizationDocumentForTesting(const std::string& manifest) {
   StartupCustomizationDocument::GetInstance()->LoadManifestFromString(manifest);
   StartupCustomizationDocument::GetInstance()->Init(
diff --git a/chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc
index 47cb912..0fd28b9 100644
--- a/chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/network_screen_handler.cc
@@ -6,11 +6,9 @@
 
 #include "base/bind.h"
 #include "base/bind_helpers.h"
-#include "base/command_line.h"
 #include "base/memory/weak_ptr.h"
 #include "base/prefs/pref_service.h"
 #include "base/strings/utf_string_conversions.h"
-#include "base/sys_info.h"
 #include "base/values.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
@@ -24,7 +22,6 @@
 #include "chrome/browser/ui/webui/chromeos/login/l10n_util.h"
 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
 #include "chrome/common/pref_names.h"
-#include "chromeos/chromeos_switches.h"
 #include "chromeos/ime/extension_ime_util.h"
 #include "chromeos/network/network_handler.h"
 #include "chromeos/network/network_state_handler.h"
@@ -129,17 +126,6 @@
                                 true,
                                 chromeos::network_handler::ErrorCallback());
   ShowScreen(OobeUI::kScreenOobeNetwork, NULL);
-
-  if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableDemoMode))
-    return;
-  if (base::SysInfo::IsRunningOnChromeOS()) {
-    std::string track;
-    // We're running on an actual device; if we cannot find our release track
-    // value or if the track contains "testimage", don't start demo mode.
-    if (!base::SysInfo::GetLsbReleaseValue("CHROMEOS_RELEASE_TRACK", &track) ||
-        track.find("testimage") != std::string::npos)
-      return;
-  }
   core_oobe_actor_->InitDemoModeDetection();
 }
 
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
index 138e06f..615a30b 100644
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
@@ -762,6 +762,7 @@
   AddCallback("updateOfflineLogin",
               &SigninScreenHandler::HandleUpdateOfflineLogin);
   AddCallback("focusPod", &SigninScreenHandler::HandleFocusPod);
+  AddCallback("hardlockPod", &SigninScreenHandler::HandleHardlockPod);
   AddCallback("retrieveAuthenticatedUserEmail",
               &SigninScreenHandler::HandleRetrieveAuthenticatedUserEmail);
   AddCallback("getPublicSessionKeyboardLayouts",
@@ -946,6 +947,10 @@
     const std::string& username,
     ScreenlockBridge::LockHandler::AuthType auth_type,
     const base::string16& initial_value) {
+  if (delegate_->GetAuthType(username) ==
+          ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD)
+    return;
+
   delegate_->SetAuthType(username, auth_type);
 
   CallJS("login.AccountPickerScreen.setAuthType",
@@ -1302,6 +1307,13 @@
   WallpaperManager::Get()->SetUserWallpaperDelayed(user_id);
 }
 
+void SigninScreenHandler::HandleHardlockPod(const std::string& user_id) {
+  SetAuthType(user_id,
+              ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD,
+              base::string16());
+  HideUserPodCustomIcon(user_id);
+}
+
 void SigninScreenHandler::HandleRetrieveAuthenticatedUserEmail(
     double attempt_token) {
   // TODO(antrim) : move GaiaSigninScreen dependency to GaiaSigninScreen.
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
index 86d4dda..4656185 100644
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
@@ -370,6 +370,7 @@
   void HandleUpdateOfflineLogin(bool offline_login_active);
   void HandleShowSupervisedUserCreationScreen();
   void HandleFocusPod(const std::string& user_id);
+  void HandleHardlockPod(const std::string& user_id);
   void HandleLaunchKioskApp(const std::string& app_id, bool diagnostic_mode);
   void HandleRetrieveAuthenticatedUserEmail(double attempt_token);
   void HandleGetPublicSessionKeyboardLayouts(const std::string& user_id,
diff --git a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
index c8104f7..4314bc0 100644
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
@@ -257,6 +257,10 @@
     const std::string& user_email,
     ScreenlockBridge::LockHandler::AuthType auth_type,
     const base::string16& auth_value) {
+  if (GetAuthType(user_email) ==
+          ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD)
+    return;
+
   user_auth_type_map_[user_email] = auth_type;
   web_ui()->CallJavascriptFunction(
       "login.AccountPickerScreen.setAuthType",
@@ -430,6 +434,16 @@
   GetScreenlockRouter(email)->OnAuthAttempted(GetAuthType(email), "");
 }
 
+void UserManagerScreenHandler::HandleHardlockUserPod(
+    const base::ListValue* args) {
+  std::string email;
+  CHECK(args->GetString(0, &email));
+  SetAuthType(email,
+              ScreenlockBridge::LockHandler::FORCE_OFFLINE_PASSWORD,
+              base::string16());
+  HideUserPodCustomIcon(email);
+}
+
 void UserManagerScreenHandler::OnClientLoginSuccess(
     const ClientLoginResult& result) {
   chrome::SetLocalAuthCredentials(authenticating_profile_index_,
diff --git a/chrome/browser/ui/webui/signin/user_manager_screen_handler.h b/chrome/browser/ui/webui/signin/user_manager_screen_handler.h
index 8339d61..1e7d1b6 100644
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.h
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.h
@@ -63,6 +63,7 @@
   void HandleLaunchUser(const base::ListValue* args);
   void HandleRemoveUser(const base::ListValue* args);
   void HandleAttemptUnlock(const base::ListValue* args);
+  void HandleHardlockUserPod(const base::ListValue* args);
 
   // Handle GAIA auth results.
   virtual void OnClientLoginSuccess(const ClientLoginResult& result) OVERRIDE;
diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
index 3a5452e..6addb3f 100644
--- a/chrome/common/chrome_content_client.cc
+++ b/chrome/common/chrome_content_client.cc
@@ -269,7 +269,9 @@
       widevine_cdm.is_out_of_process = true;
       widevine_cdm.path = path;
       widevine_cdm.name = kWidevineCdmDisplayName;
-      widevine_cdm.description = kWidevineCdmDescription;
+      widevine_cdm.description = kWidevineCdmDescription +
+                                 std::string(" (version: ") +
+                                 WIDEVINE_CDM_VERSION_STRING + ")";
       widevine_cdm.version = WIDEVINE_CDM_VERSION_STRING;
       content::WebPluginMimeType widevine_cdm_mime_type(
           kWidevineCdmPluginMimeType,
diff --git a/chrome/common/crash_keys.cc b/chrome/common/crash_keys.cc
index 84a83ef..21cb6fb 100644
--- a/chrome/common/crash_keys.cc
+++ b/chrome/common/crash_keys.cc
@@ -61,6 +61,8 @@
 
 const char kActiveURL[] = "url-chunk";
 
+const char kFontKeyName[] = "font_key_name";
+
 const char kSwitch[] = "switch-%" PRIuS;
 const char kNumSwitches[] = "num-switches";
 
@@ -144,6 +146,7 @@
     // base/:
     { "dm-usage", kSmallSize },
     // content/:
+    { kFontKeyName, kSmallSize},
     { "ppapi_path", kMediumSize },
     { "subresource_url", kLargeSize },
 #if defined(OS_CHROMEOS)
diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/common/extensions/api/_permission_features.json
index a951be2..a81c343 100644
--- a/chrome/common/extensions/api/_permission_features.json
+++ b/chrome/common/extensions/api/_permission_features.json
@@ -90,10 +90,56 @@
       ]
     }
   ],
-  "app.window.shape": {
-    "channel": "stable",
-    "extension_types": ["platform_app"]
-  },
+  "app.window.shape": [
+    {
+      "channel": "dev",
+      "extension_types": ["platform_app"]
+    },
+    {
+      "channel": "stable",
+      "extension_types": ["platform_app"],
+      "whitelist": [
+        "0F42756099D914A026DADFA182871C015735DD95",  // http://crbug.com/323773
+        "2D22CDB6583FD0A13758AEBE8B15E45208B4E9A7",
+        "E7E2461CE072DF036CF9592740196159E2D7C089",  // http://crbug.com/356200
+        "A74A4D44C7CFCD8844830E6140C8D763E12DD8F3",
+        "312745D9BF916161191143F6490085EEA0434997",
+        "53041A2FA309EECED01FFC751E7399186E860B2C",
+        "EBA908206905323CECE6DC4B276A58A0F4AC573F",
+        "2775E568AC98F9578791F1EAB65A1BF5F8CEF414",
+        "4AA3C5D69A4AECBD236CAD7884502209F0F5C169",
+        "E410CDAB2C6E6DD408D731016CECF2444000A912",
+        "9E930B2B5EABA6243AE6C710F126E54688E8FAF6",
+        "FAFE8EFDD2D6AE2EEB277AFEB91C870C79064D9E",  // http://crbug.com/327507
+        "3B52D273A271D4E2348233E322426DBAE854B567",
+        "5DF6ADC8708DF59FCFDDBF16AFBFB451380C2059",
+        "1037DEF5F6B06EA46153AD87B6C5C37440E3F2D1",
+        "F5815DAFEB8C53B078DD1853B2059E087C42F139",
+        "6A08EFFF9C16E090D6DCC7EC55A01CADAE840513",
+        "C32D6D93E12F5401DAA3A723E0C3CC5F25429BA4",  // http://crbug.com/354258
+        "9099782647D39C778E15C8C6E0D23C88F5CDE170",
+        "B7D5B52D1E5B106288BD7F278CAFA5E8D76108B0",
+        "89349DBAA2C4022FB244AA50182AB60934EB41EE",
+        "CB593E510640572A995CB1B6D41BD85ED51E63F8",
+        "1AD1AC86C87969CD3434FA08D99DBA6840AEA612",
+        "9C2EA21D7975BDF2B3C01C3A454EE44854067A6D",
+        "D2C488C80C3C90C3E01A991112A05E37831E17D0",
+        "6EEC061C0E74B46C7B5BE2EEFA49436368F4988F",
+        "8B344D9E8A4C505EF82A0DBBC25B8BD1F984E777",
+        "E06AFCB1EB0EFD237824CC4AC8FDD3D43E8BC868",
+        "F76F43EFFF56BF17A9868A5243F339BA28746632",  // http://crbug.com/386324
+        "C6EA52B92F80878515F94137020F01519357E5B5",
+        "E466389F058ABD73FF6FDD06F768A351FCBF8532",
+        "40063F1CF7B68BA847A26FA6620DDF156171D23C",
+        "A6FD8E15353CF1F5C3D0A7B20E1D10AEA4DD3E6A",
+        "57AC4D9E6BD8A2D0A70056B5FAC2378CAA588912",
+        "02037314DA4D913640DCF0E296A7D01F4FD793EC",
+        "B6EC0809BC63E10B431C5E4AA3645232CA86B2A5",
+        "48CA541313139786F056DBCB504A1025CFF5D2E3",
+        "05106136AE7F08A3C181D4648E5438350B1D2B4F"
+      ]
+    }
+  ],
   "audio": [
     {
       "channel": "dev",
@@ -152,7 +198,11 @@
         "4FE45FA56EF6A25FDE8C302C44045CA9CE8A605A",  // http://crbug.com/320952
         "3D14248405B8A59043420AAC160077C99E7788A9",  // http://crbug.com/398585
         "A6C87307BBE5886CC5F1393025000E2FE8060BF2",  // http://crbug.com/398585
-        "3407516021EA3669C0EC8E65E6B9837E5A521B9C"   // http://crbug.com/398585
+        "3407516021EA3669C0EC8E65E6B9837E5A521B9C",  // http://crbug.com/398585
+        "0F585FB1D0FDFBEBCE1FEB5E9DFFB6DA476B8C9B",  // http://crbug.com/405800
+        "2D22CDB6583FD0A13758AEBE8B15E45208B4E9A7",  // http://crbug.com/405800
+        "A07A5B743CD82A1C2579DB77D353C98A23201EEF",  // http://crbug.com/405800
+        "0F42756099D914A026DADFA182871C015735DD95"   // http://crbug.com/405800
       ]
     }
   ],
diff --git a/chrome/common/extensions/api/easy_unlock_private.idl b/chrome/common/extensions/api/easy_unlock_private.idl
index 1648853..5a33e5e 100644
--- a/chrome/common/extensions/api/easy_unlock_private.idl
+++ b/chrome/common/extensions/api/easy_unlock_private.idl
@@ -40,6 +40,9 @@
     // A phone eligible to unlock the device is detected, but it's not close
     // enough to be allowed to unlock the device.
     PHONE_NOT_NEARBY,
+    // A phone eligible to unlock the device is detected, but it is not allowed
+    // to unlock the device because it does not report its lock screen state.
+    PHONE_UNSUPPORTED,
     // The devie can be unlocked using Easy Unlock.
     AUTHENTICATED
   };
@@ -214,6 +217,20 @@
     static void seekBluetoothDeviceByAddress(DOMString deviceAddress,
                                              optional EmptyCallback callback);
 
+    // Connects the socket to a remote Bluetooth device over an insecure
+    // connection, i.e. a connection that requests no bonding and no
+    // man-in-the-middle protection. Other than the reduced security setting,
+    // behaves identically to the chrome.bluetoothSocket.connect() function.
+    // |socketId|: The socket identifier, as issued by the
+    //     chrome.bluetoothSocket API.
+    // |deviceAddress|: The Bluetooth address of the device to connect to.
+    // |uuid|: The UUID of the service to connect to.
+    // |callback|: Called when the connect attempt is complete.
+    static void connectToBluetoothServiceInsecurely(long socketId,
+                                                    DOMString deviceAddress,
+                                                    DOMString uuid,
+                                                    EmptyCallback callback);
+
     // Updates the screenlock state to reflect the Easy Unlock app state.
     static void updateScreenlockState(State state,
                                       optional EmptyCallback callback);
diff --git a/chrome/common/extensions/api/file_browser_private.idl b/chrome/common/extensions/api/file_browser_private.idl
index 5efd19a..cadfd55 100644
--- a/chrome/common/extensions/api/file_browser_private.idl
+++ b/chrome/common/extensions/api/file_browser_private.idl
@@ -239,9 +239,6 @@
   // TODO(hirono): Remove the property because of the design change of
   // multi-profile suuport.
   boolean isCurrentProfile;
-
-  // Image set of profile image.
-  ImageSet? profileImage;
 };
 
 // Mounted disk volume metadata.
diff --git a/chrome/common/extensions/docs/examples/api/desktopCapture/app.js b/chrome/common/extensions/docs/examples/api/desktopCapture/app.js
index 72bd150..70b492a 100644
--- a/chrome/common/extensions/docs/examples/api/desktopCapture/app.js
+++ b/chrome/common/extensions/docs/examples/api/desktopCapture/app.js
@@ -38,3 +38,9 @@
     chrome.desktopCapture.cancelChooseDesktopMedia(pending_request_id);
   }
 });
+
+document.querySelector('#startFromBackgroundPage')
+    .addEventListener('click', function(e) {
+      chrome.runtime.sendMessage(
+          {}, function(response) { console.log(response.farewell); });
+    });
diff --git a/chrome/common/extensions/docs/examples/api/desktopCapture/background.js b/chrome/common/extensions/docs/examples/api/desktopCapture/background.js
index 6d17ac4..c1574a5 100644
--- a/chrome/common/extensions/docs/examples/api/desktopCapture/background.js
+++ b/chrome/common/extensions/docs/examples/api/desktopCapture/background.js
@@ -10,3 +10,11 @@
     }
   });
 });
+
+chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
+  chrome.desktopCapture.chooseDesktopMedia(
+      ["screen", "window"],
+      function(id) {
+        sendResponse({"id": id});
+      });
+});
diff --git a/chrome/common/extensions/docs/examples/api/desktopCapture/index.html b/chrome/common/extensions/docs/examples/api/desktopCapture/index.html
index 57b3d37..f8db183 100644
--- a/chrome/common/extensions/docs/examples/api/desktopCapture/index.html
+++ b/chrome/common/extensions/docs/examples/api/desktopCapture/index.html
@@ -18,7 +18,11 @@
 </head>
 <body>
   <video id="video" autoplay></video>
-  <p><button id="start">Start</button><button id="cancel">Cancel</button></p>
+  <p>
+    <button id="start">Start</button>
+    <button id="cancel">Cancel</button>
+    <button id="startFromBackgroundPage">Start from background page</button>
+  </p>
   <script src="app.js"></script>
 </body>
 </html>
diff --git a/chrome/installer/util/channel_info.cc b/chrome/installer/util/channel_info.cc
index 48a4e32..cdf264b 100644
--- a/chrome/installer/util/channel_info.cc
+++ b/chrome/installer/util/channel_info.cc
@@ -27,7 +27,8 @@
 
 const wchar_t* const kChannels[] = {
   installer::kChromeChannelBeta,
-  installer::kChromeChannelDev
+  installer::kChromeChannelDev,
+  installer::kChromeChannelStableExplicit
 };
 
 const wchar_t* const kModifiers[] = {
@@ -168,7 +169,11 @@
              *const* end = &kChannels[arraysize(kChannels)]; scan != end;
          ++scan) {
       if (value_.find(*scan) != std::wstring::npos) {
-        channel_name->assign(*scan);
+        // Report channels with "stable" in them as stable (empty string).
+        if (*scan == installer::kChromeChannelStableExplicit)
+          channel_name->erase();
+        else
+          channel_name->assign(*scan);
         return true;
       }
     }
diff --git a/chrome/installer/util/channel_info_unittest.cc b/chrome/installer/util/channel_info_unittest.cc
index d08f2c3..71d908b 100644
--- a/chrome/installer/util/channel_info_unittest.cc
+++ b/chrome/installer/util/channel_info_unittest.cc
@@ -50,6 +50,16 @@
   EXPECT_TRUE(ci.GetChannelName(&channel));
   EXPECT_EQ(kChannelDev, channel);
 
+  ci.set_value(L"x64-dev");
+  EXPECT_TRUE(ci.GetChannelName(&channel));
+  EXPECT_EQ(kChannelDev, channel);
+  ci.set_value(L"x64-beta");
+  EXPECT_TRUE(ci.GetChannelName(&channel));
+  EXPECT_EQ(kChannelBeta, channel);
+  ci.set_value(L"x64-stable");
+  EXPECT_TRUE(ci.GetChannelName(&channel));
+  EXPECT_EQ(kChannelStable, channel);
+
   ci.set_value(L"fuzzy");
   EXPECT_FALSE(ci.GetChannelName(&channel));
 }
diff --git a/chrome/installer/util/util_constants.cc b/chrome/installer/util/util_constants.cc
index 67df18e..82404b5 100644
--- a/chrome/installer/util/util_constants.cc
+++ b/chrome/installer/util/util_constants.cc
@@ -263,6 +263,7 @@
 const wchar_t kChromeChannelDev[] = L"dev";
 const wchar_t kChromeChannelBeta[] = L"beta";
 const wchar_t kChromeChannelStable[] = L"";
+const wchar_t kChromeChannelStableExplicit[] = L"stable";
 
 const size_t kMaxAppModelIdLength = 64U;
 
diff --git a/chrome/installer/util/util_constants.h b/chrome/installer/util/util_constants.h
index da54a38..2bc9f3e 100644
--- a/chrome/installer/util/util_constants.h
+++ b/chrome/installer/util/util_constants.h
@@ -256,6 +256,7 @@
 extern const wchar_t kChromeChannelDev[];
 extern const wchar_t kChromeChannelBeta[];
 extern const wchar_t kChromeChannelStable[];
+extern const wchar_t kChromeChannelStableExplicit[];
 
 extern const size_t kMaxAppModelIdLength;
 
diff --git a/chrome/test/nacl/pnacl_header_test.cc b/chrome/test/nacl/pnacl_header_test.cc
index e4922aa..316103b 100644
--- a/chrome/test/nacl/pnacl_header_test.cc
+++ b/chrome/test/nacl/pnacl_header_test.cc
@@ -12,16 +12,38 @@
 #include "chrome/common/chrome_paths.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "chrome/test/nacl/nacl_browsertest_util.h"
+#include "content/public/browser/resource_dispatcher_host.h"
 #include "content/public/browser/web_contents.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/test/embedded_test_server/http_request.h"
 #include "net/test/embedded_test_server/http_response.h"
+#include "net/url_request/url_request.h"
 
 using net::test_server::BasicHttpResponse;
 using net::test_server::EmbeddedTestServer;
 using net::test_server::HttpRequest;
 using net::test_server::HttpResponse;
 
+void TestDispatcherHostDelegate::RequestBeginning(
+    net::URLRequest* request,
+    content::ResourceContext* resource_context,
+    content::AppCacheService* appcache_service,
+    content::ResourceType resource_type,
+    int child_id,
+    int route_id,
+    ScopedVector<content::ResourceThrottle>* throttles) {
+  // This checks the same condition as the one for PNaCl in
+  // AppendComponentUpdaterThrottles.
+  if (resource_type == content::RESOURCE_TYPE_OBJECT) {
+    const net::HttpRequestHeaders& headers = request->extra_request_headers();
+    std::string accept_headers;
+    if (headers.GetHeader("Accept", &accept_headers)) {
+      if (accept_headers.find("application/x-pnacl") != std::string::npos)
+        found_pnacl_header_ = true;
+    }
+  }
+}
+
 PnaclHeaderTest::PnaclHeaderTest() : noncors_loads_(0), cors_loads_(0) {}
 
 PnaclHeaderTest::~PnaclHeaderTest() {}
@@ -41,6 +63,7 @@
 void PnaclHeaderTest::RunLoadTest(const std::string& url,
                                   int expected_noncors,
                                   int expected_cors) {
+  content::ResourceDispatcherHost::Get()->SetDelegate(&test_delegate_);
   StartServer();
   LoadTestMessageHandler handler;
   content::JavascriptTestObserver observer(
@@ -57,12 +80,17 @@
   base::ScopedPathOverride component_dir(chrome::DIR_PNACL_COMPONENT);
 
   ui_test_utils::NavigateToURL(browser(), embedded_test_server()->GetURL(url));
+
   // Wait until the NMF and pexe are also loaded, not just the HTML.
   // Do this by waiting till the LoadTestMessageHandler responds.
   EXPECT_TRUE(observer.Run()) << handler.error_message();
+
+  // Now check the expectations.
   EXPECT_TRUE(handler.test_passed()) << "Test failed.";
   EXPECT_EQ(expected_noncors, noncors_loads_);
   EXPECT_EQ(expected_cors, cors_loads_);
+
+  content::ResourceDispatcherHost::Get()->SetDelegate(NULL);
 }
 
 scoped_ptr<HttpResponse> PnaclHeaderTest::WatchForPexeFetch(
@@ -81,14 +109,14 @@
   if (absolute_url.path().find(".pexe") == std::string::npos)
     return scoped_ptr<HttpResponse>();
 
-  // For pexe files, check for the special Accept header.
-  // This must match whatever is in:
-  // ppapi/native_client/src/trusted/plugin/pnacl_coordinator.cc
+  // For pexe files, check for the special Accept header,
+  // along with the expected ResourceType of the URL request.
   EXPECT_NE(0U, request.headers.count("Accept"));
   std::map<std::string, std::string>::const_iterator it =
       request.headers.find("Accept");
   EXPECT_NE(std::string::npos, it->second.find("application/x-pnacl"));
   EXPECT_NE(std::string::npos, it->second.find("*/*"));
+  EXPECT_TRUE(test_delegate_.found_pnacl_header());
 
   // Also make sure that other headers like CORS-related headers
   // are preserved when injecting the special Accept header.
diff --git a/chrome/test/nacl/pnacl_header_test.h b/chrome/test/nacl/pnacl_header_test.h
index 9134925..e698b46 100644
--- a/chrome/test/nacl/pnacl_header_test.h
+++ b/chrome/test/nacl/pnacl_header_test.h
@@ -8,6 +8,8 @@
 #include "base/compiler_specific.h"
 #include "base/memory/scoped_ptr.h"
 #include "chrome/test/base/in_process_browser_test.h"
+#include "content/public/browser/resource_dispatcher_host_delegate.h"
+#include "content/public/common/resource_type.h"
 
 namespace base {
 class FilePath;
@@ -20,6 +22,32 @@
 }
 }
 
+using content::ResourceDispatcherHostDelegate;
+
+class TestDispatcherHostDelegate : public ResourceDispatcherHostDelegate {
+ public:
+  explicit TestDispatcherHostDelegate()
+      : ResourceDispatcherHostDelegate(), found_pnacl_header_(false) {}
+
+  virtual ~TestDispatcherHostDelegate() {}
+
+  virtual void RequestBeginning(
+      net::URLRequest* request,
+      content::ResourceContext* resource_context,
+      content::AppCacheService* appcache_service,
+      content::ResourceType resource_type,
+      int child_id,
+      int route_id,
+      ScopedVector<content::ResourceThrottle>* throttles) OVERRIDE;
+
+  bool found_pnacl_header() const { return found_pnacl_header_; }
+
+ private:
+  bool found_pnacl_header_;
+
+  DISALLOW_COPY_AND_ASSIGN(TestDispatcherHostDelegate);
+};
+
 class PnaclHeaderTest : public InProcessBrowserTest {
  public:
   PnaclHeaderTest();
@@ -40,6 +68,7 @@
 
   int noncors_loads_;
   int cors_loads_;
+  TestDispatcherHostDelegate test_delegate_;
   DISALLOW_COPY_AND_ASSIGN(PnaclHeaderTest);
 };
 
diff --git a/chromeos/dbus/fake_session_manager_client.cc b/chromeos/dbus/fake_session_manager_client.cc
index c5fe549..b3aabae 100644
--- a/chromeos/dbus/fake_session_manager_client.cc
+++ b/chromeos/dbus/fake_session_manager_client.cc
@@ -13,7 +13,8 @@
 namespace chromeos {
 
 FakeSessionManagerClient::FakeSessionManagerClient()
-    : start_device_wipe_call_count_(0),
+    : first_boot_(false),
+      start_device_wipe_call_count_(0),
       notify_lock_screen_shown_call_count_(0),
       notify_lock_screen_dismissed_call_count_(0) {
 }
@@ -135,7 +136,7 @@
 void FakeSessionManagerClient::GetServerBackedStateKeys(
     const StateKeysCallback& callback) {
   base::MessageLoop::current()->PostTask(
-      FROM_HERE, base::Bind(callback, server_backed_state_keys_));
+      FROM_HERE, base::Bind(callback, server_backed_state_keys_, first_boot_));
 }
 
 const std::string& FakeSessionManagerClient::device_policy() const {
diff --git a/chromeos/dbus/fake_session_manager_client.h b/chromeos/dbus/fake_session_manager_client.h
index 2f4bb9a..f408b51 100644
--- a/chromeos/dbus/fake_session_manager_client.h
+++ b/chromeos/dbus/fake_session_manager_client.h
@@ -85,6 +85,8 @@
     server_backed_state_keys_ = state_keys;
   }
 
+  void set_first_boot(bool first_boot) { first_boot_ = first_boot; }
+
   int start_device_wipe_call_count() const {
     return start_device_wipe_call_count_;
   }
@@ -106,6 +108,7 @@
   ObserverList<Observer> observers_;
   SessionManagerClient::ActiveSessionsMap user_sessions_;
   std::vector<std::string> server_backed_state_keys_;
+  bool first_boot_;
 
   int start_device_wipe_call_count_;
   int notify_lock_screen_shown_call_count_;
diff --git a/chromeos/dbus/session_manager_client.cc b/chromeos/dbus/session_manager_client.cc
index b3ddad7..56dc850 100644
--- a/chromeos/dbus/session_manager_client.cc
+++ b/chromeos/dbus/session_manager_client.cc
@@ -525,6 +525,7 @@
   void OnGetServerBackedStateKeys(const StateKeysCallback& callback,
                                   dbus::Response* response) {
     std::vector<std::string> state_keys;
+    bool first_run = false;
     if (!response) {
       LOG(ERROR) << "Failed to call "
                  << login_manager::kSessionManagerStartSession;
@@ -547,10 +548,14 @@
               std::string(reinterpret_cast<const char*>(data), size));
         }
       }
+      if (!reader.PopBool(&first_run)) {
+        // TODO(tnagel): After 2014-11-19 turn this warning into an error.
+        LOG(WARNING) << "Chrome OS is too old. Defaulting to first_run=false.";
+      }
     }
 
     if (!callback.is_null())
-      callback.Run(state_keys);
+      callback.Run(state_keys, first_run);
   }
 
 
@@ -713,7 +718,7 @@
       state_keys.push_back(crypto::SHA256HashString(base::IntToString(i)));
 
     if (!callback.is_null())
-      callback.Run(state_keys);
+      callback.Run(state_keys, false);
   }
 
  private:
diff --git a/chromeos/dbus/session_manager_client.h b/chromeos/dbus/session_manager_client.h
index d4c0706..b007bee 100644
--- a/chromeos/dbus/session_manager_client.h
+++ b/chromeos/dbus/session_manager_client.h
@@ -168,13 +168,16 @@
   virtual void SetFlagsForUser(const std::string& username,
                                const std::vector<std::string>& flags) = 0;
 
-  typedef base::Callback<void(const std::vector<std::string>& state_keys)>
-      StateKeysCallback;
+  typedef base::Callback<void(const std::vector<std::string>& state_keys,
+                              bool first_boot)> StateKeysCallback;
 
   // Get the currently valid server-backed state keys for the device.
   // Server-backed state keys are opaque, device-unique, time-dependent,
   // client-determined identifiers that are used for keying state in the cloud
-  // for the device to retrieve after a device factory reset.
+  // for the device to retrieve after a device factory reset. The |first_boot|
+  // parameter indicates if this is the very first boot of the device after
+  // being assembled (even a "factory reset" will not trigger this again) in
+  // which case doing the enrollment check makes no sense.
   //
   // The state keys are returned asynchronously via |callback|. The callback
   // will be invoked with an empty state key vector in case of errors.
diff --git a/components/autofill/core/common/form_data.cc b/components/autofill/core/common/form_data.cc
index 83d8173..b720ae40 100644
--- a/components/autofill/core/common/form_data.cc
+++ b/components/autofill/core/common/form_data.cc
@@ -13,7 +13,7 @@
 
 namespace {
 
-const int kPickleVersion = 1;
+const int kPickleVersion = 2;
 
 bool ReadGURL(PickleIterator* iter, GURL* url) {
   std::string spec;
@@ -48,6 +48,11 @@
   return true;
 }
 
+void LogDeserializationError(int version) {
+  DVLOG(1) << "Could not deserialize version " << version
+             << " FormData from pickle.";
+}
+
 }  // namespace
 
 FormData::FormData()
@@ -113,24 +118,36 @@
 bool DeserializeFormData(PickleIterator* iter, FormData* form_data) {
   int version;
   if (!iter->ReadInt(&version)) {
-    LOG(ERROR) << "Bad pickle of FormData, no version present";
+    DVLOG(1) << "Bad pickle of FormData, no version present";
     return false;
   }
 
   switch (version) {
     case 1: {
+      base::string16 method;
+      if (!iter->ReadString16(&form_data->name) ||
+          !iter->ReadString16(&method) ||
+          !ReadGURL(iter, &form_data->origin) ||
+          !ReadGURL(iter, &form_data->action) ||
+          !iter->ReadBool(&form_data->user_submitted) ||
+          !DeserializeFormFieldDataVector(iter, &form_data->fields)) {
+        LogDeserializationError(version);
+        return false;
+      }
+      break;
+    }
+    case 2:
       if (!iter->ReadString16(&form_data->name) ||
           !ReadGURL(iter, &form_data->origin) ||
           !ReadGURL(iter, &form_data->action) ||
           !iter->ReadBool(&form_data->user_submitted) ||
           !DeserializeFormFieldDataVector(iter, &form_data->fields)) {
-        LOG(ERROR) << "Could not deserialize FormData from pickle";
+        LogDeserializationError(version);
         return false;
       }
       break;
-    }
     default: {
-      LOG(ERROR) << "Unknown FormData pickle version " << version;
+      DVLOG(1) << "Unknown FormData pickle version " << version;
       return false;
     }
   }
diff --git a/components/autofill/core/common/form_data_unittest.cc b/components/autofill/core/common/form_data_unittest.cc
index 73d8256..4f57129 100644
--- a/components/autofill/core/common/form_data_unittest.cc
+++ b/components/autofill/core/common/form_data_unittest.cc
@@ -6,8 +6,45 @@
 
 #include "base/pickle.h"
 #include "base/strings/utf_string_conversions.h"
+#include "components/autofill/core/common/form_field_data.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
+namespace {
+
+// This function serializes the form data into the pickle in version one format.
+// It should always be possible to deserialize it using DeserializeFormData(),
+// even when version changes. See kPickleVersion in form_data.cc.
+void SerializeInVersion1Format(const autofill::FormData& form_data,
+                               Pickle* pickle) {
+  pickle->WriteInt(1);
+  pickle->WriteString16(form_data.name);
+  base::string16 method(base::ASCIIToUTF16("POST"));
+  pickle->WriteString16(method);
+  pickle->WriteString(form_data.origin.spec());
+  pickle->WriteString(form_data.action.spec());
+  pickle->WriteBool(form_data.user_submitted);
+  pickle->WriteInt(static_cast<int>(form_data.fields.size()));
+  for (size_t i = 0; i < form_data.fields.size(); ++i) {
+    SerializeFormFieldData(form_data.fields[i], pickle);
+  }
+}
+
+// This function serializes the form data into the pickle in incorrect format
+// (no version number).
+void SerializeIncorrectFormat(const autofill::FormData& form_data,
+                               Pickle* pickle) {
+  pickle->WriteString16(form_data.name);
+  pickle->WriteString(form_data.origin.spec());
+  pickle->WriteString(form_data.action.spec());
+  pickle->WriteBool(form_data.user_submitted);
+  pickle->WriteInt(static_cast<int>(form_data.fields.size()));
+  for (size_t i = 0; i < form_data.fields.size(); ++i) {
+    SerializeFormFieldData(form_data.fields[i], pickle);
+  }
+}
+
+}
+
 namespace autofill {
 
 TEST(FormDataTest, SerializeAndDeserialize) {
@@ -53,4 +90,88 @@
   EXPECT_EQ(actual, data);
 }
 
+TEST(FormDataTest, Serialize_v1_Deserialize_vCurrent) {
+  FormData data;
+  data.name = base::ASCIIToUTF16("name");
+  data.origin = GURL("origin");
+  data.action = GURL("action");
+  data.user_submitted = true;
+
+  FormFieldData field_data;
+  field_data.label = base::ASCIIToUTF16("label");
+  field_data.name = base::ASCIIToUTF16("name");
+  field_data.value = base::ASCIIToUTF16("value");
+  field_data.form_control_type = "password";
+  field_data.autocomplete_attribute = "off";
+  field_data.max_length = 200;
+  field_data.is_autofilled = true;
+  field_data.is_checked = true;
+  field_data.is_checkable = true;
+  field_data.is_focusable = true;
+  field_data.should_autocomplete = false;
+  field_data.text_direction = base::i18n::RIGHT_TO_LEFT;
+  field_data.option_values.push_back(base::ASCIIToUTF16("First"));
+  field_data.option_values.push_back(base::ASCIIToUTF16("Second"));
+  field_data.option_contents.push_back(base::ASCIIToUTF16("First"));
+  field_data.option_contents.push_back(base::ASCIIToUTF16("Second"));
+
+  data.fields.push_back(field_data);
+
+  // Change a few fields.
+  field_data.max_length = 150;
+  field_data.option_values.push_back(base::ASCIIToUTF16("Third"));
+  field_data.option_contents.push_back(base::ASCIIToUTF16("Third"));
+  data.fields.push_back(field_data);
+
+  Pickle pickle;
+  SerializeInVersion1Format(data, &pickle);
+
+  PickleIterator iter(pickle);
+  FormData actual;
+  EXPECT_TRUE(DeserializeFormData(&iter, &actual));
+
+  EXPECT_EQ(actual, data);
+}
+
+TEST(FormDataTest, SerializeIncorrectFormatAndDeserialize) {
+  FormData data;
+  data.name = base::ASCIIToUTF16("name");
+  data.origin = GURL("origin");
+  data.action = GURL("action");
+  data.user_submitted = true;
+
+  FormFieldData field_data;
+  field_data.label = base::ASCIIToUTF16("label");
+  field_data.name = base::ASCIIToUTF16("name");
+  field_data.value = base::ASCIIToUTF16("value");
+  field_data.form_control_type = "password";
+  field_data.autocomplete_attribute = "off";
+  field_data.max_length = 200;
+  field_data.is_autofilled = true;
+  field_data.is_checked = true;
+  field_data.is_checkable = true;
+  field_data.is_focusable = true;
+  field_data.should_autocomplete = false;
+  field_data.text_direction = base::i18n::RIGHT_TO_LEFT;
+  field_data.option_values.push_back(base::ASCIIToUTF16("First"));
+  field_data.option_values.push_back(base::ASCIIToUTF16("Second"));
+  field_data.option_contents.push_back(base::ASCIIToUTF16("First"));
+  field_data.option_contents.push_back(base::ASCIIToUTF16("Second"));
+
+  data.fields.push_back(field_data);
+
+  // Change a few fields.
+  field_data.max_length = 150;
+  field_data.option_values.push_back(base::ASCIIToUTF16("Third"));
+  field_data.option_contents.push_back(base::ASCIIToUTF16("Third"));
+  data.fields.push_back(field_data);
+
+  Pickle pickle;
+  SerializeIncorrectFormat(data, &pickle);
+
+  PickleIterator iter(pickle);
+  FormData actual;
+  EXPECT_FALSE(DeserializeFormData(&iter, &actual));
+}
+
 }  // namespace autofill
diff --git a/components/copresence/rpc/rpc_handler.cc b/components/copresence/rpc/rpc_handler.cc
index 72c4f90..0b60a77 100644
--- a/components/copresence/rpc/rpc_handler.cc
+++ b/components/copresence/rpc/rpc_handler.cc
@@ -206,40 +206,6 @@
   signals->set_observed_time_millis(base::Time::Now().ToJsTime());
 }
 
-OptInStateFilter* CreateOptedInOrOutFilter() {
-  OptInStateFilter* filter = new OptInStateFilter;
-  filter->add_allowed_opt_in_state(copresence::OPTED_IN);
-  filter->add_allowed_opt_in_state(copresence::OPTED_OUT);
-  return filter;
-}
-
-void AllowOptedOutMessages(ReportRequest* request) {
-  // TODO(ckehoe): Collapse this pattern into ProcessPublish()
-  // and ProcessSubscribe() methods.
-
-  if (request->has_manage_messages_request()) {
-    RepeatedPtrField<PublishedMessage>* messages = request
-        ->mutable_manage_messages_request()->mutable_message_to_publish();
-    for (int i = 0; i < messages->size(); ++i) {
-      PublishedMessage* message = messages->Mutable(i);
-      if (!message->has_opt_in_state_filter())
-        message->set_allocated_opt_in_state_filter(CreateOptedInOrOutFilter());
-    }
-  }
-
-  if (request->has_manage_subscriptions_request()) {
-    RepeatedPtrField<Subscription>* subscriptions =
-        request->mutable_manage_subscriptions_request()->mutable_subscription();
-    for (int i = 0; i < subscriptions->size(); ++i) {
-      Subscription* subscription = subscriptions->Mutable(i);
-      if (!subscription->has_opt_in_state_filter()) {
-        subscription->set_allocated_opt_in_state_filter(
-            CreateOptedInOrOutFilter());
-      }
-    }
-  }
-}
-
 }  // namespace
 
 // Public methods
@@ -306,7 +272,25 @@
 
   AddPlayingTokens(request.get());
 
-  AllowOptedOutMessages(request.get());
+  // TODO(ckehoe): Currently the server supports only BROADCAST_AND_SCAN.
+  // Remove this once b/16715253 is fixed.
+  if (request->has_manage_messages_request()) {
+    RepeatedPtrField<PublishedMessage>* messages = request
+        ->mutable_manage_messages_request()->mutable_message_to_publish();
+    for (int i = 0; i < messages->size(); ++i) {
+      messages->Mutable(i)->mutable_token_exchange_strategy()
+          ->set_broadcast_scan_configuration(BROADCAST_AND_SCAN);
+    }
+  }
+  if (request->has_manage_subscriptions_request()) {
+    RepeatedPtrField<Subscription>* subscriptions =
+        request->mutable_manage_subscriptions_request()->mutable_subscription();
+    for (int i = 0; i < subscriptions->size(); ++i) {
+      subscriptions->Mutable(i)->mutable_token_exchange_strategy()
+          ->set_broadcast_scan_configuration(BROADCAST_AND_SCAN);
+    }
+  }
+
   SendServerRequest(kReportRequestRpcName,
                     app_id,
                     request.Pass(),
diff --git a/components/copresence/rpc/rpc_handler_unittest.cc b/components/copresence/rpc/rpc_handler_unittest.cc
index 962f8d9..b8d6b9b 100644
--- a/components/copresence/rpc/rpc_handler_unittest.cc
+++ b/components/copresence/rpc/rpc_handler_unittest.cc
@@ -256,39 +256,6 @@
 }
 #endif
 
-TEST_F(RpcHandlerTest, AllowOptedOutMessages) {
-  // Request with no filter specified.
-  scoped_ptr<ReportRequest> report(new ReportRequest);
-  report->mutable_manage_messages_request()->add_message_to_publish()
-      ->set_id("message");
-  report->mutable_manage_subscriptions_request()->add_subscription()
-      ->set_id("subscription");
-  rpc_handler_.SendReportRequest(report.Pass());
-  const OptInStateFilter& filter =
-      GetMessagesPublished().Get(0).opt_in_state_filter();
-  ASSERT_EQ(2, filter.allowed_opt_in_state_size());
-  EXPECT_EQ(OPTED_IN, filter.allowed_opt_in_state(0));
-  EXPECT_EQ(OPTED_OUT, filter.allowed_opt_in_state(1));
-  EXPECT_EQ(2, GetSubscriptionsSent().Get(0).opt_in_state_filter()
-      .allowed_opt_in_state_size());
-
-  // Request with filters already specified.
-  report.reset(new ReportRequest);
-  report->mutable_manage_messages_request()->add_message_to_publish()
-      ->mutable_opt_in_state_filter()->add_allowed_opt_in_state(OPTED_IN);
-  report->mutable_manage_subscriptions_request()->add_subscription()
-      ->mutable_opt_in_state_filter()->add_allowed_opt_in_state(OPTED_OUT);
-  rpc_handler_.SendReportRequest(report.Pass());
-  const OptInStateFilter& publish_filter =
-      GetMessagesPublished().Get(0).opt_in_state_filter();
-  ASSERT_EQ(1, publish_filter.allowed_opt_in_state_size());
-  EXPECT_EQ(OPTED_IN, publish_filter.allowed_opt_in_state(0));
-  const OptInStateFilter& subscription_filter =
-      GetSubscriptionsSent().Get(0).opt_in_state_filter();
-  ASSERT_EQ(1, subscription_filter.allowed_opt_in_state_size());
-  EXPECT_EQ(OPTED_OUT, subscription_filter.allowed_opt_in_state(0));
-}
-
 TEST_F(RpcHandlerTest, CreateRequestHeader) {
   SetDeviceId("CreateRequestHeader Device ID");
   rpc_handler_.SendReportRequest(make_scoped_ptr(new ReportRequest),
diff --git a/components/nacl/renderer/ppb_nacl_private_impl.cc b/components/nacl/renderer/ppb_nacl_private_impl.cc
index 5090ad1ac..36c9272 100644
--- a/components/nacl/renderer/ppb_nacl_private_impl.cc
+++ b/components/nacl/renderer/ppb_nacl_private_impl.cc
@@ -1699,6 +1699,7 @@
   url_request.addHTTPHeaderField(
       blink::WebString::fromUTF8("Accept"),
       blink::WebString::fromUTF8("application/x-pnacl, */*"));
+  url_request.setRequestContext(blink::WebURLRequest::RequestContextObject);
   downloader->Load(url_request);
 }
 
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json
index d0f33a0..d0f3c17 100644
--- a/components/policy/resources/policy_templates.json
+++ b/components/policy/resources/policy_templates.json
@@ -6607,8 +6607,7 @@
 
       If you disable this setting, users will not be allowed to use EasyUnlock.
 
-      If this policy is left not set, EasyUnlock is allowed if the requirements for the feature are satified.
-      ''',
+      If this policy is left not set, the default is not allowed for enterprise-managed users and allowed for non-managed users.''',
     },
     {
       'name': 'SessionLocales',
@@ -6647,7 +6646,7 @@
       'name': 'BrowserGuestModeEnabled',
       'type': 'main',
       'schema': { 'type': 'boolean' },
-      'supported_on': ['chrome.*:39-'],
+      'supported_on': ['chrome.*:38-'],
       'features': {
         'dynamic_refresh': True,
         'per_profile': False,
diff --git a/components/suggestions.gypi b/components/suggestions.gypi
index 0dae348..f4820ec 100644
--- a/components/suggestions.gypi
+++ b/components/suggestions.gypi
@@ -31,6 +31,8 @@
         'suggestions/suggestions_service.h',
         'suggestions/suggestions_store.cc',
         'suggestions/suggestions_store.h',
+        'suggestions/suggestions_utils.cc',
+        'suggestions/suggestions_utils.h',
       ],
       'variables': {
         'proto_in_dir': 'suggestions/proto',
diff --git a/components/suggestions/BUILD.gn b/components/suggestions/BUILD.gn
index 1fe2ff9..d505c40 100644
--- a/components/suggestions/BUILD.gn
+++ b/components/suggestions/BUILD.gn
@@ -13,6 +13,8 @@
     "suggestions_service.h",
     "suggestions_store.cc",
     "suggestions_store.h",
+    "suggestions_utils.cc",
+    "suggestions_utils.h",
   ]
 
   deps = [
diff --git a/components/suggestions/suggestions_service.cc b/components/suggestions/suggestions_service.cc
index db1e3fc..b12aae1 100644
--- a/components/suggestions/suggestions_service.cc
+++ b/components/suggestions/suggestions_service.cc
@@ -156,8 +156,25 @@
 }
 
 void SuggestionsService::FetchSuggestionsData(
+    SyncState sync_state,
     SuggestionsService::ResponseCallback callback) {
   DCHECK(thread_checker_.CalledOnValidThread());
+  if (sync_state == NOT_INITIALIZED_ENABLED) {
+    // Sync is not initialized yet, but enabled. Serve previously cached
+    // suggestions if available.
+    waiting_requestors_.push_back(callback);
+    ServeFromCache();
+    return;
+  } else if (sync_state == SYNC_OR_HISTORY_SYNC_DISABLED) {
+    // Cancel any ongoing request (and the timeout closure). We must no longer
+    // interact with the server.
+    pending_request_.reset(NULL);
+    pending_timeout_closure_.reset(NULL);
+    suggestions_store_->ClearSuggestions();
+    callback.Run(SuggestionsProfile());
+    DispatchRequestsAndClear(SuggestionsProfile(), &waiting_requestors_);
+    return;
+  }
 
   FetchSuggestionsDataNoTimeout(callback);
 
@@ -170,21 +187,6 @@
       base::TimeDelta::FromMilliseconds(request_timeout_ms_));
 }
 
-void SuggestionsService::FetchSuggestionsDataNoTimeout(
-    SuggestionsService::ResponseCallback callback) {
-  DCHECK(thread_checker_.CalledOnValidThread());
-  if (pending_request_.get()) {
-    // Request already exists, so just add requestor to queue.
-    waiting_requestors_.push_back(callback);
-    return;
-  }
-
-  // Form new request.
-  DCHECK(waiting_requestors_.empty());
-  waiting_requestors_.push_back(callback);
-  IssueRequest(suggestions_url_);
-}
-
 void SuggestionsService::GetPageThumbnail(
     const GURL& url,
     base::Callback<void(const GURL&, const SkBitmap*)> callback) {
@@ -235,6 +237,33 @@
   BlacklistStore::RegisterProfilePrefs(registry);
 }
 
+void SuggestionsService::SetDefaultExpiryTimestamp(
+    SuggestionsProfile* suggestions, int64 default_timestamp_usec) {
+  for (int i = 0; i < suggestions->suggestions_size(); ++i) {
+    ChromeSuggestion* suggestion = suggestions->mutable_suggestions(i);
+    // Do not set expiry if the server has already provided a more specific
+    // expiry time for this suggestion.
+    if (!suggestion->has_expiry_ts()) {
+      suggestion->set_expiry_ts(default_timestamp_usec);
+    }
+  }
+}
+
+void SuggestionsService::FetchSuggestionsDataNoTimeout(
+    SuggestionsService::ResponseCallback callback) {
+  DCHECK(thread_checker_.CalledOnValidThread());
+  if (pending_request_.get()) {
+    // Request already exists, so just add requestor to queue.
+    waiting_requestors_.push_back(callback);
+    return;
+  }
+
+  // Form new request.
+  DCHECK(waiting_requestors_.empty());
+  waiting_requestors_.push_back(callback);
+  IssueRequest(suggestions_url_);
+}
+
 void SuggestionsService::IssueRequest(const GURL& url) {
   pending_request_.reset(CreateSuggestionsRequest(url));
   pending_request_->Start();
@@ -330,18 +359,6 @@
   ScheduleBlacklistUpload(true);
 }
 
-void SuggestionsService::SetDefaultExpiryTimestamp(
-    SuggestionsProfile* suggestions, int64 default_timestamp_usec) {
-  for (int i = 0; i < suggestions->suggestions_size(); ++i) {
-    ChromeSuggestion* suggestion = suggestions->mutable_suggestions(i);
-    // Do not set expiry if the server has already provided a more specific
-    // expiry time for this suggestion.
-    if (!suggestion->has_expiry_ts()) {
-      suggestion->set_expiry_ts(default_timestamp_usec);
-    }
-  }
-}
-
 void SuggestionsService::Shutdown() {
   // Cancel pending request and timeout closure, then serve existing requestors
   // from cache.
diff --git a/components/suggestions/suggestions_service.h b/components/suggestions/suggestions_service.h
index 3aa03a0..e495f7f 100644
--- a/components/suggestions/suggestions_service.h
+++ b/components/suggestions/suggestions_service.h
@@ -19,6 +19,7 @@
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/suggestions/image_manager.h"
 #include "components/suggestions/proto/suggestions.pb.h"
+#include "components/suggestions/suggestions_utils.h"
 #include "net/url_request/url_fetcher_delegate.h"
 #include "ui/gfx/image/image_skia.h"
 #include "url/gurl.h"
@@ -64,16 +65,20 @@
   // Whether the user is part of a control group.
   static bool IsControlGroup();
 
-  // Request suggestions data, which will be passed to |callback|. Initiates a
-  // fetch request unless a pending one exists. To prevent multiple requests,
-  // we place all |callback|s in a queue and update them simultaneously when
-  // fetch request completes. Also posts a task to execute OnRequestTimeout
-  // if the request hasn't completed in a given amount of time.
-  void FetchSuggestionsData(ResponseCallback callback);
-
-  // Similar to FetchSuggestionsData but doesn't post a task to execute
-  // OnDelaySinceFetch.
-  void FetchSuggestionsDataNoTimeout(ResponseCallback callback);
+  // Request suggestions data, which will be passed to |callback|. |sync_state|
+  // will influence the behavior of this function (see SyncState definition).
+  //
+  // |sync_state| must be specified based on the current state of the system
+  // (see suggestions::GetSyncState). Callers should call this function again if
+  // sync state changes.
+  //
+  // If state allows for a network request, it is initiated unless a pending one
+  // exists. To prevent multiple requests, all |callback|s are placed in a queue
+  // and are updated simultaneously when the fetch completes. Also posts a task
+  // to execute OnRequestTimeout if the request hasn't completed in a given
+  // amount of time.
+  void FetchSuggestionsData(SyncState sync_state,
+                            ResponseCallback callback);
 
   // Retrieves stored thumbnail for website |url| asynchronously. Calls
   // |callback| with Bitmap pointer if found, and NULL otherwise.
@@ -97,10 +102,15 @@
   void SetDefaultExpiryTimestamp(SuggestionsProfile* suggestions,
                                  int64 timestamp_usec);
  private:
+  friend class SuggestionsServiceTest;
   FRIEND_TEST_ALL_PREFIXES(SuggestionsServiceTest, BlacklistURLFails);
   FRIEND_TEST_ALL_PREFIXES(SuggestionsServiceTest, FetchSuggestionsData);
   FRIEND_TEST_ALL_PREFIXES(SuggestionsServiceTest, UpdateBlacklistDelay);
 
+  // Similar to FetchSuggestionsData but doesn't post a task to execute
+  // OnDelaySinceFetch.
+  void FetchSuggestionsDataNoTimeout(ResponseCallback callback);
+
   // Issue a request.
   void IssueRequest(const GURL& url);
 
diff --git a/components/suggestions/suggestions_service_unittest.cc b/components/suggestions/suggestions_service_unittest.cc
index 819e92b..a4d6058 100644
--- a/components/suggestions/suggestions_service_unittest.cc
+++ b/components/suggestions/suggestions_service_unittest.cc
@@ -18,6 +18,7 @@
 #include "components/suggestions/image_manager.h"
 #include "components/suggestions/proto/suggestions.pb.h"
 #include "components/suggestions/suggestions_store.h"
+#include "components/suggestions/suggestions_utils.h"
 #include "components/variations/entropy_provider.h"
 #include "components/variations/variations_associated_data.h"
 #include "net/http/http_response_headers.h"
@@ -326,6 +327,7 @@
 
   // Send the request. Empty data will be returned to the callback.
   suggestions_service->FetchSuggestionsData(
+      INITIALIZED_ENABLED_HISTORY,  // Normal mode.
       base::Bind(&SuggestionsServiceTest::ExpectEmptySuggestionsProfile,
                  base::Unretained(this)));
 
@@ -361,6 +363,7 @@
 
   // Send the request. Empty data will be returned to the callback.
   suggestions_service->FetchSuggestionsData(
+      INITIALIZED_ENABLED_HISTORY,  // Normal mode.
       base::Bind(&SuggestionsServiceTest::ExpectEmptySuggestionsProfile,
                  base::Unretained(this)));
 
@@ -371,6 +374,62 @@
   EXPECT_EQ(1, suggestions_empty_data_count_);
 }
 
+TEST_F(SuggestionsServiceTest, FetchSuggestionsDataSyncDisabled) {
+  // Field trial enabled with a specific suggestions URL.
+  EnableFieldTrial(kFakeSuggestionsURL, kFakeSuggestionsCommonParams,
+                   kFakeBlacklistPath, kFakeBlacklistUrlParam, false);
+  scoped_ptr<SuggestionsService> suggestions_service(
+      CreateSuggestionsServiceWithMocks());
+  EXPECT_TRUE(suggestions_service != NULL);
+
+  // Set up expectations on the SuggestionsStore.
+  EXPECT_CALL(*mock_suggestions_store_, ClearSuggestions());
+
+  // Send the request. Cache is cleared and empty data will be returned to the
+  // callback.
+  suggestions_service->FetchSuggestionsData(
+      SYNC_OR_HISTORY_SYNC_DISABLED,
+      base::Bind(&SuggestionsServiceTest::ExpectEmptySuggestionsProfile,
+                 base::Unretained(this)));
+
+  // Wait for posted task to complete.
+  base::MessageLoop::current()->RunUntilIdle();
+
+  // Ensure that ExpectEmptySuggestionsProfile ran once.
+  EXPECT_EQ(1, suggestions_empty_data_count_);
+}
+
+TEST_F(SuggestionsServiceTest, FetchSuggestionsDataSyncNotInitializedEnabled) {
+  // Field trial enabled with a specific suggestions URL.
+  EnableFieldTrial(kFakeSuggestionsURL, kFakeSuggestionsCommonParams,
+                   kFakeBlacklistPath, kFakeBlacklistUrlParam, false);
+  scoped_ptr<SuggestionsService> suggestions_service(
+      CreateSuggestionsServiceWithMocks());
+  EXPECT_TRUE(suggestions_service != NULL);
+  scoped_ptr<SuggestionsProfile> suggestions_profile(
+      CreateSuggestionsProfile());
+
+  // Expectations.
+  EXPECT_CALL(*mock_suggestions_store_, LoadSuggestions(_))
+      .WillOnce(DoAll(SetArgPointee<0>(*suggestions_profile), Return(true)));
+  EXPECT_CALL(*mock_thumbnail_manager_,
+              Initialize(EqualsProto(*suggestions_profile)));
+  EXPECT_CALL(*mock_blacklist_store_, FilterSuggestions(_));
+
+  // Send the request. In this state, cached data will be returned to the
+  // caller.
+  suggestions_service->FetchSuggestionsData(
+      NOT_INITIALIZED_ENABLED,
+      base::Bind(&SuggestionsServiceTest::CheckSuggestionsData,
+                 base::Unretained(this)));
+
+  // Wait for posted task to complete.
+  base::MessageLoop::current()->RunUntilIdle();
+
+  // Ensure that CheckSuggestionsData ran once.
+  EXPECT_EQ(1, suggestions_data_check_count_);
+}
+
 TEST_F(SuggestionsServiceTest, BlacklistURL) {
   EnableFieldTrial(kFakeSuggestionsURL, kFakeSuggestionsCommonParams,
                    kFakeBlacklistPath, kFakeBlacklistUrlParam, false);
diff --git a/components/suggestions/suggestions_utils.cc b/components/suggestions/suggestions_utils.cc
new file mode 100644
index 0000000..9c32791
--- /dev/null
+++ b/components/suggestions/suggestions_utils.cc
@@ -0,0 +1,22 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/suggestions/suggestions_utils.h"
+
+namespace suggestions {
+
+SyncState GetSyncState(bool sync_enabled,
+                       bool sync_initialized,
+                       bool history_sync_enabled) {
+  if (!sync_enabled)
+    return SYNC_OR_HISTORY_SYNC_DISABLED;
+
+  if (!sync_initialized)
+    return NOT_INITIALIZED_ENABLED;
+
+  return history_sync_enabled ?
+      INITIALIZED_ENABLED_HISTORY : SYNC_OR_HISTORY_SYNC_DISABLED;
+}
+
+}  // namespace suggestions
diff --git a/components/suggestions/suggestions_utils.h b/components/suggestions/suggestions_utils.h
new file mode 100644
index 0000000..eedef03
--- /dev/null
+++ b/components/suggestions/suggestions_utils.h
@@ -0,0 +1,38 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_SUGGESTIONS_SUGGESTIONS_UTILS_H_
+#define COMPONENTS_SUGGESTIONS_SUGGESTIONS_UTILS_H_
+
+namespace suggestions {
+
+// Establishes the different sync states that users of SuggestionsService can
+// specify. There are three different concepts in the sync service: initialized,
+// sync enabled and history sync enabled.
+enum SyncState {
+  // State: Sync service is not initialized, yet not disabled. History sync
+  //     state is unknown (since not initialized).
+  // Behavior: Does not issue a server request, but serves from cache if
+  //     available.
+  NOT_INITIALIZED_ENABLED,
+
+  // State: Sync service is initialized, sync is enabled and history sync is
+  //     enabled.
+  // Behavior: Update suggestions from the server. Serve from cache on timeout.
+  INITIALIZED_ENABLED_HISTORY,
+
+  // State: Sync service is disabled or history sync is disabled.
+  // Behavior: Do not issue a server request. Clear the cache. Serve empty
+  //     suggestions.
+  SYNC_OR_HISTORY_SYNC_DISABLED,
+};
+
+// Users of SuggestionsService should always use this function to get SyncState.
+SyncState GetSyncState(bool sync_enabled,
+                       bool sync_initialized,
+                       bool history_sync_enabled);
+
+}  // namespace suggestions
+
+#endif  // COMPONENTS_SUGGESTIONS_SUGGESTIONS_UTILS_H_
diff --git a/content/browser/android/content_view_render_view.cc b/content/browser/android/content_view_render_view.cc
index 06590fa..00d9ad0 100644
--- a/content/browser/android/content_view_render_view.cc
+++ b/content/browser/android/content_view_render_view.cc
@@ -16,6 +16,7 @@
 #include "content/public/browser/android/compositor.h"
 #include "content/public/browser/android/content_view_layer_renderer.h"
 #include "content/public/browser/android/layer_tree_build_helper.h"
+#include "content/public/browser/android/ui_resource_provider.h"
 #include "jni/ContentViewRenderView_jni.h"
 #include "ui/gfx/android/java_bitmap.h"
 #include "ui/gfx/size.h"
@@ -70,6 +71,7 @@
   LayerTreeBuildHelper* build_helper =
       reinterpret_cast<LayerTreeBuildHelper*>(native_build_helper);
   layer_tree_build_helper_.reset(build_helper);
+  InitCompositor();
 }
 // static
 static jlong Init(JNIEnv* env,
@@ -120,6 +122,12 @@
 void ContentViewRenderView::SetOverlayVideoMode(
     JNIEnv* env, jobject obj, bool enabled) {
   compositor_->SetHasTransparentBackground(enabled);
+  SetNeedsComposite(env, obj);
+}
+
+void ContentViewRenderView::SetNeedsComposite(JNIEnv* env, jobject obj) {
+  if (compositor_)
+    compositor_->SetNeedsComposite();
 }
 
 void ContentViewRenderView::Layout() {
@@ -136,4 +144,11 @@
   if (!compositor_)
     compositor_.reset(Compositor::Create(this, root_window_));
 }
+
+jlong ContentViewRenderView::GetUIResourceProvider(JNIEnv* env,
+                                                   jobject obj) {
+  if (!compositor_)
+    return 0;
+  return reinterpret_cast<intptr_t>(&compositor_->GetUIResourceProvider());
+}
 }  // namespace content
diff --git a/content/browser/android/content_view_render_view.h b/content/browser/android/content_view_render_view.h
index 2f1bcc1..cc8fe80 100644
--- a/content/browser/android/content_view_render_view.h
+++ b/content/browser/android/content_view_render_view.h
@@ -19,6 +19,7 @@
 namespace content {
 class Compositor;
 class LayerTreeBuildHelper;
+class UIResourceProvider;
 
 class ContentViewRenderView : public CompositorClient {
  public:
@@ -41,6 +42,11 @@
                       jint format, jint width, jint height, jobject surface);
   jboolean Composite(JNIEnv* env, jobject obj);
   void SetOverlayVideoMode(JNIEnv* env, jobject obj, bool enabled);
+  void SetNeedsComposite(JNIEnv* env, jobject obj);
+
+  // TODO(yusufo): Remove this once the compositor code is
+  // refactored to use a unified system.
+  jlong GetUIResourceProvider(JNIEnv* env, jobject obj);
 
   // CompositorClient implementation
   virtual void Layout() OVERRIDE;
diff --git a/content/browser/android/in_process/synchronous_compositor_factory_impl.cc b/content/browser/android/in_process/synchronous_compositor_factory_impl.cc
index af50011..e624e9b 100644
--- a/content/browser/android/in_process/synchronous_compositor_factory_impl.cc
+++ b/content/browser/android/in_process/synchronous_compositor_factory_impl.cc
@@ -44,38 +44,41 @@
       attributes, &in_process_attribs);
   in_process_attribs.lose_context_when_out_of_memory = true;
 
-  scoped_ptr<gpu::GLInProcessContext> context(
-      gpu::GLInProcessContext::Create(NULL /* service */,
-                                      NULL /* surface */,
-                                      true /* is_offscreen */,
-                                      gfx::kNullAcceleratedWidget,
-                                      gfx::Size(1, 1),
-                                      NULL /* share_context */,
-                                      false /* share_resources */,
-                                      in_process_attribs,
-                                      gpu_preference));
+  scoped_ptr<gpu::GLInProcessContext> context(gpu::GLInProcessContext::Create(
+      NULL /* service */,
+      NULL /* surface */,
+      true /* is_offscreen */,
+      gfx::kNullAcceleratedWidget,
+      gfx::Size(1, 1),
+      NULL /* share_context */,
+      false /* share_resources */,
+      in_process_attribs,
+      gpu_preference,
+      gpu::GLInProcessContextSharedMemoryLimits()));
   return context.Pass();
 }
 
 scoped_ptr<gpu::GLInProcessContext> CreateContext(
     scoped_refptr<gpu::InProcessCommandBuffer::Service> service,
-    gpu::GLInProcessContext* share_context) {
+    gpu::GLInProcessContext* share_context,
+    const gpu::GLInProcessContextSharedMemoryLimits& mem_limits) {
   const gfx::GpuPreference gpu_preference = gfx::PreferDiscreteGpu;
   gpu::gles2::ContextCreationAttribHelper in_process_attribs;
   WebGraphicsContext3DImpl::ConvertAttributes(
       GetDefaultAttribs(), &in_process_attribs);
   in_process_attribs.lose_context_when_out_of_memory = true;
 
-  scoped_ptr<gpu::GLInProcessContext> context(
-      gpu::GLInProcessContext::Create(service,
-                                      NULL /* surface */,
-                                      false /* is_offscreen */,
-                                      gfx::kNullAcceleratedWidget,
-                                      gfx::Size(1, 1),
-                                      share_context,
-                                      false /* share_resources */,
-                                      in_process_attribs,
-                                      gpu_preference));
+  scoped_ptr<gpu::GLInProcessContext> context(gpu::GLInProcessContext::Create(
+      service,
+      NULL /* surface */,
+      false /* is_offscreen */,
+      gfx::kNullAcceleratedWidget,
+      gfx::Size(1, 1),
+      share_context,
+      false /* share_resources */,
+      in_process_attribs,
+      gpu_preference,
+      mem_limits));
   return context.Pass();
 }
 
@@ -184,10 +187,16 @@
     CreateOnscreenContextProviderForCompositorThread() {
   DCHECK(service_);
 
-  if (!share_context_.get())
-    share_context_ = CreateContext(service_, NULL);
+  if (!share_context_.get()) {
+    share_context_ = CreateContext(
+        service_, NULL, gpu::GLInProcessContextSharedMemoryLimits());
+  }
+  gpu::GLInProcessContextSharedMemoryLimits mem_limits;
+  // This is half of what RenderWidget uses because synchronous compositor
+  // pipeline is only one frame deep.
+  mem_limits.mapped_memory_reclaim_limit = 6 * 1024 * 1024;
   return webkit::gpu::ContextProviderInProcess::Create(
-      WrapContext(CreateContext(service_, share_context_.get())),
+      WrapContext(CreateContext(service_, share_context_.get(), mem_limits)),
       "Child-Compositor");
 }
 
@@ -223,11 +232,6 @@
   base::AutoLock lock(num_hardware_compositor_lock_);
   DCHECK_GT(num_hardware_compositors_, 0u);
   num_hardware_compositors_--;
-  if (num_hardware_compositors_ == 0) {
-    // Nullify the video_context_provider_ now so that it is not null only if
-    // there is at least 1 hardware compositor
-    video_context_provider_ = NULL;
-  }
 }
 
 bool SynchronousCompositorFactoryImpl::CanCreateMainThreadContext() {
@@ -237,18 +241,23 @@
 
 scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider>
 SynchronousCompositorFactoryImpl::TryCreateStreamTextureFactory() {
-  scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider>
-      context_provider;
-  // This check only guarantees the main thread context is created after
-  // a compositor did successfully initialize hardware draw in the past.
-  // When all compositors have released hardware draw, main thread context
-  // creation is guaranteed to fail.
-  if (CanCreateMainThreadContext() && !video_context_provider_) {
+  // Always fail creation even if |video_context_provider_| is not NULL.
+  // This is to avoid synchronous calls that may deadlock. Setting
+  // |video_context_provider_| to null is also not safe since it makes
+  // synchronous destruction uncontrolled and possibly deadlock.
+  if (!CanCreateMainThreadContext()) {
+    return
+        scoped_refptr<StreamTextureFactorySynchronousImpl::ContextProvider>();
+  }
+
+  if (!video_context_provider_) {
     DCHECK(service_);
     DCHECK(share_context_.get());
 
     video_context_provider_ = new VideoContextProvider(
-        CreateContext(service_, share_context_.get()));
+        CreateContext(service_,
+                      share_context_.get(),
+                      gpu::GLInProcessContextSharedMemoryLimits()));
   }
   return video_context_provider_;
 }
diff --git a/content/browser/android/java/gin_java_bridge_dispatcher_host.cc b/content/browser/android/java/gin_java_bridge_dispatcher_host.cc
index 74ccaa2..ca63276 100644
--- a/content/browser/android/java/gin_java_bridge_dispatcher_host.cc
+++ b/content/browser/android/java/gin_java_bridge_dispatcher_host.cc
@@ -56,6 +56,7 @@
 }
 
 GinJavaBridgeDispatcherHost::~GinJavaBridgeDispatcherHost() {
+  DCHECK(pending_replies_.empty());
 }
 
 void GinJavaBridgeDispatcherHost::RenderFrameCreated(
@@ -70,6 +71,15 @@
 
 void GinJavaBridgeDispatcherHost::RenderFrameDeleted(
     RenderFrameHost* render_frame_host) {
+  DCHECK_CURRENTLY_ON(BrowserThread::UI);
+  IPC::Message* reply_msg = TakePendingReply(render_frame_host);
+  if (reply_msg != NULL) {
+    base::ListValue result;
+    result.Append(base::Value::CreateNullValue());
+    IPC::WriteParam(reply_msg, result);
+    IPC::WriteParam(reply_msg, kGinJavaBridgeRenderFrameDeleted);
+    render_frame_host->Send(reply_msg);
+  }
   RemoveHolder(render_frame_host,
                GinJavaBoundObject::ObjectMap::iterator(&objects_),
                objects_.size());
@@ -352,17 +362,6 @@
   return helper->rfh_found();
 }
 
-void GinJavaBridgeDispatcherHost::SendReply(
-    RenderFrameHost* render_frame_host,
-    IPC::Message* reply_msg) {
-  DCHECK_CURRENTLY_ON(BrowserThread::UI);
-  if (IsValidRenderFrameHost(render_frame_host)) {
-    render_frame_host->Send(reply_msg);
-  } else {
-    delete reply_msg;
-  }
-}
-
 void GinJavaBridgeDispatcherHost::OnGetMethods(
     RenderFrameHost* render_frame_host,
     GinJavaBoundObject::ObjectID object_id,
@@ -381,22 +380,26 @@
     render_frame_host->Send(reply_msg);
     return;
   }
+  DCHECK(!HasPendingReply(render_frame_host));
+  pending_replies_[render_frame_host] = reply_msg;
   base::PostTaskAndReplyWithResult(
       g_background_thread.Get().message_loop()->message_loop_proxy(),
       FROM_HERE,
       base::Bind(&GinJavaBoundObject::GetMethodNames, object),
       base::Bind(&GinJavaBridgeDispatcherHost::SendMethods,
                  AsWeakPtr(),
-                 render_frame_host,
-                 reply_msg));
+                 render_frame_host));
 }
 
 void GinJavaBridgeDispatcherHost::SendMethods(
     RenderFrameHost* render_frame_host,
-    IPC::Message* reply_msg,
     const std::set<std::string>& method_names) {
+  IPC::Message* reply_msg = TakePendingReply(render_frame_host);
+  if (!reply_msg) {
+    return;
+  }
   IPC::WriteParam(reply_msg, method_names);
-  SendReply(render_frame_host, reply_msg);
+  render_frame_host->Send(reply_msg);
 }
 
 void GinJavaBridgeDispatcherHost::OnHasMethod(
@@ -413,22 +416,26 @@
     render_frame_host->Send(reply_msg);
     return;
   }
+  DCHECK(!HasPendingReply(render_frame_host));
+  pending_replies_[render_frame_host] = reply_msg;
   base::PostTaskAndReplyWithResult(
       g_background_thread.Get().message_loop()->message_loop_proxy(),
       FROM_HERE,
       base::Bind(&GinJavaBoundObject::HasMethod, object, method_name),
       base::Bind(&GinJavaBridgeDispatcherHost::SendHasMethodReply,
                  AsWeakPtr(),
-                 render_frame_host,
-                 reply_msg));
+                 render_frame_host));
 }
 
 void GinJavaBridgeDispatcherHost::SendHasMethodReply(
     RenderFrameHost* render_frame_host,
-    IPC::Message* reply_msg,
     bool result) {
+  IPC::Message* reply_msg = TakePendingReply(render_frame_host);
+  if (!reply_msg) {
+    return;
+  }
   IPC::WriteParam(reply_msg, result);
-  SendReply(render_frame_host, reply_msg);
+  render_frame_host->Send(reply_msg);
 }
 
 void GinJavaBridgeDispatcherHost::OnInvokeMethod(
@@ -449,6 +456,8 @@
     render_frame_host->Send(reply_msg);
     return;
   }
+  DCHECK(!HasPendingReply(render_frame_host));
+  pending_replies_[render_frame_host] = reply_msg;
   scoped_refptr<GinJavaMethodInvocationHelper> result =
       new GinJavaMethodInvocationHelper(
           make_scoped_ptr(new GinJavaBoundObjectDelegate(object))
@@ -466,32 +475,37 @@
               &GinJavaBridgeDispatcherHost::ProcessMethodInvocationResult,
               AsWeakPtr(),
               render_frame_host,
-              reply_msg,
               result));
 }
 
 void GinJavaBridgeDispatcherHost::ProcessMethodInvocationResult(
     RenderFrameHost* render_frame_host,
-    IPC::Message* reply_msg,
     scoped_refptr<GinJavaMethodInvocationHelper> result) {
   if (result->HoldsPrimitiveResult()) {
+    IPC::Message* reply_msg = TakePendingReply(render_frame_host);
+    if (!reply_msg) {
+      return;
+    }
     IPC::WriteParam(reply_msg, result->GetPrimitiveResult());
     IPC::WriteParam(reply_msg, result->GetInvocationError());
-    SendReply(render_frame_host, reply_msg);
+    render_frame_host->Send(reply_msg);
   } else {
-    ProcessMethodInvocationObjectResult(render_frame_host, reply_msg, result);
+    ProcessMethodInvocationObjectResult(render_frame_host, result);
   }
 }
 
 void GinJavaBridgeDispatcherHost::ProcessMethodInvocationObjectResult(
     RenderFrameHost* render_frame_host,
-    IPC::Message* reply_msg,
     scoped_refptr<GinJavaMethodInvocationHelper> result) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
   if (!IsValidRenderFrameHost(render_frame_host)) {
-    delete reply_msg;
+    // In this case, we must've already sent the reply when the render frame
+    // was destroyed.
+    DCHECK(!HasPendingReply(render_frame_host));
     return;
   }
+
   base::ListValue wrapped_result;
   if (!result->GetObjectResult().is_null()) {
     GinJavaBoundObject::ObjectID returned_object_id;
@@ -504,10 +518,15 @@
                                      render_frame_host);
     }
     wrapped_result.Append(
-        GinJavaBridgeValue::CreateObjectIDValue(returned_object_id).release());
+        GinJavaBridgeValue::CreateObjectIDValue(
+            returned_object_id).release());
   } else {
     wrapped_result.Append(base::Value::CreateNullValue());
   }
+  IPC::Message* reply_msg = TakePendingReply(render_frame_host);
+  if (!reply_msg) {
+    return;
+  }
   IPC::WriteParam(reply_msg, wrapped_result);
   IPC::WriteParam(reply_msg, result->GetInvocationError());
   render_frame_host->Send(reply_msg);
@@ -527,4 +546,28 @@
   }
 }
 
+IPC::Message* GinJavaBridgeDispatcherHost::TakePendingReply(
+    RenderFrameHost* render_frame_host) {
+  if (!IsValidRenderFrameHost(render_frame_host)) {
+    DCHECK(!HasPendingReply(render_frame_host));
+    return NULL;
+  }
+
+  PendingReplyMap::iterator it = pending_replies_.find(render_frame_host);
+  // There may be no pending reply if we're called from RenderFrameDeleted and
+  // we already sent the reply through the regular route.
+  if (it == pending_replies_.end()) {
+    return NULL;
+  }
+
+  IPC::Message* reply_msg = it->second;
+  pending_replies_.erase(it);
+  return reply_msg;
+}
+
+bool GinJavaBridgeDispatcherHost::HasPendingReply(
+    RenderFrameHost* render_frame_host) const {
+  return pending_replies_.find(render_frame_host) != pending_replies_.end();
+}
+
 }  // namespace content
diff --git a/content/browser/android/java/gin_java_bridge_dispatcher_host.h b/content/browser/android/java/gin_java_bridge_dispatcher_host.h
index 615c2b0..48fcbb5 100644
--- a/content/browser/android/java/gin_java_bridge_dispatcher_host.h
+++ b/content/browser/android/java/gin_java_bridge_dispatcher_host.h
@@ -76,20 +76,15 @@
                               GinJavaBoundObject::ObjectID object_id);
 
   bool IsValidRenderFrameHost(RenderFrameHost* render_frame_host);
-  void SendReply(RenderFrameHost* render_frame_host, IPC::Message* reply_msg);
   void SendMethods(RenderFrameHost* render_frame_host,
-                   IPC::Message* reply_msg,
                    const std::set<std::string>& method_names);
   void SendHasMethodReply(RenderFrameHost* render_frame_host,
-                          IPC::Message* reply_msg,
                           bool result);
   void ProcessMethodInvocationResult(
       RenderFrameHost* render_frame_host,
-      IPC::Message* reply_msg,
       scoped_refptr<GinJavaMethodInvocationHelper> result);
   void ProcessMethodInvocationObjectResult(
       RenderFrameHost* render_frame_host,
-      IPC::Message* reply_msg,
       scoped_refptr<GinJavaMethodInvocationHelper> result);
   GinJavaBoundObject::ObjectID AddObject(
       const base::android::JavaRef<jobject>& object,
@@ -101,6 +96,8 @@
   void RemoveHolder(RenderFrameHost* holder,
                     const GinJavaBoundObject::ObjectMap::iterator& from,
                     size_t count);
+  bool HasPendingReply(RenderFrameHost* render_frame_host) const;
+  IPC::Message* TakePendingReply(RenderFrameHost* render_frame_host);
 
   // Every time a GinJavaBoundObject backed by a real Java object is
   // created/destroyed, we insert/remove a strong ref to that Java object into
@@ -114,6 +111,13 @@
   typedef std::map<std::string, GinJavaBoundObject::ObjectID> NamedObjectMap;
   NamedObjectMap named_objects_;
 
+  // Keep track of pending calls out to Java such that we can send a synchronous
+  // reply to the renderer waiting on the response should the RenderFrame be
+  // destroyed while the reply is pending.
+  // Only used on the UI thread.
+  typedef std::map<RenderFrameHost*, IPC::Message*> PendingReplyMap;
+  PendingReplyMap pending_replies_;
+
   DISALLOW_COPY_AND_ASSIGN(GinJavaBridgeDispatcherHost);
 };
 
diff --git a/content/browser/android/system_ui_resource_manager_impl.cc b/content/browser/android/system_ui_resource_manager_impl.cc
index 80c1c43..81f12fc 100644
--- a/content/browser/android/system_ui_resource_manager_impl.cc
+++ b/content/browser/android/system_ui_resource_manager_impl.cc
@@ -45,6 +45,7 @@
     LOG(FATAL) << " Failed to allocate bitmap of size " << bounds.width() << "x"
                << bounds.height();
   }
+  glow_bitmap.eraseColor(SK_ColorTRANSPARENT);
 
   SkCanvas canvas(glow_bitmap);
   canvas.clipRect(SkRect::MakeXYWH(0, 0, bounds.width(), bounds.height()));
diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc
index 93db051..b60a55f 100644
--- a/content/browser/indexed_db/indexed_db_backing_store.cc
+++ b/content/browser/indexed_db/indexed_db_backing_store.cc
@@ -1179,7 +1179,7 @@
     // Decode database id (in iterator value).
     int64 database_id = 0;
     StringPiece valueSlice(it->Value());
-    if (!DecodeVarInt(&valueSlice, &database_id) || !valueSlice.empty()) {
+    if (!DecodeInt(&valueSlice, &database_id) || !valueSlice.empty()) {
       INTERNAL_CONSISTENCY_ERROR_UNTESTED(GET_DATABASE_NAMES);
       continue;
     }
diff --git a/content/browser/indexed_db/indexed_db_callbacks.cc b/content/browser/indexed_db/indexed_db_callbacks.cc
index cee89b1..643889d 100644
--- a/content/browser/indexed_db/indexed_db_callbacks.cc
+++ b/content/browser/indexed_db/indexed_db_callbacks.cc
@@ -218,6 +218,7 @@
   uuid = base::GenerateGUID();
   scoped_refptr<webkit_blob::BlobData> blob_data =
       new webkit_blob::BlobData(uuid);
+  blob_data->set_content_type(base::UTF16ToUTF8(blob_info.type()));
   blob_data->AppendFile(
       blob_info.file_path(), 0, blob_info.size(), blob_info.last_modified());
   scoped_ptr<webkit_blob::BlobDataHandle> blob_data_handle(
diff --git a/content/browser/indexed_db/indexed_db_leveldb_coding.cc b/content/browser/indexed_db/indexed_db_leveldb_coding.cc
index a493d52..dcb1081 100644
--- a/content/browser/indexed_db/indexed_db_leveldb_coding.cc
+++ b/content/browser/indexed_db/indexed_db_leveldb_coding.cc
@@ -54,7 +54,7 @@
 // <0, 0, 0, 100, database id>
 //   => Existence implies the database id is in the free list
 //      [DatabaseFreeListKey]
-// <0, 0, 0, 201, origin, database name> => Database id [DatabaseNameKey]
+// <0, 0, 0, 201, origin, database name> => Database id (int) [DatabaseNameKey]
 //
 //
 // Database metadata: [DatabaseMetaDataKey]
diff --git a/content/browser/media/capture/desktop_capture_device.cc b/content/browser/media/capture/desktop_capture_device.cc
index 930b752..246ab1b 100644
--- a/content/browser/media/capture/desktop_capture_device.cc
+++ b/content/browser/media/capture/desktop_capture_device.cc
@@ -15,6 +15,7 @@
 #include "content/browser/media/capture/desktop_capture_device_uma_types.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/desktop_media_id.h"
+#include "content/public/browser/power_save_blocker.h"
 #include "media/base/video_util.h"
 #include "third_party/libyuv/include/libyuv/scale_argb.h"
 #include "third_party/webrtc/modules/desktop_capture/desktop_and_cursor_composer.h"
@@ -124,6 +125,10 @@
 
   scoped_ptr<webrtc::BasicDesktopFrame> black_frame_;
 
+  // TODO(jiayl): Remove power_save_blocker_ when there is an API to keep the
+  // screen from sleeping for the drive-by web.
+  scoped_ptr<PowerSaveBlocker> power_save_blocker_;
+
   DISALLOW_COPY_AND_ASSIGN(Core);
 };
 
@@ -164,6 +169,10 @@
   // This capturer always outputs ARGB, non-interlaced.
   capture_format_.pixel_format = media::PIXEL_FORMAT_ARGB;
 
+  power_save_blocker_.reset(PowerSaveBlocker::Create(
+      PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep,
+      "DesktopCaptureDevice is running").release());
+
   desktop_capturer_->Start(this);
 
   CaptureFrameAndScheduleNext();
diff --git a/content/browser/media/capture/desktop_capture_device_aura.cc b/content/browser/media/capture/desktop_capture_device_aura.cc
index 4939b62..700b027 100644
--- a/content/browser/media/capture/desktop_capture_device_aura.cc
+++ b/content/browser/media/capture/desktop_capture_device_aura.cc
@@ -14,6 +14,7 @@
 #include "content/browser/media/capture/desktop_capture_device_uma_types.h"
 #include "content/common/gpu/client/gl_helper.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/power_save_blocker.h"
 #include "media/base/video_util.h"
 #include "media/video/capture/video_capture_types.h"
 #include "skia/ext/image_operations.h"
@@ -174,6 +175,10 @@
   gfx::Point cursor_hot_point_;
   SkBitmap scaled_cursor_bitmap_;
 
+  // TODO(jiayl): Remove power_save_blocker_ when there is an API to keep the
+  // screen from sleeping for the drive-by web.
+  scoped_ptr<PowerSaveBlocker> power_save_blocker_;
+
   DISALLOW_COPY_AND_ASSIGN(DesktopVideoCaptureMachine);
 };
 
@@ -213,6 +218,10 @@
   if (desktop_window_->GetHost())
     desktop_window_->GetHost()->compositor()->AddObserver(this);
 
+  power_save_blocker_.reset(PowerSaveBlocker::Create(
+      PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep,
+      "DesktopCaptureDevice is running").release());
+
   // Starts timer.
   timer_.Start(FROM_HERE, oracle_proxy_->min_capture_period(),
                base::Bind(&DesktopVideoCaptureMachine::Capture, AsWeakPtr(),
@@ -224,6 +233,7 @@
 
 void DesktopVideoCaptureMachine::Stop(const base::Closure& callback) {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+  power_save_blocker_.reset();
 
   // Stop observing compositor and window events.
   if (desktop_window_) {
diff --git a/content/browser/renderer_host/compositing_iosurface_layer_mac.mm b/content/browser/renderer_host/compositing_iosurface_layer_mac.mm
index 81a3529..aad9f7a 100644
--- a/content/browser/renderer_host/compositing_iosurface_layer_mac.mm
+++ b/content/browser/renderer_host/compositing_iosurface_layer_mac.mm
@@ -146,7 +146,7 @@
 }
 
 void CompositingIOSurfaceLayerHelper::TimerFired() {
-  SetNeedsDisplayAndDisplayAndAck();
+  DisplayIfNeededAndAck();
 }
 
 void CompositingIOSurfaceLayerHelper::BeginPumpingFrames() {
diff --git a/content/browser/renderer_host/compositor_impl_android.cc b/content/browser/renderer_host/compositor_impl_android.cc
index 3ca74a2..59272be 100644
--- a/content/browser/renderer_host/compositor_impl_android.cc
+++ b/content/browser/renderer_host/compositor_impl_android.cc
@@ -559,7 +559,6 @@
 
 void CompositorImpl::OnLostResources() {
   client_->DidLoseResources();
-  ui_resource_provider_.UIResourcesAreInvalid();
 }
 
 void CompositorImpl::ScheduleComposite() {
diff --git a/content/browser/renderer_host/media/audio_input_renderer_host.cc b/content/browser/renderer_host/media/audio_input_renderer_host.cc
index 2dcc56d..1f9c26d 100644
--- a/content/browser/renderer_host/media/audio_input_renderer_host.cc
+++ b/content/browser/renderer_host/media/audio_input_renderer_host.cc
@@ -19,6 +19,20 @@
 #include "media/audio/audio_manager_base.h"
 #include "media/base/audio_bus.h"
 
+namespace {
+
+void LogMessage(int stream_id, const std::string& msg, bool add_prefix) {
+  std::ostringstream oss;
+  oss << "[stream_id=" << stream_id << "] ";
+  if (add_prefix)
+    oss << "AIRH::";
+  oss << msg;
+  content::MediaStreamManager::SendMessageToNativeLog(oss.str());
+  DVLOG(1) << oss.str();
+}
+
+}
+
 namespace content {
 
 struct AudioInputRendererHost::AudioEntry {
@@ -133,8 +147,10 @@
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
   AudioEntry* entry = LookupByController(controller);
-  if (!entry)
+  if (!entry) {
+    NOTREACHED() << "AudioInputController is invalid.";
     return;
+  }
 
   if (!PeerHandle()) {
     NOTREACHED() << "Renderer process handle is invalid.";
@@ -176,6 +192,10 @@
     return;
   }
 
+  LogMessage(entry->stream_id,
+             "DoCompleteCreation => IPC channel and stream are now open",
+             true);
+
   Send(new AudioInputMsg_NotifyStreamCreated(entry->stream_id,
       foreign_memory_handle, foreign_socket_handle,
       entry->shared_memory.requested_size(),
@@ -187,29 +207,40 @@
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   // TODO(henrika): See crbug.com/115262 for details on why this method
   // should be implemented.
+  AudioEntry* entry = LookupByController(controller);
+  if (!entry) {
+    NOTREACHED() << "AudioInputController is invalid.";
+    return;
+  }
+  LogMessage(entry->stream_id,
+             "DoSendRecordingMessage => stream is now started",
+             true);
 }
 
 void AudioInputRendererHost::DoHandleError(
     media::AudioInputController* controller,
     media::AudioInputController::ErrorCode error_code) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
-  // Log all errors even it is ignored later.
-  MediaStreamManager::SendMessageToNativeLog(
-      base::StringPrintf("AudioInputController error: %d", error_code));
+  AudioEntry* entry = LookupByController(controller);
+  if (!entry) {
+    NOTREACHED() << "AudioInputController is invalid.";
+    return;
+  }
 
   // This is a fix for crbug.com/357501. The error can be triggered when closing
   // the lid on Macs, which causes more problems than it fixes.
   // Also, in crbug.com/357569, the goal is to remove usage of the error since
   // it was added to solve a crash on Windows that no longer can be reproduced.
   if (error_code == media::AudioInputController::NO_DATA_ERROR) {
-    DVLOG(1) << "AudioInputRendererHost@" << this << "::DoHandleError: "
-             << "NO_DATA_ERROR ignored.";
+    // TODO(henrika): it might be possible to do something other than just
+    // logging when we detect many NO_DATA_ERROR calls for a stream.
+    LogMessage(entry->stream_id, "AIC => NO_DATA_ERROR", false);
     return;
   }
 
-  AudioEntry* entry = LookupByController(controller);
-  if (!entry)
-    return;
+  std::ostringstream oss;
+  oss << "AIC reports error_code=" << error_code;
+  LogMessage(entry->stream_id, oss.str(), false);
 
   audio_log_->OnError(entry->stream_id);
   DeleteEntryOnError(entry, AUDIO_INPUT_CONTROLLER_ERROR);
@@ -219,15 +250,13 @@
                                    const std::string& message) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   AudioEntry* entry = LookupByController(controller);
-  if (!entry)
+  if (!entry) {
+    NOTREACHED() << "AudioInputController is invalid.";
     return;
+  }
 
   // Add stream ID and current audio level reported by AIC to native log.
-  std::string log_string =
-      base::StringPrintf("[stream_id=%d] ", entry->stream_id);
-  log_string += message;
-  MediaStreamManager::SendMessageToNativeLog(log_string);
-  DVLOG(1) << log_string;
+  LogMessage(entry->stream_id, message, false);
 }
 
 bool AudioInputRendererHost::OnMessageReceived(const IPC::Message& message) {
@@ -250,10 +279,10 @@
     const AudioInputHostMsg_CreateStream_Config& config) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
-  DVLOG(1) << "AudioInputRendererHost@" << this
-           << "::OnCreateStream(stream_id=" << stream_id
-           << ", render_view_id=" << render_view_id
-           << ", session_id=" << session_id << ")";
+  std::ostringstream oss;
+  oss << "[stream_id=" << stream_id << "] "
+      << "AIRH::OnCreateStream(render_view_id=" << render_view_id
+      << ", session_id=" << session_id << ")";
   DCHECK_GT(render_view_id, 0);
 
   // media::AudioParameters is validated in the deserializer.
@@ -287,6 +316,7 @@
 
     device_id = info->device.id;
     device_name = info->device.name;
+    oss << ": device_name=" << device_name;
   }
 
   // Create a new AudioEntry structure.
@@ -350,21 +380,24 @@
 
   // Set the initial AGC state for the audio input stream. Note that, the AGC
   // is only supported in AUDIO_PCM_LOW_LATENCY mode.
-  if (config.params.format() == media::AudioParameters::AUDIO_PCM_LOW_LATENCY)
+  if (config.params.format() == media::AudioParameters::AUDIO_PCM_LOW_LATENCY) {
     entry->controller->SetAutomaticGainControl(config.automatic_gain_control);
+    oss << ", AGC=" << config.automatic_gain_control;
+  }
+
+  MediaStreamManager::SendMessageToNativeLog(oss.str());
+  DVLOG(1) << oss.str();
 
   // Since the controller was created successfully, create an entry and add it
   // to the map.
   entry->stream_id = stream_id;
   audio_entries_.insert(std::make_pair(stream_id, entry.release()));
-
-  MediaStreamManager::SendMessageToNativeLog(
-      "Audio input stream created successfully. Device name: " + device_name);
   audio_log_->OnCreated(stream_id, audio_params, device_id);
 }
 
 void AudioInputRendererHost::OnRecordStream(int stream_id) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  LogMessage(stream_id, "OnRecordStream", true);
 
   AudioEntry* entry = LookupById(stream_id);
   if (!entry) {
@@ -378,6 +411,7 @@
 
 void AudioInputRendererHost::OnCloseStream(int stream_id) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  LogMessage(stream_id, "OnCloseStream", true);
 
   AudioEntry* entry = LookupById(stream_id);
 
@@ -400,8 +434,10 @@
 
 void AudioInputRendererHost::SendErrorMessage(
     int stream_id, ErrorCode error_code) {
-  MediaStreamManager::SendMessageToNativeLog(
-      base::StringPrintf("AudioInputRendererHost error: %d", error_code));
+  std::string err_msg =
+      base::StringPrintf("SendErrorMessage(error_code=%d)", error_code);
+  LogMessage(stream_id, err_msg, true);
+
   Send(new AudioInputMsg_NotifyStreamStateChanged(
       stream_id, media::AudioInputIPCDelegate::kError));
 }
@@ -419,6 +455,7 @@
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
   if (!entry->pending_close) {
+    LogMessage(entry->stream_id, "CloseAndDeleteStream", true);
     entry->controller->Close(base::Bind(&AudioInputRendererHost::DeleteEntry,
                                         this, entry));
     entry->pending_close = true;
@@ -428,6 +465,7 @@
 
 void AudioInputRendererHost::DeleteEntry(AudioEntry* entry) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
+  LogMessage(entry->stream_id, "DeleteEntry => stream is now closed", true);
 
   // Delete the entry when this method goes out of scope.
   scoped_ptr<AudioEntry> entry_deleter(entry);
diff --git a/content/browser/renderer_host/media/audio_input_sync_writer.cc b/content/browser/renderer_host/media/audio_input_sync_writer.cc
index 117fbe8..6a78f6c 100644
--- a/content/browser/renderer_host/media/audio_input_sync_writer.cc
+++ b/content/browser/renderer_host/media/audio_input_sync_writer.cc
@@ -60,18 +60,20 @@
   if (last_write_time_.is_null()) {
     // This is the first time Write is called.
     base::TimeDelta interval = base::Time::Now() - creation_time_;
-    oss << "Audio input data received for the first time: delay = "
-        << interval.InMilliseconds() << "ms.";
+    oss << "AISW::Write => audio input data received for the first time: delay "
+           "= " << interval.InMilliseconds() << "ms";
 
   } else {
     base::TimeDelta interval = base::Time::Now() - last_write_time_;
     if (interval > kLogDelayThreadhold) {
-      oss << "Audio input data delay unexpectedly long: delay = "
-          << interval.InMilliseconds() << "ms.";
+      oss << "AISW::Write => audio input data delay unexpectedly long: delay = "
+          << interval.InMilliseconds() << "ms";
     }
   }
-  if (!oss.str().empty())
+  if (!oss.str().empty()) {
     MediaStreamManager::SendMessageToNativeLog(oss.str());
+    DVLOG(1) << oss.str();
+  }
 
   last_write_time_ = base::Time::Now();
 #endif
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 399244e..516af83 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1238,6 +1238,7 @@
     switches::kDisableWebRtcHWDecoding,
     switches::kDisableWebRtcHWEncoding,
     switches::kEnableWebRtcHWVp8Encoding,
+    switches::kEnableWebRtcHWH264Encoding,
 #endif
     switches::kLowEndDeviceMode,
 #if defined(OS_ANDROID)
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index df99c91..76fcc87 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -1206,7 +1206,7 @@
   // We need to at least make sure that the RenderProcessHost is notified about
   // the |is_hidden_| change, so that the renderer will have correct visibility
   // set when respawned.
-  if (!is_hidden_) {
+  if (is_hidden_) {
     process_->WidgetRestored();
     is_hidden_ = false;
   }
diff --git a/content/browser/renderer_host/render_widget_host_unittest.cc b/content/browser/renderer_host/render_widget_host_unittest.cc
index f0e072f..c65276a 100644
--- a/content/browser/renderer_host/render_widget_host_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_unittest.cc
@@ -1420,4 +1420,18 @@
   ASSERT_FALSE(host_->input_router()->HasPendingEvents());
 }
 
+// Regression test for http://crbug.com/401859.
+TEST_F(RenderWidgetHostTest, RendererExitedResetsIsHidden) {
+  // RendererExited will delete the view.
+  host_->SetView(new TestView(host_.get()));
+  host_->WasHidden();
+
+  ASSERT_TRUE(host_->is_hidden());
+  host_->RendererExited(base::TERMINATION_STATUS_PROCESS_CRASHED, -1);
+  ASSERT_FALSE(host_->is_hidden());
+
+  // Make sure the input router is in a fresh state.
+  ASSERT_FALSE(host_->input_router()->HasPendingEvents());
+}
+
 }  // namespace content
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index 613fca9..5ac9d83 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -228,7 +228,7 @@
     RenderWidgetHostImpl* widget_host,
     ContentViewCoreImpl* content_view_core)
     : host_(widget_host),
-      needs_begin_frame_(false),
+      outstanding_vsync_requests_(0),
       is_showing_(!widget_host->is_hidden()),
       content_view_core_(NULL),
       ime_adapter_android_(this),
@@ -242,7 +242,6 @@
       gesture_text_selector_(this),
       touch_scrolling_(false),
       potentially_active_fling_count_(0),
-      flush_input_requested_(false),
       accelerated_surface_route_id_(0),
       using_synchronous_compositor_(SynchronousCompositorImpl::FromID(
                                         widget_host->GetProcess()->GetID(),
@@ -305,10 +304,9 @@
 
   host_->WasShown(ui::LatencyInfo());
 
-  if (content_view_core_ && !using_synchronous_compositor_) {
-    content_view_core_->GetWindowAndroid()->AddObserver(this);
-    content_view_core_->GetWindowAndroid()->RequestVSyncUpdate();
-    observing_root_window_ = true;
+  if (content_view_core_) {
+    StartObservingRootWindow();
+    RequestVSyncUpdate(BEGIN_FRAME);
   }
 }
 
@@ -322,10 +320,7 @@
   // utilization.
   host_->WasHidden();
 
-  if (content_view_core_ && !using_synchronous_compositor_) {
-    content_view_core_->GetWindowAndroid()->RemoveObserver(this);
-    observing_root_window_ = false;
-  }
+  StopObservingRootWindow();
 }
 
 void RenderWidgetHostViewAndroid::WasResized() {
@@ -597,15 +592,13 @@
 }
 
 void RenderWidgetHostViewAndroid::OnSetNeedsBeginFrame(bool enabled) {
-  if (enabled == needs_begin_frame_)
-    return;
-
+  DCHECK(!using_synchronous_compositor_);
   TRACE_EVENT1("cc", "RenderWidgetHostViewAndroid::OnSetNeedsBeginFrame",
                "enabled", enabled);
-  if (content_view_core_ && enabled)
-    content_view_core_->GetWindowAndroid()->RequestVSyncUpdate();
-
-  needs_begin_frame_ = enabled;
+  if (enabled)
+    RequestVSyncUpdate(PERSISTENT_BEGIN_FRAME);
+  else
+    outstanding_vsync_requests_ &= ~PERSISTENT_BEGIN_FRAME;
 }
 
 void RenderWidgetHostViewAndroid::OnStartContentIntent(
@@ -1208,6 +1201,64 @@
     overscroll_effect_->Disable();
 }
 
+void RenderWidgetHostViewAndroid::RequestVSyncUpdate(uint32 requests) {
+  // The synchronous compositor does not requre BeginFrame messages.
+  if (using_synchronous_compositor_)
+    requests &= FLUSH_INPUT;
+
+  bool should_request_vsync = !outstanding_vsync_requests_ && requests;
+  outstanding_vsync_requests_ |= requests;
+  // Note that if we're not currently observing the root window, outstanding
+  // vsync requests will be pushed if/when we resume observing in
+  // |StartObservingRootWindow()|.
+  if (observing_root_window_ && should_request_vsync)
+    content_view_core_->GetWindowAndroid()->RequestVSyncUpdate();
+}
+
+void RenderWidgetHostViewAndroid::StartObservingRootWindow() {
+  DCHECK(content_view_core_);
+  if (observing_root_window_)
+    return;
+
+  observing_root_window_ = true;
+  content_view_core_->GetWindowAndroid()->AddObserver(this);
+
+  // Clear existing vsync requests to allow a request to the new window.
+  uint32 outstanding_vsync_requests = outstanding_vsync_requests_;
+  outstanding_vsync_requests_ = 0;
+  RequestVSyncUpdate(outstanding_vsync_requests);
+}
+
+void RenderWidgetHostViewAndroid::StopObservingRootWindow() {
+  if (!content_view_core_) {
+    DCHECK(!observing_root_window_);
+    return;
+  }
+
+  if (!observing_root_window_)
+    return;
+
+  observing_root_window_ = false;
+  content_view_core_->GetWindowAndroid()->RemoveObserver(this);
+}
+
+void RenderWidgetHostViewAndroid::SendBeginFrame(base::TimeTicks frame_time,
+                                                 base::TimeDelta vsync_period) {
+  TRACE_EVENT0("cc", "RenderWidgetHostViewAndroid::SendBeginFrame");
+  base::TimeTicks display_time = frame_time + vsync_period;
+
+  // TODO(brianderson): Use adaptive draw-time estimation.
+  base::TimeDelta estimated_browser_composite_time =
+      base::TimeDelta::FromMicroseconds(
+          (1.0f * base::Time::kMicrosecondsPerSecond) / (3.0f * 60));
+
+  base::TimeTicks deadline = display_time - estimated_browser_composite_time;
+
+  host_->Send(new ViewMsg_BeginFrame(
+      host_->GetRoutingID(),
+      cc::BeginFrameArgs::Create(frame_time, deadline, vsync_period)));
+}
+
 bool RenderWidgetHostViewAndroid::Animate(base::TimeTicks frame_time) {
   bool needs_animate =
       overscroll_effect_ ? overscroll_effect_->Animate(frame_time) : false;
@@ -1353,11 +1404,8 @@
 }
 
 void RenderWidgetHostViewAndroid::OnSetNeedsFlushInput() {
-  if (flush_input_requested_ || !content_view_core_)
-    return;
   TRACE_EVENT0("input", "RenderWidgetHostViewAndroid::OnSetNeedsFlushInput");
-  flush_input_requested_ = true;
-  content_view_core_->GetWindowAndroid()->RequestVSyncUpdate();
+  RequestVSyncUpdate(FLUSH_INPUT);
 }
 
 BrowserAccessibilityManager*
@@ -1398,9 +1446,8 @@
   // This is good enough as long as the first touch event has Begin semantics
   // and the actual scroll happens on the next vsync.
   // TODO: Is this actually still needed?
-  if (content_view_core_ && observing_root_window_) {
-    content_view_core_->GetWindowAndroid()->RequestVSyncUpdate();
-  }
+  if (observing_root_window_)
+    RequestVSyncUpdate(BEGIN_FRAME);
 }
 
 void RenderWidgetHostViewAndroid::SendMouseEvent(
@@ -1496,13 +1543,11 @@
 void RenderWidgetHostViewAndroid::SetContentViewCore(
     ContentViewCoreImpl* content_view_core) {
   RemoveLayers();
-  if (observing_root_window_ && content_view_core_) {
-    content_view_core_->GetWindowAndroid()->RemoveObserver(this);
-    observing_root_window_ = false;
-  }
+  StopObservingRootWindow();
 
   bool resize = false;
   if (content_view_core != content_view_core_) {
+    overscroll_effect_.reset();
     selection_controller_.reset();
     ReleaseLocksOnSurface();
     resize = true;
@@ -1525,12 +1570,7 @@
   if (!content_view_core_)
     return;
 
-  if (!using_synchronous_compositor_) {
-    content_view_core_->GetWindowAndroid()->AddObserver(this);
-    observing_root_window_ = true;
-    if (needs_begin_frame_)
-      content_view_core_->GetWindowAndroid()->RequestVSyncUpdate();
-  }
+  StartObservingRootWindow();
 
   if (resize)
     WasResized();
@@ -1538,9 +1578,8 @@
   if (!selection_controller_)
     selection_controller_.reset(new TouchSelectionController(this));
 
-  if (!content_view_core_)
-    overscroll_effect_.reset();
-  else if (overscroll_effect_enabled_ && !overscroll_effect_)
+  if (overscroll_effect_enabled_ && !overscroll_effect_ &&
+      content_view_core_->GetWindowAndroid()->GetCompositor())
     overscroll_effect_ = CreateOverscrollEffect(content_view_core_);
 }
 
@@ -1563,10 +1602,18 @@
   RunAckCallbacks();
 }
 
+
+void RenderWidgetHostViewAndroid::OnAttachCompositor() {
+  DCHECK(content_view_core_);
+  if (overscroll_effect_enabled_ && !overscroll_effect_)
+    overscroll_effect_ = CreateOverscrollEffect(content_view_core_);
+}
+
 void RenderWidgetHostViewAndroid::OnDetachCompositor() {
   DCHECK(content_view_core_);
   DCHECK(!using_synchronous_compositor_);
   RunAckCallbacks();
+  overscroll_effect_.reset();
 }
 
 void RenderWidgetHostViewAndroid::OnVSync(base::TimeTicks frame_time,
@@ -1575,27 +1622,19 @@
   if (!host_)
     return;
 
-  if (flush_input_requested_) {
-    flush_input_requested_ = false;
+  const uint32 current_vsync_requests = outstanding_vsync_requests_;
+  outstanding_vsync_requests_ = 0;
+
+  if (current_vsync_requests & FLUSH_INPUT)
     host_->FlushInput();
+
+  if (current_vsync_requests & BEGIN_FRAME ||
+      current_vsync_requests & PERSISTENT_BEGIN_FRAME) {
+    SendBeginFrame(frame_time, vsync_period);
   }
 
-  TRACE_EVENT0("cc", "RenderWidgetHostViewAndroid::SendBeginFrame");
-  base::TimeTicks display_time = frame_time + vsync_period;
-
-  // TODO(brianderson): Use adaptive draw-time estimation.
-  base::TimeDelta estimated_browser_composite_time =
-      base::TimeDelta::FromMicroseconds(
-          (1.0f * base::Time::kMicrosecondsPerSecond) / (3.0f * 60));
-
-  base::TimeTicks deadline = display_time - estimated_browser_composite_time;
-
-  host_->Send(new ViewMsg_BeginFrame(
-      host_->GetRoutingID(),
-      cc::BeginFrameArgs::Create(frame_time, deadline, vsync_period)));
-
-  if (needs_begin_frame_)
-    content_view_core_->GetWindowAndroid()->RequestVSyncUpdate();
+  if (current_vsync_requests & PERSISTENT_BEGIN_FRAME)
+    RequestVSyncUpdate(PERSISTENT_BEGIN_FRAME);
 }
 
 void RenderWidgetHostViewAndroid::OnAnimate(base::TimeTicks begin_frame_time) {
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
index 7601adc..6f5963b 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -177,7 +177,7 @@
 
   // ui::WindowAndroidObserver implementation.
   virtual void OnCompositingDidCommit() OVERRIDE;
-  virtual void OnAttachCompositor() OVERRIDE {}
+  virtual void OnAttachCompositor() OVERRIDE;
   virtual void OnDetachCompositor() OVERRIDE;
   virtual void OnVSync(base::TimeTicks frame_time,
                        base::TimeDelta vsync_period) OVERRIDE;
@@ -310,6 +310,15 @@
   void InternalSwapCompositorFrame(uint32 output_surface_id,
                                    scoped_ptr<cc::CompositorFrame> frame);
 
+  enum VSyncRequestType {
+    FLUSH_INPUT = 1 << 0,
+    BEGIN_FRAME = 1 << 1,
+    PERSISTENT_BEGIN_FRAME = 1 << 2
+  };
+  void RequestVSyncUpdate(uint32 requests);
+  void StartObservingRootWindow();
+  void StopObservingRootWindow();
+  void SendBeginFrame(base::TimeTicks frame_time, base::TimeDelta vsync_period);
   bool Animate(base::TimeTicks frame_time);
 
   void OnContentScrollingChange();
@@ -320,8 +329,8 @@
   // The model object.
   RenderWidgetHostImpl* host_;
 
-  // Used to track whether this render widget needs a BeginFrame.
-  bool needs_begin_frame_;
+  // Used to control action dispatch at the next |OnVSync()| call.
+  uint32 outstanding_vsync_requests_;
 
   bool is_showing_;
 
@@ -367,8 +376,6 @@
   bool touch_scrolling_;
   size_t potentially_active_fling_count_;
 
-  bool flush_input_requested_;
-
   int accelerated_surface_route_id_;
 
   // Size to use if we have no backing ContentViewCore
diff --git a/content/browser/renderer_host/render_widget_host_view_browsertest.cc b/content/browser/renderer_host/render_widget_host_view_browsertest.cc
index 533019f..2548294 100644
--- a/content/browser/renderer_host/render_widget_host_view_browsertest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_browsertest.cc
@@ -491,14 +491,9 @@
     SkBitmap bitmap;
     bitmap.allocN32Pixels(video_frame->visible_rect().width(),
                           video_frame->visible_rect().height());
-    bitmap.eraseColor(SK_ColorTRANSPARENT);
+    // Don't clear the canvas because drawing a video frame by Src mode.
     SkCanvas canvas(bitmap);
-
-    video_renderer.Paint(video_frame.get(),
-                         &canvas,
-                         video_frame->visible_rect(),
-                         0xff,
-                         media::VIDEO_ROTATION_0);
+    video_renderer.Copy(video_frame.get(), &canvas);
 
     CopyFromCompositingSurfaceCallback(quit_callback,
                                        result,
diff --git a/content/browser/web_contents/aura/overscroll_navigation_overlay.cc b/content/browser/web_contents/aura/overscroll_navigation_overlay.cc
index b478c60..530028b 100644
--- a/content/browser/web_contents/aura/overscroll_navigation_overlay.cc
+++ b/content/browser/web_contents/aura/overscroll_navigation_overlay.cc
@@ -197,8 +197,7 @@
   gfx::Image image;
   if (entry && entry->screenshot().get()) {
     std::vector<gfx::ImagePNGRep> image_reps;
-    image_reps.push_back(gfx::ImagePNGRep(entry->screenshot(),
-        ui::GetScaleFactorForNativeView(window_.get())));
+    image_reps.push_back(gfx::ImagePNGRep(entry->screenshot(), 1.0f));
     image = gfx::Image(image_reps);
   }
   if (!layer_delegate_)
diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc
index 1a61244..b58b770 100644
--- a/content/browser/web_contents/web_contents_view_aura.cc
+++ b/content/browser/web_contents/web_contents_view_aura.cc
@@ -134,8 +134,7 @@
     gfx::Image image;
     if (entry && entry->screenshot().get()) {
       std::vector<gfx::ImagePNGRep> image_reps;
-      image_reps.push_back(gfx::ImagePNGRep(entry->screenshot(),
-          ui::GetScaleFactorForNativeView(web_contents_window())));
+      image_reps.push_back(gfx::ImagePNGRep(entry->screenshot(), 1.0f));
       image = gfx::Image(image_reps);
     }
     SetImage(image);
diff --git a/content/common/android/gin_java_bridge_errors.cc b/content/common/android/gin_java_bridge_errors.cc
index 57326b3..b2458cd 100644
--- a/content/common/android/gin_java_bridge_errors.cc
+++ b/content/common/android/gin_java_bridge_errors.cc
@@ -25,6 +25,8 @@
     case kGinJavaBridgeNonAssignableTypes:
       return "The type of the object passed to the method is incompatible "
           "with the type of method's argument";
+    case kGinJavaBridgeRenderFrameDeleted:
+      return "RenderFrame has been deleted";
   }
   NOTREACHED();
   return "Unknown error";
diff --git a/content/common/android/gin_java_bridge_errors.h b/content/common/android/gin_java_bridge_errors.h
index 37d14cb..140201e 100644
--- a/content/common/android/gin_java_bridge_errors.h
+++ b/content/common/android/gin_java_bridge_errors.h
@@ -17,6 +17,7 @@
   kGinJavaBridgeAccessToObjectGetClassIsBlocked,
   kGinJavaBridgeJavaExceptionRaised,
   kGinJavaBridgeNonAssignableTypes,
+  kGinJavaBridgeRenderFrameDeleted,
 };
 
 CONTENT_EXPORT const char* GinJavaBridgeErrorToString(GinJavaBridgeError error);
diff --git a/content/common/gpu/client/gpu_video_decode_accelerator_host.cc b/content/common/gpu/client/gpu_video_decode_accelerator_host.cc
index 8b714b9..a784467 100644
--- a/content/common/gpu/client/gpu_video_decode_accelerator_host.cc
+++ b/content/common/gpu/client/gpu_video_decode_accelerator_host.cc
@@ -231,11 +231,13 @@
 }
 
 void GpuVideoDecodeAcceleratorHost::OnPictureReady(
-    int32 picture_buffer_id, int32 bitstream_buffer_id) {
+    int32 picture_buffer_id,
+    int32 bitstream_buffer_id,
+    const gfx::Rect& visible_rect) {
   DCHECK(CalledOnValidThread());
   if (!client_)
     return;
-  media::Picture picture(picture_buffer_id, bitstream_buffer_id);
+  media::Picture picture(picture_buffer_id, bitstream_buffer_id, visible_rect);
   client_->PictureReady(picture);
 }
 
diff --git a/content/common/gpu/client/gpu_video_decode_accelerator_host.h b/content/common/gpu/client/gpu_video_decode_accelerator_host.h
index 571bd0c..e333f6b 100644
--- a/content/common/gpu/client/gpu_video_decode_accelerator_host.h
+++ b/content/common/gpu/client/gpu_video_decode_accelerator_host.h
@@ -64,7 +64,9 @@
                               const gfx::Size& dimensions,
                               uint32 texture_target);
   void OnDismissPictureBuffer(int32 picture_buffer_id);
-  void OnPictureReady(int32 picture_buffer_id, int32 bitstream_buffer_id);
+  void OnPictureReady(int32 picture_buffer_id,
+                      int32 bitstream_buffer_id,
+                      const gfx::Rect& visible_rect);
   void OnFlushDone();
   void OnResetDone();
   void OnNotifyError(uint32 error);
diff --git a/content/common/gpu/gpu_messages.h b/content/common/gpu/gpu_messages.h
index 164052e..a91bd1f 100644
--- a/content/common/gpu/gpu_messages.h
+++ b/content/common/gpu/gpu_messages.h
@@ -696,9 +696,10 @@
                     int32) /* Picture buffer ID */
 
 // Decoder reports that a picture is ready.
-IPC_MESSAGE_ROUTED2(AcceleratedVideoDecoderHostMsg_PictureReady,
-                    int32,  /* Picture buffer ID */
-                    int32)  /* Bitstream buffer ID */
+IPC_MESSAGE_ROUTED3(AcceleratedVideoDecoderHostMsg_PictureReady,
+                    int32,     /* Picture buffer ID */
+                    int32,     /* Bitstream buffer ID */
+                    gfx::Rect) /* Visible rectangle */
 
 // Confirm decoder has been flushed.
 IPC_MESSAGE_ROUTED0(AcceleratedVideoDecoderHostMsg_FlushDone)
diff --git a/content/common/gpu/media/android_video_decode_accelerator.cc b/content/common/gpu/media/android_video_decode_accelerator.cc
index b1de5b1..0eee641 100644
--- a/content/common/gpu/media/android_video_decode_accelerator.cc
+++ b/content/common/gpu/media/android_video_decode_accelerator.cc
@@ -377,9 +377,10 @@
 
   base::MessageLoop::current()->PostTask(
       FROM_HERE,
-      base::Bind(&AndroidVideoDecodeAccelerator::NotifyPictureReady,
-                 weak_this_factory_.GetWeakPtr(),
-                 media::Picture(picture_buffer_id, bitstream_id)));
+      base::Bind(
+          &AndroidVideoDecodeAccelerator::NotifyPictureReady,
+          weak_this_factory_.GetWeakPtr(),
+          media::Picture(picture_buffer_id, bitstream_id, gfx::Rect(size_))));
 }
 
 void AndroidVideoDecodeAccelerator::Decode(
diff --git a/content/common/gpu/media/dxva_video_decode_accelerator.cc b/content/common/gpu/media/dxva_video_decode_accelerator.cc
index 2e667d0..1c9f6f3 100644
--- a/content/common/gpu/media/dxva_video_decode_accelerator.cc
+++ b/content/common/gpu/media/dxva_video_decode_accelerator.cc
@@ -943,7 +943,8 @@
           PLATFORM_FAILURE, );
 
       media::Picture output_picture(index->second->id(),
-                                    sample_info.input_buffer_id);
+                                    sample_info.input_buffer_id,
+                                    gfx::Rect(index->second->size()));
       base::MessageLoop::current()->PostTask(
           FROM_HERE,
           base::Bind(&DXVAVideoDecodeAccelerator::NotifyPictureReady,
diff --git a/content/common/gpu/media/gpu_video_decode_accelerator.cc b/content/common/gpu/media/gpu_video_decode_accelerator.cc
index 6ce9330..c1cd553 100644
--- a/content/common/gpu/media/gpu_video_decode_accelerator.cc
+++ b/content/common/gpu/media/gpu_video_decode_accelerator.cc
@@ -212,7 +212,8 @@
   if (!Send(new AcceleratedVideoDecoderHostMsg_PictureReady(
           host_route_id_,
           picture.picture_buffer_id(),
-          picture.bitstream_buffer_id()))) {
+          picture.bitstream_buffer_id(),
+          picture.visible_rect()))) {
     DLOG(ERROR) << "Send(AcceleratedVideoDecoderHostMsg_PictureReady) failed";
   }
 }
diff --git a/content/common/gpu/media/rendering_helper.cc b/content/common/gpu/media/rendering_helper.cc
index 7ee9401..ce2f94b 100644
--- a/content/common/gpu/media/rendering_helper.cc
+++ b/content/common/gpu/media/rendering_helper.cc
@@ -9,6 +9,7 @@
 #include <vector>
 
 #include "base/bind.h"
+#include "base/callback_helpers.h"
 #include "base/command_line.h"
 #include "base/mac/scoped_nsautorelease_pool.h"
 #include "base/message_loop/message_loop.h"
@@ -60,6 +61,25 @@
 
 RenderingHelperParams::~RenderingHelperParams() {}
 
+VideoFrameTexture::VideoFrameTexture(uint32 texture_target,
+                                     uint32 texture_id,
+                                     const base::Closure& no_longer_needed_cb)
+    : texture_target_(texture_target),
+      texture_id_(texture_id),
+      no_longer_needed_cb_(no_longer_needed_cb) {
+  DCHECK(!no_longer_needed_cb_.is_null());
+}
+
+VideoFrameTexture::~VideoFrameTexture() {
+  base::ResetAndReturn(&no_longer_needed_cb_).Run();
+}
+
+RenderingHelper::RenderedVideo::RenderedVideo() : last_frame_rendered(false) {
+}
+
+RenderingHelper::RenderedVideo::~RenderedVideo() {
+}
+
 // static
 bool RenderingHelper::InitializeOneOff() {
   base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
@@ -78,15 +98,15 @@
 }
 
 RenderingHelper::~RenderingHelper() {
-  CHECK_EQ(clients_.size(), 0U) << "Must call UnInitialize before dtor.";
+  CHECK_EQ(videos_.size(), 0U) << "Must call UnInitialize before dtor.";
   Clear();
 }
 
 void RenderingHelper::Initialize(const RenderingHelperParams& params,
                                  base::WaitableEvent* done) {
-  // Use cients_.size() != 0 as a proxy for the class having already been
+  // Use videos_.size() != 0 as a proxy for the class having already been
   // Initialize()'d, and UnInitialize() before continuing.
-  if (clients_.size()) {
+  if (videos_.size()) {
     base::WaitableEvent done(false, false);
     UnInitialize(&done);
     done.Wait();
@@ -153,12 +173,12 @@
       NULL, gl_surface_, gfx::PreferIntegratedGpu);
   gl_context_->MakeCurrent(gl_surface_);
 
-  clients_ = params.clients;
-  CHECK_GT(clients_.size(), 0U);
-  LayoutRenderingAreas();
+  CHECK_GT(params.window_sizes.size(), 0U);
+  videos_.resize(params.window_sizes.size());
+  LayoutRenderingAreas(params.window_sizes);
 
   if (render_as_thumbnails_) {
-    CHECK_EQ(clients_.size(), 1U);
+    CHECK_EQ(videos_.size(), 1U);
 
     GLint max_texture_size;
     glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max_texture_size);
@@ -370,6 +390,31 @@
   ++frame_count_;
 }
 
+void RenderingHelper::QueueVideoFrame(
+    size_t window_id,
+    scoped_refptr<VideoFrameTexture> video_frame) {
+  CHECK_EQ(base::MessageLoop::current(), message_loop_);
+  RenderedVideo* video = &videos_[window_id];
+
+  // Pop the last frame if it has been rendered.
+  if (video->last_frame_rendered) {
+    // When last_frame_rendered is true, we should have only one pending frame.
+    // Since we are going to have a new frame, we can release the pending one.
+    DCHECK(video->pending_frames.size() == 1);
+    video->pending_frames.pop();
+    video->last_frame_rendered = false;
+  }
+
+  video->pending_frames.push(video_frame);
+}
+
+void RenderingHelper::DropPendingFrames(size_t window_id) {
+  CHECK_EQ(base::MessageLoop::current(), message_loop_);
+  RenderedVideo* video = &videos_[window_id];
+  video->pending_frames = std::queue<scoped_refptr<VideoFrameTexture> >();
+  video->last_frame_rendered = false;
+}
+
 void RenderingHelper::RenderTexture(uint32 texture_target, uint32 texture_id) {
   // The ExternalOES sampler is bound to GL_TEXTURE1 and the Texture2D sampler
   // is bound to GL_TEXTURE0.
@@ -385,6 +430,7 @@
 }
 
 void RenderingHelper::DeleteTexture(uint32 texture_id) {
+  CHECK_EQ(base::MessageLoop::current(), message_loop_);
   glDeleteTextures(1, &texture_id);
   CHECK_EQ(static_cast<int>(glGetError()), GL_NO_ERROR);
 }
@@ -398,7 +444,7 @@
 }
 
 void RenderingHelper::Clear() {
-  clients_.clear();
+  videos_.clear();
   message_loop_ = NULL;
   gl_context_ = NULL;
   gl_surface_ = NULL;
@@ -461,16 +507,30 @@
   CHECK_EQ(base::MessageLoop::current(), message_loop_);
   glUniform1i(glGetUniformLocation(program_, "tex_flip"), 1);
 
+  // Frames that will be returned to the client (via the no_longer_needed_cb)
+  // after this vector falls out of scope at the end of this method. We need
+  // to keep references to them until after SwapBuffers() call below.
+  std::vector<scoped_refptr<VideoFrameTexture> > frames_to_be_returned;
+
   if (render_as_thumbnails_) {
     // In render_as_thumbnails_ mode, we render the FBO content on the
     // screen instead of the decoded textures.
-    GLSetViewPort(render_areas_[0]);
+    GLSetViewPort(videos_[0].render_area);
     RenderTexture(GL_TEXTURE_2D, thumbnails_texture_id_);
   } else {
-    for (size_t i = 0; i < clients_.size(); ++i) {
-      if (clients_[i]) {
-        GLSetViewPort(render_areas_[i]);
-        clients_[i]->RenderContent(this);
+    for (size_t i = 0; i < videos_.size(); ++i) {
+      RenderedVideo* video = &videos_[i];
+      if (video->pending_frames.empty())
+        continue;
+      scoped_refptr<VideoFrameTexture> frame = video->pending_frames.front();
+      GLSetViewPort(video->render_area);
+      RenderTexture(frame->texture_target(), frame->texture_id());
+
+      if (video->pending_frames.size() > 1) {
+        frames_to_be_returned.push_back(video->pending_frames.front());
+        video->pending_frames.pop();
+      } else {
+        video->last_frame_rendered = true;
       }
     }
   }
@@ -492,11 +552,12 @@
   }
 }
 
-void RenderingHelper::LayoutRenderingAreas() {
+void RenderingHelper::LayoutRenderingAreas(
+    const std::vector<gfx::Size>& window_sizes) {
   // Find the number of colums and rows.
-  // The smallest n * n or n * (n + 1) > number of clients.
-  size_t cols = sqrt(clients_.size() - 1) + 1;
-  size_t rows = (clients_.size() + cols - 1) / cols;
+  // The smallest n * n or n * (n + 1) > number of windows.
+  size_t cols = sqrt(videos_.size() - 1) + 1;
+  size_t rows = (videos_.size() + cols - 1) / cols;
 
   // Find the widths and heights of the grid.
   std::vector<int> widths(cols);
@@ -504,31 +565,30 @@
   std::vector<int> offset_x(cols);
   std::vector<int> offset_y(rows);
 
-  for (size_t i = 0; i < clients_.size(); ++i) {
-    const gfx::Size& window_size = clients_[i]->GetWindowSize();
-    widths[i % cols] = std::max(widths[i % cols], window_size.width());
-    heights[i / cols] = std::max(heights[i / cols], window_size.height());
+  for (size_t i = 0; i < window_sizes.size(); ++i) {
+    const gfx::Size& size = window_sizes[i];
+    widths[i % cols] = std::max(widths[i % cols], size.width());
+    heights[i / cols] = std::max(heights[i / cols], size.height());
   }
 
   ScaleAndCalculateOffsets(&widths, &offset_x, screen_size_.width());
   ScaleAndCalculateOffsets(&heights, &offset_y, screen_size_.height());
 
   // Put each render_area_ in the center of each cell.
-  render_areas_.clear();
-  for (size_t i = 0; i < clients_.size(); ++i) {
-    const gfx::Size& window_size = clients_[i]->GetWindowSize();
+  for (size_t i = 0; i < window_sizes.size(); ++i) {
+    const gfx::Size& size = window_sizes[i];
     float scale =
-        std::min(static_cast<float>(widths[i % cols]) / window_size.width(),
-                 static_cast<float>(heights[i / cols]) / window_size.height());
+        std::min(static_cast<float>(widths[i % cols]) / size.width(),
+                 static_cast<float>(heights[i / cols]) / size.height());
 
     // Don't scale up the texture.
     scale = std::min(1.0f, scale);
 
-    size_t w = scale * window_size.width();
-    size_t h = scale * window_size.height();
+    size_t w = scale * size.width();
+    size_t h = scale * size.height();
     size_t x = offset_x[i % cols] + (widths[i % cols] - w) / 2;
     size_t y = offset_y[i / cols] + (heights[i / cols] - h) / 2;
-    render_areas_.push_back(gfx::Rect(x, y, w, h));
+    videos_[i].render_area = gfx::Rect(x, y, w, h);
   }
 }
 }  // namespace content
diff --git a/content/common/gpu/media/rendering_helper.h b/content/common/gpu/media/rendering_helper.h
index a2dfb1b..6b0013f 100644
--- a/content/common/gpu/media/rendering_helper.h
+++ b/content/common/gpu/media/rendering_helper.h
@@ -6,6 +6,7 @@
 #define CONTENT_COMMON_GPU_MEDIA_RENDERING_HELPER_H_
 
 #include <map>
+#include <queue>
 #include <vector>
 
 #include "base/basictypes.h"
@@ -24,25 +25,53 @@
 
 namespace content {
 
-struct RenderingHelperParams;
+class VideoFrameTexture : public base::RefCounted<VideoFrameTexture> {
+ public:
+  uint32 texture_id() const { return texture_id_; }
+  uint32 texture_target() const { return texture_target_; }
+
+  VideoFrameTexture(uint32 texture_target,
+                    uint32 texture_id,
+                    const base::Closure& no_longer_needed_cb);
+
+ private:
+  friend class base::RefCounted<VideoFrameTexture>;
+
+  uint32 texture_target_;
+  uint32 texture_id_;
+  base::Closure no_longer_needed_cb_;
+
+  ~VideoFrameTexture();
+};
+
+struct RenderingHelperParams {
+  RenderingHelperParams();
+  ~RenderingHelperParams();
+
+  // The rendering FPS.
+  int rendering_fps;
+
+  // The desired size of each window. We play each stream in its own window
+  // on the screen.
+  std::vector<gfx::Size> window_sizes;
+
+  // The members below are only used for the thumbnail mode where all frames
+  // are rendered in sequence onto one FBO for comparison/verification purposes.
+
+  // Whether the frames are rendered as scaled thumbnails within a
+  // larger FBO that is in turn rendered to the window.
+  bool render_as_thumbnails;
+  // The size of the FBO containing all visible thumbnails.
+  gfx::Size thumbnails_page_size;
+  // The size of each thumbnail within the FBO.
+  gfx::Size thumbnail_size;
+};
 
 // Creates and draws textures used by the video decoder.
 // This class is not thread safe and thus all the methods of this class
 // (except for ctor/dtor) ensure they're being run on a single thread.
 class RenderingHelper {
  public:
-  // Interface for the content provider of the RenderingHelper.
-  class Client {
-   public:
-    // Callback to tell client to render the content.
-    virtual void RenderContent(RenderingHelper* helper) = 0;
-
-    // Callback to get the desired window size of the client.
-    virtual const gfx::Size& GetWindowSize() = 0;
-
-   protected:
-    virtual ~Client() {}
-  };
 
   RenderingHelper();
   ~RenderingHelper();
@@ -67,9 +96,12 @@
   // |texture_target|.
   void RenderThumbnail(uint32 texture_target, uint32 texture_id);
 
-  // Render |texture_id| to the current view port of the screen using target
-  // |texture_target|.
-  void RenderTexture(uint32 texture_target, uint32 texture_id);
+  // Queues the |video_frame| for rendering.
+  void QueueVideoFrame(size_t window_id,
+                       scoped_refptr<VideoFrameTexture> video_frame);
+
+  // Drops all the pending video frames of the specified window.
+  void DropPendingFrames(size_t window_id);
 
   // Delete |texture_id|.
   void DeleteTexture(uint32 texture_id);
@@ -87,11 +119,33 @@
                           base::WaitableEvent* done);
 
  private:
+  struct RenderedVideo {
+    // The rect on the screen where the video will be rendered.
+    gfx::Rect render_area;
+
+    // True if the last (and the only one) frame in pending_frames has
+    // been rendered. We keep the last remaining frame in pending_frames even
+    // after it has been rendered, so that we have something to display if the
+    // client is falling behind on providing us with new frames during
+    // timer-driven playback.
+    bool last_frame_rendered;
+
+    // The video frames pending for rendering.
+    std::queue<scoped_refptr<VideoFrameTexture> > pending_frames;
+
+    RenderedVideo();
+    ~RenderedVideo();
+  };
+
   void Clear();
 
   void RenderContent();
 
-  void LayoutRenderingAreas();
+  void LayoutRenderingAreas(const std::vector<gfx::Size>& window_sizes);
+
+  // Render |texture_id| to the current view port of the screen using target
+  // |texture_target|.
+  void RenderTexture(uint32 texture_target, uint32 texture_id);
 
   // Timer to trigger the RenderContent() repeatly.
   scoped_ptr<base::RepeatingTimer<RenderingHelper> > render_timer_;
@@ -104,10 +158,7 @@
 
   gfx::Size screen_size_;
 
-  // The rendering area of each window on the screen.
-  std::vector<gfx::Rect> render_areas_;
-
-  std::vector<base::WeakPtr<Client> > clients_;
+  std::vector<RenderedVideo> videos_;
 
   bool render_as_thumbnails_;
   int frame_count_;
@@ -121,24 +172,6 @@
   DISALLOW_COPY_AND_ASSIGN(RenderingHelper);
 };
 
-struct RenderingHelperParams {
-  RenderingHelperParams();
-  ~RenderingHelperParams();
-
-  // The rendering FPS.
-  int rendering_fps;
-
-  // The clients who provide the content for rendering.
-  std::vector<base::WeakPtr<RenderingHelper::Client> > clients;
-
-  // Whether the frames are rendered as scaled thumbnails within a
-  // larger FBO that is in turn rendered to the window.
-  bool render_as_thumbnails;
-  // The size of the FBO containing all visible thumbnails.
-  gfx::Size thumbnails_page_size;
-  // The size of each thumbnail within the FBO.
-  gfx::Size thumbnail_size;
-};
 }  // namespace content
 
 #endif  // CONTENT_COMMON_GPU_MEDIA_RENDERING_HELPER_H_
diff --git a/content/common/gpu/media/v4l2_video_decode_accelerator.cc b/content/common/gpu/media/v4l2_video_decode_accelerator.cc
index 315b2f5..cea1c7b 100644
--- a/content/common/gpu/media/v4l2_video_decode_accelerator.cc
+++ b/content/common/gpu/media/v4l2_video_decode_accelerator.cc
@@ -1092,7 +1092,9 @@
       DVLOG(3) << "Dequeue(): returning input_id=" << dqbuf.timestamp.tv_sec
                << " as picture_id=" << output_record.picture_id;
       const media::Picture& picture =
-          media::Picture(output_record.picture_id, dqbuf.timestamp.tv_sec);
+          media::Picture(output_record.picture_id,
+                         dqbuf.timestamp.tv_sec,
+                         gfx::Rect(frame_buffer_size_));
       pending_picture_ready_.push(
           PictureRecord(output_record.cleared, picture));
       SendPictureReady();
diff --git a/content/common/gpu/media/vaapi_video_decode_accelerator.cc b/content/common/gpu/media/vaapi_video_decode_accelerator.cc
index afcfc8a..0b30012 100644
--- a/content/common/gpu/media/vaapi_video_decode_accelerator.cc
+++ b/content/common/gpu/media/vaapi_video_decode_accelerator.cc
@@ -371,8 +371,11 @@
   TRACE_COUNTER1("Video Decoder", "Textures at client", num_frames_at_client_);
   DVLOG(4) << "Notifying output picture id " << output_id
            << " for input "<< input_id << " is ready";
+  // TODO(posciak): Use visible size from decoder here instead
+  // (crbug.com/402760).
   if (client_)
-    client_->PictureReady(media::Picture(output_id, input_id));
+    client_->PictureReady(
+        media::Picture(output_id, input_id, gfx::Rect(tfp_picture->size())));
 }
 
 void VaapiVideoDecodeAccelerator::TryOutputSurface() {
diff --git a/content/common/gpu/media/video_decode_accelerator_unittest.cc b/content/common/gpu/media/video_decode_accelerator_unittest.cc
index 071dced..65cc939 100644
--- a/content/common/gpu/media/video_decode_accelerator_unittest.cc
+++ b/content/common/gpu/media/video_decode_accelerator_unittest.cc
@@ -193,9 +193,10 @@
 // the TESTs below.
 class GLRenderingVDAClient
     : public VideoDecodeAccelerator::Client,
-      public RenderingHelper::Client,
       public base::SupportsWeakPtr<GLRenderingVDAClient> {
  public:
+  // |window_id| the window_id of the client, which is used to identify the
+  // rendering area in the |rendering_helper|.
   // Doesn't take ownership of |rendering_helper| or |note|, which must outlive
   // |*this|.
   // |num_play_throughs| indicates how many times to play through the video.
@@ -212,7 +213,8 @@
   // will start delaying the call to ReusePictureBuffer() for kReuseDelay.
   // |decode_calls_per_second| is the number of VDA::Decode calls per second.
   // If |decode_calls_per_second| > 0, |num_in_flight_decodes| must be 1.
-  GLRenderingVDAClient(RenderingHelper* rendering_helper,
+  GLRenderingVDAClient(size_t window_id,
+                       RenderingHelper* rendering_helper,
                        ClientStateNotification<ClientState>* note,
                        const std::string& encoded_data,
                        int num_in_flight_decodes,
@@ -242,14 +244,8 @@
   virtual void NotifyResetDone() OVERRIDE;
   virtual void NotifyError(VideoDecodeAccelerator::Error error) OVERRIDE;
 
-  // RenderingHelper::Client implementation.
-  virtual void RenderContent(RenderingHelper*) OVERRIDE;
-  virtual const gfx::Size& GetWindowSize() OVERRIDE;
-
   void OutputFrameDeliveryTimes(base::File* output);
 
-  void NotifyFrameDropped(int32 picture_buffer_id);
-
   // Simple getters for inspecting the state of the Client.
   int num_done_bitstream_buffers() { return num_done_bitstream_buffers_; }
   int num_skipped_fragments() { return num_skipped_fragments_; }
@@ -285,6 +281,7 @@
   // Request decode of the next fragment in the encoded data.
   void DecodeNextFragment();
 
+  size_t window_id_;
   RenderingHelper* rendering_helper_;
   gfx::Size frame_size_;
   std::string encoded_data_;
@@ -319,13 +316,12 @@
   // The number of VDA::Decode calls per second. This is to simulate webrtc.
   int decode_calls_per_second_;
   bool render_as_thumbnails_;
-  bool pending_picture_updated_;
-  std::deque<int32> pending_picture_buffer_ids_;
 
   DISALLOW_IMPLICIT_CONSTRUCTORS(GLRenderingVDAClient);
 };
 
 GLRenderingVDAClient::GLRenderingVDAClient(
+    size_t window_id,
     RenderingHelper* rendering_helper,
     ClientStateNotification<ClientState>* note,
     const std::string& encoded_data,
@@ -340,7 +336,8 @@
     int delay_reuse_after_frame_num,
     int decode_calls_per_second,
     bool render_as_thumbnails)
-    : rendering_helper_(rendering_helper),
+    : window_id_(window_id),
+      rendering_helper_(rendering_helper),
       frame_size_(frame_width, frame_height),
       encoded_data_(encoded_data),
       num_in_flight_decodes_(num_in_flight_decodes),
@@ -360,8 +357,7 @@
       suppress_rendering_(suppress_rendering),
       delay_reuse_after_frame_num_(delay_reuse_after_frame_num),
       decode_calls_per_second_(decode_calls_per_second),
-      render_as_thumbnails_(render_as_thumbnails),
-      pending_picture_updated_(true) {
+      render_as_thumbnails_(render_as_thumbnails) {
   CHECK_GT(num_in_flight_decodes, 0);
   CHECK_GT(num_play_throughs, 0);
   // |num_in_flight_decodes_| is unsupported if |decode_calls_per_second_| > 0.
@@ -459,42 +455,6 @@
   picture_buffers_by_id_.erase(it);
 }
 
-void GLRenderingVDAClient::RenderContent(RenderingHelper*) {
-  CHECK(!render_as_thumbnails_);
-
-  // No decoded texture for rendering yet, just skip.
-  if (pending_picture_buffer_ids_.size() == 0)
-    return;
-
-  int32 buffer_id = pending_picture_buffer_ids_.front();
-  media::PictureBuffer* picture_buffer = picture_buffers_by_id_[buffer_id];
-
-  CHECK(picture_buffer);
-  if (!pending_picture_updated_) {
-    // Frame dropped, just redraw the last texture.
-    rendering_helper_->RenderTexture(texture_target_,
-                                     picture_buffer->texture_id());
-    return;
-  }
-
-  base::TimeTicks now = base::TimeTicks::Now();
-  frame_delivery_times_.push_back(now);
-
-  rendering_helper_->RenderTexture(texture_target_,
-                                   picture_buffer->texture_id());
-
-  if (pending_picture_buffer_ids_.size() == 1) {
-    pending_picture_updated_ = false;
-  } else {
-    pending_picture_buffer_ids_.pop_front();
-    ReturnPicture(buffer_id);
-  }
-}
-
-const gfx::Size& GLRenderingVDAClient::GetWindowSize() {
-  return render_as_thumbnails_ ? kThumbnailsPageSize : frame_size_;
-}
-
 void GLRenderingVDAClient::PictureReady(const media::Picture& picture) {
   // We shouldn't be getting pictures delivered after Reset has completed.
   CHECK_LT(state_, CS_RESET);
@@ -503,6 +463,9 @@
     return;
 
   base::TimeTicks now = base::TimeTicks::Now();
+
+  frame_delivery_times_.push_back(now);
+
   // Save the decode time of this picture.
   std::map<int, base::TimeTicks>::iterator it =
       decode_start_time_.find(picture.bitstream_buffer_id());
@@ -524,25 +487,22 @@
     encoded_data_next_pos_to_decode_ = 0;
   }
 
+  media::PictureBuffer* picture_buffer =
+      picture_buffers_by_id_[picture.picture_buffer_id()];
+  CHECK(picture_buffer);
+
+  scoped_refptr<VideoFrameTexture> video_frame =
+      new VideoFrameTexture(texture_target_,
+                            picture_buffer->texture_id(),
+                            base::Bind(&GLRenderingVDAClient::ReturnPicture,
+                                       AsWeakPtr(),
+                                       picture.picture_buffer_id()));
+
   if (render_as_thumbnails_) {
-    frame_delivery_times_.push_back(now);
-    media::PictureBuffer* picture_buffer =
-        picture_buffers_by_id_[picture.picture_buffer_id()];
-    CHECK(picture_buffer);
-    rendering_helper_->RenderThumbnail(texture_target_,
-                                       picture_buffer->texture_id());
-    ReturnPicture(picture.picture_buffer_id());
+    rendering_helper_->RenderThumbnail(video_frame->texture_target(),
+                                       video_frame->texture_id());
   } else if (!suppress_rendering_) {
-    // Keep the picture for rendering.
-    pending_picture_buffer_ids_.push_back(picture.picture_buffer_id());
-    if (pending_picture_buffer_ids_.size() > 1 && !pending_picture_updated_) {
-      ReturnPicture(pending_picture_buffer_ids_.front());
-      pending_picture_buffer_ids_.pop_front();
-      pending_picture_updated_ = true;
-    }
-  } else {
-    frame_delivery_times_.push_back(now);
-    ReturnPicture(picture.picture_buffer_id());
+    rendering_helper_->QueueVideoFrame(window_id_, video_frame);
   }
 }
 
@@ -590,12 +550,7 @@
   if (decoder_deleted())
     return;
 
-  // Clear pending_pictures and reuse them.
-  while (!pending_picture_buffer_ids_.empty()) {
-    decoder_->ReusePictureBuffer(pending_picture_buffer_ids_.front());
-    pending_picture_buffer_ids_.pop_front();
-  }
-  pending_picture_updated_ = true;
+  rendering_helper_->DropPendingFrames(window_id_);
 
   if (reset_after_frame_num_ == MID_STREAM_RESET) {
     reset_after_frame_num_ = END_OF_STREAM_RESET;
@@ -637,10 +592,6 @@
   }
 }
 
-void GLRenderingVDAClient::NotifyFrameDropped(int32 picture_buffer_id) {
-  decoder_->ReusePictureBuffer(picture_buffer_id);
-}
-
 static bool LookingAtNAL(const std::string& encoded, size_t pos) {
   return encoded[pos] == 0 && encoded[pos + 1] == 0 &&
       encoded[pos + 2] == 0 && encoded[pos + 3] == 1;
@@ -1127,7 +1078,8 @@
     }
 
     GLRenderingVDAClient* client =
-        new GLRenderingVDAClient(&rendering_helper_,
+        new GLRenderingVDAClient(index,
+                                 &rendering_helper_,
                                  note,
                                  video_file->data_str,
                                  num_in_flight_decodes,
@@ -1143,7 +1095,10 @@
                                  render_as_thumbnails);
 
     clients[index] = client;
-    helper_params.clients.push_back(client->AsWeakPtr());
+    helper_params.window_sizes.push_back(
+        render_as_thumbnails
+            ? kThumbnailsPageSize
+            : gfx::Size(video_file->width, video_file->height));
   }
 
   InitializeRenderingHelper(helper_params);
@@ -1376,7 +1331,8 @@
   ClientStateNotification<ClientState>* note =
       new ClientStateNotification<ClientState>();
   GLRenderingVDAClient* client =
-      new GLRenderingVDAClient(&rendering_helper_,
+      new GLRenderingVDAClient(0,
+                               &rendering_helper_,
                                note,
                                test_video_files_[0]->data_str,
                                1,
@@ -1390,7 +1346,8 @@
                                std::numeric_limits<int>::max(),
                                kWebRtcDecodeCallsPerSecond,
                                false /* render_as_thumbnail */);
-  helper_params.clients.push_back(client->AsWeakPtr());
+  helper_params.window_sizes.push_back(
+      gfx::Size(test_video_files_[0]->width, test_video_files_[0]->height));
   InitializeRenderingHelper(helper_params);
   CreateAndStartDecoder(client, note);
   WaitUntilDecodeFinish(note);
diff --git a/content/common/gpu/media/vt_video_decode_accelerator.cc b/content/common/gpu/media/vt_video_decode_accelerator.cc
index 5b91650..8e4c408 100644
--- a/content/common/gpu/media/vt_video_decode_accelerator.cc
+++ b/content/common/gpu/media/vt_video_decode_accelerator.cc
@@ -376,7 +376,8 @@
         0));                          // plane
 
     picture_bindings_[picture_id] = frame.image_buffer;
-    client_->PictureReady(media::Picture(picture_id, frame.bitstream_id));
+    client_->PictureReady(media::Picture(
+        picture_id, frame.bitstream_id, gfx::Rect(texture_size_)));
     client_->NotifyEndOfBitstreamBuffer(frame.bitstream_id);
   }
 
diff --git a/content/common_aidl.target.darwin-arm.mk b/content/common_aidl.target.darwin-arm.mk
index 5f3e1c8..a3366ad 100644
--- a/content/common_aidl.target.darwin-arm.mk
+++ b/content/common_aidl.target.darwin-arm.mk
@@ -16,13 +16,13 @@
 
 
 ### Generated for rule "content_content_gyp_common_aidl_target_compile_aidl":
-# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/darwin/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
+# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/darwin/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/darwin/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java"
 
 
@@ -31,7 +31,7 @@
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/darwin/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessService.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java"
 
 
diff --git a/content/common_aidl.target.darwin-arm64.mk b/content/common_aidl.target.darwin-arm64.mk
index 3d6c03c..a90a140 100644
--- a/content/common_aidl.target.darwin-arm64.mk
+++ b/content/common_aidl.target.darwin-arm64.mk
@@ -16,13 +16,13 @@
 
 
 ### Generated for rule "content_content_gyp_common_aidl_target_compile_aidl":
-# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/darwin/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
+# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/darwin/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/darwin/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java"
 
 
@@ -31,7 +31,7 @@
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/darwin/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessService.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java"
 
 
diff --git a/content/common_aidl.target.darwin-mips.mk b/content/common_aidl.target.darwin-mips.mk
index a5ed341..1e871f3 100644
--- a/content/common_aidl.target.darwin-mips.mk
+++ b/content/common_aidl.target.darwin-mips.mk
@@ -16,13 +16,13 @@
 
 
 ### Generated for rule "content_content_gyp_common_aidl_target_compile_aidl":
-# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/darwin/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
+# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/darwin/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/darwin/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java"
 
 
@@ -31,7 +31,7 @@
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/darwin/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessService.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java"
 
 
diff --git a/content/common_aidl.target.darwin-x86.mk b/content/common_aidl.target.darwin-x86.mk
index 9f0eef2..0cb2836 100644
--- a/content/common_aidl.target.darwin-x86.mk
+++ b/content/common_aidl.target.darwin-x86.mk
@@ -16,13 +16,13 @@
 
 
 ### Generated for rule "content_content_gyp_common_aidl_target_compile_aidl":
-# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/darwin/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
+# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/darwin/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/darwin/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java"
 
 
@@ -31,7 +31,7 @@
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/darwin/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessService.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java"
 
 
diff --git a/content/common_aidl.target.darwin-x86_64.mk b/content/common_aidl.target.darwin-x86_64.mk
index 511eb63..2fac32d 100644
--- a/content/common_aidl.target.darwin-x86_64.mk
+++ b/content/common_aidl.target.darwin-x86_64.mk
@@ -16,13 +16,13 @@
 
 
 ### Generated for rule "content_content_gyp_common_aidl_target_compile_aidl":
-# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/darwin/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
+# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/darwin/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/darwin/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java"
 
 
@@ -31,7 +31,7 @@
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/darwin/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessService.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java"
 
 
diff --git a/content/common_aidl.target.linux-arm.mk b/content/common_aidl.target.linux-arm.mk
index 6ffca7b..fa2c353 100644
--- a/content/common_aidl.target.linux-arm.mk
+++ b/content/common_aidl.target.linux-arm.mk
@@ -16,13 +16,13 @@
 
 
 ### Generated for rule "content_content_gyp_common_aidl_target_compile_aidl":
-# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/linux/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
+# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/linux/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/linux/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java"
 
 
@@ -31,7 +31,7 @@
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/linux/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessService.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java"
 
 
diff --git a/content/common_aidl.target.linux-arm64.mk b/content/common_aidl.target.linux-arm64.mk
index 2c67325..c6c0db4 100644
--- a/content/common_aidl.target.linux-arm64.mk
+++ b/content/common_aidl.target.linux-arm64.mk
@@ -16,13 +16,13 @@
 
 
 ### Generated for rule "content_content_gyp_common_aidl_target_compile_aidl":
-# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/linux/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
+# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/linux/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/linux/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java"
 
 
@@ -31,7 +31,7 @@
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/linux/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessService.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java"
 
 
diff --git a/content/common_aidl.target.linux-mips.mk b/content/common_aidl.target.linux-mips.mk
index 2b60916..1b977fa 100644
--- a/content/common_aidl.target.linux-mips.mk
+++ b/content/common_aidl.target.linux-mips.mk
@@ -16,13 +16,13 @@
 
 
 ### Generated for rule "content_content_gyp_common_aidl_target_compile_aidl":
-# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/linux/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
+# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/linux/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/linux/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java"
 
 
@@ -31,7 +31,7 @@
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/linux/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessService.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java"
 
 
diff --git a/content/common_aidl.target.linux-x86.mk b/content/common_aidl.target.linux-x86.mk
index e416d25..34812de 100644
--- a/content/common_aidl.target.linux-x86.mk
+++ b/content/common_aidl.target.linux-x86.mk
@@ -16,13 +16,13 @@
 
 
 ### Generated for rule "content_content_gyp_common_aidl_target_compile_aidl":
-# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/linux/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
+# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/linux/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/linux/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java"
 
 
@@ -31,7 +31,7 @@
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/linux/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessService.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java"
 
 
diff --git a/content/common_aidl.target.linux-x86_64.mk b/content/common_aidl.target.linux-x86_64.mk
index e4342e5..dd84959 100644
--- a/content/common_aidl.target.linux-x86_64.mk
+++ b/content/common_aidl.target.linux-x86_64.mk
@@ -16,13 +16,13 @@
 
 
 ### Generated for rule "content_content_gyp_common_aidl_target_compile_aidl":
-# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/linux/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
+# "{'inputs': ['$(PWD)/prebuilts/sdk/18/framework.aidl', 'public/android/java/src/org/chromium/content/common/common.aidl', 'public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java', 'public/android/java/src/org/chromium/content/app/ContentMain.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java', 'public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java', 'public/android/java/src/org/chromium/content/app/ContentApplication.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java', 'public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java', 'public/android/java/src/org/chromium/content/app/ChildProcessService.java', 'public/android/java/src/org/chromium/content/browser/BindingManager.java', 'public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentSettings.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java', 'public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java', 'public/android/java/src/org/chromium/content/browser/ContentViewStatics.java', 'public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java', 'public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java', 'public/android/java/src/org/chromium/content/browser/JavascriptInterface.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java', 'public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java', 'public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java', 'public/android/java/src/org/chromium/content/browser/NavigationClient.java', 'public/android/java/src/org/chromium/content/browser/NavigationEntry.java', 'public/android/java/src/org/chromium/content/browser/PepperPluginManager.java', 'public/android/java/src/org/chromium/content/browser/PopupZoomer.java', 'public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java', 'public/android/java/src/org/chromium/content/browser/ResourceExtractor.java', 'public/android/java/src/org/chromium/content/browser/SpeechRecognition.java', 'public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java', 'public/android/java/src/org/chromium/content/browser/VibrationProvider.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java', 'public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java', 'public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java', 'public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPicker.java', 'public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPicker.java', 'public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopup.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java', 'public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java', 'public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java', 'public/android/java/src/org/chromium/content/browser/input/GamepadList.java', 'public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java', 'public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java', 'public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java', 'public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java', 'public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java', 'public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java', 'public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java', 'public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java', 'public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java', 'public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java', 'public/android/java/src/org/chromium/content/browser/DeviceSensors.java', 'public/android/java/src/org/chromium/content/browser/NavigationHistory.java', 'public/android/java/src/org/chromium/content/browser/RenderCoordinates.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java', 'public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java', 'public/android/java/src/org/chromium/content/browser/LoadUrlParams.java', 'public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java', 'public/android/java/src/org/chromium/content/browser/ContentView.java', 'public/android/java/src/org/chromium/content/browser/DeviceUtils.java', 'public/android/java/src/org/chromium/content/browser/SmartClipProvider.java', 'public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java', 'public/android/java/src/org/chromium/content/browser/BrowserStartupController.java', 'public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java', 'public/android/java/src/org/chromium/content/browser/ContentVideoView.java', 'public/android/java/src/org/chromium/content/browser/DownloadController.java', 'public/android/java/src/org/chromium/content/browser/DownloadInfo.java', 'public/android/java/src/org/chromium/content/browser/PositionObserver.java', 'public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java', 'public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java', 'public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java', 'public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java', 'public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java', 'public/android/java/src/org/chromium/content/browser/ContentViewClient.java', 'public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java', 'public/android/java/src/org/chromium/content/browser/SPenSupport.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java', 'public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java', 'public/android/java/src/org/chromium/content/browser/ContentViewCore.java', 'public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java', 'public/android/java/src/org/chromium/content/common/CleanupReference.java', 'public/android/java/src/org/chromium/content/common/SurfaceWrapper.java', 'public/android/java/src/org/chromium/content/common/ContentSwitches.java', 'public/android/java/src/org/chromium/content_public/Referrer.java', 'public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationController.java', 'public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java', 'public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java', 'public/android/java/src/org/chromium/content_public/browser/WebContents.java'], 'extension': 'aidl', 'rule_sources': ['public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl'], 'rule_name': 'compile_aidl', 'outputs': ['$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java'], 'action': ['$(PWD)/prebuilts/sdk/tools/linux/aidl', '-p$(PWD)/prebuilts/sdk/18/framework.aidl', '-ppublic/android/java/src/org/chromium/content/common/common.aidl', '-Ipublic/android/java/src', '$(RULE_SOURCES)', '$(gyp_shared_intermediate_dir)/common_aidl/aidl/%(INPUT_ROOT)s.java']}":
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_local_path := $(LOCAL_PATH)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_var_prefix := $(GYP_VAR_PREFIX)
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/linux/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessCallback.java"
 
 
@@ -31,7 +31,7 @@
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java: $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/IChildProcessService.aidl $(PWD)/prebuilts/sdk/18/framework.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/common.aidl $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChromiumLinkerParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentMain.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/PrivilegedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService0.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService1.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService10.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService11.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService12.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService2.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService3.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService4.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService5.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService6.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService7.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService8.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService9.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ContentApplication.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService13.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService14.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService15.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService16.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService17.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService18.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/SandboxedProcessService19.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/app/ChildProcessService.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BindingManagerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentSettings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewLegacy.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewDownloadDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewStatics.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/FileDescriptorInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/InterstitialPageDelegateAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JavascriptInterface.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaDrmCredentialManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationEntry.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PepperPluginManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PopupZoomer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PowerSaveBlocker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ResourceExtractor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SpeechRecognition.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TouchEventSynthesizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/VibrationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/KitKatBrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateDialogNormalizer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeChooserAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestion.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimeSuggestionListAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputMethodManagerWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MonthPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/WeekPickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopup.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupItem.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/SelectPopupDropdown.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadDevice.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/GamepadList.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ChromeDatePickerDialog.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/InputDialogContainer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PopupTouchHandleDrawable.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/input/PastePopupMenu.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/ByteArrayGenerator.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/crypto/CipherFactory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/NavigationHistory.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/RenderCoordinates.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnection.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessConnectionImpl.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TimeZoneMonitor.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/LoadUrlParams.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ActivityContentVideoViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DeviceUtils.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SmartClipProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/WebContentsObserverAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BrowserStartupController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentVideoView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/DownloadInfo.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/PositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SelectActionModeCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/TracingControllerAndroid.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ViewPositionObserver.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/BatteryStatusManager.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncher.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewClient.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/SPenSupport.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/CleanupReference.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/SurfaceWrapper.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content/common/ContentSwitches.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/Referrer.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/GestureStateListener.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationController.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/JavaScriptCallback.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/NavigationTransitionDelegate.java $(LOCAL_PATH)/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java $(GYP_TARGET_DEPENDENCIES)
 	mkdir -p $(gyp_shared_intermediate_dir)/common_aidl/aidl; cd $(gyp_local_path)/content; "$(PWD)/prebuilts/sdk/tools/linux/aidl" "-p$(PWD)/prebuilts/sdk/18/framework.aidl" -ppublic/android/java/src/org/chromium/content/common/common.aidl -Ipublic/android/java/src public/android/java/src/org/chromium/content/common/IChildProcessService.aidl "$(gyp_shared_intermediate_dir)/common_aidl/aidl/IChildProcessService.java"
 
 
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
index aed113e..84a8deb 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
@@ -297,6 +297,12 @@
     // Accessibility touch exploration state.
     private boolean mTouchExplorationEnabled;
 
+    // Whether accessibility focus should be set to the page when it finishes loading.
+    // This only applies if an accessibility service like TalkBack is running.
+    // This is desirable behavior for a browser window, but not for an embedded
+    // WebView.
+    private boolean mShouldSetAccessibilityFocusOnPageLoad;
+
     // Allows us to dynamically respond when the accessibility script injection flag changes.
     private ContentObserver mAccessibilityScriptInjectionObserver;
 
@@ -441,6 +447,11 @@
             @SuppressWarnings("deprecation")  // AbsoluteLayout
             public void setAnchorViewPosition(
                     View view, float x, float y, float width, float height) {
+                if (view.getParent() == null) {
+                    // Ignore. setAnchorViewPosition has been called after the anchor view has
+                    // already been released.
+                    return;
+                }
                 assert view.getParent() == mContainerViewAtCreation;
 
                 float scale = (float) DeviceDisplayInfo.create(mContext).getDIPScale();
@@ -2884,6 +2895,23 @@
     }
 
     /**
+     * Return whether or not we should set accessibility focus on page load.
+     */
+    public boolean shouldSetAccessibilityFocusOnPageLoad() {
+        return mShouldSetAccessibilityFocusOnPageLoad;
+    }
+
+    /**
+     * Return whether or not we should set accessibility focus on page load.
+     * This only applies if an accessibility service like TalkBack is running.
+     * This is desirable behavior for a browser window, but not for an embedded
+     * WebView.
+     */
+    public void setShouldSetAccessibilityFocusOnPageLoad(boolean on) {
+        mShouldSetAccessibilityFocusOnPageLoad = on;
+    }
+
+    /**
      * Inform WebKit that Fullscreen mode has been exited by the user.
      */
     public void exitFullscreen() {
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
index 97949f3..a309398 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
@@ -148,6 +148,15 @@
     }
 
     /**
+     * Trigger a redraw of the compositor.  This is only needed if the UI changes something that
+     * does not trigger a redraw itself by updating the layer tree.
+     */
+    public void setNeedsComposite() {
+        if (mNativeContentViewRenderView == 0) return;
+        nativeSetNeedsComposite(mNativeContentViewRenderView);
+    }
+
+    /**
      * This method should be subclassed to provide actions to be performed once the view is ready to
      * render.
      */
@@ -204,7 +213,15 @@
         }
     }
 
+    /**
+     * @return Native pointer for the UI resource provider taken from the compositor.
+     */
+    public long getUIResourceProvider() {
+        return nativeGetUIResourceProvider(mNativeContentViewRenderView);
+    }
+
     private native long nativeInit(long rootWindowNativePointer);
+    private native long nativeGetUIResourceProvider(long nativeContentViewRenderView);
     private native void nativeDestroy(long nativeContentViewRenderView);
     private native void nativeSetCurrentContentViewCore(long nativeContentViewRenderView,
             long nativeContentViewCore);
@@ -216,4 +233,5 @@
             int format, int width, int height, Surface surface);
     private native void nativeSetOverlayVideoMode(long nativeContentViewRenderView,
             boolean enabled);
+    private native void nativeSetNeedsComposite(long nativeContentViewRenderView);
 }
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
index 6f47233..8ba9800 100644
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
@@ -370,8 +370,10 @@
     private void handlePageLoaded(int id) {
         if (mUserHasTouchExplored) return;
 
-        mAccessibilityFocusId = id;
-        sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
+        if (mContentViewCore.shouldSetAccessibilityFocusOnPageLoad()) {
+            mAccessibilityFocusId = id;
+            sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
+        }
     }
 
     @CalledByNative
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
index 43bbe32..d4bfd4e 100644
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
@@ -871,6 +871,9 @@
 
 // Enables VP8 HW encode acceleration for WebRTC.
 const char kEnableWebRtcHWVp8Encoding[]     = "enable-webrtc-hw-vp8-encoding";
+
+// Enables H264 HW encode acceleration for WebRTC.
+const char kEnableWebRtcHWH264Encoding[]    = "enable-webrtc-hw-h264-encoding";
 #endif
 
 #if defined(OS_ANDROID)
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
index 69add0a..c90fa96 100644
--- a/content/public/common/content_switches.h
+++ b/content/public/common/content_switches.h
@@ -243,6 +243,7 @@
 CONTENT_EXPORT extern const char kDisableWebRtcEncryption[];
 CONTENT_EXPORT extern const char kDisableWebRtcHWEncoding[];
 CONTENT_EXPORT extern const char kEnableWebRtcHWVp8Encoding[];
+CONTENT_EXPORT extern const char kEnableWebRtcHWH264Encoding[];
 #endif
 
 #if defined(OS_ANDROID)
diff --git a/content/renderer/context_menu_params_builder.cc b/content/renderer/context_menu_params_builder.cc
index 0d53dac..63dcd4d 100644
--- a/content/renderer/context_menu_params_builder.cc
+++ b/content/renderer/context_menu_params_builder.cc
@@ -58,7 +58,7 @@
   if (!params.link_url.is_empty()) {
     blink::WebNode selectedNode = DomUtils::ExtractParentAnchorNode(data.node);
     blink::WebElement selectedElement = selectedNode.to<blink::WebElement>();
-    if (selectedNode.isLink() && !selectedElement.isNull()) {
+    if (!selectedElement.isNull() && selectedNode.isLink()) {
       params.link_text = selectedElement.innerText();
     } else {
       LOG(ERROR) << "Creating a ContextMenuParams for a node that has a link"
diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc
index 930ea6d..068fc06 100644
--- a/content/renderer/media/android/webmediaplayer_android.cc
+++ b/content/renderer/media/android/webmediaplayer_android.cc
@@ -514,6 +514,13 @@
 void WebMediaPlayerAndroid::paint(blink::WebCanvas* canvas,
                                   const blink::WebRect& rect,
                                   unsigned char alpha) {
+  paint(canvas, rect, alpha, SkXfermode::kSrcOver_Mode);
+}
+
+void WebMediaPlayerAndroid::paint(blink::WebCanvas* canvas,
+                                  const blink::WebRect& rect,
+                                  unsigned char alpha,
+                                  SkXfermode::Mode mode) {
   DCHECK(main_thread_checker_.CalledOnValidThread());
   scoped_ptr<blink::WebGraphicsContext3DProvider> provider =
     scoped_ptr<blink::WebGraphicsContext3DProvider>(blink::Platform::current(
@@ -550,6 +557,7 @@
   dest.set(rect.x, rect.y, rect.x + rect.width, rect.y + rect.height);
   SkPaint paint;
   paint.setAlpha(alpha);
+  paint.setXfermodeMode(mode);
   // It is not necessary to pass the dest into the drawBitmap call since all
   // the context have been set up before calling paintCurrentFrameInContext.
   canvas->drawBitmapRect(bitmap_, 0, dest, &paint);
diff --git a/content/renderer/media/android/webmediaplayer_android.h b/content/renderer/media/android/webmediaplayer_android.h
index c994b52..dcb63c7 100644
--- a/content/renderer/media/android/webmediaplayer_android.h
+++ b/content/renderer/media/android/webmediaplayer_android.h
@@ -113,6 +113,11 @@
   // https://code.google.com/p/skia/issues/detail?id=1189
   virtual void paint(blink::WebCanvas* canvas,
                      const blink::WebRect& rect,
+                     unsigned char alpha,
+                     SkXfermode::Mode mode);
+  // TODO(dshwang): remove it because above method replaces. crbug.com/401027
+  virtual void paint(blink::WebCanvas* canvas,
+                     const blink::WebRect& rect,
                      unsigned char alpha);
 
   virtual bool copyVideoTextureToPlatformTexture(
diff --git a/content/renderer/media/audio_input_message_filter.cc b/content/renderer/media/audio_input_message_filter.cc
index 412196c..02b0b57 100644
--- a/content/renderer/media/audio_input_message_filter.cc
+++ b/content/renderer/media/audio_input_message_filter.cc
@@ -12,12 +12,21 @@
 #include "ipc/ipc_logging.h"
 #include "ipc/ipc_sender.h"
 
-namespace content {
-
 namespace {
+
 const int kStreamIDNotSet = -1;
+
+void LogMessage(int stream_id, const std::string& msg) {
+  std::ostringstream oss;
+  oss << "[stream_id=" << stream_id << "] AIMF::" << msg;
+  content::WebRtcLogMessage(oss.str());
+  DVLOG(1) << oss.str();
 }
 
+}
+
+namespace content {
+
 class AudioInputMessageFilter::AudioInputIPCImpl
     : public NON_EXPORTED_BASE(media::AudioInputIPC) {
  public:
@@ -125,10 +134,7 @@
     uint32 length,
     uint32 total_segments) {
   DCHECK(io_message_loop_->BelongsToCurrentThread());
-
-  WebRtcLogMessage(base::StringPrintf(
-      "AIMF::OnStreamCreated. stream_id=%d",
-      stream_id));
+  LogMessage(stream_id, "OnStreamCreated");
 
 #if !defined(OS_WIN)
   base::SyncSocket::Handle socket_handle = socket_descriptor.fd;
@@ -193,6 +199,9 @@
   DCHECK(delegate);
 
   stream_id_ = filter_->delegates_.Add(delegate);
+  // TODO(henrika): remove all LogMessage calls when we have sorted out the
+  // existing "no input audio" issues.
+  LogMessage(stream_id_, "CreateStream");
 
   AudioInputHostMsg_CreateStream_Config config;
   config.params = params;
@@ -204,6 +213,7 @@
 
 void AudioInputMessageFilter::AudioInputIPCImpl::RecordStream() {
   DCHECK_NE(stream_id_, kStreamIDNotSet);
+  LogMessage(stream_id_, "RecordStream");
   filter_->Send(new AudioInputHostMsg_RecordStream(stream_id_));
 }
 
@@ -215,6 +225,7 @@
 void AudioInputMessageFilter::AudioInputIPCImpl::CloseStream() {
   DCHECK(filter_->io_message_loop_->BelongsToCurrentThread());
   DCHECK_NE(stream_id_, kStreamIDNotSet);
+  LogMessage(stream_id_, "CloseStream");
   filter_->Send(new AudioInputHostMsg_CloseStream(stream_id_));
   filter_->delegates_.Remove(stream_id_);
   stream_id_ = kStreamIDNotSet;
diff --git a/content/renderer/media/media_stream_video_source.cc b/content/renderer/media/media_stream_video_source.cc
index 23e6e54..55b855c 100644
--- a/content/renderer/media/media_stream_video_source.cc
+++ b/content/renderer/media/media_stream_video_source.cc
@@ -43,6 +43,7 @@
 const int MediaStreamVideoSource::kDefaultWidth = 640;
 const int MediaStreamVideoSource::kDefaultHeight = 480;
 const int MediaStreamVideoSource::kDefaultFrameRate = 30;
+const int MediaStreamVideoSource::kUnknownFrameRate = 0;
 
 namespace {
 
diff --git a/content/renderer/media/media_stream_video_source.h b/content/renderer/media/media_stream_video_source.h
index cbf8c82..3aed40a 100644
--- a/content/renderer/media/media_stream_video_source.h
+++ b/content/renderer/media/media_stream_video_source.h
@@ -81,6 +81,7 @@
   static const int kDefaultWidth;
   static const int kDefaultHeight;
   static const int kDefaultFrameRate;
+  static const int kUnknownFrameRate;
 
  protected:
   virtual void DoStopSource() OVERRIDE;
diff --git a/content/renderer/media/rtc_video_decoder.cc b/content/renderer/media/rtc_video_decoder.cc
index 1658970..60ae893 100644
--- a/content/renderer/media/rtc_video_decoder.cc
+++ b/content/renderer/media/rtc_video_decoder.cc
@@ -61,13 +61,9 @@
 
 RTCVideoDecoder::BufferData::BufferData(int32 bitstream_buffer_id,
                                         uint32_t timestamp,
-                                        int width,
-                                        int height,
                                         size_t size)
     : bitstream_buffer_id(bitstream_buffer_id),
       timestamp(timestamp),
-      width(width),
-      height(height),
       size(size) {}
 
 RTCVideoDecoder::BufferData::BufferData() {}
@@ -75,8 +71,10 @@
 RTCVideoDecoder::BufferData::~BufferData() {}
 
 RTCVideoDecoder::RTCVideoDecoder(
+    webrtc::VideoCodecType type,
     const scoped_refptr<media::GpuVideoAcceleratorFactories>& factories)
-    : factories_(factories),
+    : video_codec_type_(type),
+      factories_(factories),
       decoder_texture_target_(0),
       next_picture_buffer_id_(0),
       state_(UNINITIALIZED),
@@ -120,13 +118,16 @@
     case webrtc::kVideoCodecVP8:
       profile = media::VP8PROFILE_ANY;
       break;
+    case webrtc::kVideoCodecH264:
+      profile = media::H264PROFILE_MAIN;
+      break;
     default:
       DVLOG(2) << "Video codec not supported:" << type;
       return decoder.Pass();
   }
 
   base::WaitableEvent waiter(true, false);
-  decoder.reset(new RTCVideoDecoder(factories));
+  decoder.reset(new RTCVideoDecoder(type, factories));
   decoder->factories_->GetTaskRunner()->PostTask(
       FROM_HERE,
       base::Bind(&RTCVideoDecoder::CreateVDA,
@@ -134,7 +135,7 @@
                  profile,
                  &waiter));
   waiter.Wait();
-  // vda can be NULL if VP8 is not supported.
+  // vda can be NULL if the codec is not supported.
   if (decoder->vda_ != NULL) {
     decoder->state_ = INITIALIZED;
   } else {
@@ -146,8 +147,9 @@
 int32_t RTCVideoDecoder::InitDecode(const webrtc::VideoCodec* codecSettings,
                                     int32_t /*numberOfCores*/) {
   DVLOG(2) << "InitDecode";
-  DCHECK_EQ(codecSettings->codecType, webrtc::kVideoCodecVP8);
-  if (codecSettings->codecSpecific.VP8.feedbackModeOn) {
+  DCHECK_EQ(video_codec_type_, codecSettings->codecType);
+  if (codecSettings->codecType == webrtc::kVideoCodecVP8 &&
+      codecSettings->codecSpecific.VP8.feedbackModeOn) {
     LOG(ERROR) << "Feedback mode not supported";
     return RecordInitDecodeUMA(WEBRTC_VIDEO_CODEC_ERROR);
   }
@@ -227,8 +229,6 @@
   // Create buffer metadata.
   BufferData buffer_data(next_bitstream_buffer_id_,
                          inputImage._timeStamp,
-                         frame_size_.width(),
-                         frame_size_.height(),
                          inputImage._length);
   // Mask against 30 bits, to avoid (undefined) wraparound on signed integer.
   next_bitstream_buffer_id_ = (next_bitstream_buffer_id_ + 1) & ID_LAST;
@@ -364,13 +364,21 @@
   }
   const media::PictureBuffer& pb = it->second;
 
+  // Validate picture rectangle from GPU.
+  if (picture.visible_rect().IsEmpty() ||
+      !gfx::Rect(pb.size()).Contains(picture.visible_rect())) {
+    NOTREACHED() << "Invalid picture size from VDA: "
+                 << picture.visible_rect().ToString() << " should fit in "
+                 << pb.size().ToString();
+    NotifyError(media::VideoDecodeAccelerator::PLATFORM_FAILURE);
+    return;
+  }
+
   // Create a media::VideoFrame.
-  uint32_t timestamp = 0, width = 0, height = 0;
-  size_t size = 0;
-  GetBufferData(
-      picture.bitstream_buffer_id(), &timestamp, &width, &height, &size);
+  uint32_t timestamp = 0;
+  GetBufferData(picture.bitstream_buffer_id(), &timestamp);
   scoped_refptr<media::VideoFrame> frame =
-      CreateVideoFrame(picture, pb, timestamp, width, height, size);
+      CreateVideoFrame(picture, pb, timestamp);
   bool inserted =
       picture_buffers_at_display_.insert(std::make_pair(
                                              picture.picture_buffer_id(),
@@ -380,7 +388,11 @@
   // Create a WebRTC video frame.
   webrtc::RefCountImpl<NativeHandleImpl>* handle =
       new webrtc::RefCountImpl<NativeHandleImpl>(frame);
-  webrtc::TextureVideoFrame decoded_image(handle, width, height, timestamp, 0);
+  webrtc::TextureVideoFrame decoded_image(handle,
+                                          picture.visible_rect().width(),
+                                          picture.visible_rect().height(),
+                                          timestamp,
+                                          0);
 
   // Invoke decode callback. WebRTC expects no callback after Reset or Release.
   {
@@ -423,11 +435,8 @@
 scoped_refptr<media::VideoFrame> RTCVideoDecoder::CreateVideoFrame(
     const media::Picture& picture,
     const media::PictureBuffer& pb,
-    uint32_t timestamp,
-    uint32_t width,
-    uint32_t height,
-    size_t size) {
-  gfx::Rect visible_rect(width, height);
+    uint32_t timestamp) {
+  gfx::Rect visible_rect(picture.visible_rect());
   DCHECK(decoder_texture_target_);
   // Convert timestamp from 90KHz to ms.
   base::TimeDelta timestamp_ms = base::TimeDelta::FromInternalValue(
@@ -777,18 +786,13 @@
 }
 
 void RTCVideoDecoder::GetBufferData(int32 bitstream_buffer_id,
-                                    uint32_t* timestamp,
-                                    uint32_t* width,
-                                    uint32_t* height,
-                                    size_t* size) {
+                                    uint32_t* timestamp) {
   for (std::list<BufferData>::iterator it = input_buffer_data_.begin();
        it != input_buffer_data_.end();
        ++it) {
     if (it->bitstream_buffer_id != bitstream_buffer_id)
       continue;
     *timestamp = it->timestamp;
-    *width = it->width;
-    *height = it->height;
     return;
   }
   NOTREACHED() << "Missing bitstream buffer id: " << bitstream_buffer_id;
diff --git a/content/renderer/media/rtc_video_decoder.h b/content/renderer/media/rtc_video_decoder.h
index 0c8e45b..8c8a6e3 100644
--- a/content/renderer/media/rtc_video_decoder.h
+++ b/content/renderer/media/rtc_video_decoder.h
@@ -91,15 +91,11 @@
   struct BufferData {
     BufferData(int32 bitstream_buffer_id,
                uint32_t timestamp,
-               int width,
-               int height,
                size_t size);
     BufferData();
     ~BufferData();
     int32 bitstream_buffer_id;
     uint32_t timestamp;  // in 90KHz
-    uint32_t width;
-    uint32_t height;
     size_t size;  // buffer size
   };
 
@@ -107,6 +103,7 @@
   FRIEND_TEST_ALL_PREFIXES(RTCVideoDecoderTest, IsFirstBufferAfterReset);
 
   RTCVideoDecoder(
+      webrtc::VideoCodecType type,
       const scoped_refptr<media::GpuVideoAcceleratorFactories>& factories);
 
   // Requests a buffer to be decoded by VDA.
@@ -138,10 +135,7 @@
   scoped_refptr<media::VideoFrame> CreateVideoFrame(
       const media::Picture& picture,
       const media::PictureBuffer& pb,
-      uint32_t timestamp,
-      uint32_t width,
-      uint32_t height,
-      size_t size);
+      uint32_t timestamp);
 
   // Resets VDA.
   void ResetInternal();
@@ -176,11 +170,7 @@
   // Stores the buffer metadata to |input_buffer_data_|.
   void RecordBufferData(const BufferData& buffer_data);
   // Gets the buffer metadata from |input_buffer_data_|.
-  void GetBufferData(int32 bitstream_buffer_id,
-                     uint32_t* timestamp,
-                     uint32_t* width,
-                     uint32_t* height,
-                     size_t* size);
+  void GetBufferData(int32 bitstream_buffer_id, uint32_t* timestamp);
 
   // Records the result of InitDecode to UMA and returns |status|.
   int32_t RecordInitDecodeUMA(int32_t status);
@@ -202,6 +192,9 @@
   // The hardware video decoder.
   scoped_ptr<media::VideoDecodeAccelerator> vda_;
 
+  // The video codec type, as reported by WebRTC.
+  const webrtc::VideoCodecType video_codec_type_;
+
   // The size of the incoming video frames.
   gfx::Size frame_size_;
 
diff --git a/content/renderer/media/rtc_video_decoder_unittest.cc b/content/renderer/media/rtc_video_decoder_unittest.cc
index e6dfe3e..a1e6341 100644
--- a/content/renderer/media/rtc_video_decoder_unittest.cc
+++ b/content/renderer/media/rtc_video_decoder_unittest.cc
@@ -45,8 +45,6 @@
         .Times(1)
         .WillRepeatedly(Return(true));
     EXPECT_CALL(*mock_vda_, Destroy()).Times(1);
-    rtc_decoder_ =
-        RTCVideoDecoder::Create(webrtc::kVideoCodecVP8, mock_gpu_factories_);
   }
 
   virtual void TearDown() OVERRIDE {
@@ -65,9 +63,15 @@
     return WEBRTC_VIDEO_CODEC_OK;
   }
 
+  void CreateDecoder(webrtc::VideoCodecType codec_type) {
+    VLOG(2) << "CreateDecoder";
+    codec_.codecType = codec_type;
+    rtc_decoder_ =
+        RTCVideoDecoder::Create(codec_type, mock_gpu_factories_);
+  }
+
   void Initialize() {
     VLOG(2) << "Initialize";
-    codec_.codecType = webrtc::kVideoCodecVP8;
     EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, rtc_decoder_->InitDecode(&codec_, 1));
     EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK,
               rtc_decoder_->RegisterDecodeCompleteCallback(this));
@@ -104,24 +108,32 @@
 };
 
 TEST_F(RTCVideoDecoderTest, CreateReturnsNullOnUnsupportedCodec) {
+  CreateDecoder(webrtc::kVideoCodecVP8);
   scoped_ptr<RTCVideoDecoder> null_rtc_decoder(
       RTCVideoDecoder::Create(webrtc::kVideoCodecI420, mock_gpu_factories_));
   EXPECT_EQ(NULL, null_rtc_decoder.get());
 }
 
+TEST_F(RTCVideoDecoderTest, CreateAndInitSucceedsForH264Codec) {
+  CreateDecoder(webrtc::kVideoCodecH264);
+  EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, rtc_decoder_->InitDecode(&codec_, 1));
+}
+
 TEST_F(RTCVideoDecoderTest, InitDecodeReturnsErrorOnFeedbackMode) {
-  codec_.codecType = webrtc::kVideoCodecVP8;
+  CreateDecoder(webrtc::kVideoCodecVP8);
   codec_.codecSpecific.VP8.feedbackModeOn = true;
   EXPECT_EQ(WEBRTC_VIDEO_CODEC_ERROR, rtc_decoder_->InitDecode(&codec_, 1));
 }
 
 TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorWithoutInitDecode) {
+  CreateDecoder(webrtc::kVideoCodecVP8);
   webrtc::EncodedImage input_image;
   EXPECT_EQ(WEBRTC_VIDEO_CODEC_UNINITIALIZED,
             rtc_decoder_->Decode(input_image, false, NULL, NULL, 0));
 }
 
 TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorOnIncompleteFrame) {
+  CreateDecoder(webrtc::kVideoCodecVP8);
   Initialize();
   webrtc::EncodedImage input_image;
   input_image._completeFrame = false;
@@ -130,6 +142,7 @@
 }
 
 TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorOnMissingFrames) {
+  CreateDecoder(webrtc::kVideoCodecVP8);
   Initialize();
   webrtc::EncodedImage input_image;
   input_image._completeFrame = true;
@@ -139,6 +152,7 @@
 }
 
 TEST_F(RTCVideoDecoderTest, ResetReturnsOk) {
+  CreateDecoder(webrtc::kVideoCodecVP8);
   Initialize();
   EXPECT_CALL(*mock_vda_, Reset())
       .WillOnce(Invoke(this, &RTCVideoDecoderTest::NotifyResetDone));
@@ -146,6 +160,7 @@
 }
 
 TEST_F(RTCVideoDecoderTest, ReleaseReturnsOk) {
+  CreateDecoder(webrtc::kVideoCodecVP8);
   Initialize();
   EXPECT_CALL(*mock_vda_, Reset())
       .WillOnce(Invoke(this, &RTCVideoDecoderTest::NotifyResetDone));
@@ -153,6 +168,7 @@
 }
 
 TEST_F(RTCVideoDecoderTest, InitDecodeAfterRelease) {
+  CreateDecoder(webrtc::kVideoCodecVP8);
   EXPECT_CALL(*mock_vda_, Reset())
       .WillRepeatedly(Invoke(this, &RTCVideoDecoderTest::NotifyResetDone));
   Initialize();
@@ -162,6 +178,7 @@
 }
 
 TEST_F(RTCVideoDecoderTest, IsBufferAfterReset) {
+  CreateDecoder(webrtc::kVideoCodecVP8);
   EXPECT_TRUE(rtc_decoder_->IsBufferAfterReset(0, RTCVideoDecoder::ID_INVALID));
   EXPECT_TRUE(rtc_decoder_->IsBufferAfterReset(RTCVideoDecoder::ID_LAST,
                                                RTCVideoDecoder::ID_INVALID));
@@ -187,6 +204,7 @@
 }
 
 TEST_F(RTCVideoDecoderTest, IsFirstBufferAfterReset) {
+  CreateDecoder(webrtc::kVideoCodecVP8);
   EXPECT_TRUE(
       rtc_decoder_->IsFirstBufferAfterReset(0, RTCVideoDecoder::ID_INVALID));
   EXPECT_FALSE(
diff --git a/content/renderer/media/rtc_video_encoder.cc b/content/renderer/media/rtc_video_encoder.cc
index 1b33fc5..4b3f99f 100644
--- a/content/renderer/media/rtc_video_encoder.cc
+++ b/content/renderer/media/rtc_video_encoder.cc
@@ -16,6 +16,7 @@
 #include "media/base/video_frame.h"
 #include "media/base/video_util.h"
 #include "media/filters/gpu_video_accelerator_factories.h"
+#include "media/filters/h264_parser.h"
 #include "media/video/video_encode_accelerator.h"
 #include "third_party/webrtc/system_wrappers/interface/tick_util.h"
 
@@ -27,6 +28,42 @@
 
 namespace content {
 
+namespace {
+
+// Populates struct webrtc::RTPFragmentationHeader for H264 codec.
+// Each entry specifies the offset and length (excluding start code) of a NALU.
+// Returns true if successful.
+bool GetRTPFragmentationHeaderH264(webrtc::RTPFragmentationHeader* header,
+                                   const uint8_t* data, uint32_t length) {
+  media::H264Parser parser;
+  parser.SetStream(data, length);
+
+  std::vector<media::H264NALU> nalu_vector;
+  while (true) {
+    media::H264NALU nalu;
+    const media::H264Parser::Result result = parser.AdvanceToNextNALU(&nalu);
+    if (result == media::H264Parser::kOk) {
+      nalu_vector.push_back(nalu);
+    } else if (result == media::H264Parser::kEOStream) {
+      break;
+    } else {
+      DLOG(ERROR) << "Unexpected H264 parser result";
+      return false;
+    }
+  }
+
+  header->VerifyAndAllocateFragmentationHeader(nalu_vector.size());
+  for (size_t i = 0; i < nalu_vector.size(); ++i) {
+    header->fragmentationOffset[i] = nalu_vector[i].data - data;
+    header->fragmentationLength[i] = nalu_vector[i].size;
+    header->fragmentationPlType[i] = 0;
+    header->fragmentationTimeDiff[i] = 0;
+  }
+  return true;
+}
+
+}  // namespace
+
 // This private class of RTCVideoEncoder does the actual work of communicating
 // with a media::VideoEncodeAccelerator for handling video encoding.  It can
 // be created on any thread, but should subsequently be posted to (and Destroy()
@@ -648,6 +685,32 @@
   if (!encoded_image_callback_)
     return;
 
+  webrtc::RTPFragmentationHeader header;
+  memset(&header, 0, sizeof(header));
+  switch (video_codec_type_) {
+    case webrtc::kVideoCodecVP8:
+    case webrtc::kVideoCodecGeneric:
+      // Generate a header describing a single fragment.
+      // Note that webrtc treats the generic-type payload as an opaque buffer.
+      header.VerifyAndAllocateFragmentationHeader(1);
+      header.fragmentationOffset[0] = 0;
+      header.fragmentationLength[0] = image->_length;
+      header.fragmentationPlType[0] = 0;
+      header.fragmentationTimeDiff[0] = 0;
+      break;
+    case webrtc::kVideoCodecH264:
+      if (!GetRTPFragmentationHeaderH264(
+          &header, image->_buffer, image->_length)) {
+        DLOG(ERROR) << "Failed to get RTP fragmentation header for H264";
+        NotifyError(WEBRTC_VIDEO_CODEC_ERROR);
+        return;
+      }
+      break;
+    default:
+      NOTREACHED() << "Invalid video codec type";
+      return;
+  }
+
   webrtc::CodecSpecificInfo info;
   memset(&info, 0, sizeof(info));
   info.codecType = video_codec_type_;
@@ -657,15 +720,6 @@
     info.codecSpecific.VP8.keyIdx = -1;
   }
 
-  // Generate a header describing a single fragment.
-  webrtc::RTPFragmentationHeader header;
-  memset(&header, 0, sizeof(header));
-  header.VerifyAndAllocateFragmentationHeader(1);
-  header.fragmentationOffset[0] = 0;
-  header.fragmentationLength[0] = image->_length;
-  header.fragmentationPlType[0] = 0;
-  header.fragmentationTimeDiff[0] = 0;
-
   int32_t retval = encoded_image_callback_->Encoded(*image, &info, &header);
   if (retval < 0) {
     DVLOG(2) << "ReturnEncodedImage(): encoded_image_callback_ returned "
diff --git a/content/renderer/media/rtc_video_encoder_factory.cc b/content/renderer/media/rtc_video_encoder_factory.cc
index e9c1578..ec92f55 100644
--- a/content/renderer/media/rtc_video_encoder_factory.cc
+++ b/content/renderer/media/rtc_video_encoder_factory.cc
@@ -4,7 +4,9 @@
 
 #include "content/renderer/media/rtc_video_encoder_factory.h"
 
+#include "base/command_line.h"
 #include "content/common/gpu/client/gpu_video_encode_accelerator_host.h"
+#include "content/public/common/content_switches.h"
 #include "content/renderer/media/rtc_video_encoder.h"
 #include "media/filters/gpu_video_accelerator_factories.h"
 #include "media/video/video_encode_accelerator.h"
@@ -14,32 +16,32 @@
 namespace {
 
 // Translate from media::VideoEncodeAccelerator::SupportedProfile to
-// cricket::WebRtcVideoEncoderFactory::VideoCodec
-cricket::WebRtcVideoEncoderFactory::VideoCodec VEAToWebRTCCodec(
+// one or more instances of cricket::WebRtcVideoEncoderFactory::VideoCodec
+void VEAToWebRTCCodecs(
+    std::vector<cricket::WebRtcVideoEncoderFactory::VideoCodec>* codecs,
     const media::VideoEncodeAccelerator::SupportedProfile& profile) {
-  webrtc::VideoCodecType type = webrtc::kVideoCodecUnknown;
-  std::string name;
-  int width = 0, height = 0, fps = 0;
+  int width = profile.max_resolution.width();
+  int height = profile.max_resolution.height();
+  int fps = profile.max_framerate.numerator;
+  DCHECK_EQ(profile.max_framerate.denominator, 1U);
 
+  const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
   if (profile.profile >= media::VP8PROFILE_MIN &&
       profile.profile <= media::VP8PROFILE_MAX) {
-    type = webrtc::kVideoCodecVP8;
-    name = "VP8";
+    if (cmd_line->HasSwitch(switches::kEnableWebRtcHWVp8Encoding)) {
+      codecs->push_back(cricket::WebRtcVideoEncoderFactory::VideoCodec(
+          webrtc::kVideoCodecVP8, "VP8", width, height, fps));
+    }
   } else if (profile.profile >= media::H264PROFILE_MIN &&
              profile.profile <= media::H264PROFILE_MAX) {
-    type = webrtc::kVideoCodecGeneric;
-    name = "CAST1";
+    if (cmd_line->HasSwitch(switches::kEnableWebRtcHWH264Encoding)) {
+      codecs->push_back(cricket::WebRtcVideoEncoderFactory::VideoCodec(
+          webrtc::kVideoCodecH264, "H264", width, height, fps));
+    }
+    // TODO(hshi): remove the generic codec type after CASTv1 deprecation.
+    codecs->push_back(cricket::WebRtcVideoEncoderFactory::VideoCodec(
+        webrtc::kVideoCodecGeneric, "CAST1", width, height, fps));
   }
-
-  if (type != webrtc::kVideoCodecUnknown) {
-    width = profile.max_resolution.width();
-    height = profile.max_resolution.height();
-    fps = profile.max_framerate.numerator;
-    DCHECK_EQ(profile.max_framerate.denominator, 1U);
-  }
-
-  return cricket::WebRtcVideoEncoderFactory::VideoCodec(
-      type, name, width, height, fps);
 }
 
 // Translate from cricket::WebRtcVideoEncoderFactory::VideoCodec to
@@ -49,6 +51,7 @@
   switch (type) {
     case webrtc::kVideoCodecVP8:
       return media::VP8PROFILE_ANY;
+    case webrtc::kVideoCodecH264:
     case webrtc::kVideoCodecGeneric:
       return media::H264PROFILE_MAIN;
     default:
@@ -64,11 +67,8 @@
   // Query media::VideoEncodeAccelerator (statically) for our supported codecs.
   std::vector<media::VideoEncodeAccelerator::SupportedProfile> profiles =
       GpuVideoEncodeAcceleratorHost::GetSupportedProfiles();
-  for (size_t i = 0; i < profiles.size(); ++i) {
-    VideoCodec codec = VEAToWebRTCCodec(profiles[i]);
-    if (codec.type != webrtc::kVideoCodecUnknown)
-      codecs_.push_back(codec);
-  }
+  for (size_t i = 0; i < profiles.size(); ++i)
+    VEAToWebRTCCodecs(&codecs_, profiles[i]);
 }
 
 RTCVideoEncoderFactory::~RTCVideoEncoderFactory() {}
diff --git a/content/renderer/media/video_track_adapter.cc b/content/renderer/media/video_track_adapter.cc
index 9a9ab08..12a130e 100644
--- a/content/renderer/media/video_track_adapter.cc
+++ b/content/renderer/media/video_track_adapter.cc
@@ -24,6 +24,10 @@
 const float kFirstFrameTimeoutInFrameIntervals = 100.0f;
 const float kNormalFrameTimeoutInFrameIntervals = 25.0f;
 
+// Min delta time between two frames allowed without being dropped if a max
+// frame rate is specified.
+const int kMinTimeInMsBetweenFrames = 5;
+
 // Empty method used for keeping a reference to the original media::VideoFrame
 // in VideoFrameResolutionAdapter::DeliverFrame if cropping is needed.
 // The reference to |frame| is kept in the closure that calls this method.
@@ -85,7 +89,8 @@
 
   // Returns |true| if the input frame rate is higher that the requested max
   // frame rate and |frame| should be dropped.
-  bool MaybeDropFrame(const scoped_refptr<media::VideoFrame>& frame);
+  bool MaybeDropFrame(const scoped_refptr<media::VideoFrame>& frame,
+                      float source_frame_rate);
 
   // Bound to the IO-thread.
   base::ThreadChecker io_thread_checker_;
@@ -148,7 +153,7 @@
     const base::TimeTicks& estimated_capture_time) {
   DCHECK(io_thread_checker_.CalledOnValidThread());
 
-  if (MaybeDropFrame(frame))
+  if (MaybeDropFrame(frame, format.frame_rate))
     return;
 
   // TODO(perkj): Allow cropping / scaling of textures once
@@ -220,16 +225,36 @@
 }
 
 bool VideoTrackAdapter::VideoFrameResolutionAdapter::MaybeDropFrame(
-    const scoped_refptr<media::VideoFrame>& frame) {
-  if (max_frame_rate_ == 0.0f)
+    const scoped_refptr<media::VideoFrame>& frame,
+    float source_frame_rate) {
+  DCHECK(io_thread_checker_.CalledOnValidThread());
+
+  // Do not drop frames if max frame rate hasn't been specified or the source
+  // frame rate is known and is lower than max.
+  if (max_frame_rate_ == 0.0f ||
+      (source_frame_rate > 0 &&
+          source_frame_rate <= max_frame_rate_))
     return false;
 
   base::TimeDelta delta = frame->timestamp() - last_time_stamp_;
+  if (delta.InMilliseconds() < kMinTimeInMsBetweenFrames) {
+    // We have seen video frames being delivered from camera devices back to
+    // back. The simple AR filter for frame rate calculation is too short to
+    // handle that. http://crbug/394315
+    // TODO(perkj): Can we come up with a way to fix the times stamps and the
+    // timing when frames are delivered so all frames can be used?
+    // The time stamps are generated by Chrome and not the actual device.
+    // Most likely the back to back problem is caused by software and not the
+    // actual camera.
+    DVLOG(3) << "Drop frame since delta time since previous frame is "
+             << delta.InMilliseconds() << "ms.";
+    return true;
+  }
   last_time_stamp_ = frame->timestamp();
-  if (delta.ToInternalValue() == 0 || delta == last_time_stamp_)
+  if (delta == last_time_stamp_)  // First received frame.
     return false;
-  // Calculate the moving average frame rate. Use a simple filter with 0.1
-  // weight of the current sample.
+  // Calculate the frame rate using a simple AR filter.
+  // Use a simple filter with 0.1 weight of the current sample.
   frame_rate_ = 100 / delta.InMillisecondsF() + 0.9 * frame_rate_;
 
   // Prefer to not drop frames.
diff --git a/content/renderer/media/webmediaplayer_impl.cc b/content/renderer/media/webmediaplayer_impl.cc
index cd5f9ef..fc723c7 100644
--- a/content/renderer/media/webmediaplayer_impl.cc
+++ b/content/renderer/media/webmediaplayer_impl.cc
@@ -536,9 +536,16 @@
   return pipeline_progress || data_progress;
 }
 
-void WebMediaPlayerImpl::paint(WebCanvas* canvas,
-                               const WebRect& rect,
+void WebMediaPlayerImpl::paint(blink::WebCanvas* canvas,
+                               const blink::WebRect& rect,
                                unsigned char alpha) {
+  paint(canvas, rect, alpha, SkXfermode::kSrcOver_Mode);
+}
+
+void WebMediaPlayerImpl::paint(blink::WebCanvas* canvas,
+                               const blink::WebRect& rect,
+                               unsigned char alpha,
+                               SkXfermode::Mode mode) {
   DCHECK(main_loop_->BelongsToCurrentThread());
   TRACE_EVENT0("media", "WebMediaPlayerImpl:paint");
 
@@ -556,6 +563,7 @@
                                  canvas,
                                  gfx_rect,
                                  alpha,
+                                 mode,
                                  pipeline_metadata_.video_rotation);
 }
 
diff --git a/content/renderer/media/webmediaplayer_impl.h b/content/renderer/media/webmediaplayer_impl.h
index 89f84df..7962961 100644
--- a/content/renderer/media/webmediaplayer_impl.h
+++ b/content/renderer/media/webmediaplayer_impl.h
@@ -92,6 +92,11 @@
   // Methods for painting.
   virtual void paint(blink::WebCanvas* canvas,
                      const blink::WebRect& rect,
+                     unsigned char alpha,
+                     SkXfermode::Mode mode);
+  // TODO(dshwang): remove it because above method replaces. crbug.com/401027
+  virtual void paint(blink::WebCanvas* canvas,
+                     const blink::WebRect& rect,
                      unsigned char alpha);
 
   // True if the loaded media has a playable video/audio track.
diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc
index be498bb..8500e43 100644
--- a/content/renderer/media/webmediaplayer_ms.cc
+++ b/content/renderer/media/webmediaplayer_ms.cc
@@ -319,15 +319,26 @@
   return true;
 }
 
-void WebMediaPlayerMS::paint(WebCanvas* canvas,
-                             const WebRect& rect,
+void WebMediaPlayerMS::paint(blink::WebCanvas* canvas,
+                             const blink::WebRect& rect,
                              unsigned char alpha) {
+  paint(canvas, rect, alpha, SkXfermode::kSrcOver_Mode);
+}
+
+void WebMediaPlayerMS::paint(blink::WebCanvas* canvas,
+                             const blink::WebRect& rect,
+                             unsigned char alpha,
+                             SkXfermode::Mode mode) {
   DVLOG(3) << "WebMediaPlayerMS::paint";
   DCHECK(thread_checker_.CalledOnValidThread());
 
   gfx::RectF dest_rect(rect.x, rect.y, rect.width, rect.height);
-  video_renderer_.Paint(
-      current_frame_.get(), canvas, dest_rect, alpha, media::VIDEO_ROTATION_0);
+  video_renderer_.Paint(current_frame_.get(),
+                        canvas,
+                        dest_rect,
+                        alpha,
+                        mode,
+                        media::VIDEO_ROTATION_0);
 
   {
     base::AutoLock auto_lock(current_frame_lock_);
diff --git a/content/renderer/media/webmediaplayer_ms.h b/content/renderer/media/webmediaplayer_ms.h
index 0bbfec5..bf563e8 100644
--- a/content/renderer/media/webmediaplayer_ms.h
+++ b/content/renderer/media/webmediaplayer_ms.h
@@ -79,6 +79,11 @@
   // Methods for painting.
   virtual void paint(blink::WebCanvas* canvas,
                      const blink::WebRect& rect,
+                     unsigned char alpha,
+                     SkXfermode::Mode mode);
+  // TODO(dshwang): remove it because above method replaces. crbug.com/401027
+  virtual void paint(blink::WebCanvas* canvas,
+                     const blink::WebRect& rect,
                      unsigned char alpha);
 
   // True if the loaded media has a playable video/audio track.
diff --git a/content/renderer/media/webrtc/media_stream_remote_video_source.cc b/content/renderer/media/webrtc/media_stream_remote_video_source.cc
index 24e4d53..4cfefb3 100644
--- a/content/renderer/media/webrtc/media_stream_remote_video_source.cc
+++ b/content/renderer/media/webrtc/media_stream_remote_video_source.cc
@@ -106,7 +106,7 @@
   media::VideoCaptureFormat format(
       gfx::Size(video_frame->natural_size().width(),
                 video_frame->natural_size().height()),
-                MediaStreamVideoSource::kDefaultFrameRate,
+                MediaStreamVideoSource::kUnknownFrameRate,
                 pixel_format);
 
   io_message_loop_->PostTask(
diff --git a/content/renderer/media/webrtc/video_destination_handler.cc b/content/renderer/media/webrtc/video_destination_handler.cc
index 240f5cd..887dbc3 100644
--- a/content/renderer/media/webrtc/video_destination_handler.cc
+++ b/content/renderer/media/webrtc/video_destination_handler.cc
@@ -146,7 +146,7 @@
                               gfx::Rect(frame_size), frame_size, timestamp);
   media::VideoCaptureFormat format(
       frame_size,
-      MediaStreamVideoSource::kDefaultFrameRate,
+      MediaStreamVideoSource::kUnknownFrameRate,
       media::PIXEL_FORMAT_YV12);
 
   libyuv::BGRAToI420(reinterpret_cast<uint8*>(bitmap->getPixels()),
diff --git a/content/renderer/pepper/content_decryptor_delegate.cc b/content/renderer/pepper/content_decryptor_delegate.cc
index e1b0b1b..5a9e527 100644
--- a/content/renderer/pepper/content_decryptor_delegate.cc
+++ b/content/renderer/pepper/content_decryptor_delegate.cc
@@ -625,26 +625,46 @@
 
 void ContentDecryptorDelegate::OnPromiseResolved(uint32 promise_id) {
   scoped_ptr<CdmPromise> promise = TakePromise(promise_id);
-  if (promise) {
-    SimpleCdmPromise* simple_promise(
-        static_cast<SimpleCdmPromise*>(promise.get()));
-    simple_promise->resolve();
+
+  // Special case due to http://crbug.com/408330. CDM is resolving LoadSession()
+  // with this method when the session is not found. Instead it should call
+  // PromiseResolvedWithSession(""), so emulate that here until 408330 is fixed.
+  // TODO(jrummell): Remove this code when the CDM is updated.
+  if (promise &&
+      promise->GetResolveParameterType() == media::CdmPromise::STRING_TYPE) {
+    NewSessionCdmPromise* session_promise =
+        static_cast<NewSessionCdmPromise*>(promise.get());
+    session_promise->resolve(std::string());
+    return;
   }
+
+  if (!promise ||
+      promise->GetResolveParameterType() != media::CdmPromise::VOID_TYPE) {
+    NOTREACHED();
+    return;
+  }
+
+  SimpleCdmPromise* simple_promise =
+      static_cast<SimpleCdmPromise*>(promise.get());
+  simple_promise->resolve();
 }
 
 void ContentDecryptorDelegate::OnPromiseResolvedWithSession(
     uint32 promise_id,
     PP_Var web_session_id) {
   scoped_ptr<CdmPromise> promise = TakePromise(promise_id);
+  if (!promise ||
+      promise->GetResolveParameterType() != media::CdmPromise::STRING_TYPE) {
+    NOTREACHED();
+    return;
+  }
 
   StringVar* web_session_id_string = StringVar::FromPPVar(web_session_id);
   DCHECK(web_session_id_string);
 
-  if (promise) {
-    NewSessionCdmPromise* session_promise(
-        static_cast<NewSessionCdmPromise*>(promise.get()));
-    session_promise->resolve(web_session_id_string->value());
-  }
+  NewSessionCdmPromise* session_promise =
+      static_cast<NewSessionCdmPromise*>(promise.get());
+  session_promise->resolve(web_session_id_string->value());
 }
 
 void ContentDecryptorDelegate::OnPromiseRejected(
diff --git a/content/renderer/pepper/pepper_video_decoder_host.cc b/content/renderer/pepper/pepper_video_decoder_host.cc
index fdb5cc3..3f39c94 100644
--- a/content/renderer/pepper/pepper_video_decoder_host.cc
+++ b/content/renderer/pepper/pepper_video_decoder_host.cc
@@ -313,6 +313,8 @@
 }
 
 void PepperVideoDecoderHost::PictureReady(const media::Picture& picture) {
+  // So far picture.visible_rect is not used. If used, visible_rect should
+  // be validated since it comes from GPU process and may not be trustworthy.
   host()->SendUnsolicitedReply(
       pp_resource(),
       PpapiPluginMsg_VideoDecoder_PictureReady(picture.bitstream_buffer_id(),
diff --git a/content/renderer/pepper/ppb_video_decoder_impl.cc b/content/renderer/pepper/ppb_video_decoder_impl.cc
index f52d423..53b2ef9 100644
--- a/content/renderer/pepper/ppb_video_decoder_impl.cc
+++ b/content/renderer/pepper/ppb_video_decoder_impl.cc
@@ -246,6 +246,8 @@
 }
 
 void PPB_VideoDecoder_Impl::PictureReady(const media::Picture& picture) {
+  // So far picture.visible_rect is not used. If used, visible_rect should
+  // be validated since it comes from GPU process and may not be trustworthy.
   DCHECK(RenderThreadImpl::current());
   if (!ppp_videodecoder_)
     return;
diff --git a/content/renderer/pepper/video_decoder_shim.cc b/content/renderer/pepper/video_decoder_shim.cc
index c52c285..d213ac9 100644
--- a/content/renderer/pepper/video_decoder_shim.cc
+++ b/content/renderer/pepper/video_decoder_shim.cc
@@ -47,11 +47,14 @@
 
 struct VideoDecoderShim::PendingFrame {
   explicit PendingFrame(uint32_t decode_id);
-  PendingFrame(uint32_t decode_id, const gfx::Size& size);
+  PendingFrame(uint32_t decode_id,
+               const gfx::Size& coded_size,
+               const gfx::Rect& visible_rect);
   ~PendingFrame();
 
   const uint32_t decode_id;
-  const gfx::Size size;
+  const gfx::Size coded_size;
+  const gfx::Rect visible_rect;
   std::vector<uint8_t> argb_pixels;
 
  private:
@@ -64,10 +67,12 @@
 }
 
 VideoDecoderShim::PendingFrame::PendingFrame(uint32_t decode_id,
-                                             const gfx::Size& size)
+                                             const gfx::Size& coded_size,
+                                             const gfx::Rect& visible_rect)
     : decode_id(decode_id),
-      size(size),
-      argb_pixels(size.width() * size.height() * 4) {
+      coded_size(coded_size),
+      visible_rect(visible_rect),
+      argb_pixels(coded_size.width() * coded_size.height() * 4) {
 }
 
 VideoDecoderShim::PendingFrame::~PendingFrame() {
@@ -258,7 +263,8 @@
     const scoped_refptr<media::VideoFrame>& frame) {
   scoped_ptr<PendingFrame> pending_frame;
   if (!frame->end_of_stream()) {
-    pending_frame.reset(new PendingFrame(decode_id_, frame->coded_size()));
+    pending_frame.reset(new PendingFrame(
+        decode_id_, frame->coded_size(), frame->visible_rect()));
     // Convert the VideoFrame pixels to ABGR to match VideoDecodeAccelerator.
     libyuv::I420ToABGR(frame->data(media::VideoFrame::kYPlane),
                        frame->stride(media::VideoFrame::kYPlane),
@@ -470,7 +476,7 @@
   DCHECK(host_);
 
   if (!frame->argb_pixels.empty()) {
-    if (texture_size_ != frame->size) {
+    if (texture_size_ != frame->coded_size) {
       // If the size has changed, all current textures must be dismissed. Add
       // all textures to |textures_to_dismiss_| and dismiss any that aren't in
       // use by the plugin. We will dismiss the rest as they are recycled.
@@ -492,10 +498,10 @@
         pending_texture_mailboxes_.push_back(gpu::Mailbox::Generate());
 
       host_->RequestTextures(texture_pool_size_,
-                             frame->size,
+                             frame->coded_size,
                              GL_TEXTURE_2D,
                              pending_texture_mailboxes_);
-      texture_size_ = frame->size;
+      texture_size_ = frame->coded_size;
     }
 
     pending_frames_.push(linked_ptr<PendingFrame>(frame.release()));
@@ -527,7 +533,8 @@
                       GL_UNSIGNED_BYTE,
                       &frame->argb_pixels.front());
 
-    host_->PictureReady(media::Picture(texture_id, frame->decode_id));
+    host_->PictureReady(
+        media::Picture(texture_id, frame->decode_id, frame->visible_rect));
     pending_frames_.pop();
   }
 
diff --git a/content/renderer/renderer_font_platform_win.cc b/content/renderer/renderer_font_platform_win.cc
index 2087046..b125fe7 100644
--- a/content/renderer/renderer_font_platform_win.cc
+++ b/content/renderer/renderer_font_platform_win.cc
@@ -11,12 +11,14 @@
 #include <wrl/wrappers/corewrappers.h>
 
 #include "base/debug/alias.h"
+#include "base/debug/crash_logging.h"
 #include "base/files/file_enumerator.h"
 #include "base/files/file_path.h"
 #include "base/files/memory_mapped_file.h"
 #include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
 #include "base/path_service.h"
+#include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
 #include "base/win/iat_patch_function.h"
 #include "base/win/registry.h"
@@ -27,6 +29,8 @@
 namespace mswr = Microsoft::WRL;
 namespace mswrw = Microsoft::WRL::Wrappers;
 
+static const char kFontKeyName[] = "font_key_name";
+
 class FontCollectionLoader
     : public mswr::RuntimeClass<mswr::RuntimeClassFlags<mswr::ClassicCom>,
                                 IDWriteFontCollectionLoader> {
@@ -45,6 +49,7 @@
   std::wstring GetFontNameFromKey(UINT32 idx);
 
   bool LoadFontListFromRegistry();
+  bool LoadRestrictedFontList();
 
   FontCollectionLoader() {};
   virtual ~FontCollectionLoader() {};
@@ -67,7 +72,9 @@
                    UINT64 file_offset,
                    UINT64 fragment_size,
                    void** context) {
-    if (!memory_.get() || !memory_->IsValid())
+    if (!memory_.get() || !memory_->IsValid() ||
+        file_offset >= memory_->length() ||
+        (file_offset + fragment_size) > memory_->length())
       return E_FAIL;
 
     *fragment_start = static_cast<BYTE const*>(memory_->data()) +
@@ -106,7 +113,8 @@
   HRESULT RuntimeClassInitialize(UINT32 font_key) {
     base::FilePath path;
     PathService::Get(base::DIR_WINDOWS_FONTS, &path);
-    path = path.Append(g_font_loader->GetFontNameFromKey(font_key).c_str());
+    std::wstring font_key_name(g_font_loader->GetFontNameFromKey(font_key));
+    path = path.Append(font_key_name.c_str());
     memory_.reset(new base::MemoryMappedFile());
 
     // Put some debug information on stack.
@@ -120,6 +128,9 @@
     }
 
     font_key_ = font_key;
+
+    base::debug::SetCrashKeyValue(kFontKeyName,
+                                  base::WideToUTF8(font_key_name));
     return S_OK;
   }
 
@@ -273,6 +284,47 @@
   return true;
 }
 
+// This list is mainly based on prefs/prefs_tab_helper.cc kFontDefaults.
+const wchar_t* kRestrictedFontSet[] = {
+  L"times.ttf",     // IDS_STANDARD_FONT_FAMILY
+  L"timesbd.ttf",   // IDS_STANDARD_FONT_FAMILY
+  L"timesbi.ttf",   // IDS_STANDARD_FONT_FAMILY
+  L"timesi.ttf",    // IDS_STANDARD_FONT_FAMILY
+  L"cour.ttf",      // IDS_FIXED_FONT_FAMILY
+  L"courbd.ttf",    // IDS_FIXED_FONT_FAMILY
+  L"courbi.ttf",    // IDS_FIXED_FONT_FAMILY
+  L"couri.ttf",     // IDS_FIXED_FONT_FAMILY
+  L"consola.ttf",   // IDS_FIXED_FONT_FAMILY_ALT_WIN
+  L"consolab.ttf",  // IDS_FIXED_FONT_FAMILY_ALT_WIN
+  L"consolai.ttf",  // IDS_FIXED_FONT_FAMILY_ALT_WIN
+  L"consolaz.ttf",  // IDS_FIXED_FONT_FAMILY_ALT_WIN
+  L"arial.ttf",     // IDS_SANS_SERIF_FONT_FAMILY
+  L"arialbd.ttf",   // IDS_SANS_SERIF_FONT_FAMILY
+  L"arialbi.ttf",   // IDS_SANS_SERIF_FONT_FAMILY
+  L"ariali.ttf",    // IDS_SANS_SERIF_FONT_FAMILY
+  L"comic.ttf",     // IDS_CURSIVE_FONT_FAMILY
+  L"comicbd.ttf",   // IDS_CURSIVE_FONT_FAMILY
+  L"comici.ttf",    // IDS_CURSIVE_FONT_FAMILY
+  L"comicz.ttf",    // IDS_CURSIVE_FONT_FAMILY
+  L"impact.ttf",    // IDS_FANTASY_FONT_FAMILY
+  L"segoeui.ttf",   // IDS_PICTOGRAPH_FONT_FAMILY
+  L"segoeuib.ttf",  // IDS_PICTOGRAPH_FONT_FAMILY
+  L"segoeuii.ttf",  // IDS_PICTOGRAPH_FONT_FAMILY
+  L"msgothic.ttc",  // IDS_STANDARD_FONT_FAMILY_JAPANESE
+  L"msmincho.ttc",  // IDS_SERIF_FONT_FAMILY_JAPANESE
+  L"gulim.ttc",     // IDS_FIXED_FONT_FAMILY_KOREAN
+  L"batang.ttc",    // IDS_SERIF_FONT_FAMILY_KOREAN
+  L"simsun.ttc",    // IDS_STANDARD_FONT_FAMILY_SIMPLIFIED_HAN
+  L"mingliu.ttc",   // IDS_SERIF_FONT_FAMILY_TRADITIONAL_HAN
+};
+
+bool FontCollectionLoader::LoadRestrictedFontList() {
+  reg_fonts_.clear();
+  reg_fonts_.assign(kRestrictedFontSet,
+                    kRestrictedFontSet + _countof(kRestrictedFontSet));
+  return true;
+}
+
 }  // namespace
 
 namespace content {
@@ -287,18 +339,35 @@
 
   FontCollectionLoader::Initialize(factory);
 
-  HRESULT hr = factory->CreateCustomFontCollection(
-      g_font_loader.Get(), NULL, 0, g_font_collection.GetAddressOf());
+  // We try here to put arbitrary limit on max number of fonts that could
+  // be loaded, otherwise we fallback to restricted set of fonts.
+  const UINT32 kMaxFontThreshold = 1000;
+  HRESULT hr = E_FAIL;
+  if (g_font_loader->GetFontMapSize() < kMaxFontThreshold) {
+    hr = factory->CreateCustomFontCollection(
+        g_font_loader.Get(), NULL, 0, g_font_collection.GetAddressOf());
+  }
+
+  bool loadingRestricted = false;
+  if (FAILED(hr) || !g_font_collection.Get()) {
+    // We will try here just one more time with restricted font set.
+    g_font_loader->LoadRestrictedFontList();
+    hr = factory->CreateCustomFontCollection(
+        g_font_loader.Get(), NULL, 0, g_font_collection.GetAddressOf());
+  }
 
   base::TimeDelta time_delta = base::TimeTicks::Now() - start_tick;
   int64 delta = time_delta.ToInternalValue();
   base::debug::Alias(&delta);
   UINT32 size = g_font_loader->GetFontMapSize();
   base::debug::Alias(&size);
+  base::debug::Alias(&loadingRestricted);
 
   CHECK(SUCCEEDED(hr));
   CHECK(g_font_collection.Get() != NULL);
 
+  base::debug::ClearCrashKey(kFontKeyName);
+
   return g_font_collection.Get();
 }
 
diff --git a/dbus/property.cc b/dbus/property.cc
index 9475a07..89cb957 100644
--- a/dbus/property.cc
+++ b/dbus/property.cc
@@ -89,6 +89,11 @@
                                    bool success) {
   LOG_IF(WARNING, !success) << "Failed to connect to " << signal_name
                             << "signal.";
+
+  // This is a simple workaround for crbug.com/407109, which causes signals to
+  // be missed if they are received before a match rule is added for them. This
+  // is a branch-only workaround that is only present in 2125 (38).
+  GetAll();
 }
 
 
diff --git a/dbus/property_unittest.cc b/dbus/property_unittest.cc
index e078c00..3e85126 100644
--- a/dbus/property_unittest.cc
+++ b/dbus/property_unittest.cc
@@ -82,8 +82,9 @@
         object_proxy_,
         base::Bind(&PropertyTest::OnPropertyChanged,
                    base::Unretained(this))));
+
+    // GetAll is called once the signals are connected.
     properties_->ConnectSignals();
-    properties_->GetAll();
   }
 
   virtual void TearDown() {
diff --git a/device/bluetooth/bluetooth_device_chromeos.cc b/device/bluetooth/bluetooth_device_chromeos.cc
index 0f1f273..0fe723e 100644
--- a/device/bluetooth/bluetooth_device_chromeos.cc
+++ b/device/bluetooth/bluetooth_device_chromeos.cc
@@ -432,7 +432,21 @@
   scoped_refptr<BluetoothSocketChromeOS> socket =
       BluetoothSocketChromeOS::CreateBluetoothSocket(
           ui_task_runner_, socket_thread_);
-  socket->Connect(this, uuid, base::Bind(callback, socket), error_callback);
+  socket->Connect(this, uuid, BluetoothSocketChromeOS::SECURITY_LEVEL_MEDIUM,
+                  base::Bind(callback, socket), error_callback);
+}
+
+void BluetoothDeviceChromeOS::ConnectToServiceInsecurely(
+    const BluetoothUUID& uuid,
+    const ConnectToServiceCallback& callback,
+    const ConnectToServiceErrorCallback& error_callback) {
+  VLOG(1) << object_path_.value() << ": Connecting insecurely to service: "
+          << uuid.canonical_value();
+  scoped_refptr<BluetoothSocketChromeOS> socket =
+      BluetoothSocketChromeOS::CreateBluetoothSocket(
+          ui_task_runner_, socket_thread_);
+  socket->Connect(this, uuid, BluetoothSocketChromeOS::SECURITY_LEVEL_LOW,
+                  base::Bind(callback, socket), error_callback);
 }
 
 void BluetoothDeviceChromeOS::CreateGattConnection(
diff --git a/device/bluetooth/bluetooth_device_chromeos.h b/device/bluetooth/bluetooth_device_chromeos.h
index 6f33560..85ed070 100644
--- a/device/bluetooth/bluetooth_device_chromeos.h
+++ b/device/bluetooth/bluetooth_device_chromeos.h
@@ -73,6 +73,19 @@
       const base::Closure& callback,
       const ErrorCallback& error_callback) OVERRIDE;
 
+  // Attempts to initiate an insecure outgoing L2CAP or RFCOMM connection to the
+  // advertised service on this device matching |uuid|, performing an SDP lookup
+  // if necessary to determine the correct protocol and channel for the
+  // connection. Unlike ConnectToService, the outgoing connection will request
+  // no bonding rather than general bonding. |callback| will be called on a
+  // successful connection with a BluetoothSocket instance that is to be owned
+  // by the receiver. |error_callback| will be called on failure with a message
+  // indicating the cause.
+  void ConnectToServiceInsecurely(
+    const device::BluetoothUUID& uuid,
+    const ConnectToServiceCallback& callback,
+    const ConnectToServiceErrorCallback& error_callback);
+
   // Creates a pairing object with the given delegate |pairing_delegate| and
   // establishes it as the pairing context for this device. All pairing-related
   // method calls will be forwarded to this object until it is released.
diff --git a/device/bluetooth/bluetooth_socket_chromeos.cc b/device/bluetooth/bluetooth_socket_chromeos.cc
index eb53bd2..5eedf5b 100644
--- a/device/bluetooth/bluetooth_socket_chromeos.cc
+++ b/device/bluetooth/bluetooth_socket_chromeos.cc
@@ -92,6 +92,7 @@
 void BluetoothSocketChromeOS::Connect(
     const BluetoothDeviceChromeOS* device,
     const BluetoothUUID& uuid,
+    SecurityLevel security_level,
     const base::Closure& success_callback,
     const ErrorCompletionCallback& error_callback) {
   DCHECK(ui_task_runner()->RunsTasksOnCurrentThread());
@@ -107,6 +108,8 @@
   device_path_ = device->object_path();
   uuid_ = uuid;
   options_.reset(new BluetoothProfileManagerClient::Options());
+  if (security_level == SECURITY_LEVEL_LOW)
+    options_->require_authentication.reset(new bool(false));
 
   RegisterProfile(success_callback, error_callback);
 }
diff --git a/device/bluetooth/bluetooth_socket_chromeos.h b/device/bluetooth/bluetooth_socket_chromeos.h
index 949abf6..ff8ee77 100644
--- a/device/bluetooth/bluetooth_socket_chromeos.h
+++ b/device/bluetooth/bluetooth_socket_chromeos.h
@@ -34,6 +34,11 @@
       public device::BluetoothAdapter::Observer,
       public BluetoothProfileServiceProvider::Delegate {
  public:
+  enum SecurityLevel {
+    SECURITY_LEVEL_LOW,
+    SECURITY_LEVEL_MEDIUM
+  };
+
   static scoped_refptr<BluetoothSocketChromeOS> CreateBluetoothSocket(
       scoped_refptr<base::SequencedTaskRunner> ui_task_runner,
       scoped_refptr<device::BluetoothSocketThread> socket_thread);
@@ -45,6 +50,7 @@
   // with a message explaining the cause of the failure.
   virtual void Connect(const BluetoothDeviceChromeOS* device,
                        const device::BluetoothUUID& uuid,
+                       SecurityLevel security_level,
                        const base::Closure& success_callback,
                        const ErrorCompletionCallback& error_callback);
 
diff --git a/extensions/browser/api/hid/hid_api.cc b/extensions/browser/api/hid/hid_api.cc
index f409865..3f0e258 100644
--- a/extensions/browser/api/hid/hid_api.cc
+++ b/extensions/browser/api/hid/hid_api.cc
@@ -310,6 +310,7 @@
   }
   scoped_refptr<net::IOBufferWithSize> buffer(
       new net::IOBufferWithSize(parameters_->data.size()));
+  memcpy(buffer->data(), parameters_->data.c_str(), parameters_->data.size());
   resource->connection()->SendFeatureReport(
       static_cast<uint8_t>(parameters_->report_id),
       buffer,
diff --git a/extensions/browser/content_hash_reader.cc b/extensions/browser/content_hash_reader.cc
index c1e6e95..1c9ae97 100644
--- a/extensions/browser/content_hash_reader.cc
+++ b/extensions/browser/content_hash_reader.cc
@@ -35,6 +35,7 @@
       relative_path_(relative_path),
       key_(key),
       status_(NOT_INITIALIZED),
+      content_exists_(false),
       have_verified_contents_(false),
       have_computed_hashes_(false),
       block_size_(0) {
@@ -50,6 +51,13 @@
   base::FilePath verified_contents_path =
       file_util::GetVerifiedContentsPath(extension_root_);
 
+  // Check that this is a valid resource to verify (i.e., it exists).
+  base::FilePath content_path = extension_root_.Append(relative_path_);
+  if (!base::PathExists(content_path))
+    return false;
+
+  content_exists_ = true;
+
   if (!base::PathExists(verified_contents_path))
     return false;
 
diff --git a/extensions/browser/content_hash_reader.h b/extensions/browser/content_hash_reader.h
index cc2ea38..516897b 100644
--- a/extensions/browser/content_hash_reader.h
+++ b/extensions/browser/content_hash_reader.h
@@ -40,11 +40,15 @@
   // should likely be discarded.
   bool Init();
 
+  // Indicates whether the content in question exists in the local extension
+  // installation. This may be |false| if Init fails.
+  bool content_exists() const { return content_exists_; }
+
   // These return whether we found valid verified_contents.json /
   // computed_hashes.json files respectively. Note that both of these can be
   // true but we still didn't find an entry for |relative_path_| in them.
-  bool have_verified_contents() { return have_verified_contents_; }
-  bool have_computed_hashes() { return have_computed_hashes_; }
+  bool have_verified_contents() const { return have_verified_contents_; }
+  bool have_computed_hashes() const { return have_computed_hashes_; }
 
   // Return the number of blocks and block size, respectively. Only valid after
   // calling Init().
@@ -69,6 +73,8 @@
 
   InitStatus status_;
 
+  bool content_exists_;
+
   bool have_verified_contents_;
   bool have_computed_hashes_;
 
diff --git a/extensions/browser/content_verify_job.cc b/extensions/browser/content_verify_job.cc
index f8618bc..e7e8cab 100644
--- a/extensions/browser/content_verify_job.cc
+++ b/extensions/browser/content_verify_job.cc
@@ -152,11 +152,15 @@
 
 void ContentVerifyJob::OnHashesReady(bool success) {
   if (!success && !g_test_delegate) {
-    if (hash_reader_->have_verified_contents() &&
-        hash_reader_->have_computed_hashes())
+    if (!hash_reader_->content_exists()) {
+      // Ignore verification of non-existent resources.
+      return;
+    } else if (hash_reader_->have_verified_contents() &&
+               hash_reader_->have_computed_hashes()) {
       DispatchFailureCallback(NO_HASHES_FOR_FILE);
-    else
+    } else {
       DispatchFailureCallback(MISSING_ALL_HASHES);
+    }
     return;
   }
 
diff --git a/extensions/browser/extension_function_histogram_value.h b/extensions/browser/extension_function_histogram_value.h
index d7687ea..ce88dd9 100644
--- a/extensions/browser/extension_function_histogram_value.h
+++ b/extensions/browser/extension_function_histogram_value.h
@@ -941,6 +941,8 @@
   EASYUNLOCKPRIVATE_CLEARPERMITACCESS,
   EASYUNLOCKPRIVATE_SETREMOTEDEVICES,
   EASYUNLOCKPRIVATE_GETREMOTEDEVICES,
+  FILESYSTEMPROVIDER_GETALL,
+  EASYUNLOCKPRIVATE_CONNECTTOBLUETOOTHSERVICEINSECURELY,
   // Last entry: Add new entries above and ensure to update
   // tools/metrics/histograms/histograms.xml.
   ENUM_BOUNDARY
diff --git a/google_apis/gaia/oauth2_access_token_fetcher_impl.cc b/google_apis/gaia/oauth2_access_token_fetcher_impl.cc
index f4cd4f0..08e45d2 100644
--- a/google_apis/gaia/oauth2_access_token_fetcher_impl.cc
+++ b/google_apis/gaia/oauth2_access_token_fetcher_impl.cc
@@ -183,9 +183,8 @@
     case net::HTTP_OK:
       break;
     case net::HTTP_FORBIDDEN:
-    case net::HTTP_INTERNAL_SERVER_ERROR:
       // HTTP_FORBIDDEN (403) is treated as temporary error, because it may be
-      // '403 Rate Limit Exeeded.' 500 is always treated as transient.
+      // '403 Rate Limit Exeeded.'
       OnGetTokenFailure(
           GoogleServiceAuthError(GoogleServiceAuthError::SERVICE_UNAVAILABLE));
       return;
@@ -212,11 +211,20 @@
               : GoogleServiceAuthError(GoogleServiceAuthError::SERVICE_ERROR));
       return;
     }
-    default:
-      // The other errors are treated as permanent error.
-      OnGetTokenFailure(GoogleServiceAuthError(
-          GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS));
+    default: {
+      if (source->GetResponseCode() >= net::HTTP_INTERNAL_SERVER_ERROR) {
+        // 5xx is always treated as transient.
+        OnGetTokenFailure(GoogleServiceAuthError(
+            GoogleServiceAuthError::SERVICE_UNAVAILABLE));
+      } else {
+        // The other errors are treated as permanent error.
+        DLOG(ERROR) << "Unexpected persistent error: http_status="
+                    << source->GetResponseCode();
+        OnGetTokenFailure(GoogleServiceAuthError(
+            GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS));
+      }
       return;
+    }
   }
 
   // The request was successfully fetched and it returned OK.
diff --git a/gpu/command_buffer/client/gl_in_process_context.cc b/gpu/command_buffer/client/gl_in_process_context.cc
index 0a8294a..a5648df 100644
--- a/gpu/command_buffer/client/gl_in_process_context.cc
+++ b/gpu/command_buffer/client/gl_in_process_context.cc
@@ -37,18 +37,17 @@
 
 namespace {
 
-const int32 kCommandBufferSize = 1024 * 1024;
-// TODO(kbr): make the transfer buffer size configurable via context
-// creation attributes.
-const size_t kStartTransferBufferSize = 4 * 1024 * 1024;
-const size_t kMinTransferBufferSize = 1 * 256 * 1024;
-const size_t kMaxTransferBufferSize = 16 * 1024 * 1024;
+const int32 kDefaultCommandBufferSize = 1024 * 1024;
+const unsigned int kDefaultStartTransferBufferSize = 4 * 1024 * 1024;
+const unsigned int kDefaultMinTransferBufferSize = 1 * 256 * 1024;
+const unsigned int kDefaultMaxTransferBufferSize = 16 * 1024 * 1024;
 
 class GLInProcessContextImpl
     : public GLInProcessContext,
       public base::SupportsWeakPtr<GLInProcessContextImpl> {
  public:
-  explicit GLInProcessContextImpl();
+  explicit GLInProcessContextImpl(
+      const GLInProcessContextSharedMemoryLimits& mem_limits);
   virtual ~GLInProcessContextImpl();
 
   bool Initialize(
@@ -65,6 +64,7 @@
   // GLInProcessContext implementation:
   virtual void SetContextLostCallback(const base::Closure& callback) OVERRIDE;
   virtual gles2::GLES2Implementation* GetImplementation() OVERRIDE;
+  virtual size_t GetMappedMemoryLimit() OVERRIDE;
 
 #if defined(OS_ANDROID)
   virtual scoped_refptr<gfx::SurfaceTexture> GetSurfaceTexture(
@@ -81,6 +81,7 @@
   scoped_ptr<gles2::GLES2Implementation> gles2_implementation_;
   scoped_ptr<InProcessCommandBuffer> command_buffer_;
 
+  const GLInProcessContextSharedMemoryLimits mem_limits_;
   bool context_lost_;
   base::Closure context_lost_callback_;
 
@@ -92,8 +93,10 @@
 base::LazyInstance<std::set<GLInProcessContextImpl*> > g_all_shared_contexts =
     LAZY_INSTANCE_INITIALIZER;
 
-GLInProcessContextImpl::GLInProcessContextImpl()
-    : context_lost_(false) {}
+GLInProcessContextImpl::GLInProcessContextImpl(
+    const GLInProcessContextSharedMemoryLimits& mem_limits)
+    : mem_limits_(mem_limits), context_lost_(false) {
+}
 
 GLInProcessContextImpl::~GLInProcessContextImpl() {
   {
@@ -107,6 +110,10 @@
   return gles2_implementation_.get();
 }
 
+size_t GLInProcessContextImpl::GetMappedMemoryLimit() {
+  return mem_limits_.mapped_memory_reclaim_limit;
+}
+
 void GLInProcessContextImpl::SetContextLostCallback(
     const base::Closure& callback) {
   context_lost_callback_ = callback;
@@ -181,7 +188,7 @@
 
   // Create the GLES2 helper, which writes the command buffer protocol.
   gles2_helper_.reset(new gles2::GLES2CmdHelper(command_buffer_.get()));
-  if (!gles2_helper_->Initialize(kCommandBufferSize)) {
+  if (!gles2_helper_->Initialize(mem_limits_.command_buffer_size)) {
     LOG(ERROR) << "Failed to initialize GLES2CmdHelper";
     Destroy();
     return false;
@@ -209,10 +216,10 @@
   }
 
   if (!gles2_implementation_->Initialize(
-      kStartTransferBufferSize,
-      kMinTransferBufferSize,
-      kMaxTransferBufferSize,
-      gles2::GLES2Implementation::kNoLimit)) {
+          mem_limits_.start_transfer_buffer_size,
+          mem_limits_.min_transfer_buffer_size,
+          mem_limits_.max_transfer_buffer_size,
+          mem_limits_.mapped_memory_reclaim_limit)) {
     return false;
   }
 
@@ -245,6 +252,15 @@
 
 }  // anonymous namespace
 
+GLInProcessContextSharedMemoryLimits::GLInProcessContextSharedMemoryLimits()
+    : command_buffer_size(kDefaultCommandBufferSize),
+      start_transfer_buffer_size(kDefaultStartTransferBufferSize),
+      min_transfer_buffer_size(kDefaultMinTransferBufferSize),
+      max_transfer_buffer_size(kDefaultMaxTransferBufferSize),
+      mapped_memory_reclaim_limit(gles2::GLES2Implementation::kNoLimit) {
+}
+
+// static
 GLInProcessContext* GLInProcessContext::Create(
     scoped_refptr<gpu::InProcessCommandBuffer::Service> service,
     scoped_refptr<gfx::GLSurface> surface,
@@ -254,7 +270,8 @@
     GLInProcessContext* share_context,
     bool use_global_share_group,
     const ::gpu::gles2::ContextCreationAttribHelper& attribs,
-    gfx::GpuPreference gpu_preference) {
+    gfx::GpuPreference gpu_preference,
+    const GLInProcessContextSharedMemoryLimits& memory_limits) {
   DCHECK(!use_global_share_group || !share_context);
   if (surface.get()) {
     DCHECK_EQ(surface->IsOffscreen(), is_offscreen);
@@ -262,7 +279,8 @@
     DCHECK_EQ(gfx::kNullAcceleratedWidget, window);
   }
 
-  scoped_ptr<GLInProcessContextImpl> context(new GLInProcessContextImpl());
+  scoped_ptr<GLInProcessContextImpl> context(
+      new GLInProcessContextImpl(memory_limits));
   if (!context->Initialize(surface,
                            is_offscreen,
                            use_global_share_group,
diff --git a/gpu/command_buffer/client/gl_in_process_context.h b/gpu/command_buffer/client/gl_in_process_context.h
index 6175cc5..33b1348 100644
--- a/gpu/command_buffer/client/gl_in_process_context.h
+++ b/gpu/command_buffer/client/gl_in_process_context.h
@@ -30,6 +30,16 @@
 class GLES2Implementation;
 }
 
+struct GL_IN_PROCESS_CONTEXT_EXPORT GLInProcessContextSharedMemoryLimits {
+  GLInProcessContextSharedMemoryLimits();
+
+  int32 command_buffer_size;
+  unsigned int start_transfer_buffer_size;
+  unsigned int min_transfer_buffer_size;
+  unsigned int max_transfer_buffer_size;
+  unsigned int mapped_memory_reclaim_limit;
+};
+
 class GL_IN_PROCESS_CONTEXT_EXPORT GLInProcessContext {
  public:
   virtual ~GLInProcessContext() {}
@@ -53,7 +63,8 @@
       GLInProcessContext* share_context,
       bool use_global_share_group,
       const gpu::gles2::ContextCreationAttribHelper& attribs,
-      gfx::GpuPreference gpu_preference);
+      gfx::GpuPreference gpu_preference,
+      const GLInProcessContextSharedMemoryLimits& memory_limits);
 
   virtual void SetContextLostCallback(const base::Closure& callback) = 0;
 
@@ -61,6 +72,8 @@
   // can be used without making it current.
   virtual gles2::GLES2Implementation* GetImplementation() = 0;
 
+  virtual size_t GetMappedMemoryLimit() = 0;
+
 #if defined(OS_ANDROID)
   virtual scoped_refptr<gfx::SurfaceTexture> GetSurfaceTexture(
       uint32 stream_id) = 0;
diff --git a/gpu/config/software_rendering_list_json.cc b/gpu/config/software_rendering_list_json.cc
index 4cbb757..6ba85f4 100644
--- a/gpu/config/software_rendering_list_json.cc
+++ b/gpu/config/software_rendering_list_json.cc
@@ -18,7 +18,7 @@
 {
   "name": "software rendering list",
   // Please update the version number whenever you change this file.
-  "version": "9.3",
+  "version": "9.6",
   "entries": [
     {
       "id": 1,
@@ -861,28 +861,24 @@
     },
     {
       "id": 83,
-      "description": "Samsung Gaxlaxy NOTE II is too buggy to use for video decoding",
+      "description": "Samsung Galaxy NOTE is too buggy to use for video decoding",
       "cr_bugs": [308721],
       "os": {
-        "type": "android",
-        "version": {
-          "op": "<=",
-          "value": "4.1.2"
-        }
+        "type": "android"
       },
-      "machine_model_name": ["GT-N7100"],
+      "machine_model_name": ["GT-.*"],
       "features": [
         "accelerated_video_decode"
       ]
     },
     {
       "id": 85,
-      "description": "Samsung Gaxlaxy S4 is too buggy to use for video decoding",
+      "description": "Samsung Galaxy S4 is too buggy to use for video decoding",
       "cr_bugs": [329072],
       "os": {
         "type": "android"
       },
-      "machine_model_name": ["SCH-I545"],
+      "machine_model_name": ["SCH-.*"],
       "features": [
         "accelerated_video_decode"
       ]
@@ -1092,8 +1088,8 @@
           },
           "machine_model_name": ["HTC One",
                                  "C5303", "C6603", "C6903",
-                                 "GT-I8262", "GT-I8552", "GT-I9195", "GT-I9300",
-                                 "GT-I9500", "GT-I9505", "GT-N7100",
+                                 "GT-I8262", "GT-I8552", "GT-I9195",
+                                 "GT-I9500", "GT-I9505",
                                  "SAMSUNG-SCH-I337", "SCH-I545", "SGH-M919",
                                  "SM-N900", "SM-N9005", "SPH-L720",
                                  "XT907", "XT1032", "XT1033", "XT1080"]
@@ -1136,6 +1132,15 @@
       "features": [
         "gpu_rasterization"
       ]
+    },
+    {
+      "id": 100,
+      "description": "GPU rasterization is blacklisted on Nexus 10",
+      "cr_bugs": [407144],
+      "gl_renderer": ".*Mali-T604.*",
+      "features": [
+        "gpu_rasterization"
+      ]
     }
   ]
 }
diff --git a/jingle/glue/proxy_resolving_client_socket.cc b/jingle/glue/proxy_resolving_client_socket.cc
index d7fcb13..8b4ecf2 100644
--- a/jingle/glue/proxy_resolving_client_socket.cc
+++ b/jingle/glue/proxy_resolving_client_socket.cc
@@ -12,7 +12,9 @@
 #include "net/base/io_buffer.h"
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
+#include "net/http/http_auth_controller.h"
 #include "net/http/http_network_session.h"
+#include "net/http/proxy_client_socket.h"
 #include "net/socket/client_socket_handle.h"
 #include "net/socket/client_socket_pool_manager.h"
 #include "net/url_request/url_request_context.h"
@@ -270,6 +272,15 @@
       // "address unreachable" error, and will report both of these failures as
       // ERR_ADDRESS_UNREACHABLE.
       return net::ERR_ADDRESS_UNREACHABLE;
+    case net::ERR_PROXY_AUTH_REQUESTED: {
+      net::ProxyClientSocket* proxy_socket =
+          static_cast<net::ProxyClientSocket*>(transport_->socket());
+
+      if (proxy_socket->GetAuthController()->HaveAuth())
+        return proxy_socket->RestartWithAuth(connect_callback_);
+
+      return error;
+    }
     default:
       return error;
   }
diff --git a/media/audio/audio_input_controller.cc b/media/audio/audio_input_controller.cc
index bcd9c72..72fb83b 100644
--- a/media/audio/audio_input_controller.cc
+++ b/media/audio/audio_input_controller.cc
@@ -8,6 +8,7 @@
 #include "base/strings/stringprintf.h"
 #include "base/threading/thread_restrictions.h"
 #include "base/time/time.h"
+#include "media/audio/audio_parameters.h"
 #include "media/base/limits.h"
 #include "media/base/scoped_histogram_timer.h"
 #include "media/base/user_input_monitor.h"
@@ -85,6 +86,7 @@
       max_volume_(0.0),
       user_input_monitor_(user_input_monitor),
 #if defined(AUDIO_POWER_MONITORING)
+      log_silence_state_(false),
       silence_state_(SILENCE_STATE_NO_MEASUREMENT),
 #endif
       prev_key_down_count_(0) {
@@ -118,9 +120,13 @@
 
   // Create and open a new audio input stream from the existing
   // audio-device thread.
-  if (!controller->task_runner_->PostTask(FROM_HERE,
-          base::Bind(&AudioInputController::DoCreate, controller,
-                     base::Unretained(audio_manager), params, device_id))) {
+  if (!controller->task_runner_->PostTask(
+          FROM_HERE,
+          base::Bind(&AudioInputController::DoCreate,
+                     controller,
+                     base::Unretained(audio_manager),
+                     params,
+                     device_id))) {
     controller = NULL;
   }
 
@@ -149,9 +155,13 @@
 
   // Create and open a new audio input stream from the existing
   // audio-device thread. Use the provided audio-input device.
-  if (!controller->task_runner_->PostTask(FROM_HERE,
-          base::Bind(&AudioInputController::DoCreate, controller,
-                     base::Unretained(audio_manager), params, device_id))) {
+  if (!controller->task_runner_->PostTask(
+          FROM_HERE,
+          base::Bind(&AudioInputController::DoCreateForLowLatency,
+                     controller,
+                     base::Unretained(audio_manager),
+                     params,
+                     device_id))) {
     controller = NULL;
   }
 
@@ -218,12 +228,15 @@
                                     const std::string& device_id) {
   DCHECK(task_runner_->BelongsToCurrentThread());
   SCOPED_UMA_HISTOGRAM_TIMER("Media.AudioInputController.CreateTime");
+  if (handler_)
+    handler_->OnLog(this, "AIC::DoCreate");
 
 #if defined(AUDIO_POWER_MONITORING)
   // Create the audio (power) level meter given the provided audio parameters.
   // An AudioBus is also needed to wrap the raw data buffer from the native
   // layer to match AudioPowerMonitor::Scan().
   // TODO(henrika): Remove use of extra AudioBus. See http://crbug.com/375155.
+  last_audio_level_log_time_ = base::TimeTicks::Now();
   audio_level_.reset(new media::AudioPowerMonitor(
       params.sample_rate(),
       TimeDelta::FromMilliseconds(kPowerMeasurementTimeConstantMilliseconds)));
@@ -238,6 +251,21 @@
   DoCreateForStream(audio_manager->MakeAudioInputStream(params, device_id));
 }
 
+void AudioInputController::DoCreateForLowLatency(AudioManager* audio_manager,
+                                                 const AudioParameters& params,
+                                                 const std::string& device_id) {
+  DCHECK(task_runner_->BelongsToCurrentThread());
+
+#if defined(AUDIO_POWER_MONITORING)
+  // We only log silence state UMA stats for low latency mode and if we use a
+  // real device.
+  if (params.format() != AudioParameters::AUDIO_FAKE)
+    log_silence_state_ = true;
+#endif
+
+  DoCreate(audio_manager, params, device_id);
+}
+
 void AudioInputController::DoCreateForStream(
     AudioInputStream* stream_to_control) {
   DCHECK(task_runner_->BelongsToCurrentThread());
@@ -298,6 +326,9 @@
     state_ = RECORDING;
   }
 
+  if (handler_)
+    handler_->OnLog(this, "AIC::DoRecord");
+
   if (no_data_timer_) {
     // Start the data timer. Once |kTimerResetIntervalSeconds| have passed,
     // a callback to FirstCheckForNoData() is made.
@@ -316,6 +347,9 @@
   if (state_ == CLOSED)
     return;
 
+  if (handler_)
+    handler_->OnLog(this, "AIC::DoClose");
+
   // Delete the timer on the same thread that created it.
   no_data_timer_.reset();
 
@@ -329,10 +363,10 @@
     user_input_monitor_->DisableKeyPressMonitoring();
 
 #if defined(AUDIO_POWER_MONITORING)
-  // Send UMA stats if we have enabled power monitoring.
-  if (audio_level_) {
+  // Send UMA stats if enabled.
+  if (log_silence_state_)
     LogSilenceState(silence_state_);
-  }
+  log_silence_state_ = false;
 #endif
 
   state_ = CLOSED;
@@ -383,6 +417,11 @@
   LogCaptureStartupResult(GetDataIsActive() ?
                           CAPTURE_STARTUP_OK :
                           CAPTURE_STARTUP_NO_DATA_CALLBACK);
+  if (handler_) {
+    handler_->OnLog(this, GetDataIsActive() ?
+                    "AIC::FirstCheckForNoData => data is active" :
+                    "AIC::FirstCheckForNoData => data is NOT active");
+  }
   DoCheckForNoData();
 }
 
@@ -503,26 +542,11 @@
   std::string log_string = base::StringPrintf(
       "AIC::OnData: average audio level=%.2f dBFS", level_dbfs);
   static const float kSilenceThresholdDBFS = -72.24719896f;
-  if (level_dbfs < kSilenceThresholdDBFS) {
+  if (level_dbfs < kSilenceThresholdDBFS)
     log_string += " <=> no audio input!";
-    if (silence_state_ == SILENCE_STATE_NO_MEASUREMENT)
-      silence_state_ = SILENCE_STATE_ONLY_SILENCE;
-    else if (silence_state_ == SILENCE_STATE_ONLY_AUDIO)
-      silence_state_ = SILENCE_STATE_AUDIO_AND_SILENCE;
-    else
-      DCHECK(silence_state_ == SILENCE_STATE_ONLY_SILENCE ||
-             silence_state_ == SILENCE_STATE_AUDIO_AND_SILENCE);
-  } else {
-    if (silence_state_ == SILENCE_STATE_NO_MEASUREMENT)
-      silence_state_ = SILENCE_STATE_ONLY_AUDIO;
-    else if (silence_state_ == SILENCE_STATE_ONLY_SILENCE)
-      silence_state_ = SILENCE_STATE_AUDIO_AND_SILENCE;
-    else
-      DCHECK(silence_state_ == SILENCE_STATE_ONLY_AUDIO ||
-             silence_state_ == SILENCE_STATE_AUDIO_AND_SILENCE);
-  }
-
   handler_->OnLog(this, log_string);
+
+  UpdateSilenceState(level_dbfs < kSilenceThresholdDBFS);
 #endif
 }
 
@@ -555,6 +579,28 @@
 }
 
 #if defined(AUDIO_POWER_MONITORING)
+void AudioInputController::UpdateSilenceState(bool silence) {
+  if (silence) {
+    if (silence_state_ == SILENCE_STATE_NO_MEASUREMENT) {
+      silence_state_ = SILENCE_STATE_ONLY_SILENCE;
+    } else if (silence_state_ == SILENCE_STATE_ONLY_AUDIO) {
+      silence_state_ = SILENCE_STATE_AUDIO_AND_SILENCE;
+    } else {
+      DCHECK(silence_state_ == SILENCE_STATE_ONLY_SILENCE ||
+             silence_state_ == SILENCE_STATE_AUDIO_AND_SILENCE);
+    }
+  } else {
+    if (silence_state_ == SILENCE_STATE_NO_MEASUREMENT) {
+      silence_state_ = SILENCE_STATE_ONLY_AUDIO;
+    } else if (silence_state_ == SILENCE_STATE_ONLY_SILENCE) {
+      silence_state_ = SILENCE_STATE_AUDIO_AND_SILENCE;
+    } else {
+      DCHECK(silence_state_ == SILENCE_STATE_ONLY_AUDIO ||
+             silence_state_ == SILENCE_STATE_AUDIO_AND_SILENCE);
+    }
+  }
+}
+
 void AudioInputController::LogSilenceState(SilenceState value) {
   UMA_HISTOGRAM_ENUMERATION("Media.AudioInputControllerSessionSilenceReport",
                             value,
diff --git a/media/audio/audio_input_controller.h b/media/audio/audio_input_controller.h
index e1e14ee..691f1af 100644
--- a/media/audio/audio_input_controller.h
+++ b/media/audio/audio_input_controller.h
@@ -191,11 +191,11 @@
       SyncWriter* sync_writer,
       UserInputMonitor* user_input_monitor);
 
-  // Factory method for creating an AudioInputController for low-latency mode,
-  // taking ownership of |stream|.  The stream will be opened on the audio
-  // thread, and when that is done, the event handler will receive an
-  // OnCreated() call from that same thread. |user_input_monitor| is used for
-  // typing detection and can be NULL.
+  // Factory method for creating an AudioInputController with an existing
+  // |stream| for low-latency mode, taking ownership of |stream|. The stream
+  // will be opened on the audio thread, and when that is done, the event
+  // handler will receive an OnCreated() call from that same thread.
+  // |user_input_monitor| is used for typing detection and can be NULL.
   static scoped_refptr<AudioInputController> CreateForStream(
       const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
       EventHandler* event_handler,
@@ -251,6 +251,12 @@
   // Elements in this enum should not be deleted or rearranged; the only
   // permitted operation is to add new elements before SILENCE_STATE_MAX and
   // update SILENCE_STATE_MAX.
+  // Possible silence state transitions:
+  //           SILENCE_STATE_AUDIO_AND_SILENCE
+  //               ^                  ^
+  // SILENCE_STATE_ONLY_AUDIO   SILENCE_STATE_ONLY_SILENCE
+  //               ^                  ^
+  //            SILENCE_STATE_NO_MEASUREMENT
   enum SilenceState {
     SILENCE_STATE_NO_MEASUREMENT = 0,
     SILENCE_STATE_ONLY_AUDIO = 1,
@@ -266,8 +272,12 @@
   virtual ~AudioInputController();
 
   // Methods called on the audio thread (owned by the AudioManager).
-  void DoCreate(AudioManager* audio_manager, const AudioParameters& params,
+  void DoCreate(AudioManager* audio_manager,
+                const AudioParameters& params,
                 const std::string& device_id);
+  void DoCreateForLowLatency(AudioManager* audio_manager,
+                             const AudioParameters& params,
+                             const std::string& device_id);
   void DoCreateForStream(AudioInputStream* stream_to_control);
   void DoRecord();
   void DoClose();
@@ -292,6 +302,11 @@
   bool GetDataIsActive();
 
 #if defined(AUDIO_POWER_MONITORING)
+  // Updates the silence state, see enum SilenceState above for state
+  // transitions.
+  void UpdateSilenceState(bool silence);
+
+  // Logs the silence state as UMA stat.
   void LogSilenceState(SilenceState value);
 #endif
 
@@ -345,6 +360,9 @@
   media::AudioParameters audio_params_;
   base::TimeTicks last_audio_level_log_time_;
 
+  // Whether the silence state should sent as UMA stat.
+  bool log_silence_state_;
+
   // The silence report sent as UMA stat at the end of a session.
   SilenceState silence_state_;
 #endif
diff --git a/media/base/cdm_promise.cc b/media/base/cdm_promise.cc
index 13ee760..74ff8bc 100644
--- a/media/base/cdm_promise.cc
+++ b/media/base/cdm_promise.cc
@@ -63,44 +63,6 @@
   reject_cb_.Run(exception_code, system_code, error_message);
 }
 
-template <typename T>
-CdmPromiseTemplate<T>::CdmPromiseTemplate(
-    base::Callback<void(const T&)> resolve_cb,
-    PromiseRejectedCB reject_cb)
-    : CdmPromise(reject_cb), resolve_cb_(resolve_cb) {
-  DCHECK(!resolve_cb_.is_null());
-}
-
-template <typename T>
-CdmPromiseTemplate<T>::CdmPromiseTemplate(
-    base::Callback<void(const T&)> resolve_cb,
-    PromiseRejectedCB reject_cb,
-    const std::string& uma_name)
-    : CdmPromise(reject_cb, uma_name), resolve_cb_(resolve_cb) {
-  DCHECK(!resolve_cb_.is_null());
-}
-
-template <typename T>
-CdmPromiseTemplate<T>::CdmPromiseTemplate() {
-}
-
-template <typename T>
-CdmPromiseTemplate<T>::~CdmPromiseTemplate() {
-  DCHECK(!is_pending_);
-}
-
-template <typename T>
-void CdmPromiseTemplate<T>::resolve(const T& result) {
-  DCHECK(is_pending_);
-  is_pending_ = false;
-  if (!uma_name_.empty()) {
-    base::LinearHistogram::FactoryGet(
-        uma_name_, 1, NUM_RESULT_CODES, NUM_RESULT_CODES + 1,
-        base::HistogramBase::kUmaTargetedHistogramFlag)->Add(SUCCESS);
-  }
-  resolve_cb_.Run(result);
-}
-
 CdmPromiseTemplate<void>::CdmPromiseTemplate(base::Callback<void()> resolve_cb,
                                              PromiseRejectedCB reject_cb)
     : CdmPromise(reject_cb), resolve_cb_(resolve_cb) {
@@ -133,8 +95,82 @@
   resolve_cb_.Run();
 }
 
-// Explicit template instantiation for the Promises needed.
-template class MEDIA_EXPORT CdmPromiseTemplate<std::string>;
-template class MEDIA_EXPORT CdmPromiseTemplate<KeyIdsVector>;
+CdmPromise::ResolveParameterType
+CdmPromiseTemplate<void>::GetResolveParameterType() const {
+  return VOID_TYPE;
+}
+
+CdmPromiseTemplate<std::string>::CdmPromiseTemplate(
+    base::Callback<void(const std::string&)> resolve_cb,
+    PromiseRejectedCB reject_cb)
+    : CdmPromise(reject_cb), resolve_cb_(resolve_cb) {
+  DCHECK(!resolve_cb_.is_null());
+}
+
+CdmPromiseTemplate<std::string>::CdmPromiseTemplate(
+    base::Callback<void(const std::string&)> resolve_cb,
+    PromiseRejectedCB reject_cb,
+    const std::string& uma_name)
+    : CdmPromise(reject_cb, uma_name), resolve_cb_(resolve_cb) {
+  DCHECK(!resolve_cb_.is_null());
+}
+
+CdmPromiseTemplate<std::string>::CdmPromiseTemplate() {
+}
+
+CdmPromiseTemplate<std::string>::~CdmPromiseTemplate() {
+  DCHECK(!is_pending_);
+}
+
+void CdmPromiseTemplate<std::string>::resolve(const std::string& result) {
+  DCHECK(is_pending_);
+  is_pending_ = false;
+  if (!uma_name_.empty()) {
+    base::LinearHistogram::FactoryGet(
+        uma_name_, 1, NUM_RESULT_CODES, NUM_RESULT_CODES + 1,
+        base::HistogramBase::kUmaTargetedHistogramFlag)->Add(SUCCESS);
+  }
+  resolve_cb_.Run(result);
+}
+
+CdmPromise::ResolveParameterType
+CdmPromiseTemplate<std::string>::GetResolveParameterType() const {
+  return STRING_TYPE;
+}
+
+CdmPromiseTemplate<KeyIdsVector>::CdmPromiseTemplate(
+    base::Callback<void(const KeyIdsVector&)> resolve_cb,
+    PromiseRejectedCB reject_cb)
+    : CdmPromise(reject_cb), resolve_cb_(resolve_cb) {
+  DCHECK(!resolve_cb_.is_null());
+}
+
+CdmPromiseTemplate<KeyIdsVector>::CdmPromiseTemplate(
+    base::Callback<void(const KeyIdsVector&)> resolve_cb,
+    PromiseRejectedCB reject_cb,
+    const std::string& uma_name)
+    : CdmPromise(reject_cb, uma_name), resolve_cb_(resolve_cb) {
+  DCHECK(!resolve_cb_.is_null());
+}
+
+CdmPromiseTemplate<KeyIdsVector>::~CdmPromiseTemplate() {
+  DCHECK(!is_pending_);
+}
+
+void CdmPromiseTemplate<KeyIdsVector>::resolve(const KeyIdsVector& result) {
+  DCHECK(is_pending_);
+  is_pending_ = false;
+  if (!uma_name_.empty()) {
+    base::LinearHistogram::FactoryGet(
+        uma_name_, 1, NUM_RESULT_CODES, NUM_RESULT_CODES + 1,
+        base::HistogramBase::kUmaTargetedHistogramFlag)->Add(SUCCESS);
+  }
+  resolve_cb_.Run(result);
+}
+
+CdmPromise::ResolveParameterType
+CdmPromiseTemplate<KeyIdsVector>::GetResolveParameterType() const {
+  return KEY_IDS_VECTOR_TYPE;
+}
 
 }  // namespace media
diff --git a/media/base/cdm_promise.h b/media/base/cdm_promise.h
index 14f79f8..33ec042 100644
--- a/media/base/cdm_promise.h
+++ b/media/base/cdm_promise.h
@@ -35,6 +35,12 @@
     NUM_RESULT_CODES
   };
 
+  enum ResolveParameterType {
+    VOID_TYPE,
+    STRING_TYPE,
+    KEY_IDS_VECTOR_TYPE
+  };
+
   typedef base::Callback<void(MediaKeys::Exception exception_code,
                               uint32 system_code,
                               const std::string& error_message)>
@@ -50,6 +56,8 @@
                       uint32 system_code,
                       const std::string& error_message);
 
+  virtual ResolveParameterType GetResolveParameterType() const = 0;
+
  protected:
   CdmPromise();
   CdmPromise(PromiseRejectedCB reject_cb);
@@ -70,29 +78,6 @@
   DISALLOW_COPY_AND_ASSIGN(CdmPromise);
 };
 
-template <typename T>
-class MEDIA_EXPORT CdmPromiseTemplate : public CdmPromise {
- public:
-  CdmPromiseTemplate(base::Callback<void(const T&)> resolve_cb,
-                     PromiseRejectedCB rejected_cb);
-  CdmPromiseTemplate(base::Callback<void(const T&)> resolve_cb,
-                     PromiseRejectedCB rejected_cb,
-                     const std::string& uma_name);
-  virtual ~CdmPromiseTemplate();
-  virtual void resolve(const T& result);
-
- protected:
-  // Allow subclasses to completely override the implementation.
-  // TODO(jrummell): Remove when derived class SessionLoadedPromise
-  // (in ppapi_decryptor.cc) is no longer needed.
-  CdmPromiseTemplate();
-
- private:
-  base::Callback<void(const T&)> resolve_cb_;
-
-  DISALLOW_COPY_AND_ASSIGN(CdmPromiseTemplate);
-};
-
 // Specialization for no parameter to resolve().
 template <>
 class MEDIA_EXPORT CdmPromiseTemplate<void> : public CdmPromise {
@@ -104,6 +89,7 @@
                      const std::string& uma_name);
   virtual ~CdmPromiseTemplate();
   virtual void resolve();
+  virtual ResolveParameterType GetResolveParameterType() const OVERRIDE;
 
  protected:
   // Allow subclasses to completely override the implementation.
@@ -115,6 +101,48 @@
   DISALLOW_COPY_AND_ASSIGN(CdmPromiseTemplate);
 };
 
+template <>
+class MEDIA_EXPORT CdmPromiseTemplate<std::string> : public CdmPromise {
+ public:
+  CdmPromiseTemplate(base::Callback<void(const std::string&)> resolve_cb,
+                     PromiseRejectedCB rejected_cb);
+  CdmPromiseTemplate(base::Callback<void(const std::string&)> resolve_cb,
+                     PromiseRejectedCB rejected_cb,
+                     const std::string& uma_name);
+  virtual ~CdmPromiseTemplate();
+  virtual void resolve(const std::string& result);
+  virtual ResolveParameterType GetResolveParameterType() const OVERRIDE;
+
+ protected:
+  // Allow subclasses to completely override the implementation.
+  // TODO(jrummell): Remove when derived class SessionLoadedPromise
+  // (in ppapi_decryptor.cc) is no longer needed.
+  CdmPromiseTemplate();
+
+ private:
+  base::Callback<void(const std::string&)> resolve_cb_;
+
+  DISALLOW_COPY_AND_ASSIGN(CdmPromiseTemplate);
+};
+
+template <>
+class MEDIA_EXPORT CdmPromiseTemplate<KeyIdsVector> : public CdmPromise {
+ public:
+  CdmPromiseTemplate(base::Callback<void(const KeyIdsVector&)> resolve_cb,
+                     PromiseRejectedCB rejected_cb);
+  CdmPromiseTemplate(base::Callback<void(const KeyIdsVector&)> resolve_cb,
+                     PromiseRejectedCB rejected_cb,
+                     const std::string& uma_name);
+  virtual ~CdmPromiseTemplate();
+  virtual void resolve(const KeyIdsVector& result);
+  virtual ResolveParameterType GetResolveParameterType() const OVERRIDE;
+
+ private:
+  base::Callback<void(const KeyIdsVector&)> resolve_cb_;
+
+  DISALLOW_COPY_AND_ASSIGN(CdmPromiseTemplate);
+};
+
 }  // namespace media
 
 #endif  // MEDIA_BASE_CDM_PROMISE_H_
diff --git a/media/cdm/ppapi/cdm_adapter.cc b/media/cdm/ppapi/cdm_adapter.cc
index a54ab39..2452be8 100644
--- a/media/cdm/ppapi/cdm_adapter.cc
+++ b/media/cdm/ppapi/cdm_adapter.cc
@@ -383,21 +383,21 @@
                       response_size);
 }
 
-void CdmAdapter::ReleaseSession(uint32_t promise_id,
-                                const std::string& web_session_id) {
-  cdm_->CloseSession(
-      promise_id, web_session_id.data(), web_session_id.length());
-}
-
-void CdmAdapter::RemoveSession(uint32_t promise_id,
-                               const std::string& web_session_id) {
-  if (!cdm_->RemoveSession(
+void CdmAdapter::CloseSession(uint32_t promise_id,
+                              const std::string& web_session_id) {
+  if (!cdm_->CloseSession(
           promise_id, web_session_id.data(), web_session_id.length())) {
     // CDM_4 and CDM_5 don't support this method, so reject the promise.
     RejectPromise(promise_id, cdm::kNotSupportedError, 0, "Not implemented.");
   }
 }
 
+void CdmAdapter::ReleaseSession(uint32_t promise_id,
+                                const std::string& web_session_id) {
+  cdm_->RemoveSession(
+      promise_id, web_session_id.data(), web_session_id.length());
+}
+
 void CdmAdapter::GetUsableKeyIds(uint32_t promise_id,
                                  const std::string& web_session_id) {
   if (!cdm_->GetUsableKeyIds(
diff --git a/media/cdm/ppapi/cdm_adapter.h b/media/cdm/ppapi/cdm_adapter.h
index 07b5ad1..cd4738b 100644
--- a/media/cdm/ppapi/cdm_adapter.h
+++ b/media/cdm/ppapi/cdm_adapter.h
@@ -67,12 +67,13 @@
   virtual void UpdateSession(uint32_t promise_id,
                              const std::string& web_session_id,
                              pp::VarArrayBuffer response) OVERRIDE;
-  // TODO(jrummell): Rename to CloseSession().
+  // TODO(jrummell): Pass this function through Pepper and add OVERRIDE.
+  virtual void CloseSession(uint32_t promise_id,
+                            const std::string& web_session_id);
+  // TODO(jrummell): Rename to RemoveSession().
   virtual void ReleaseSession(uint32_t promise_id,
                               const std::string& web_session_id) OVERRIDE;
-  // TODO(jrummell): Pass these 2 functions through Pepper and add OVERRIDE.
-  virtual void RemoveSession(uint32_t promise_id,
-                             const std::string& web_session_id);
+  // TODO(jrummell): Pass this function through Pepper and add OVERRIDE.
   virtual void GetUsableKeyIds(uint32_t promise_id,
                                const std::string& web_session_id);
   virtual void Decrypt(
diff --git a/media/cdm/ppapi/cdm_wrapper.h b/media/cdm/ppapi/cdm_wrapper.h
index 72afa90..f11672c 100644
--- a/media/cdm/ppapi/cdm_wrapper.h
+++ b/media/cdm/ppapi/cdm_wrapper.h
@@ -56,12 +56,14 @@
                              uint32_t web_session_id_size,
                              const uint8_t* response,
                              uint32_t response_size) = 0;
-  virtual void CloseSession(uint32_t promise_id,
+  // TODO(jrummell): Remove return value when CDM4/5 are removed.
+  virtual bool CloseSession(uint32_t promise_id,
                             const char* web_session_id,
                             uint32_t web_session_id_size) = 0;
-  virtual bool RemoveSession(uint32_t promise_id,
+  virtual void RemoveSession(uint32_t promise_id,
                              const char* web_session_id,
                              uint32_t web_session_id_size) = 0;
+  // TODO(jrummell): Remove return value when CDM4/5 are removed.
   virtual bool GetUsableKeyIds(uint32_t promise_id,
                                const char* web_session_id,
                                uint32_t web_session_id_size) = 0;
@@ -226,17 +228,17 @@
     return true;
   }
 
-  virtual void CloseSession(uint32_t promise_id,
+  virtual bool CloseSession(uint32_t promise_id,
                             const char* web_session_id,
                             uint32_t web_session_id_size) OVERRIDE {
     cdm_->CloseSession(promise_id, web_session_id, web_session_id_size);
+    return true;
   }
 
-  virtual bool RemoveSession(uint32_t promise_id,
+  virtual void RemoveSession(uint32_t promise_id,
                              const char* web_session_id,
                              uint32_t web_session_id_size) OVERRIDE {
     cdm_->RemoveSession(promise_id, web_session_id, web_session_id_size);
-    return true;
   }
 
   virtual void TimerExpired(void* context) OVERRIDE {
@@ -454,7 +456,15 @@
 }
 
 template <>
-void CdmWrapperImpl<cdm::ContentDecryptionModule_4>::CloseSession(
+bool CdmWrapperImpl<cdm::ContentDecryptionModule_4>::CloseSession(
+    uint32_t promise_id,
+    const char* web_session_id,
+    uint32_t web_session_id_size) {
+  return false;
+}
+
+template <>
+void CdmWrapperImpl<cdm::ContentDecryptionModule_4>::RemoveSession(
     uint32_t promise_id,
     const char* web_session_id,
     uint32_t web_session_id_size) {
@@ -465,14 +475,6 @@
 }
 
 template <>
-bool CdmWrapperImpl<cdm::ContentDecryptionModule_4>::RemoveSession(
-    uint32_t promise_id,
-    const char* web_session_id,
-    uint32_t web_session_id_size) {
-  return false;
-}
-
-template <>
 bool CdmWrapperImpl<cdm::ContentDecryptionModule_4>::GetUsableKeyIds(
     uint32_t promise_id,
     const char* web_session_id,
@@ -572,15 +574,7 @@
 }
 
 template <>
-void CdmWrapperImpl<cdm::ContentDecryptionModule_5>::CloseSession(
-    uint32_t promise_id,
-    const char* web_session_id,
-    uint32_t web_session_id_size) {
-  cdm_->ReleaseSession(promise_id, web_session_id, web_session_id_size);
-}
-
-template <>
-bool CdmWrapperImpl<cdm::ContentDecryptionModule_5>::RemoveSession(
+bool CdmWrapperImpl<cdm::ContentDecryptionModule_5>::CloseSession(
     uint32_t promise_id,
     const char* web_session_id,
     uint32_t web_session_id_size) {
@@ -588,6 +582,14 @@
 }
 
 template <>
+void CdmWrapperImpl<cdm::ContentDecryptionModule_5>::RemoveSession(
+    uint32_t promise_id,
+    const char* web_session_id,
+    uint32_t web_session_id_size) {
+  cdm_->ReleaseSession(promise_id, web_session_id, web_session_id_size);
+}
+
+template <>
 bool CdmWrapperImpl<cdm::ContentDecryptionModule_5>::GetUsableKeyIds(
     uint32_t promise_id,
     const char* web_session_id,
diff --git a/media/filters/gpu_video_decoder.cc b/media/filters/gpu_video_decoder.cc
index 16a33ea..3954e09 100644
--- a/media/filters/gpu_video_decoder.cc
+++ b/media/filters/gpu_video_decoder.cc
@@ -422,8 +422,22 @@
   }
   const PictureBuffer& pb = it->second;
 
+  // Validate picture rectangle from GPU. This is for sanity/security check
+  // even the rectangle is not used in this class.
+  if (picture.visible_rect().IsEmpty() ||
+      !gfx::Rect(pb.size()).Contains(picture.visible_rect())) {
+    NOTREACHED() << "Invalid picture size from VDA: "
+                 << picture.visible_rect().ToString() << " should fit in "
+                 << pb.size().ToString();
+    NotifyError(media::VideoDecodeAccelerator::PLATFORM_FAILURE);
+    return;
+  }
+
   // Update frame's timestamp.
   base::TimeDelta timestamp;
+  // Some of the VDAs don't support and thus don't provide us with visible
+  // size in picture.size, passing coded size instead, so always drop it and
+  // use config information instead.
   gfx::Rect visible_rect;
   gfx::Size natural_size;
   GetBufferData(picture.bitstream_buffer_id(), &timestamp, &visible_rect,
diff --git a/media/filters/skcanvas_video_renderer.cc b/media/filters/skcanvas_video_renderer.cc
index fe1bfde..003c195 100644
--- a/media/filters/skcanvas_video_renderer.cc
+++ b/media/filters/skcanvas_video_renderer.cc
@@ -190,6 +190,7 @@
                                   SkCanvas* canvas,
                                   const gfx::RectF& dest_rect,
                                   uint8 alpha,
+                                  SkXfermode::Mode mode,
                                   VideoRotation video_rotation) {
   if (alpha == 0) {
     return;
@@ -233,13 +234,21 @@
     last_frame_timestamp_ = video_frame->timestamp();
   }
 
-  // Use SRC mode so we completely overwrite the buffer (in case we have alpha)
-  // this means we don't need the extra cost of clearing the buffer first.
-  paint.setXfermode(SkXfermode::Create(SkXfermode::kSrc_Mode));
+  paint.setXfermodeMode(mode);
 
   // Paint using |last_frame_|.
   paint.setFilterLevel(SkPaint::kLow_FilterLevel);
   canvas->drawBitmapRect(last_frame_, NULL, dest, &paint);
 }
 
+void SkCanvasVideoRenderer::Copy(media::VideoFrame* video_frame,
+                                 SkCanvas* canvas) {
+  Paint(video_frame,
+        canvas,
+        video_frame->visible_rect(),
+        0xff,
+        SkXfermode::kSrc_Mode,
+        media::VIDEO_ROTATION_0);
+}
+
 }  // namespace media
diff --git a/media/filters/skcanvas_video_renderer.h b/media/filters/skcanvas_video_renderer.h
index 0e5c520..3d1f4da 100644
--- a/media/filters/skcanvas_video_renderer.h
+++ b/media/filters/skcanvas_video_renderer.h
@@ -9,6 +9,7 @@
 #include "media/base/media_export.h"
 #include "media/base/video_rotation.h"
 #include "third_party/skia/include/core/SkBitmap.h"
+#include "third_party/skia/include/core/SkXfermode.h"
 #include "ui/gfx/rect.h"
 
 class SkCanvas;
@@ -32,8 +33,12 @@
              SkCanvas* canvas,
              const gfx::RectF& dest_rect,
              uint8 alpha,
+             SkXfermode::Mode mode,
              VideoRotation video_rotation);
 
+  // Copy |video_frame| on |canvas|.
+  void Copy(media::VideoFrame* video_frame, SkCanvas* canvas);
+
  private:
   // An RGB bitmap and corresponding timestamp of the previously converted
   // video frame data.
diff --git a/media/filters/skcanvas_video_renderer_unittest.cc b/media/filters/skcanvas_video_renderer_unittest.cc
index 2a8b174..358ce0a 100644
--- a/media/filters/skcanvas_video_renderer_unittest.cc
+++ b/media/filters/skcanvas_video_renderer_unittest.cc
@@ -56,8 +56,11 @@
   void PaintRotated(VideoFrame* video_frame,
                     SkCanvas* canvas,
                     Color color,
+                    SkXfermode::Mode mode,
                     VideoRotation video_rotation);
 
+  void Copy(VideoFrame* video_frame, SkCanvas* canvas);
+
   // Getters for various frame sizes.
   VideoFrame* natural_frame() { return natural_frame_.get(); }
   VideoFrame* larger_frame() { return larger_frame_.get(); }
@@ -189,18 +192,25 @@
 SkCanvasVideoRendererTest::~SkCanvasVideoRendererTest() {}
 
 void SkCanvasVideoRendererTest::PaintWithoutFrame(SkCanvas* canvas) {
-  renderer_.Paint(NULL, canvas, kNaturalRect, 0xFF, VIDEO_ROTATION_0);
+  renderer_.Paint(NULL,
+                  canvas,
+                  kNaturalRect,
+                  0xFF,
+                  SkXfermode::kSrcOver_Mode,
+                  VIDEO_ROTATION_0);
 }
 
 void SkCanvasVideoRendererTest::Paint(VideoFrame* video_frame,
                                       SkCanvas* canvas,
                                       Color color) {
-  PaintRotated(video_frame, canvas, color, VIDEO_ROTATION_0);
+  PaintRotated(
+      video_frame, canvas, color, SkXfermode::kSrcOver_Mode, VIDEO_ROTATION_0);
 }
 
 void SkCanvasVideoRendererTest::PaintRotated(VideoFrame* video_frame,
                                              SkCanvas* canvas,
                                              Color color,
+                                             SkXfermode::Mode mode,
                                              VideoRotation video_rotation) {
   switch (color) {
     case kNone:
@@ -215,7 +225,13 @@
       media::FillYUV(video_frame, 29, 255, 107);
       break;
   }
-  renderer_.Paint(video_frame, canvas, kNaturalRect, 0xFF, video_rotation);
+  renderer_.Paint(
+      video_frame, canvas, kNaturalRect, 0xFF, mode, video_rotation);
+}
+
+void SkCanvasVideoRendererTest::Copy(VideoFrame* video_frame,
+                                     SkCanvas* canvas) {
+  renderer_.Copy(video_frame, canvas);
 }
 
 TEST_F(SkCanvasVideoRendererTest, NoFrame) {
@@ -226,11 +242,31 @@
 }
 
 TEST_F(SkCanvasVideoRendererTest, TransparentFrame) {
-  // Test that we don't blend with existing canvas contents.
   FillCanvas(target_canvas(), SK_ColorRED);
-  Paint(VideoFrame::CreateTransparentFrame(gfx::Size(kWidth, kHeight)),
-        target_canvas(),
-        kNone);
+  PaintRotated(VideoFrame::CreateTransparentFrame(gfx::Size(kWidth, kHeight)),
+               target_canvas(),
+               kNone,
+               SkXfermode::kSrcOver_Mode,
+               VIDEO_ROTATION_0);
+  EXPECT_EQ(static_cast<SkColor>(SK_ColorRED), GetColor(target_canvas()));
+}
+
+TEST_F(SkCanvasVideoRendererTest, TransparentFrameSrcMode) {
+  FillCanvas(target_canvas(), SK_ColorRED);
+  // SRC mode completely overwrites the buffer.
+  PaintRotated(VideoFrame::CreateTransparentFrame(gfx::Size(kWidth, kHeight)),
+               target_canvas(),
+               kNone,
+               SkXfermode::kSrc_Mode,
+               VIDEO_ROTATION_0);
+  EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT),
+            GetColor(target_canvas()));
+}
+
+TEST_F(SkCanvasVideoRendererTest, CopyTransparentFrame) {
+  FillCanvas(target_canvas(), SK_ColorRED);
+  Copy(VideoFrame::CreateTransparentFrame(gfx::Size(kWidth, kHeight)),
+       target_canvas());
   EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT),
             GetColor(target_canvas()));
 }
@@ -325,7 +361,11 @@
 TEST_F(SkCanvasVideoRendererTest, Video_Rotation_90) {
   SkCanvas canvas(AllocBitmap(kWidth, kHeight));
   const gfx::Rect crop_rect = cropped_frame()->visible_rect();
-  PaintRotated(cropped_frame(), &canvas, kNone, VIDEO_ROTATION_90);
+  PaintRotated(cropped_frame(),
+               &canvas,
+               kNone,
+               SkXfermode::kSrcOver_Mode,
+               VIDEO_ROTATION_90);
   // Check the corners.
   EXPECT_EQ(SK_ColorGREEN, GetColorAt(&canvas, 0, 0));
   EXPECT_EQ(SK_ColorBLACK, GetColorAt(&canvas, kWidth - 1, 0));
@@ -336,7 +376,11 @@
 TEST_F(SkCanvasVideoRendererTest, Video_Rotation_180) {
   SkCanvas canvas(AllocBitmap(kWidth, kHeight));
   const gfx::Rect crop_rect = cropped_frame()->visible_rect();
-  PaintRotated(cropped_frame(), &canvas, kNone, VIDEO_ROTATION_180);
+  PaintRotated(cropped_frame(),
+               &canvas,
+               kNone,
+               SkXfermode::kSrcOver_Mode,
+               VIDEO_ROTATION_180);
   // Check the corners.
   EXPECT_EQ(SK_ColorBLUE, GetColorAt(&canvas, 0, 0));
   EXPECT_EQ(SK_ColorGREEN, GetColorAt(&canvas, kWidth - 1, 0));
@@ -347,7 +391,11 @@
 TEST_F(SkCanvasVideoRendererTest, Video_Rotation_270) {
   SkCanvas canvas(AllocBitmap(kWidth, kHeight));
   const gfx::Rect crop_rect = cropped_frame()->visible_rect();
-  PaintRotated(cropped_frame(), &canvas, kNone, VIDEO_ROTATION_270);
+  PaintRotated(cropped_frame(),
+               &canvas,
+               kNone,
+               SkXfermode::kSrcOver_Mode,
+               VIDEO_ROTATION_270);
   // Check the corners.
   EXPECT_EQ(SK_ColorRED, GetColorAt(&canvas, 0, 0));
   EXPECT_EQ(SK_ColorBLUE, GetColorAt(&canvas, kWidth - 1, 0));
diff --git a/media/video/picture.cc b/media/video/picture.cc
index 7b32563..f051013 100644
--- a/media/video/picture.cc
+++ b/media/video/picture.cc
@@ -22,9 +22,12 @@
       texture_mailbox_(texture_mailbox) {
 }
 
-Picture::Picture(int32 picture_buffer_id, int32 bitstream_buffer_id)
+Picture::Picture(int32 picture_buffer_id,
+                 int32 bitstream_buffer_id,
+                 const gfx::Rect& visible_rect)
     : picture_buffer_id_(picture_buffer_id),
-      bitstream_buffer_id_(bitstream_buffer_id) {
+      bitstream_buffer_id_(bitstream_buffer_id),
+      visible_rect_(visible_rect) {
 }
 
 }  // namespace media
diff --git a/media/video/picture.h b/media/video/picture.h
index d5be227..844e629 100644
--- a/media/video/picture.h
+++ b/media/video/picture.h
@@ -8,6 +8,7 @@
 #include "base/basictypes.h"
 #include "gpu/command_buffer/common/mailbox.h"
 #include "media/base/media_export.h"
+#include "ui/gfx/geometry/rect.h"
 #include "ui/gfx/size.h"
 
 namespace media {
@@ -54,7 +55,9 @@
 // This is the media-namespace equivalent of PP_Picture_Dev.
 class MEDIA_EXPORT Picture {
  public:
-  Picture(int32 picture_buffer_id, int32 bitstream_buffer_id);
+  Picture(int32 picture_buffer_id,
+          int32 bitstream_buffer_id,
+          const gfx::Rect& visible_rect);
 
   // Returns the id of the picture buffer where this picture is contained.
   int32 picture_buffer_id() const {
@@ -70,9 +73,15 @@
     bitstream_buffer_id_ = bitstream_buffer_id;
   }
 
+  // Returns the visible rectangle of the picture. Its size may be smaller
+  // than the size of the PictureBuffer, as it is the only visible part of the
+  // Picture contained in the PictureBuffer.
+  gfx::Rect visible_rect() const { return visible_rect_; }
+
  private:
   int32 picture_buffer_id_;
   int32 bitstream_buffer_id_;
+  gfx::Rect visible_rect_;
 };
 
 }  // namespace media
diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc
index 7dd51a2..5e9be15 100644
--- a/net/base/mime_util.cc
+++ b/net/base/mime_util.cc
@@ -471,6 +471,8 @@
     case MimeUtil::MPEG4_AAC_LC:
     case MimeUtil::MPEG4_AAC_SBRv1:
     case MimeUtil::H264_BASELINE:
+    case MimeUtil::H264_MAIN:
+    case MimeUtil::H264_HIGH:
     case MimeUtil::VP8:
     case MimeUtil::VORBIS:
       return true;
@@ -481,11 +483,6 @@
       // MPEG-2 variants of AAC are not supported on Android.
       return false;
 
-    case MimeUtil::H264_MAIN:
-    case MimeUtil::H264_HIGH:
-      // H.264 Main and High profiles are not supported on Android.
-      return false;
-
     case MimeUtil::VP9:
       // VP9 is supported only in KitKat+ (API Level 19).
       return base::android::BuildInfo::GetInstance()->sdk_int() >= 19;
diff --git a/net/http/transport_security_state_static.h b/net/http/transport_security_state_static.h
index ad6ff57..fd8c2ed 100644
--- a/net/http/transport_security_state_static.h
+++ b/net/http/transport_security_state_static.h
@@ -1081,7 +1081,6 @@
   {7, true, "\002" "ed" "\002" "gs", true, kNoPins, DOMAIN_NOT_PINNED },
   {21, true, "\017" "forewordreviews" "\003" "com", true, kNoPins, DOMAIN_NOT_PINNED },
   {21, true, "\020" "giacomopelagatti" "\002" "it", true, kNoPins, DOMAIN_NOT_PINNED },
-  {16, true, "\010" "globalcs" "\002" "co" "\002" "uk", true, kNoPins, DOMAIN_NOT_PINNED },
   {13, true, "\010" "helichat" "\002" "de", true, kNoPins, DOMAIN_NOT_PINNED },
   {23, true, "\022" "hostinginnederland" "\002" "nl", true, kNoPins, DOMAIN_NOT_PINNED },
   {19, true, "\015" "isitchristmas" "\003" "com", true, kNoPins, DOMAIN_NOT_PINNED },
diff --git a/net/http/transport_security_state_static.json b/net/http/transport_security_state_static.json
index ac3566a..6551384 100644
--- a/net/http/transport_security_state_static.json
+++ b/net/http/transport_security_state_static.json
@@ -843,7 +843,6 @@
     { "name": "ed.gs", "include_subdomains": true, "mode": "force-https" },
     { "name": "forewordreviews.com", "include_subdomains": true, "mode": "force-https" },
     { "name": "giacomopelagatti.it", "include_subdomains": true, "mode": "force-https" },
-    { "name": "globalcs.co.uk", "include_subdomains": true, "mode": "force-https" },
     { "name": "helichat.de", "include_subdomains": true, "mode": "force-https" },
     { "name": "hostinginnederland.nl", "include_subdomains": true, "mode": "force-https" },
     { "name": "isitchristmas.com", "include_subdomains": true, "mode": "force-https" },
diff --git a/net/quic/quic_http_stream.cc b/net/quic/quic_http_stream.cc
index 36eac6a..3ddfa06 100644
--- a/net/quic/quic_http_stream.cc
+++ b/net/quic/quic_http_stream.cc
@@ -102,12 +102,15 @@
 int QuicHttpStream::SendRequest(const HttpRequestHeaders& request_headers,
                                 HttpResponseInfo* response,
                                 const CompletionCallback& callback) {
-  CHECK(stream_);
   CHECK(!request_body_stream_);
   CHECK(!response_info_);
   CHECK(!callback.is_null());
   CHECK(response);
 
+   if (!stream_) {
+    return ERR_CONNECTION_CLOSED;
+  }
+
   QuicPriority priority = ConvertRequestPriorityToQuicPriority(priority_);
   stream_->set_priority(priority);
   // Store the serialized request headers.
@@ -215,6 +218,8 @@
     stream_->SetDelegate(NULL);
     stream_->Reset(QUIC_STREAM_CANCELLED);
     stream_ = NULL;
+    response_status_ = was_handshake_confirmed_ ?
+        ERR_CONNECTION_CLOSED : ERR_QUIC_HANDSHAKE_FAILED;
   }
 }
 
@@ -352,6 +357,7 @@
 }
 
 void QuicHttpStream::OnSessionClosed(int error) {
+  Close(false);
   session_error_ = error;
   session_.reset();
 }
diff --git a/net/quic/quic_http_stream_test.cc b/net/quic/quic_http_stream_test.cc
index 932f566..96ce8d3 100644
--- a/net/quic/quic_http_stream_test.cc
+++ b/net/quic/quic_http_stream_test.cc
@@ -427,6 +427,44 @@
   EXPECT_TRUE(AtEof());
 }
 
+// Regression test for http://crbug.com/409101
+TEST_P(QuicHttpStreamTest, SessionClosedBeforeSendRequest) {
+  SetRequest("GET", "/", DEFAULT_PRIORITY);
+  Initialize();
+
+  request_.method = "GET";
+  request_.url = GURL("http://www.google.com/");
+
+  EXPECT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
+                                          net_log_, callback_.callback()));
+
+  session_->connection()->CloseConnection(QUIC_NO_ERROR, true);
+
+  EXPECT_EQ(ERR_CONNECTION_CLOSED,
+            stream_->SendRequest(headers_, &response_,
+                                 callback_.callback()));
+}
+
+// Regression test for http://crbug.com/409871
+TEST_P(QuicHttpStreamTest, SessionClosedBeforeReadResponseHeaders) {
+  SetRequest("GET", "/", DEFAULT_PRIORITY);
+  AddWrite(ConstructRequestHeadersPacket(1, kFin));
+  Initialize();
+
+  request_.method = "GET";
+  request_.url = GURL("http://www.google.com/");
+
+  EXPECT_EQ(OK, stream_->InitializeStream(&request_, DEFAULT_PRIORITY,
+                                          net_log_, callback_.callback()));
+
+  EXPECT_EQ(OK, stream_->SendRequest(headers_, &response_,
+                                     callback_.callback()));
+
+  session_->connection()->CloseConnection(QUIC_NO_ERROR, true);
+
+  EXPECT_NE(OK, stream_->ReadResponseHeaders(callback_.callback()));
+}
+
 TEST_P(QuicHttpStreamTest, SendPostRequest) {
   SetRequest("POST", "/", DEFAULT_PRIORITY);
   AddWrite(ConstructRequestHeadersPacket(1, !kFin));
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index fa9a549..4a68d73 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -40818,6 +40818,9 @@
   <int value="880" label="EASYUNLOCKPRIVATE_CLEARPERMITACCESS"/>
   <int value="881" label="EASYUNLOCKPRIVATE_SETREMOTEDEVICES"/>
   <int value="882" label="EASYUNLOCKPRIVATE_GETREMOTEDEVICES"/>
+  <int value="883" label="FILESYSTEMPROVIDER_GETALL"/>
+  <int value="884"
+      label="EASYUNLOCKPRIVATE_CONNECTTOBLUETOOTHSERVICEINSECURELY"/>
 </enum>
 
 <enum name="ExtensionInstallCause" type="int">
diff --git a/ui/android/java/src/org/chromium/ui/VSyncMonitor.java b/ui/android/java/src/org/chromium/ui/VSyncMonitor.java
index 7d9d8a6..af8f87b 100644
--- a/ui/android/java/src/org/chromium/ui/VSyncMonitor.java
+++ b/ui/android/java/src/org/chromium/ui/VSyncMonitor.java
@@ -24,6 +24,8 @@
     private static final long NANOSECONDS_PER_MILLISECOND = 1000000;
     private static final long NANOSECONDS_PER_MICROSECOND = 1000;
 
+    private boolean mInsideVSync = false;
+
     /**
      * VSync listener class
      */
@@ -150,16 +152,32 @@
         mGoodStartingPointNano = goodStartingPointNano;
     }
 
+    /**
+     * @return true if onVSync handler is executing. If onVSync handler
+     * introduces invalidations, View#invalidate() should be called. If
+     * View#postInvalidateOnAnimation is called instead, the corresponding onDraw
+     * will be delayed by one frame. The embedder of VSyncMonitor should check
+     * this value if it wants to post an invalidation.
+     */
+    public boolean isInsideVSync() {
+        return mInsideVSync;
+    }
+
     private long getCurrentNanoTime() {
         return System.nanoTime();
     }
 
     private void onVSyncCallback(long frameTimeNanos, long currentTimeNanos) {
         assert mHaveRequestInFlight;
+        mInsideVSync = true;
         mHaveRequestInFlight = false;
         mLastVSyncCpuTimeNano = currentTimeNanos;
-        if (mListener != null) {
-            mListener.onVSync(this, frameTimeNanos / NANOSECONDS_PER_MICROSECOND);
+        try {
+            if (mListener != null) {
+                mListener.onVSync(this, frameTimeNanos / NANOSECONDS_PER_MICROSECOND);
+            }
+        } finally {
+            mInsideVSync = false;
         }
     }
 
diff --git a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
index 424b566..6d3f3a6 100644
--- a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
+++ b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
@@ -57,6 +57,14 @@
     };
 
     /**
+     * @return true if onVSync handler is executing.
+     * @see org.chromium.ui.VSyncMonitor#isInsideVSync().
+     */
+    public boolean isInsideVSync() {
+        return mVSyncMonitor.isInsideVSync();
+    }
+
+    /**
      * @param context The application context.
      */
     @SuppressLint("UseSparseArrays")
diff --git a/ui/base/l10n/l10n_util.cc b/ui/base/l10n/l10n_util.cc
index 55c4d04..8c7df57 100644
--- a/ui/base/l10n/l10n_util.cc
+++ b/ui/base/l10n/l10n_util.cc
@@ -311,6 +311,11 @@
   return base::i18n::GetCanonicalLocale(locale.c_str());
 }
 
+std::string GetLanguage(const std::string& locale) {
+  const std::string::size_type hyphen_pos = locale.find('-');
+  return std::string(locale, 0, hyphen_pos);
+}
+
 bool CheckAndResolveLocale(const std::string& locale,
                            std::string* resolved_locale) {
 #if defined(OS_MACOSX)
@@ -397,7 +402,7 @@
 #endif
 }
 
-std::string GetApplicationLocale(const std::string& pref_locale) {
+std::string GetApplicationLocaleInternal(const std::string& pref_locale) {
 #if defined(OS_MACOSX)
 
   // Use any override (Cocoa for the browser), otherwise use the preference
@@ -411,12 +416,6 @@
   if (app_locale.empty())
     app_locale = "en-US";
 
-  // Windows/Linux call SetICUDefaultLocale after determining the actual locale
-  // with CheckAndResolveLocal to make ICU APIs work in that locale.
-  // Mac doesn't use a locale directory tree of resources (it uses Mac style
-  // resources), so mirror the Windows/Linux behavior of calling
-  // SetICUDefaultLocale.
-  base::i18n::SetICUDefaultLocale(app_locale);
   return app_locale;
 
 #else
@@ -478,7 +477,6 @@
   std::vector<std::string>::const_iterator i = candidates.begin();
   for (; i != candidates.end(); ++i) {
     if (CheckAndResolveLocale(*i, &resolved_locale)) {
-      base::i18n::SetICUDefaultLocale(resolved_locale);
       return resolved_locale;
     }
   }
@@ -486,7 +484,6 @@
   // Fallback on en-US.
   const std::string fallback_locale("en-US");
   if (IsLocaleAvailable(fallback_locale)) {
-    base::i18n::SetICUDefaultLocale(fallback_locale);
     return fallback_locale;
   }
 
@@ -495,6 +492,18 @@
 #endif
 }
 
+std::string GetApplicationLocale(const std::string& pref_locale,
+                                 bool set_icu_locale) {
+  const std::string locale = GetApplicationLocaleInternal(pref_locale);
+  if (set_icu_locale && !locale.empty())
+    base::i18n::SetICUDefaultLocale(locale);
+  return locale;
+}
+
+std::string GetApplicationLocale(const std::string& pref_locale) {
+  return GetApplicationLocale(pref_locale, true /* set_icu_locale */);
+}
+
 bool IsLocaleNameTranslated(const char* locale,
                             const std::string& display_locale) {
   base::string16 display_name =
diff --git a/ui/base/l10n/l10n_util.h b/ui/base/l10n/l10n_util.h
index a71240c..e4ea9ee 100644
--- a/ui/base/l10n/l10n_util.h
+++ b/ui/base/l10n/l10n_util.h
@@ -24,6 +24,9 @@
 // std::string as an argument.
 UI_BASE_EXPORT std::string GetCanonicalLocale(const std::string& locale);
 
+// Takes normalized locale as |locale|. Returns language part (before '-').
+UI_BASE_EXPORT std::string GetLanguage(const std::string& locale);
+
 // This method translates a generic locale name to one of the locally defined
 // ones. This method returns true if it succeeds.
 UI_BASE_EXPORT bool CheckAndResolveLocale(const std::string& locale,
@@ -37,7 +40,13 @@
 // command line (--lang), second we try the value in the prefs file (passed in
 // as |pref_locale|), finally, we fall back on the system locale. We only return
 // a value if there's a corresponding resource DLL for the locale.  Otherwise,
-// we fall back to en-us.
+// we fall back to en-us. |set_icu_locale| determines whether the resulting
+// locale is set as the default ICU locale before returning it.
+UI_BASE_EXPORT std::string GetApplicationLocale(const std::string& pref_locale,
+                                                bool set_icu_locale);
+
+// Convenience version of GetApplicationLocale() that sets the resulting locale
+// as the default ICU locale before returning it.
 UI_BASE_EXPORT std::string GetApplicationLocale(const std::string& pref_locale);
 
 // Returns true if a display name for |locale| is available in the locale
diff --git a/ui/base/l10n/l10n_util_unittest.cc b/ui/base/l10n/l10n_util_unittest.cc
index 9e2ae4d..972dd26 100644
--- a/ui/base/l10n/l10n_util_unittest.cc
+++ b/ui/base/l10n/l10n_util_unittest.cc
@@ -141,12 +141,15 @@
     base::i18n::SetICUDefaultLocale("en-US");
     env->SetVar("LANGUAGE", "xx:fr_CA");
     EXPECT_EQ("fr", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("fr", icu::Locale::getDefault().getLanguage());
 
     env->SetVar("LANGUAGE", "xx:yy:en_gb.utf-8@quot");
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     env->SetVar("LANGUAGE", "xx:zh-hk");
     EXPECT_EQ("zh-TW", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
 
     // We emulate gettext's behavior here, which ignores LANG/LC_MESSAGES/LC_ALL
     // when LANGUAGE is specified. If no language specified in LANGUAGE is
@@ -155,9 +158,11 @@
     base::i18n::SetICUDefaultLocale("fr-FR");
     env->SetVar("LANGUAGE", "xx:yy");
     EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     env->SetVar("LANGUAGE", "/fr:zh_CN");
     EXPECT_EQ("zh-CN", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
 
     // Test prioritization of the different environment variables.
     env->SetVar("LANGUAGE", "fr");
@@ -165,35 +170,46 @@
     env->SetVar("LC_MESSAGES", "he");
     env->SetVar("LANG", "nb");
     EXPECT_EQ("fr", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("fr", icu::Locale::getDefault().getLanguage());
     env->UnSetVar("LANGUAGE");
     EXPECT_EQ("es", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
     env->UnSetVar("LC_ALL");
     EXPECT_EQ("he", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("he", icu::Locale::getDefault().getLanguage());
     env->UnSetVar("LC_MESSAGES");
     EXPECT_EQ("nb", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("nb", icu::Locale::getDefault().getLanguage());
     env->UnSetVar("LANG");
 
     SetDefaultLocaleForTest("ca", env.get());
     EXPECT_EQ("ca", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("ca", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("ca-ES", env.get());
     EXPECT_EQ("ca", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("ca", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("ca@valencia", env.get());
     EXPECT_EQ("ca@valencia", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("ca", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("ca_ES@valencia", env.get());
     EXPECT_EQ("ca@valencia", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("ca", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("ca_ES.UTF8@valencia", env.get());
     EXPECT_EQ("ca@valencia", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("ca", icu::Locale::getDefault().getLanguage());
   }
 
   SetDefaultLocaleForTest("en-US", env.get());
   EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(std::string()));
+  EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
   SetDefaultLocaleForTest("xx", env.get());
   EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(std::string()));
+  EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
   if (!kPlatformHasDefaultLocale) {
     // ChromeOS & embedded use only browser prefs in GetApplicationLocale(),
@@ -201,88 +217,148 @@
     // the default locale from the OS or environment.
     SetDefaultLocaleForTest("en-GB", env.get());
     EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(""));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("en-US", env.get());
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-GB"));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("en-US", env.get());
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-AU"));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("en-US", env.get());
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-NZ"));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("en-US", env.get());
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-CA"));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("en-US", env.get());
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("en-ZA"));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
   } else {
     // Most platforms have an OS-provided locale. This locale is preferred.
     SetDefaultLocaleForTest("en-GB", env.get());
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("fr-CA", env.get());
     EXPECT_EQ("fr", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("fr", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("es-MX", env.get());
     EXPECT_EQ("es-419", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("es-AR", env.get());
     EXPECT_EQ("es-419", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("es-ES", env.get());
     EXPECT_EQ("es", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("es", env.get());
     EXPECT_EQ("es", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("zh-HK", env.get());
     EXPECT_EQ("zh-TW", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("zh-MO", env.get());
     EXPECT_EQ("zh-TW", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("zh-SG", env.get());
     EXPECT_EQ("zh-CN", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("en-CA", env.get());
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("en-AU", env.get());
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("en-NZ", env.get());
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
 
     SetDefaultLocaleForTest("en-ZA", env.get());
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale(std::string()));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
   }
 
+  SetDefaultLocaleForTest("en-US", env.get());
+
   if (kSupportsLocalePreference) {
     // On windows, the user can override the locale in preferences.
     base::i18n::SetICUDefaultLocale("en-US");
     EXPECT_EQ("fr", l10n_util::GetApplicationLocale("fr"));
+    EXPECT_STREQ("fr", icu::Locale::getDefault().getLanguage());
     EXPECT_EQ("fr", l10n_util::GetApplicationLocale("fr-CA"));
+    EXPECT_STREQ("fr", icu::Locale::getDefault().getLanguage());
 
     base::i18n::SetICUDefaultLocale("en-US");
     // Aliases iw, no, tl to he, nb, fil.
     EXPECT_EQ("he", l10n_util::GetApplicationLocale("iw"));
+    EXPECT_STREQ("he", icu::Locale::getDefault().getLanguage());
     EXPECT_EQ("nb", l10n_util::GetApplicationLocale("no"));
+    EXPECT_STREQ("nb", icu::Locale::getDefault().getLanguage());
     EXPECT_EQ("fil", l10n_util::GetApplicationLocale("tl"));
+    EXPECT_STREQ("fil", icu::Locale::getDefault().getLanguage());
     // es-419 and es-XX (where XX is not Spain) should be
     // mapped to es-419 (Latin American Spanish).
     EXPECT_EQ("es-419", l10n_util::GetApplicationLocale("es-419"));
+    EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
     EXPECT_EQ("es", l10n_util::GetApplicationLocale("es-ES"));
+    EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
     EXPECT_EQ("es-419", l10n_util::GetApplicationLocale("es-AR"));
+    EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
 
     base::i18n::SetICUDefaultLocale("es-AR");
     EXPECT_EQ("es", l10n_util::GetApplicationLocale("es"));
+    EXPECT_STREQ("es", icu::Locale::getDefault().getLanguage());
 
     base::i18n::SetICUDefaultLocale("zh-HK");
     EXPECT_EQ("zh-CN", l10n_util::GetApplicationLocale("zh-CN"));
+    EXPECT_STREQ("zh", icu::Locale::getDefault().getLanguage());
 
     base::i18n::SetICUDefaultLocale("he");
     EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("en"));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
+
+    base::i18n::SetICUDefaultLocale("he");
+    EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("en", false));
+    EXPECT_STREQ("he", icu::Locale::getDefault().getLanguage());
+
+    base::i18n::SetICUDefaultLocale("de");
+    EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("xx", false));
+    EXPECT_STREQ("de", icu::Locale::getDefault().getLanguage());
+
+    base::i18n::SetICUDefaultLocale("de");
+    EXPECT_EQ("fr", l10n_util::GetApplicationLocale("fr", false));
+    EXPECT_STREQ("de", icu::Locale::getDefault().getLanguage());
+
+    base::i18n::SetICUDefaultLocale("de");
+    EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("en", false));
+    EXPECT_STREQ("de", icu::Locale::getDefault().getLanguage());
+
+    base::i18n::SetICUDefaultLocale("de");
+    EXPECT_EQ("en-US", l10n_util::GetApplicationLocale("en-US", true));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
+  } else {
+    base::i18n::SetICUDefaultLocale("de");
+    EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(std::string(), false));
+    EXPECT_STREQ("de", icu::Locale::getDefault().getLanguage());
+
+    base::i18n::SetICUDefaultLocale("de");
+    EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(std::string(), true));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
   }
 
 #if defined(OS_WIN)
@@ -290,13 +366,17 @@
   if (base::win::GetVersion() < base::win::VERSION_VISTA) {
     base::i18n::SetICUDefaultLocale("am");
     EXPECT_EQ("en-US", l10n_util::GetApplicationLocale(""));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
     base::i18n::SetICUDefaultLocale("en-GB");
     EXPECT_EQ("en-GB", l10n_util::GetApplicationLocale("am"));
+    EXPECT_STREQ("en", icu::Locale::getDefault().getLanguage());
   } else {
     base::i18n::SetICUDefaultLocale("am");
     EXPECT_EQ("am", l10n_util::GetApplicationLocale(""));
+    EXPECT_STREQ("am", icu::Locale::getDefault().getLanguage());
     base::i18n::SetICUDefaultLocale("en-GB");
     EXPECT_EQ("am", l10n_util::GetApplicationLocale("am"));
+    EXPECT_STREQ("am", icu::Locale::getDefault().getLanguage());
   }
 #endif  // defined(OS_WIN)
 
diff --git a/ui/compositor/layer.cc b/ui/compositor/layer.cc
index aa97a56..46cb977 100644
--- a/ui/compositor/layer.cc
+++ b/ui/compositor/layer.cc
@@ -378,7 +378,7 @@
   }
   if (alpha_shape_) {
     filters.Append(cc::FilterOperation::CreateAlphaThresholdFilter(
-            *alpha_shape_, 1.f, 0.f));
+            *alpha_shape_, 0.f, 0.f));
   }
 
   cc_layer_->SetFilters(filters);
diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc
index 9cb80c4..97d15df 100644
--- a/ui/compositor/layer_unittest.cc
+++ b/ui/compositor/layer_unittest.cc
@@ -839,6 +839,21 @@
   WaitForDraw();
 }
 
+void ExpectRgba(int x, int y, SkColor expected_color, SkColor actual_color) {
+  EXPECT_EQ(expected_color, actual_color)
+      << "Pixel error at x=" << x << " y=" << y << "; "
+      << "actual RGBA=("
+      << SkColorGetR(actual_color) << ","
+      << SkColorGetG(actual_color) << ","
+      << SkColorGetB(actual_color) << ","
+      << SkColorGetA(actual_color) << "); "
+      << "expected RGBA=("
+      << SkColorGetR(expected_color) << ","
+      << SkColorGetG(expected_color) << ","
+      << SkColorGetB(expected_color) << ","
+      << SkColorGetA(expected_color) << ")";
+}
+
 // Checks that pixels are actually drawn to the screen with a read back.
 TEST_F(LayerWithRealCompositorTest, DrawPixels) {
   gfx::Size viewport_size = GetCompositor()->size();
@@ -869,18 +884,86 @@
     for (int y = 0; y < viewport_size.height(); y++) {
       SkColor actual_color = bitmap.getColor(x, y);
       SkColor expected_color = y < blue_height ? SK_ColorBLUE : SK_ColorRED;
-      EXPECT_EQ(expected_color, actual_color)
-          << "Pixel error at x=" << x << " y=" << y << "; "
-          << "actual RGBA=("
-          << SkColorGetR(actual_color) << ","
-          << SkColorGetG(actual_color) << ","
-          << SkColorGetB(actual_color) << ","
-          << SkColorGetA(actual_color) << "); "
-          << "expected RGBA=("
-          << SkColorGetR(expected_color) << ","
-          << SkColorGetG(expected_color) << ","
-          << SkColorGetB(expected_color) << ","
-          << SkColorGetA(expected_color) << ")";
+      ExpectRgba(x, y, expected_color, actual_color);
+    }
+  }
+}
+
+// Checks that drawing a layer with transparent pixels is blended correctly
+// with the lower layer.
+TEST_F(LayerWithRealCompositorTest, DrawAlphaBlendedPixels) {
+  gfx::Size viewport_size = GetCompositor()->size();
+
+  int test_size = 200;
+  EXPECT_GE(viewport_size.width(), test_size);
+  EXPECT_GE(viewport_size.height(), test_size);
+
+  // Blue with a wee bit of transparency.
+  SkColor blue_with_alpha = SkColorSetARGBInline(40, 10, 20, 200);
+  SkColor blend_color = SkColorSetARGBInline(255, 216, 3, 32);
+
+  scoped_ptr<Layer> background_layer(
+      CreateColorLayer(SK_ColorRED, gfx::Rect(viewport_size)));
+  scoped_ptr<Layer> foreground_layer(
+      CreateColorLayer(blue_with_alpha, gfx::Rect(viewport_size)));
+
+  // This must be set to false for layers with alpha to be blended correctly.
+  foreground_layer->SetFillsBoundsOpaquely(false);
+
+  background_layer->Add(foreground_layer.get());
+  DrawTree(background_layer.get());
+
+  SkBitmap bitmap;
+  ASSERT_TRUE(ReadPixels(&bitmap, gfx::Rect(viewport_size)));
+  ASSERT_FALSE(bitmap.empty());
+
+  SkAutoLockPixels lock(bitmap);
+  for (int x = 0; x < test_size; x++) {
+    for (int y = 0; y < test_size; y++) {
+      SkColor actual_color = bitmap.getColor(x, y);
+      ExpectRgba(x, y, blend_color, actual_color);
+    }
+  }
+}
+
+// Checks that using the AlphaShape filter applied to a layer with
+// transparency, alpha-blends properly with the layer below.
+TEST_F(LayerWithRealCompositorTest, DrawAlphaThresholdFilterPixels) {
+  gfx::Size viewport_size = GetCompositor()->size();
+
+  int test_size = 200;
+  EXPECT_GE(viewport_size.width(), test_size);
+  EXPECT_GE(viewport_size.height(), test_size);
+
+  int blue_height = 10;
+  SkColor blue_with_alpha = SkColorSetARGBInline(40, 0, 0, 255);
+  SkColor blend_color = SkColorSetARGBInline(255, 215, 0, 40);
+
+  scoped_ptr<Layer> background_layer(
+      CreateColorLayer(SK_ColorRED, gfx::Rect(viewport_size)));
+  scoped_ptr<Layer> foreground_layer(
+      CreateColorLayer(blue_with_alpha, gfx::Rect(viewport_size)));
+
+  // Add a shape to restrict the visible part of the layer.
+  SkRegion shape;
+  shape.setRect(0, 0, viewport_size.width(), blue_height);
+  foreground_layer->SetAlphaShape(make_scoped_ptr(new SkRegion(shape)));
+
+  foreground_layer->SetFillsBoundsOpaquely(false);
+
+  background_layer->Add(foreground_layer.get());
+  DrawTree(background_layer.get());
+
+  SkBitmap bitmap;
+  ASSERT_TRUE(ReadPixels(&bitmap, gfx::Rect(viewport_size)));
+  ASSERT_FALSE(bitmap.empty());
+
+  SkAutoLockPixels lock(bitmap);
+  for (int x = 0; x < test_size; x++) {
+    for (int y = 0; y < test_size; y++) {
+      SkColor actual_color = bitmap.getColor(x, y);
+      ExpectRgba(x, y, actual_color,
+                 y < blue_height ? blend_color : SK_ColorRED);
     }
   }
 }
diff --git a/ui/file_manager/file_manager/audio_player/css/audio_player.css b/ui/file_manager/file_manager/audio_player/css/audio_player.css
index e80fb4c..0dce3e3 100644
--- a/ui/file_manager/file_manager/audio_player/css/audio_player.css
+++ b/ui/file_manager/file_manager/audio_player/css/audio_player.css
@@ -26,7 +26,7 @@
   color: #3d3d3d;
   cursor: default;
   flex: 1 1 auto;
-  font-family: Open Sans, Droid Sans Fallback, sans-serif;
+  font-family: Noto Sans UI, sans-serif;
   font-size: 10pt;
   position: relative;
 }
diff --git a/ui/file_manager/file_manager/audio_player/elements/track_list.css b/ui/file_manager/file_manager/audio_player/elements/track_list.css
index bc9500b..b4700f4 100644
--- a/ui/file_manager/file_manager/audio_player/elements/track_list.css
+++ b/ui/file_manager/file_manager/audio_player/elements/track_list.css
@@ -10,7 +10,7 @@
   cursor: default;
   display: flex;
   flex-direction: column;
-  font-family: Open Sans, Droid Sans Fallback, sans-serif;
+  font-family: Noto Sans UI, sans-serif;
   font-size: 10pt;
   justify-content: flex-start;
   left: 0;
diff --git a/ui/file_manager/file_manager/foreground/css/file_manager.css b/ui/file_manager/file_manager/foreground/css/file_manager.css
index f34644e..0cc294e 100644
--- a/ui/file_manager/file_manager/foreground/css/file_manager.css
+++ b/ui/file_manager/file_manager/foreground/css/file_manager.css
@@ -157,24 +157,12 @@
   line-height: 45px;
 }
 
-.dialog-navigation-list-header #profile-badge {
-  display: inline-block;
-  height: 29px;  /* Size of a profile image. */
-  margin: 8px;
-  vertical-align: top;
-  width: 29px;  /* Size of a profile image. */
-}
-
 .dialog-navigation-list-header #app-name {
   color: #303030;
   font-size: 130%;
   margin: 0 15px;
 }
 
-.dialog-navigation-list-header #profile-badge:not([hidden]) + #app-name {
-  margin: 0;
-}
-
 .dialog-navigation-list-contents {
   display: flex;
   flex: 1 1 auto;
diff --git a/ui/file_manager/file_manager/foreground/js/file_manager.js b/ui/file_manager/file_manager/foreground/js/file_manager.js
index c2452c1..d3dd5e7 100644
--- a/ui/file_manager/file_manager/foreground/js/file_manager.js
+++ b/ui/file_manager/file_manager/foreground/js/file_manager.js
@@ -480,7 +480,6 @@
         this.onShowGearMenu_.bind(this));
     chrome.fileBrowserPrivate.onDesktopChanged.addListener(function() {
       this.updateVisitDesktopMenus_();
-      this.ui_.updateProfileBadge();
     }.bind(this));
     chrome.fileBrowserPrivate.onProfileAdded.addListener(
         this.updateVisitDesktopMenus_.bind(this));
diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js b/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js
index 6f11bfc..ed378b6 100644
--- a/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js
+++ b/ui/file_manager/file_manager/foreground/js/ui/file_manager_ui.js
@@ -137,7 +137,6 @@
   Object.seal(this);
 
   // Initialize the header.
-  this.updateProfileBadge();
   this.element_.querySelector('#app-name').innerText =
       chrome.runtime.getManifest().name;
 
@@ -237,39 +236,6 @@
 };
 
 /**
- * Updates visibility and image of the profile badge.
- */
-FileManagerUI.prototype.updateProfileBadge = function() {
-  if (this.dialogType_ !== DialogType.FULL_PAGE)
-    return;
-
-  chrome.fileBrowserPrivate.getProfiles(function(profiles,
-                                                 currentId,
-                                                 displayedId) {
-    var profileImage;
-    if (currentId !== displayedId) {
-      for (var i = 0; i < profiles.length; i++) {
-        if (profiles[i].profileId === currentId) {
-          profileImage = profiles[i].profileImage;
-          break;
-        }
-      }
-    }
-    var profileBadge = this.element_.querySelector('#profile-badge');
-    if (profileImage) {
-      profileBadge.style.background =
-          '-webkit-image-set(' +
-          'url(' + profileImage.scale1xUrl + ') 1x,' +
-          'url(' + profileImage.scale2xUrl + ') 2x) no-repeat center';
-      profileBadge.hidden = false;
-    } else {
-      profileBadge.style.background = '';
-      profileBadge.hidden = true;
-    }
-  }.bind(this));
-};
-
-/**
  * Handles click event on the search button.
  * @param {Event} event Click event.
  * @private
diff --git a/ui/file_manager/file_manager/main.html b/ui/file_manager/file_manager/main.html
index b02fd33..d6a881b 100644
--- a/ui/file_manager/file_manager/main.html
+++ b/ui/file_manager/file_manager/main.html
@@ -278,7 +278,7 @@
     <div class="dialog-container">
       <div class="dialog-navigation-list">
         <div class="dialog-navigation-list-header">
-          <span id="profile-badge" hidden></span><span id="app-name"></span>
+          <span id="app-name"></span>
         </div>
         <div class="dialog-navigation-list-contents">
           <tree id="directory-tree" tabindex="15"></tree>
diff --git a/ui/file_manager/gallery/css/gallery.css b/ui/file_manager/gallery/css/gallery.css
index 0888d84..77021d2 100644
--- a/ui/file_manager/gallery/css/gallery.css
+++ b/ui/file_manager/gallery/css/gallery.css
@@ -4,7 +4,7 @@
 
 body {
   -webkit-user-select: none;
-  font-family: Open Sans, Droid Sans Fallback, sans-serif;
+  font-family: Noto Sans UI, sans-serif;
   font-size: 84%;
   margin: 0;
 }
diff --git a/ui/file_manager/gallery/js/gallery.js b/ui/file_manager/gallery/js/gallery.js
index 508bc2e..a2480ad 100644
--- a/ui/file_manager/gallery/js/gallery.js
+++ b/ui/file_manager/gallery/js/gallery.js
@@ -870,6 +870,7 @@
     }
   } else {
     document.title = '';
+    this.filenameEdit_.disabled = true;
     this.filenameEdit_.value = '';
     this.shareButton_.hidden = true;
   }
diff --git a/ui/file_manager/video_player/css/video_player.css b/ui/file_manager/video_player/css/video_player.css
index 64deea8..38b51ba 100644
--- a/ui/file_manager/video_player/css/video_player.css
+++ b/ui/file_manager/video_player/css/video_player.css
@@ -5,7 +5,7 @@
 body {
   -webkit-user-select: none;
   background: black;
-  font-family: Noto Sans UI,Droid Sans Fallback,sans-serif;
+  font-family: Noto Sans UI,sans-serif;
   font-size: 84%;
   margin: 0;
   overflow: hidden;
diff --git a/ui/gfx/font_list.cc b/ui/gfx/font_list.cc
index 920204b..ca0c8ad 100644
--- a/ui/gfx/font_list.cc
+++ b/ui/gfx/font_list.cc
@@ -70,6 +70,27 @@
   return Derive(0, font_style);
 }
 
+gfx::FontList FontList::DeriveWithHeightUpperBound(int height) const {
+  gfx::FontList font_list(*this);
+  for (int font_size = font_list.GetFontSize(); font_size > 1; --font_size) {
+    const int internal_leading =
+        font_list.GetBaseline() - font_list.GetCapHeight();
+    // Some platforms don't support getting the cap height, and simply return
+    // the entire font ascent from GetCapHeight().  Centering the ascent makes
+    // the font look too low, so if GetCapHeight() returns the ascent, center
+    // the entire font height instead.
+    const int space =
+        height - ((internal_leading != 0) ?
+                  font_list.GetCapHeight() : font_list.GetHeight());
+    const int y_offset = space / 2 - internal_leading;
+    const int space_at_bottom = height - (y_offset + font_list.GetHeight());
+    if ((y_offset >= 0) && (space_at_bottom >= 0))
+      break;
+    font_list = font_list.DeriveWithSizeDelta(-1);
+  }
+  return font_list;
+}
+
 int FontList::GetHeight() const {
   return impl_->GetHeight();
 }
diff --git a/ui/gfx/font_list.h b/ui/gfx/font_list.h
index 1ba8ad1..bc3afc2 100644
--- a/ui/gfx/font_list.h
+++ b/ui/gfx/font_list.h
@@ -83,6 +83,31 @@
   // values: Font::BOLD, Font::ITALIC and Font::UNDERLINE.
   FontList DeriveWithStyle(int font_style) const;
 
+  // Shrinks the font size until the font list fits within |height| while
+  // having its cap height vertically centered. Returns a new FontList with
+  // the correct height.
+  //
+  // The expected layout:
+  //   +--------+-----------------------------------------------+------------+
+  //   |        | y offset                                      | space      |
+  //   |        +--------+-------------------+------------------+ above      |
+  //   |        |        |                   | internal leading | cap height |
+  //   | box    | font   | ascent (baseline) +------------------+------------+
+  //   | height | height |                   | cap height                    |
+  //   |        |        |-------------------+------------------+------------+
+  //   |        |        | descent (height - baseline)          | space      |
+  //   |        +--------+--------------------------------------+ below      |
+  //   |        | space at bottom                               | cap height |
+  //   +--------+-----------------------------------------------+------------+
+  // Goal:
+  //     center of box height == center of cap height
+  //     (i.e. space above cap height == space below cap height)
+  // Restrictions:
+  //     y offset >= 0
+  //     space at bottom >= 0
+  //     (i.e. Entire font must be visible inside the box.)
+  gfx::FontList DeriveWithHeightUpperBound(int height) const;
+
   // Returns the height of this font list, which is max(ascent) + max(descent)
   // for all the fonts in the font list.
   int GetHeight() const;
diff --git a/ui/gfx/font_list_unittest.cc b/ui/gfx/font_list_unittest.cc
index fc5f839..6dcbb85 100644
--- a/ui/gfx/font_list_unittest.cc
+++ b/ui/gfx/font_list_unittest.cc
@@ -286,4 +286,27 @@
             font_list_mix.GetBaseline());
 }
 
+TEST(FontListTest, Fonts_DeriveWithHeightUpperBound) {
+  std::vector<Font> fonts;
+
+  fonts.push_back(gfx::Font("Arial", 18));
+  fonts.push_back(gfx::Font("Sans serif", 18));
+  fonts.push_back(gfx::Font("Symbol", 18));
+  FontList font_list = FontList(fonts);
+
+  // A smaller upper bound should derive a font list with a smaller height.
+  const int height_1 = font_list.GetHeight() - 5;
+  FontList derived_1 = font_list.DeriveWithHeightUpperBound(height_1);
+  EXPECT_LE(derived_1.GetHeight(), height_1);
+  EXPECT_LT(derived_1.GetHeight(), font_list.GetHeight());
+  EXPECT_LT(derived_1.GetFontSize(), font_list.GetFontSize());
+
+  // A larger upper bound should not change the height of the font list.
+  const int height_2 = font_list.GetHeight() + 5;
+  FontList derived_2 = font_list.DeriveWithHeightUpperBound(height_2);
+  EXPECT_LE(derived_2.GetHeight(), height_2);
+  EXPECT_EQ(font_list.GetHeight(), derived_2.GetHeight());
+  EXPECT_EQ(font_list.GetFontSize(), derived_2.GetFontSize());
+}
+
 }  // namespace gfx
diff --git a/ui/gfx/font_render_params_linux.cc b/ui/gfx/font_render_params_linux.cc
index a198358..4f9fbc9 100644
--- a/ui/gfx/font_render_params_linux.cc
+++ b/ui/gfx/font_render_params_linux.cc
@@ -4,6 +4,8 @@
 
 #include "ui/gfx/font_render_params.h"
 
+#include <fontconfig/fontconfig.h>
+
 #include "base/command_line.h"
 #include "base/containers/mru_cache.h"
 #include "base/hash.h"
@@ -17,8 +19,6 @@
 #include "ui/gfx/linux_font_delegate.h"
 #include "ui/gfx/switches.h"
 
-#include <fontconfig/fontconfig.h>
-
 namespace gfx {
 
 namespace {
diff --git a/ui/gl/android/scoped_java_surface.cc b/ui/gl/android/scoped_java_surface.cc
index 36f635f..ae4f81a 100644
--- a/ui/gl/android/scoped_java_surface.cc
+++ b/ui/gl/android/scoped_java_surface.cc
@@ -32,7 +32,7 @@
       is_protected_(false) {
   JNIEnv* env = base::android::AttachCurrentThread();
   RegisterNativesIfNeeded(env);
-  DCHECK(env->IsInstanceOf(surface.obj(), g_Surface_clazz));
+  DCHECK(env->IsInstanceOf(surface.obj(), Surface_clazz(env)));
   j_surface_.Reset(surface);
 }
 
diff --git a/ui/keyboard/keyboard_controller.cc b/ui/keyboard/keyboard_controller.cc
index f74ff7a..029a5a4 100644
--- a/ui/keyboard/keyboard_controller.cc
+++ b/ui/keyboard/keyboard_controller.cc
@@ -305,6 +305,8 @@
     } else {
       ResetWindowInsets();
     }
+  } else {
+    current_keyboard_bounds_ = gfx::Rect();
   }
 }
 
diff --git a/ui/keyboard/keyboard_layout_manager.cc b/ui/keyboard/keyboard_layout_manager.cc
index d7faf0f..9946060 100644
--- a/ui/keyboard/keyboard_layout_manager.cc
+++ b/ui/keyboard/keyboard_layout_manager.cc
@@ -56,7 +56,10 @@
     // case the show keyboard request is called before the height is set.
     controller_->ShowKeyboard(false);
   } else {
-    controller_->NotifyKeyboardBoundsChanging(requested_bounds);
+    // We need to send out this notification only if keyboard is visible since
+    // keyboard window is resized even if keyboard is hidden.
+    if (controller_->keyboard_visible())
+      controller_->NotifyKeyboardBoundsChanging(requested_bounds);
   }
 }
 
diff --git a/ui/login/account_picker/user_pod_row.css b/ui/login/account_picker/user_pod_row.css
index 01a3b7a..089dc5e 100644
--- a/ui/login/account_picker/user_pod_row.css
+++ b/ui/login/account_picker/user_pod_row.css
@@ -171,7 +171,8 @@
   display: none;
 }
 
-.pod[auth-type='offlinePassword'].focused .password-entry-container {
+.pod[auth-type='offlinePassword'].focused .password-entry-container,
+.pod[auth-type='forceOfflinePassword'].focused .password-entry-container {
   display: flex;
   flex: auto;
 }
@@ -226,6 +227,11 @@
   flex: none;
 }
 
+.custom-icon.faded {
+  -webkit-transition: opacity 200ms ease-in-out,
+                      visibility 200ms ease-in-out;
+}
+
 .custom-icon-container {
   display: flex;
   flex: none;
diff --git a/ui/login/account_picker/user_pod_row.js b/ui/login/account_picker/user_pod_row.js
index bebb45e..6828093 100644
--- a/ui/login/account_picker/user_pod_row.js
+++ b/ui/login/account_picker/user_pod_row.js
@@ -85,10 +85,11 @@
    * @const
    */
   var UserPodTabOrder = {
-    POD_INPUT: 1,     // Password input fields (and whole pods themselves).
-    HEADER_BAR: 2,    // Buttons on the header bar (Shutdown, Add User).
-    ACTION_BOX: 3,    // Action box buttons.
-    PAD_MENU_ITEM: 4  // User pad menu items (Remove this user).
+    POD_INPUT: 1,        // Password input fields (and whole pods themselves).
+    POD_CUSTOM_ICON: 2,  // Pod custom icon next to passwrod input field.
+    HEADER_BAR: 3,       // Buttons on the header bar (Shutdown, Add User).
+    ACTION_BOX: 4,       // Action box buttons.
+    PAD_MENU_ITEM: 5     // User pad menu items (Remove this user).
   };
 
   /**
@@ -103,6 +104,7 @@
     NUMERIC_PIN: 2,
     USER_CLICK: 3,
     EXPAND_THEN_USER_CLICK: 4,
+    FORCE_OFFLINE_PASSWORD: 5
   };
 
   /**
@@ -114,6 +116,7 @@
     2: 'numericPin',
     3: 'userClick',
     4: 'expandThenUserClick',
+    5: 'forceOfflinePassword'
   };
 
   // Focus and tab order are organized as follows:
@@ -121,9 +124,12 @@
   // (1) all user pods have tab index 1 so they are traversed first;
   // (2) when a user pod is activated, its tab index is set to -1 and its
   // main input field gets focus and tab index 1;
-  // (3) buttons on the header bar have tab index 2 so they follow user pods;
-  // (4) Action box buttons have tab index 3 and follow header bar buttons;
-  // (5) lastly, focus jumps to the Status Area and back to user pods.
+  // (3) if user pod custom icon is interactive, it has tab index 2 so it
+  // follows the input.
+  // (4) buttons on the header bar have tab index 3 so they follow the custom
+  // icon, or user pod if custom icon is not interactive;
+  // (5) Action box buttons have tab index 4 and follow header bar buttons;
+  // (6) lastly, focus jumps to the Status Area and back to user pods.
   //
   // 'Focus' event is handled by a capture handler for the whole document
   // and in some cases 'mousedown' event handlers are used instead of 'click'
@@ -252,6 +258,23 @@
      */
     animationResourceSize_: 0,
 
+    /**
+     * When {@code fadeOut} is called, the element gets hidden using fadeout
+     * animation. This is reference to the listener for transition end added to
+     * the icon element while it's fading out.
+     * @type {?function(Event)}
+     * @private
+     */
+    hideTransitionListener_: null,
+
+    /**
+     * Callback for click and 'Enter' key events that gets set if the icon is
+     * interactive.
+     * @type {?function()}
+     * @private
+     */
+    actionHandler_: null,
+
     /** @override */
     decorate: function() {
       this.iconElement.addEventListener('mouseover',
@@ -260,6 +283,16 @@
                                          this.hideTooltip_.bind(this, false));
       this.iconElement.addEventListener('mousedown',
                                          this.hideTooltip_.bind(this, false));
+      this.iconElement.addEventListener('click',
+                                        this.handleClick_.bind(this));
+      this.iconElement.addEventListener('keydown',
+                                        this.handleKeyDown_.bind(this));
+
+      // When the icon is focused using mouse, there should be no outline shown.
+      // Preventing default mousedown event accomplishes this.
+      this.iconElement.addEventListener('mousedown', function(e) {
+        e.preventDefault();
+      });
     },
 
     /**
@@ -298,16 +331,24 @@
      * Shows the icon.
      */
     show: function() {
+      this.resetHideTransitionState_();
       this.hidden = false;
     },
 
     /**
-     * Hides the icon.  Makes sure the tooltip is hidden and animation reset.
+     * Hides the icon using a fade-out animation.
      */
-    hide: function() {
+    fadeOut: function() {
+      // The icon is already being hidden.
+      if (this.iconElement.classList.contains('faded'))
+        return;
+
       this.hideTooltip_(true);
-      this.setAnimation(null);
-      this.hidden = true;
+      this.iconElement.classList.add('faded');
+      this.hideTransitionListener_ = this.hide_.bind(this);
+      this.iconElement.addEventListener('webkitTransitionEnd',
+                                        this.hideTransitionListener_);
+      ensureTransitionEndEvent(this.iconElement, 200);
     },
 
     /**
@@ -403,6 +444,80 @@
     },
 
     /**
+     * Sets up icon tabIndex attribute and handler for click and 'Enter' key
+     * down events.
+     * @param {?function()} callback If icon should be interactive, the
+     *     function to get called on click and 'Enter' key down events. Should
+     *     be null to make the icon  non interactive.
+     */
+    setInteractive: function(callback) {
+      // Update tabIndex property if needed.
+      if (!!this.actionHandler_ != !!callback) {
+        if (callback) {
+          this.iconElement.setAttribute('tabIndex',
+                                         UserPodTabOrder.POD_CUSTOM_ICON);
+        } else {
+          this.iconElement.removeAttribute('tabIndex');
+        }
+      }
+
+      // Set the new action handler.
+      this.actionHandler_ = callback;
+    },
+
+    /**
+     * Hides the icon. Makes sure the tooltip is hidden and animation reset.
+     * @private
+     */
+    hide_: function() {
+      this.hideTooltip_(true);
+      this.hidden = true;
+      this.setAnimation(null);
+      this.setInteractive(null);
+      this.resetHideTransitionState_();
+    },
+
+    /**
+     * Ensures the icon's transition state potentially set by a call to
+     * {@code fadeOut} is cleared.
+     * @private
+     */
+    resetHideTransitionState_: function() {
+      if (this.hideTransitionListener_) {
+        this.iconElement.removeEventListener('webkitTransitionEnd',
+                                             this.hideTransitionListener_);
+        this.hideTransitionListener_ = null;
+      }
+      this.iconElement.classList.toggle('faded', false);
+    },
+
+    /**
+     * Handles click event on the icon element. No-op if
+     * {@code this.actionHandler_} is not set.
+     * @param {Event} e The click event.
+     * @private
+     */
+    handleClick_: function(e) {
+      if (!this.actionHandler_)
+        return;
+      this.actionHandler_();
+      stopEventPropagation(e);
+    },
+
+    /**
+     * Handles key down event on the icon element. Only 'Enter' key is handled.
+     * No-op if {@code this.actionHandler_} is not set.
+     * @param {Event} e The key down event.
+     * @private
+     */
+    handleKeyDown_: function(e) {
+      if (!this.actionHandler_ || e.keyIdentifier != 'Enter')
+        return;
+      this.actionHandler_(e);
+      stopEventPropagation(e);
+    },
+
+    /**
      * Called when mouse enters the icon. It sets timeout for showing the
      * tooltip.
      * @private
@@ -415,7 +530,7 @@
     },
 
     /**
-     * Shows the current tooltip, if one is set.
+     * Shows the current tooltip if one is set.
      * @private
      */
     showTooltip_: function() {
@@ -973,7 +1088,8 @@
      * @type {bool}
      */
     get isAuthTypePassword() {
-      return this.authType_ == AUTH_TYPE.OFFLINE_PASSWORD;
+      return this.authType_ == AUTH_TYPE.OFFLINE_PASSWORD ||
+             this.authType_ == AUTH_TYPE.FORCE_OFFLINE_PASSWORD;
     },
 
     /**
@@ -2199,6 +2315,12 @@
       pod.customIconElement.setSize(icon.size || {width: 0, height: 0});
       pod.customIconElement.setAnimation(icon.animation || null);
       pod.customIconElement.setOpacity(icon.opacity || 100);
+      if (icon.hardlockOnClick) {
+        pod.customIconElement.setInteractive(
+            this.hardlockUserPod_.bind(this, username));
+      } else {
+        pod.customIconElement.setInteractive(null);
+      }
       pod.customIconElement.show();
       // This has to be called after |show| in case the tooltip should be shown
       // immediatelly.
@@ -2207,6 +2329,17 @@
     },
 
     /**
+     * Hard-locks user pod for the user. If user pod is hard-locked, it can be
+     * only unlocked using password, and the authentication type cannot be
+     * changed.
+     * @param {!string} username The user's username.
+     * @private
+     */
+    hardlockUserPod_: function(username) {
+      chrome.send('hardlockPod', [username]);
+    },
+
+    /**
      * Hides the custom icon in the user pod added by showUserPodCustomIcon().
      * @param {string} username Username of pod to remove button
      */
@@ -2218,7 +2351,7 @@
         return;
       }
 
-      pod.customIconElement.hide();
+      pod.customIconElement.fadeOut();
     },
 
     /**
diff --git a/ui/resources/default_100_percent/common/close_3_mask.png b/ui/resources/default_100_percent/common/close_3_mask.png
new file mode 100644
index 0000000..a4a41db
--- /dev/null
+++ b/ui/resources/default_100_percent/common/close_3_mask.png
Binary files differ
diff --git a/ui/resources/default_100_percent/common/easy_unlock_unlocked.png b/ui/resources/default_100_percent/common/easy_unlock_unlocked.png
index f176d2e..2b9fd72 100644
--- a/ui/resources/default_100_percent/common/easy_unlock_unlocked.png
+++ b/ui/resources/default_100_percent/common/easy_unlock_unlocked.png
Binary files differ
diff --git a/ui/resources/default_100_percent/common/ntp_default_favicon.png b/ui/resources/default_100_percent/common/ntp_default_favicon.png
new file mode 100644
index 0000000..0d72b80
--- /dev/null
+++ b/ui/resources/default_100_percent/common/ntp_default_favicon.png
Binary files differ
diff --git a/ui/resources/default_200_percent/common/close_3_mask.png b/ui/resources/default_200_percent/common/close_3_mask.png
new file mode 100644
index 0000000..60ed8d8
--- /dev/null
+++ b/ui/resources/default_200_percent/common/close_3_mask.png
Binary files differ
diff --git a/ui/resources/default_200_percent/common/easy_unlock_unlocked.png b/ui/resources/default_200_percent/common/easy_unlock_unlocked.png
index 67ee996..d285d49 100644
--- a/ui/resources/default_200_percent/common/easy_unlock_unlocked.png
+++ b/ui/resources/default_200_percent/common/easy_unlock_unlocked.png
Binary files differ
diff --git a/ui/resources/default_200_percent/common/ntp_default_favicon.png b/ui/resources/default_200_percent/common/ntp_default_favicon.png
new file mode 100644
index 0000000..bfd116b
--- /dev/null
+++ b/ui/resources/default_200_percent/common/ntp_default_favicon.png
Binary files differ
diff --git a/ui/resources/ui_resources.grd b/ui/resources/ui_resources.grd
index f627817..b71eb90 100644
--- a/ui/resources/ui_resources.grd
+++ b/ui/resources/ui_resources.grd
@@ -163,6 +163,7 @@
       <structure type="chrome_scaled_image" name="IDR_CLOSE_2_H" file="close_2_hover.png" />
       <structure type="chrome_scaled_image" name="IDR_CLOSE_2_MASK" file="close_2_mask.png" />
       <structure type="chrome_scaled_image" name="IDR_CLOSE_2_P" file="close_2_pressed.png" />
+      <structure type="chrome_scaled_image" name="IDR_CLOSE_3_MASK" file="common/close_3_mask.png" />
       <structure type="chrome_scaled_image" name="IDR_CLOSE_DIALOG" file="close_dialog.png" />
       <structure type="chrome_scaled_image" name="IDR_CLOSE_DIALOG_H" file="close_dialog_hover.png" />
       <structure type="chrome_scaled_image" name="IDR_CLOSE_DIALOG_P" file="close_dialog_pressed.png" />
@@ -351,6 +352,9 @@
         <structure type="chrome_scaled_image" name="IDR_NOTIFICATION_SETTINGS_PRESSED" file="common/notification_settings_pressed.png"/>
       </if>
       <if expr="not is_android and not is_ios">
+        <structure type="chrome_scaled_image" name="IDR_NTP_DEFAULT_FAVICON" file="common/ntp_default_favicon.png" />
+      </if>
+      <if expr="not is_android and not is_ios">
         <structure type="chrome_scaled_image" name="IDR_OOBE_ACTION_BOX_BUTTON_HOVER" file="cros/action_box_button_hover.png" />
         <structure type="chrome_scaled_image" name="IDR_OOBE_ACTION_BOX_BUTTON_NORMAL" file="cros/action_box_button_normal.png" />
         <structure type="chrome_scaled_image" name="IDR_OOBE_ACTION_BOX_BUTTON_PRESSED" file="cros/action_box_button_pressed.png" />
diff --git a/ui/resources/ui_resources.target.darwin-arm.mk b/ui/resources/ui_resources.target.darwin-arm.mk
index b73b656..75c1f28 100644
--- a/ui/resources/ui_resources.target.darwin-arm.mk
+++ b/ui/resources/ui_resources.target.darwin-arm.mk
@@ -20,7 +20,7 @@
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
 	@echo "Gyp action: Generating resources from ui_resources.grd ($@)"
 	$(hide)cd $(gyp_local_path)/ui/resources; mkdir -p $(gyp_shared_intermediate_dir)/ui/resources/grit $(gyp_shared_intermediate_dir)/ui/resources; python ../../tools/grit/grit.py -i ui_resources.grd build -f ../../tools/gritsettings/resource_ids -o "$(gyp_shared_intermediate_dir)/ui/resources" -D _chromium -E "CHROMIUM_BUILD=chromium" -t android -E "ANDROID_JAVA_TAGGED_ONLY=true" -D enable_printing -D use_concatenated_impulse_responses -D enable_webrtc
 
diff --git a/ui/resources/ui_resources.target.darwin-arm64.mk b/ui/resources/ui_resources.target.darwin-arm64.mk
index b73b656..75c1f28 100644
--- a/ui/resources/ui_resources.target.darwin-arm64.mk
+++ b/ui/resources/ui_resources.target.darwin-arm64.mk
@@ -20,7 +20,7 @@
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
 	@echo "Gyp action: Generating resources from ui_resources.grd ($@)"
 	$(hide)cd $(gyp_local_path)/ui/resources; mkdir -p $(gyp_shared_intermediate_dir)/ui/resources/grit $(gyp_shared_intermediate_dir)/ui/resources; python ../../tools/grit/grit.py -i ui_resources.grd build -f ../../tools/gritsettings/resource_ids -o "$(gyp_shared_intermediate_dir)/ui/resources" -D _chromium -E "CHROMIUM_BUILD=chromium" -t android -E "ANDROID_JAVA_TAGGED_ONLY=true" -D enable_printing -D use_concatenated_impulse_responses -D enable_webrtc
 
diff --git a/ui/resources/ui_resources.target.darwin-mips.mk b/ui/resources/ui_resources.target.darwin-mips.mk
index b73b656..75c1f28 100644
--- a/ui/resources/ui_resources.target.darwin-mips.mk
+++ b/ui/resources/ui_resources.target.darwin-mips.mk
@@ -20,7 +20,7 @@
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
 	@echo "Gyp action: Generating resources from ui_resources.grd ($@)"
 	$(hide)cd $(gyp_local_path)/ui/resources; mkdir -p $(gyp_shared_intermediate_dir)/ui/resources/grit $(gyp_shared_intermediate_dir)/ui/resources; python ../../tools/grit/grit.py -i ui_resources.grd build -f ../../tools/gritsettings/resource_ids -o "$(gyp_shared_intermediate_dir)/ui/resources" -D _chromium -E "CHROMIUM_BUILD=chromium" -t android -E "ANDROID_JAVA_TAGGED_ONLY=true" -D enable_printing -D use_concatenated_impulse_responses -D enable_webrtc
 
diff --git a/ui/resources/ui_resources.target.darwin-x86.mk b/ui/resources/ui_resources.target.darwin-x86.mk
index b73b656..75c1f28 100644
--- a/ui/resources/ui_resources.target.darwin-x86.mk
+++ b/ui/resources/ui_resources.target.darwin-x86.mk
@@ -20,7 +20,7 @@
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
 	@echo "Gyp action: Generating resources from ui_resources.grd ($@)"
 	$(hide)cd $(gyp_local_path)/ui/resources; mkdir -p $(gyp_shared_intermediate_dir)/ui/resources/grit $(gyp_shared_intermediate_dir)/ui/resources; python ../../tools/grit/grit.py -i ui_resources.grd build -f ../../tools/gritsettings/resource_ids -o "$(gyp_shared_intermediate_dir)/ui/resources" -D _chromium -E "CHROMIUM_BUILD=chromium" -t android -E "ANDROID_JAVA_TAGGED_ONLY=true" -D enable_printing -D use_concatenated_impulse_responses -D enable_webrtc
 
diff --git a/ui/resources/ui_resources.target.darwin-x86_64.mk b/ui/resources/ui_resources.target.darwin-x86_64.mk
index b73b656..75c1f28 100644
--- a/ui/resources/ui_resources.target.darwin-x86_64.mk
+++ b/ui/resources/ui_resources.target.darwin-x86_64.mk
@@ -20,7 +20,7 @@
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
 	@echo "Gyp action: Generating resources from ui_resources.grd ($@)"
 	$(hide)cd $(gyp_local_path)/ui/resources; mkdir -p $(gyp_shared_intermediate_dir)/ui/resources/grit $(gyp_shared_intermediate_dir)/ui/resources; python ../../tools/grit/grit.py -i ui_resources.grd build -f ../../tools/gritsettings/resource_ids -o "$(gyp_shared_intermediate_dir)/ui/resources" -D _chromium -E "CHROMIUM_BUILD=chromium" -t android -E "ANDROID_JAVA_TAGGED_ONLY=true" -D enable_printing -D use_concatenated_impulse_responses -D enable_webrtc
 
diff --git a/ui/resources/ui_resources.target.linux-arm.mk b/ui/resources/ui_resources.target.linux-arm.mk
index b73b656..75c1f28 100644
--- a/ui/resources/ui_resources.target.linux-arm.mk
+++ b/ui/resources/ui_resources.target.linux-arm.mk
@@ -20,7 +20,7 @@
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
 	@echo "Gyp action: Generating resources from ui_resources.grd ($@)"
 	$(hide)cd $(gyp_local_path)/ui/resources; mkdir -p $(gyp_shared_intermediate_dir)/ui/resources/grit $(gyp_shared_intermediate_dir)/ui/resources; python ../../tools/grit/grit.py -i ui_resources.grd build -f ../../tools/gritsettings/resource_ids -o "$(gyp_shared_intermediate_dir)/ui/resources" -D _chromium -E "CHROMIUM_BUILD=chromium" -t android -E "ANDROID_JAVA_TAGGED_ONLY=true" -D enable_printing -D use_concatenated_impulse_responses -D enable_webrtc
 
diff --git a/ui/resources/ui_resources.target.linux-arm64.mk b/ui/resources/ui_resources.target.linux-arm64.mk
index b73b656..75c1f28 100644
--- a/ui/resources/ui_resources.target.linux-arm64.mk
+++ b/ui/resources/ui_resources.target.linux-arm64.mk
@@ -20,7 +20,7 @@
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
 	@echo "Gyp action: Generating resources from ui_resources.grd ($@)"
 	$(hide)cd $(gyp_local_path)/ui/resources; mkdir -p $(gyp_shared_intermediate_dir)/ui/resources/grit $(gyp_shared_intermediate_dir)/ui/resources; python ../../tools/grit/grit.py -i ui_resources.grd build -f ../../tools/gritsettings/resource_ids -o "$(gyp_shared_intermediate_dir)/ui/resources" -D _chromium -E "CHROMIUM_BUILD=chromium" -t android -E "ANDROID_JAVA_TAGGED_ONLY=true" -D enable_printing -D use_concatenated_impulse_responses -D enable_webrtc
 
diff --git a/ui/resources/ui_resources.target.linux-mips.mk b/ui/resources/ui_resources.target.linux-mips.mk
index b73b656..75c1f28 100644
--- a/ui/resources/ui_resources.target.linux-mips.mk
+++ b/ui/resources/ui_resources.target.linux-mips.mk
@@ -20,7 +20,7 @@
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
 	@echo "Gyp action: Generating resources from ui_resources.grd ($@)"
 	$(hide)cd $(gyp_local_path)/ui/resources; mkdir -p $(gyp_shared_intermediate_dir)/ui/resources/grit $(gyp_shared_intermediate_dir)/ui/resources; python ../../tools/grit/grit.py -i ui_resources.grd build -f ../../tools/gritsettings/resource_ids -o "$(gyp_shared_intermediate_dir)/ui/resources" -D _chromium -E "CHROMIUM_BUILD=chromium" -t android -E "ANDROID_JAVA_TAGGED_ONLY=true" -D enable_printing -D use_concatenated_impulse_responses -D enable_webrtc
 
diff --git a/ui/resources/ui_resources.target.linux-x86.mk b/ui/resources/ui_resources.target.linux-x86.mk
index b73b656..75c1f28 100644
--- a/ui/resources/ui_resources.target.linux-x86.mk
+++ b/ui/resources/ui_resources.target.linux-x86.mk
@@ -20,7 +20,7 @@
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
 	@echo "Gyp action: Generating resources from ui_resources.grd ($@)"
 	$(hide)cd $(gyp_local_path)/ui/resources; mkdir -p $(gyp_shared_intermediate_dir)/ui/resources/grit $(gyp_shared_intermediate_dir)/ui/resources; python ../../tools/grit/grit.py -i ui_resources.grd build -f ../../tools/gritsettings/resource_ids -o "$(gyp_shared_intermediate_dir)/ui/resources" -D _chromium -E "CHROMIUM_BUILD=chromium" -t android -E "ANDROID_JAVA_TAGGED_ONLY=true" -D enable_printing -D use_concatenated_impulse_responses -D enable_webrtc
 
diff --git a/ui/resources/ui_resources.target.linux-x86_64.mk b/ui/resources/ui_resources.target.linux-x86_64.mk
index b73b656..75c1f28 100644
--- a/ui/resources/ui_resources.target.linux-x86_64.mk
+++ b/ui/resources/ui_resources.target.linux-x86_64.mk
@@ -20,7 +20,7 @@
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
 $(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
-$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
+$(gyp_shared_intermediate_dir)/ui/resources/grit/ui_resources.h: $(LOCAL_PATH)/tools/gritsettings/resource_ids $(LOCAL_PATH)/ui/resources/ui_resources.grd $(LOCAL_PATH)/ui/resources/default_100_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_100_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_32.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/default_favicon_64.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_100_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-bar.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-left.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-border-right.png $(LOCAL_PATH)/ui/resources/default_100_percent/linux/linux-progress-value.png $(LOCAL_PATH)/ui/resources/default_100_percent/throbber.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_2_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_hover.png $(LOCAL_PATH)/ui/resources/default_200_percent/close_dialog_pressed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/back_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_center.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_left.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/browser_action_badge_right.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/checkmark.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/close_3_mask.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/default_favicon.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_locked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_spinner.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/easy_unlock_unlocked.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/folder_closed_rtl.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/forward_arrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/common/message_close.png $(LOCAL_PATH)/ui/resources/default_200_percent/cros/menu_droparrow.png $(LOCAL_PATH)/ui/resources/default_200_percent/throbber.png $(LOCAL_PATH)/tools/grit/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit.py $(LOCAL_PATH)/tools/grit/grit/__init__.py $(LOCAL_PATH)/tools/grit/grit/clique.py $(LOCAL_PATH)/tools/grit/grit/constants.py $(LOCAL_PATH)/tools/grit/grit/exception.py $(LOCAL_PATH)/tools/grit/grit/extern/BogoFP.py $(LOCAL_PATH)/tools/grit/grit/extern/FP.py $(LOCAL_PATH)/tools/grit/grit/extern/__init__.py $(LOCAL_PATH)/tools/grit/grit/extern/tclib.py $(LOCAL_PATH)/tools/grit/grit/format/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/android_xml.py $(LOCAL_PATH)/tools/grit/grit/format/c_format.py $(LOCAL_PATH)/tools/grit/grit/format/chrome_messages_json.py $(LOCAL_PATH)/tools/grit/grit/format/data_pack.py $(LOCAL_PATH)/tools/grit/grit/format/html_inline.py $(LOCAL_PATH)/tools/grit/grit/format/js_map_format.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/PRESUBMIT.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/policy_template_generator.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/template_formatter.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writer_configuration.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/__init__.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adm_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/adml_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/admx_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/doc_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/ios_plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/json_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/mock_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_helper.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_strings_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/plist_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/reg_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/template_writer.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/writer_unittest_common.py $(LOCAL_PATH)/tools/grit/grit/format/policy_templates/writers/xml_formatted_writer.py $(LOCAL_PATH)/tools/grit/grit/format/rc.py $(LOCAL_PATH)/tools/grit/grit/format/rc_header.py $(LOCAL_PATH)/tools/grit/grit/format/repack.py $(LOCAL_PATH)/tools/grit/grit/format/resource_map.py $(LOCAL_PATH)/tools/grit/grit/gather/__init__.py $(LOCAL_PATH)/tools/grit/grit/gather/admin_template.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_html.py $(LOCAL_PATH)/tools/grit/grit/gather/chrome_scaled_image.py $(LOCAL_PATH)/tools/grit/grit/gather/igoogle_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/interface.py $(LOCAL_PATH)/tools/grit/grit/gather/json_loader.py $(LOCAL_PATH)/tools/grit/grit/gather/muppet_strings.py $(LOCAL_PATH)/tools/grit/grit/gather/policy_json.py $(LOCAL_PATH)/tools/grit/grit/gather/rc.py $(LOCAL_PATH)/tools/grit/grit/gather/regexp.py $(LOCAL_PATH)/tools/grit/grit/gather/skeleton_gatherer.py $(LOCAL_PATH)/tools/grit/grit/gather/tr_html.py $(LOCAL_PATH)/tools/grit/grit/gather/txt.py $(LOCAL_PATH)/tools/grit/grit/grd_reader.py $(LOCAL_PATH)/tools/grit/grit/grit_runner.py $(LOCAL_PATH)/tools/grit/grit/lazy_re.py $(LOCAL_PATH)/tools/grit/grit/node/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/base.py $(LOCAL_PATH)/tools/grit/grit/node/custom/__init__.py $(LOCAL_PATH)/tools/grit/grit/node/custom/filename.py $(LOCAL_PATH)/tools/grit/grit/node/empty.py $(LOCAL_PATH)/tools/grit/grit/node/include.py $(LOCAL_PATH)/tools/grit/grit/node/io.py $(LOCAL_PATH)/tools/grit/grit/node/mapping.py $(LOCAL_PATH)/tools/grit/grit/node/message.py $(LOCAL_PATH)/tools/grit/grit/node/misc.py $(LOCAL_PATH)/tools/grit/grit/node/structure.py $(LOCAL_PATH)/tools/grit/grit/node/variant.py $(LOCAL_PATH)/tools/grit/grit/pseudo.py $(LOCAL_PATH)/tools/grit/grit/pseudo_rtl.py $(LOCAL_PATH)/tools/grit/grit/scons.py $(LOCAL_PATH)/tools/grit/grit/shortcuts.py $(LOCAL_PATH)/tools/grit/grit/shortcuts_unittests.py $(LOCAL_PATH)/tools/grit/grit/tclib.py $(LOCAL_PATH)/tools/grit/grit/test_suite_all.py $(LOCAL_PATH)/tools/grit/grit/tool/__init__.py $(LOCAL_PATH)/tools/grit/grit/tool/android2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/build.py $(LOCAL_PATH)/tools/grit/grit/tool/buildinfo.py $(LOCAL_PATH)/tools/grit/grit/tool/count.py $(LOCAL_PATH)/tools/grit/grit/tool/diff_structures.py $(LOCAL_PATH)/tools/grit/grit/tool/interface.py $(LOCAL_PATH)/tools/grit/grit/tool/menu_from_parts.py $(LOCAL_PATH)/tools/grit/grit/tool/newgrd.py $(LOCAL_PATH)/tools/grit/grit/tool/postprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/preprocess_interface.py $(LOCAL_PATH)/tools/grit/grit/tool/rc2grd.py $(LOCAL_PATH)/tools/grit/grit/tool/resize.py $(LOCAL_PATH)/tools/grit/grit/tool/test.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_postprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/toolbar_preprocess.py $(LOCAL_PATH)/tools/grit/grit/tool/transl2tc.py $(LOCAL_PATH)/tools/grit/grit/tool/unit.py $(LOCAL_PATH)/tools/grit/grit/tool/xmb.py $(LOCAL_PATH)/tools/grit/grit/util.py $(LOCAL_PATH)/tools/grit/grit/xtb_reader.py $(LOCAL_PATH)/tools/grit/grit_info.py $(GYP_TARGET_DEPENDENCIES)
 	@echo "Gyp action: Generating resources from ui_resources.grd ($@)"
 	$(hide)cd $(gyp_local_path)/ui/resources; mkdir -p $(gyp_shared_intermediate_dir)/ui/resources/grit $(gyp_shared_intermediate_dir)/ui/resources; python ../../tools/grit/grit.py -i ui_resources.grd build -f ../../tools/gritsettings/resource_ids -o "$(gyp_shared_intermediate_dir)/ui/resources" -D _chromium -E "CHROMIUM_BUILD=chromium" -t android -E "ANDROID_JAVA_TAGGED_ONLY=true" -D enable_printing -D use_concatenated_impulse_responses -D enable_webrtc
 
diff --git a/ui/strings/translations/app_locale_settings_ja.xtb b/ui/strings/translations/app_locale_settings_ja.xtb
index 51a6c24..8d8eb3b 100644
--- a/ui/strings/translations/app_locale_settings_ja.xtb
+++ b/ui/strings/translations/app_locale_settings_ja.xtb
@@ -2,7 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ja">
 <translation id="IDS_MINIMUM_UI_FONT_SIZE">10</translation>
-<translation id="IDS_UI_FONT_FAMILY_CROS">MotoyaG04Gothic,Noto Sans UI,IPAPGothic,ui-sans, 13px</translation>
+<translation id="IDS_UI_FONT_FAMILY_CROS">Noto Sans UI,Noto Sans CJK Japanese,ui-sans, 13px</translation>
 <if expr="is_win">
   <translation id="IDS_WEB_FONT_FAMILY">'Segoe UI',Arial,Meiryo,'MS PGothic',sans-serif</translation>
   <translation id="IDS_WEB_FONT_FAMILY_XP">Arial,Meiryo,'MS PGothic',sans-serif</translation>
@@ -14,9 +14,6 @@
   <translation id="IDS_WEB_FONT_FAMILY">VL PGothic,Sazanami Gothic,Kochi Gothic,sans-serif</translation>
 </if>
 <if expr="chromeos and _google_chrome">
-  <translation id="IDS_WEB_FONT_FAMILY">MotoyaG04Gothic, Noto Sans UI, sans-serif</translation>
-</if>
-<if expr="chromeos and not _google_chrome">
-  <translation id="IDS_WEB_FONT_FAMILY">Noto Sans UI, IPAPGothic, sans-serif</translation>
+  <translation id="IDS_WEB_FONT_FAMILY">Noto Sans UI, Noto Sans CJK Japanese, sans-serif</translation>
 </if>
 </translationbundle>
diff --git a/ui/strings/translations/app_locale_settings_ko.xtb b/ui/strings/translations/app_locale_settings_ko.xtb
index f8da373..bd3c2f1 100644
--- a/ui/strings/translations/app_locale_settings_ko.xtb
+++ b/ui/strings/translations/app_locale_settings_ko.xtb
@@ -2,7 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ko">
 <translation id="IDS_MINIMUM_UI_FONT_SIZE">10</translation>
-<translation id="IDS_UI_FONT_FAMILY_CROS">Noto Sans UI,NanumGothic,ui-sans, 13px</translation>
+<translation id="IDS_UI_FONT_FAMILY_CROS">Noto Sans UI,Noto Sans CJK Korean,ui-sans, 13px</translation>
 <if expr="is_win">
   <translation id="IDS_WEB_FONT_FAMILY">'Segoe UI',Arial,'Malgun Gothic',Gulim,sans-serif</translation>
   <translation id="IDS_WEB_FONT_FAMILY_XP">Arial,'Malgun Gothic',Gulim,sans-serif</translation>
@@ -14,6 +14,6 @@
   <translation id="IDS_WEB_FONT_FAMILY">NanumGothic,UnDotum,Baekmuk Gulim,sans-serif</translation>
 </if>
 <if expr="chromeos">
-  <translation id="IDS_WEB_FONT_FAMILY">Noto Sans UI, NanumGothic, sans-serif</translation>
+  <translation id="IDS_WEB_FONT_FAMILY">Noto Sans UI, Noto Sans CJK Korean, sans-serif</translation>
 </if>
 </translationbundle>
diff --git a/ui/strings/translations/app_locale_settings_zh-CN.xtb b/ui/strings/translations/app_locale_settings_zh-CN.xtb
index e9c4026..aa89acd 100644
--- a/ui/strings/translations/app_locale_settings_zh-CN.xtb
+++ b/ui/strings/translations/app_locale_settings_zh-CN.xtb
@@ -2,7 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-CN">
 <translation id="IDS_MINIMUM_UI_FONT_SIZE">10</translation>
-<translation id="IDS_UI_FONT_FAMILY_CROS">Noto Sans UI,MYingHeiGB18030,MYingHeiB5HK,ui-sans, 13px</translation>
+<translation id="IDS_UI_FONT_FAMILY_CROS">Noto Sans UI,Noto Sans CJK Simplified Chinese,ui-sans, 13px</translation>
 <if expr="is_win">
   <translation id="IDS_WEB_FONT_FAMILY">'Segoe UI',Arial,'Microsoft Yahei',Simsun,sans-serif</translation>
   <translation id="IDS_WEB_FONT_FAMILY_XP">Arial,'Microsoft Yahei',Simsun,sans-serif</translation>
@@ -10,10 +10,7 @@
 <if expr="is_macosx or is_ios">
   <translation id="IDS_WEB_FONT_FAMILY">Helvetica,STHeiti,sans-serif</translation>
 </if>
-<if expr="chromeos and _google_chrome">
-  <translation id="IDS_WEB_FONT_FAMILY">Noto Sans UI, MYingHeiGB18030, MYingHeiB5HK, sans-serif</translation>
-</if>
-<if expr="chromeos and not _google_chrome">
-  <translation id="IDS_WEB_FONT_FAMILY">Noto Sans UI, Droid Sans Fallback, sans-serif</translation>
+<if expr="chromeos">
+  <translation id="IDS_WEB_FONT_FAMILY">Noto Sans UI, Noto Sans CJK Simplified Chinese, sans-serif</translation>
 </if>
 </translationbundle>
diff --git a/ui/strings/translations/app_locale_settings_zh-TW.xtb b/ui/strings/translations/app_locale_settings_zh-TW.xtb
index 05c69e3..8d0311c 100644
--- a/ui/strings/translations/app_locale_settings_zh-TW.xtb
+++ b/ui/strings/translations/app_locale_settings_zh-TW.xtb
@@ -2,7 +2,7 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-TW">
 <translation id="IDS_MINIMUM_UI_FONT_SIZE">10</translation>
-<translation id="IDS_UI_FONT_FAMILY_CROS">Noto Sans UI,MYingHeiB5HK,MYingHeiGB18030,ui-sans, 13px</translation>
+<translation id="IDS_UI_FONT_FAMILY_CROS">Noto Sans UI,Noto Sans CJK Traditional Chinese,ui-sans, 13px</translation>
 <if expr="is_win">
   <translation id="IDS_WEB_FONT_FAMILY">'Segoe UI',Arial,'Microsoft Jhenghei',PMingLiu,sans-serif</translation>
   <translation id="IDS_WEB_FONT_FAMILY_XP">Arial,'Microsoft Jhenghei',PMingLiu,sans-serif</translation>
@@ -11,9 +11,6 @@
   <translation id="IDS_WEB_FONT_FAMILY">Helvetica,Heiti TC,sans-serif</translation>
 </if>
 <if expr="chromeos and _google_chrome">
-  <translation id="IDS_WEB_FONT_FAMILY">Noto Sans UI, MYingHeiB5HK, MYingHeiGB18030, sans-serif</translation>
-</if>
-<if expr="chromeos and not _google_chrome">
-  <translation id="IDS_WEB_FONT_FAMILY">Noto Sans UI, Droid Sans Fallback, sans-serif</translation>
+  <translation id="IDS_WEB_FONT_FAMILY">Noto Sans UI, Noto Sans CJK Traditional Chinese, sans-serif</translation>
 </if>
 </translationbundle>
diff --git a/ui/views/bubble/bubble_border.cc b/ui/views/bubble/bubble_border.cc
index 03b422a..9092bab 100644
--- a/ui/views/bubble/bubble_border.cc
+++ b/ui/views/bubble/bubble_border.cc
@@ -7,11 +7,9 @@
 #include <algorithm>
 
 #include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
 #include "grit/ui_resources.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/gfx/canvas.h"
-#include "ui/gfx/image/image_skia.h"
 #include "ui/gfx/rect.h"
 #include "ui/gfx/skia_util.h"
 #include "ui/views/painter.h"
@@ -21,31 +19,6 @@
 
 namespace internal {
 
-// A helper that combines each border image-set painter with arrows and metrics.
-struct BorderImages {
-  BorderImages(const int border_image_ids[],
-               const int arrow_image_ids[],
-               int border_interior_thickness,
-               int arrow_interior_thickness,
-               int corner_radius);
-
-  scoped_ptr<Painter> border_painter;
-  gfx::ImageSkia left_arrow;
-  gfx::ImageSkia top_arrow;
-  gfx::ImageSkia right_arrow;
-  gfx::ImageSkia bottom_arrow;
-
-  // The thickness of border and arrow images and their interior areas.
-  // Thickness is the width of left/right and the height of top/bottom images.
-  // The interior is measured without including stroke or shadow pixels.
-  int border_thickness;
-  int border_interior_thickness;
-  int arrow_thickness;
-  int arrow_interior_thickness;
-  // The corner radius of the bubble's rounded-rect interior area.
-  int corner_radius;
-};
-
 BorderImages::BorderImages(const int border_image_ids[],
                            const int arrow_image_ids[],
                            int border_interior_thickness,
@@ -68,13 +41,12 @@
   }
 }
 
+BorderImages::~BorderImages() {}
+
 }  // namespace internal
 
 namespace {
 
-// The border and arrow stroke size used in image assets, in pixels.
-const int kStroke = 1;
-
 // Bubble border and arrow image resource ids. They don't use the IMAGE_GRID
 // macro because there is no center image.
 const int kNoShadowImages[] = {
@@ -150,6 +122,8 @@
 
 }  // namespace
 
+const int BubbleBorder::kStroke = 1;
+
 BubbleBorder::BubbleBorder(Arrow arrow, Shadow shadow, SkColor color)
     : arrow_(arrow),
       arrow_offset_(0),
@@ -278,7 +252,7 @@
       std::max(images_->arrow_thickness + images_->border_interior_thickness,
                images_->border_thickness);
   // Only take arrow image sizes into account when the bubble tip is shown.
-  if (arrow_paint_type_ == PAINT_TRANSPARENT || !has_arrow(arrow_))
+  if (arrow_paint_type_ == PAINT_NONE || !has_arrow(arrow_))
     size.SetToMax(gfx::Size(min, min));
   else if (is_arrow_on_horizontal(arrow_))
     size.SetToMax(gfx::Size(min_with_arrow_width, min_with_arrow_thickness));
@@ -360,6 +334,10 @@
   canvas->DrawPath(path, paint);
 }
 
+internal::BorderImages* BubbleBorder::GetImagesForTest() const {
+  return images_;
+}
+
 void BubbleBackground::Paint(gfx::Canvas* canvas, views::View* view) const {
   if (border_->shadow() == BubbleBorder::NO_SHADOW_OPAQUE_BORDER)
     canvas->DrawColor(border_->background_color());
diff --git a/ui/views/bubble/bubble_border.h b/ui/views/bubble/bubble_border.h
index 15f0f85..8ce546a 100644
--- a/ui/views/bubble/bubble_border.h
+++ b/ui/views/bubble/bubble_border.h
@@ -7,19 +7,47 @@
 
 #include "base/basictypes.h"
 #include "base/compiler_specific.h"
+#include "base/memory/scoped_ptr.h"
+#include "ui/gfx/image/image_skia.h"
 #include "ui/views/background.h"
 #include "ui/views/border.h"
 
 namespace gfx {
-class ImageSkia;
 class Rect;
 }
 
 namespace views {
+class Painter;
 
 namespace internal {
-struct BorderImages;
-}
+
+// A helper that combines each border image-set painter with arrows and metrics.
+struct BorderImages {
+  BorderImages(const int border_image_ids[],
+               const int arrow_image_ids[],
+               int border_interior_thickness,
+               int arrow_interior_thickness,
+               int corner_radius);
+  virtual ~BorderImages();
+
+  scoped_ptr<Painter> border_painter;
+  gfx::ImageSkia left_arrow;
+  gfx::ImageSkia top_arrow;
+  gfx::ImageSkia right_arrow;
+  gfx::ImageSkia bottom_arrow;
+
+  // The thickness of border and arrow images and their interior areas.
+  // Thickness is the width of left/right and the height of top/bottom images.
+  // The interior is measured without including stroke or shadow pixels.
+  int border_thickness;
+  int border_interior_thickness;
+  int arrow_thickness;
+  int arrow_interior_thickness;
+  // The corner radius of the bubble's rounded-rect interior area.
+  int corner_radius;
+};
+
+}  // namespace internal
 
 // Renders a border, with optional arrow, and a custom dropshadow.
 // This can be used to produce floating "bubble" objects with rounded corners.
@@ -173,11 +201,19 @@
   virtual gfx::Size GetMinimumSize() const OVERRIDE;
 
  private:
+  FRIEND_TEST_ALL_PREFIXES(BubbleBorderTest, GetSizeForContentsSizeTest);
+  FRIEND_TEST_ALL_PREFIXES(BubbleBorderTest, GetBoundsOriginTest);
+
+  // The border and arrow stroke size used in image assets, in pixels.
+  static const int kStroke;
+
   gfx::Size GetSizeForContentsSize(const gfx::Size& contents_size) const;
   gfx::ImageSkia* GetArrowImage() const;
   gfx::Rect GetArrowRect(const gfx::Rect& bounds) const;
   void DrawArrow(gfx::Canvas* canvas, const gfx::Rect& arrow_bounds) const;
 
+  internal::BorderImages* GetImagesForTest() const;
+
   Arrow arrow_;
   int arrow_offset_;
   ArrowPaintType arrow_paint_type_;
diff --git a/ui/views/bubble/bubble_border_unittest.cc b/ui/views/bubble/bubble_border_unittest.cc
index b8838f6..404902c 100644
--- a/ui/views/bubble/bubble_border_unittest.cc
+++ b/ui/views/bubble/bubble_border_unittest.cc
@@ -4,11 +4,13 @@
 
 #include "ui/views/bubble/bubble_border.h"
 
+#include "base/memory/scoped_ptr.h"
+#include "base/strings/stringprintf.h"
 #include "ui/views/test/views_test_base.h"
 
 namespace views {
 
-typedef ViewsTestBase BubbleBorderTest;
+typedef views::ViewsTestBase BubbleBorderTest;
 
 TEST_F(BubbleBorderTest, GetMirroredArrow) {
   // Horizontal mirroring.
@@ -202,39 +204,212 @@
   EXPECT_FALSE(BubbleBorder::is_arrow_at_center(BubbleBorder::FLOAT));
 }
 
-TEST_F(BubbleBorderTest, TestMinimalSize) {
-  gfx::Rect anchor = gfx::Rect(100, 100, 20, 20);
-  gfx::Size contents = gfx::Size(10, 10);
-  BubbleBorder b1(BubbleBorder::RIGHT_TOP, BubbleBorder::NO_SHADOW, 0);
+TEST_F(BubbleBorderTest, GetSizeForContentsSizeTest) {
+  views::BubbleBorder border(BubbleBorder::NONE,
+                             BubbleBorder::NO_SHADOW,
+                             SK_ColorWHITE);
 
-  // The height should be much bigger then the requested size + border and
-  // padding since it needs to be able to include the tip bitmap.
-  gfx::Rect visible_tip_1 = b1.GetBounds(anchor, contents);
-  EXPECT_GE(visible_tip_1.height(), 30);
-  EXPECT_LE(visible_tip_1.width(), 30);
+  const views::internal::BorderImages* kImages = border.GetImagesForTest();
 
-  // With the tip being invisible the height should now be much smaller.
-  b1.set_paint_arrow(BubbleBorder::PAINT_TRANSPARENT);
-  gfx::Rect invisible_tip_1 = b1.GetBounds(anchor, contents);
-  EXPECT_LE(invisible_tip_1.height(), 30);
-  EXPECT_LE(invisible_tip_1.width(), 30);
+  // kSmallSize is smaller than the minimum allowable size and does not
+  // contribute to the resulting size.
+  const gfx::Size kSmallSize = gfx::Size(1, 2);
+  // kMediumSize is larger than the minimum allowable size and contributes to
+  // the resulting size.
+  const gfx::Size kMediumSize = gfx::Size(50, 60);
 
-  // When the orientation of the tip changes, the above mentioned tests need to
-  // be reverse for width and height.
-  BubbleBorder b2(BubbleBorder::TOP_RIGHT, BubbleBorder::NO_SHADOW, 0);
+  const gfx::Size kSmallHorizArrow(
+      2 * kImages->border_thickness + kImages->top_arrow.width(),
+      kImages->border_thickness + kImages->arrow_thickness +
+          kImages->border_interior_thickness);
 
-  // The width should be much bigger then the requested size + border and
-  // padding since it needs to be able to include the tip bitmap.
-  gfx::Rect visible_tip_2 = b2.GetBounds(anchor, contents);
-  EXPECT_GE(visible_tip_2.width(), 30);
-  EXPECT_LE(visible_tip_2.height(), 30);
+  const gfx::Size kSmallVertArrow(kSmallHorizArrow.height(),
+                                  kSmallHorizArrow.width());
 
-  // With the tip being invisible the width should now be much smaller.
-  b2.set_paint_arrow(BubbleBorder::PAINT_TRANSPARENT);
-  gfx::Rect invisible_tip_2 = b2.GetBounds(anchor, contents);
-  EXPECT_LE(invisible_tip_2.width(), 30);
-  EXPECT_LE(invisible_tip_2.height(), 30);
+  const gfx::Size kSmallNoArrow(2 * kImages->border_thickness,
+                                2 * kImages->border_thickness);
+
+  const gfx::Size kMediumHorizArrow(
+      kMediumSize.width() + 2 * border.GetBorderThickness(),
+      kMediumSize.height() + border.GetBorderThickness() +
+          kImages->arrow_thickness);
+
+  const gfx::Size kMediumVertArrow(
+      kMediumSize.width() + border.GetBorderThickness() +
+          kImages->arrow_thickness,
+      kMediumSize.height() + 2 * border.GetBorderThickness());
+
+  const gfx::Size kMediumNoArrow(
+      kMediumSize.width() + 2 * border.GetBorderThickness(),
+      kMediumSize.height() + 2 * border.GetBorderThickness());
+
+  struct TestCase {
+    BubbleBorder::Arrow arrow;
+    gfx::Size content;
+    gfx::Size expected_with_arrow;
+    gfx::Size expected_without_arrow;
+  };
+
+  TestCase cases[] = {
+    // Content size: kSmallSize
+    { BubbleBorder::TOP_LEFT, kSmallSize, kSmallHorizArrow, kSmallNoArrow },
+    { BubbleBorder::TOP_CENTER, kSmallSize, kSmallHorizArrow, kSmallNoArrow },
+    { BubbleBorder::TOP_RIGHT, kSmallSize, kSmallHorizArrow, kSmallNoArrow },
+    { BubbleBorder::BOTTOM_LEFT, kSmallSize, kSmallHorizArrow, kSmallNoArrow },
+    { BubbleBorder::BOTTOM_CENTER, kSmallSize, kSmallHorizArrow,
+      kSmallNoArrow },
+    { BubbleBorder::BOTTOM_RIGHT, kSmallSize, kSmallHorizArrow, kSmallNoArrow },
+    { BubbleBorder::LEFT_TOP, kSmallSize, kSmallVertArrow, kSmallNoArrow },
+    { BubbleBorder::LEFT_CENTER, kSmallSize, kSmallVertArrow, kSmallNoArrow },
+    { BubbleBorder::LEFT_BOTTOM, kSmallSize, kSmallVertArrow, kSmallNoArrow },
+    { BubbleBorder::RIGHT_TOP, kSmallSize, kSmallVertArrow, kSmallNoArrow },
+    { BubbleBorder::RIGHT_CENTER, kSmallSize, kSmallVertArrow, kSmallNoArrow },
+    { BubbleBorder::RIGHT_BOTTOM, kSmallSize, kSmallVertArrow, kSmallNoArrow },
+    { BubbleBorder::NONE, kSmallSize, kSmallNoArrow, kSmallNoArrow },
+    { BubbleBorder::FLOAT, kSmallSize, kSmallNoArrow, kSmallNoArrow },
+
+    // Content size: kMediumSize
+    { BubbleBorder::TOP_LEFT, kMediumSize, kMediumHorizArrow, kMediumNoArrow },
+    { BubbleBorder::TOP_CENTER, kMediumSize, kMediumHorizArrow,
+      kMediumNoArrow },
+    { BubbleBorder::TOP_RIGHT, kMediumSize, kMediumHorizArrow, kMediumNoArrow },
+    { BubbleBorder::BOTTOM_LEFT, kMediumSize, kMediumHorizArrow,
+      kMediumNoArrow },
+    { BubbleBorder::BOTTOM_CENTER, kMediumSize, kMediumHorizArrow,
+      kMediumNoArrow },
+    { BubbleBorder::BOTTOM_RIGHT, kMediumSize, kMediumHorizArrow,
+      kMediumNoArrow },
+    { BubbleBorder::LEFT_TOP, kMediumSize, kMediumVertArrow, kMediumNoArrow },
+    { BubbleBorder::LEFT_CENTER, kMediumSize, kMediumVertArrow,
+      kMediumNoArrow },
+    { BubbleBorder::LEFT_BOTTOM, kMediumSize, kMediumVertArrow,
+      kMediumNoArrow },
+    { BubbleBorder::RIGHT_TOP, kMediumSize, kMediumVertArrow, kMediumNoArrow },
+    { BubbleBorder::RIGHT_CENTER, kMediumSize, kMediumVertArrow,
+      kMediumNoArrow },
+    { BubbleBorder::RIGHT_BOTTOM, kMediumSize, kMediumVertArrow,
+      kMediumNoArrow },
+    { BubbleBorder::NONE, kMediumSize, kMediumNoArrow, kMediumNoArrow },
+    { BubbleBorder::FLOAT, kMediumSize, kMediumNoArrow, kMediumNoArrow }
+  };
+
+  for (size_t i = 0; i < arraysize(cases); ++i) {
+    SCOPED_TRACE(base::StringPrintf("i=%d arrow=%d",
+        static_cast<int>(i), cases[i].arrow));
+
+    border.set_arrow(cases[i].arrow);
+
+    border.set_paint_arrow(BubbleBorder::PAINT_NORMAL);
+    EXPECT_EQ(cases[i].expected_with_arrow,
+              border.GetSizeForContentsSize(cases[i].content));
+
+    border.set_paint_arrow(BubbleBorder::PAINT_TRANSPARENT);
+    EXPECT_EQ(cases[i].expected_with_arrow,
+              border.GetSizeForContentsSize(cases[i].content));
+
+    border.set_paint_arrow(BubbleBorder::PAINT_NONE);
+    EXPECT_EQ(cases[i].expected_without_arrow,
+              border.GetSizeForContentsSize(cases[i].content));
+  }
 }
 
+TEST_F(BubbleBorderTest, GetBoundsOriginTest) {
+  views::BubbleBorder border(BubbleBorder::TOP_LEFT,
+                             BubbleBorder::NO_SHADOW,
+                             SK_ColorWHITE);
+
+  const gfx::Rect kAnchor(100, 100, 20, 30);
+  const gfx::Size kContentSize(50, 60);
+
+  const views::internal::BorderImages* kImages = border.GetImagesForTest();
+
+  border.set_arrow(BubbleBorder::TOP_LEFT);
+  const gfx::Size kTotalSizeWithHorizArrow =
+      border.GetSizeForContentsSize(kContentSize);
+
+  border.set_arrow(BubbleBorder::RIGHT_BOTTOM);
+  const gfx::Size kTotalSizeWithVertArrow =
+      border.GetSizeForContentsSize(kContentSize);
+
+  border.set_arrow(BubbleBorder::NONE);
+  const gfx::Size kTotalSizeWithNoArrow =
+      border.GetSizeForContentsSize(kContentSize);
+
+  const int kBorderThickness = border.GetBorderThickness();
+
+  const int kArrowOffsetForHorizCenter = kTotalSizeWithHorizArrow.width() / 2;
+  const int kArrowOffsetForVertCenter = kTotalSizeWithVertArrow.height() / 2;
+  const int kArrowOffsetForNotCenter =
+      kImages->border_thickness + (kImages->top_arrow.width() / 2);
+
+  const int kArrowSize =
+      kImages->arrow_interior_thickness + BubbleBorder::kStroke -
+          kImages->arrow_thickness;
+
+  const int kTopHorizArrowY = kAnchor.y() + kAnchor.height() + kArrowSize;
+  const int kBottomHorizArrowY =
+      kAnchor.y() - kArrowSize - kTotalSizeWithHorizArrow.height();
+
+  const int kLeftVertArrowX = kAnchor.x() + kAnchor.width() + kArrowSize;
+  const int kRightVertArrowX =
+      kAnchor.x() - kArrowSize - kTotalSizeWithVertArrow.width();
+
+  struct TestCase {
+    BubbleBorder::Arrow arrow;
+    BubbleBorder::BubbleAlignment alignment;
+    int expected_x;
+    int expected_y;
+  };
+
+  TestCase cases[] = {
+    // Horizontal arrow tests.
+    { BubbleBorder::TOP_LEFT, BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR,
+      kAnchor.CenterPoint().x() - kArrowOffsetForNotCenter, kTopHorizArrowY },
+    { BubbleBorder::TOP_LEFT, BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE,
+      kAnchor.x() + BubbleBorder::kStroke - kBorderThickness, kTopHorizArrowY },
+    { BubbleBorder::TOP_CENTER, BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR,
+      kAnchor.CenterPoint().x() - kArrowOffsetForHorizCenter, kTopHorizArrowY },
+    { BubbleBorder::BOTTOM_RIGHT, BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR,
+      kAnchor.CenterPoint().x() + kArrowOffsetForNotCenter -
+          kTotalSizeWithHorizArrow.width(), kBottomHorizArrowY },
+    { BubbleBorder::BOTTOM_RIGHT, BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE,
+      kAnchor.x() + kAnchor.width() - kTotalSizeWithHorizArrow.width() +
+          kBorderThickness - BubbleBorder::kStroke, kBottomHorizArrowY },
+
+    // Vertical arrow tests.
+    { BubbleBorder::LEFT_TOP, BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR,
+      kLeftVertArrowX, kAnchor.CenterPoint().y() - kArrowOffsetForNotCenter },
+    { BubbleBorder::LEFT_TOP, BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE,
+      kLeftVertArrowX, kAnchor.y() + BubbleBorder::kStroke - kBorderThickness },
+    { BubbleBorder::LEFT_CENTER, BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR,
+      kLeftVertArrowX, kAnchor.CenterPoint().y() - kArrowOffsetForVertCenter },
+    { BubbleBorder::RIGHT_BOTTOM, BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR,
+      kRightVertArrowX, kAnchor.CenterPoint().y() + kArrowOffsetForNotCenter -
+          kTotalSizeWithVertArrow.height() },
+    { BubbleBorder::RIGHT_BOTTOM, BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE,
+      kRightVertArrowX, kAnchor.y() + kAnchor.height() -
+          kTotalSizeWithVertArrow.height() + kBorderThickness -
+          BubbleBorder::kStroke },
+
+    // No arrow tests.
+    { BubbleBorder::NONE, BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR,
+      kAnchor.x() + (kAnchor.width() - kTotalSizeWithNoArrow.width()) / 2,
+      kAnchor.y() + kAnchor.height() },
+    { BubbleBorder::FLOAT, BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR,
+      kAnchor.x() + (kAnchor.width() - kTotalSizeWithNoArrow.width()) / 2,
+      kAnchor.y() + (kAnchor.height() - kTotalSizeWithNoArrow.height()) / 2 },
+  };
+
+  for (size_t i = 0; i < arraysize(cases); ++i) {
+    SCOPED_TRACE(base::StringPrintf("i=%d arrow=%d alignment=%d",
+        static_cast<int>(i), cases[i].arrow, cases[i].alignment));
+    border.set_arrow(cases[i].arrow);
+    border.set_alignment(cases[i].alignment);
+
+    gfx::Point origin = border.GetBounds(kAnchor, kContentSize).origin();
+    EXPECT_EQ(cases[i].expected_x, origin.x());
+    EXPECT_EQ(cases[i].expected_y, origin.y());
+  }
+}
 
 }  // namespace views
diff --git a/ui/views/bubble/tray_bubble_view.cc b/ui/views/bubble/tray_bubble_view.cc
index 090ab4f..aad1ba7 100644
--- a/ui/views/bubble/tray_bubble_view.cc
+++ b/ui/views/bubble/tray_bubble_view.cc
@@ -58,7 +58,6 @@
   virtual bool Contains(const gfx::Point& screen_point,
                         MouseEventType type) OVERRIDE;
  private:
-
   DISALLOW_COPY_AND_ASSIGN(MouseMoveDetectorHost);
 };
 
@@ -380,6 +379,7 @@
 void TrayBubbleView::SetArrowPaintType(
     views::BubbleBorder::ArrowPaintType paint_type) {
   bubble_border_->set_paint_arrow(paint_type);
+  UpdateBubble();
 }
 
 gfx::Insets TrayBubbleView::GetBorderInsets() const {
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index 45f1a86..4f6c7d4 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -280,7 +280,28 @@
 
 void DesktopWindowTreeHostWin::SetShape(gfx::NativeRegion native_region) {
   if (native_region) {
-    message_handler_->SetRegion(gfx::CreateHRGNFromSkRegion(*native_region));
+    // TODO(wez): This would be a lot simpler if we were passed an SkPath.
+    // See crbug.com/410593.
+    gfx::NativeRegion shape = native_region;
+    SkRegion device_region;
+    if (gfx::IsInHighDPIMode()) {
+      shape = &device_region;
+      const float& scale = gfx::GetDPIScale();
+      std::vector<SkIRect> rects;
+      for (SkRegion::Iterator it(*native_region); !it.done(); it.next()) {
+        const SkIRect& rect = it.rect();
+        SkRect scaled_rect =
+            SkRect::MakeLTRB(rect.left() * scale, rect.top() * scale,
+                             rect.right() * scale, rect.bottom() * scale);
+        SkIRect rounded_scaled_rect;
+        scaled_rect.roundOut(&rounded_scaled_rect);
+        rects.push_back(rounded_scaled_rect);
+      }
+      if (!rects.empty())
+        device_region.setRects(&rects[0], rects.size());
+    }
+
+    message_handler_->SetRegion(gfx::CreateHRGNFromSkRegion(*shape));
   } else {
     message_handler_->SetRegion(NULL);
   }
diff --git a/webkit/common/gpu/context_provider_in_process.cc b/webkit/common/gpu/context_provider_in_process.cc
index 3785d38..e4ca1d8 100644
--- a/webkit/common/gpu/context_provider_in_process.cc
+++ b/webkit/common/gpu/context_provider_in_process.cc
@@ -110,6 +110,13 @@
 
 void ContextProviderInProcess::InitializeCapabilities() {
   capabilities_.gpu = context3d_->GetImplementation()->capabilities();
+
+  size_t mapped_memory_limit = context3d_->GetMappedMemoryLimit();
+  capabilities_.max_transfer_buffer_usage_bytes =
+      mapped_memory_limit ==
+              WebGraphicsContext3DInProcessCommandBufferImpl::kNoLimit
+          ? std::numeric_limits<size_t>::max()
+          : mapped_memory_limit;
 }
 
 cc::ContextProvider::Capabilities
diff --git a/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc b/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc
index afd843a..2dc7dc8 100644
--- a/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc
+++ b/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc
@@ -118,6 +118,10 @@
     ~WebGraphicsContext3DInProcessCommandBufferImpl() {
 }
 
+size_t WebGraphicsContext3DInProcessCommandBufferImpl::GetMappedMemoryLimit() {
+  return context_->GetMappedMemoryLimit();
+}
+
 bool WebGraphicsContext3DInProcessCommandBufferImpl::MaybeInitializeGL() {
   if (initialized_)
     return true;
@@ -135,15 +139,17 @@
     // will need to be lost either when the first context requesting the
     // discrete GPU is created, or the last one is destroyed.
     gfx::GpuPreference gpu_preference = gfx::PreferDiscreteGpu;
-    context_.reset(GLInProcessContext::Create(NULL, /* service */
-                                              NULL, /* surface */
-                                              is_offscreen_,
-                                              window_,
-                                              gfx::Size(1, 1),
-                                              NULL, /* share_context */
-                                              share_resources_,
-                                              attribs_,
-                                              gpu_preference));
+    context_.reset(GLInProcessContext::Create(
+        NULL, /* service */
+        NULL, /* surface */
+        is_offscreen_,
+        window_,
+        gfx::Size(1, 1),
+        NULL, /* share_context */
+        share_resources_,
+        attribs_,
+        gpu_preference,
+        ::gpu::GLInProcessContextSharedMemoryLimits()));
   }
 
   if (context_) {
diff --git a/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h b/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h
index 54d7f17..0248dff 100644
--- a/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h
+++ b/webkit/common/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h
@@ -36,6 +36,10 @@
 class WEBKIT_GPU_EXPORT WebGraphicsContext3DInProcessCommandBufferImpl
     : public WebGraphicsContext3DImpl {
  public:
+  enum MappedMemoryReclaimLimit {
+    kNoLimit = 0,
+  };
+
   static scoped_ptr<WebGraphicsContext3DInProcessCommandBufferImpl>
       CreateViewContext(
           const blink::WebGraphicsContext3D::Attributes& attributes,
@@ -54,6 +58,8 @@
 
   virtual ~WebGraphicsContext3DInProcessCommandBufferImpl();
 
+  size_t GetMappedMemoryLimit();
+
   //----------------------------------------------------------------------
   // WebGraphicsContext3D methods
   virtual bool makeContextCurrent();