am 561dcc58: Merge "Avoid crash when TextToSpeech calls onInit() from the constructor." into jb-mr2-dev

* commit '561dcc5823eec20c48d116531556b32e9de66f91':
  Avoid crash when TextToSpeech calls onInit() from the constructor.
diff --git a/core/java/android/webkit/AccessibilityInjector.java b/core/java/android/webkit/AccessibilityInjector.java
index 8008a6b..abc078b 100644
--- a/core/java/android/webkit/AccessibilityInjector.java
+++ b/core/java/android/webkit/AccessibilityInjector.java
@@ -647,6 +647,9 @@
     private static class TextToSpeechWrapper {
         private static final String WRAP_TAG = TextToSpeechWrapper.class.getSimpleName();
 
+        /** Lock used to control access to the TextToSpeech object. */
+        private final Object mTtsLock = new Object();
+
         private final HashMap<String, String> mTtsParams;
         private final TextToSpeech mTextToSpeech;
 
@@ -684,7 +687,7 @@
         @JavascriptInterface
         @SuppressWarnings("unused")
         public boolean isSpeaking() {
-            synchronized (mTextToSpeech) {
+            synchronized (mTtsLock) {
                 if (!mReady) {
                     return false;
                 }
@@ -696,7 +699,7 @@
         @JavascriptInterface
         @SuppressWarnings("unused")
         public int speak(String text, int queueMode, HashMap<String, String> params) {
-            synchronized (mTextToSpeech) {
+            synchronized (mTtsLock) {
                 if (!mReady) {
                     if (DEBUG) {
                         Log.w(WRAP_TAG, "[" + hashCode() + "] Attempted to speak before TTS init");
@@ -715,7 +718,7 @@
         @JavascriptInterface
         @SuppressWarnings("unused")
         public int stop() {
-            synchronized (mTextToSpeech) {
+            synchronized (mTtsLock) {
                 if (!mReady) {
                     if (DEBUG) {
                         Log.w(WRAP_TAG, "[" + hashCode() + "] Attempted to stop before initialize");
@@ -733,7 +736,7 @@
 
         @SuppressWarnings("unused")
         protected void shutdown() {
-            synchronized (mTextToSpeech) {
+            synchronized (mTtsLock) {
                 if (!mReady) {
                     if (DEBUG) {
                         Log.w(WRAP_TAG, "[" + hashCode() + "] Called shutdown before initialize");
@@ -753,7 +756,7 @@
         private final OnInitListener mInitListener = new OnInitListener() {
             @Override
             public void onInit(int status) {
-                synchronized (mTextToSpeech) {
+                synchronized (mTtsLock) {
                     if (!mShutdown && (status == TextToSpeech.SUCCESS)) {
                         if (DEBUG) {
                             Log.d(WRAP_TAG, "[" + TextToSpeechWrapper.this.hashCode()