Merge from Chromium at DEPS revision 30.0.1599.50

This commit was generated by merge_to_master.py.

Change-Id: I0bef17f85aec68fea425bb85892b9d0d5ed4efbf
diff --git a/build/util/LASTCHANGE b/build/util/LASTCHANGE
index f7bca0e..1cee36b 100644
--- a/build/util/LASTCHANGE
+++ b/build/util/LASTCHANGE
@@ -1 +1 @@
-LASTCHANGE=223744
+LASTCHANGE=223943
diff --git a/chrome/VERSION b/chrome/VERSION
index 1039b48..10e0387 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=30
 MINOR=0
 BUILD=1599
-PATCH=48
+PATCH=50
diff --git a/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc b/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc
index 922e186..65793c0 100644
--- a/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc
+++ b/chrome/browser/chromeos/app_mode/kiosk_app_manager.cc
@@ -248,6 +248,10 @@
 }
 
 void KioskAppManager::RemoveApp(const std::string& app_id) {
+  // Resets auto launch app if it is the removed app.
+  if (auto_launch_app_id_ == app_id)
+    SetAutoLaunchApp(std::string());
+
   std::vector<policy::DeviceLocalAccount> device_local_accounts =
       policy::GetDeviceLocalAccounts(CrosSettings::Get());
   if (device_local_accounts.empty())
diff --git a/chrome/browser/chromeos/app_mode/kiosk_app_manager_browsertest.cc b/chrome/browser/chromeos/app_mode/kiosk_app_manager_browsertest.cc
index a13afa9..0f2bd7b 100644
--- a/chrome/browser/chromeos/app_mode/kiosk_app_manager_browsertest.cc
+++ b/chrome/browser/chromeos/app_mode/kiosk_app_manager_browsertest.cc
@@ -228,6 +228,13 @@
   EXPECT_EQ("fake_app_1", GetAppIds());
   EXPECT_EQ("", manager()->GetAutoLaunchApp());
 
+  // Add the just removed auto launch app again and it should no longer be
+  // the auto launch app.
+  manager()->AddApp("fake_app_2");
+  EXPECT_EQ("", manager()->GetAutoLaunchApp());
+  manager()->RemoveApp("fake_app_2");
+  EXPECT_EQ("fake_app_1", GetAppIds());
+
   // Set a none exist app as auto launch.
   manager()->SetAutoLaunchApp("none_exist_app");
   EXPECT_EQ("", manager()->GetAutoLaunchApp());
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc
index fcea0d6..6540488 100644
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
@@ -284,8 +284,8 @@
   // IMG: avoid context switching perf problems, crashes with share groups
   // Mali-T604: http://crbug.com/154715
   // QualComm, NVIDIA: Crashes with share groups
-  if (is_vivante || is_img || is_mali_t604 ||
-      ((is_nvidia || is_qualcomm) && sdk_int < 18) || is_broadcom) {
+  if (is_vivante || is_img || is_mali_t604 || (is_nvidia && (sdk_int < 18)) ||
+      is_qualcomm || is_broadcom) {
     command_line->AppendSwitch(switches::kEnableVirtualGLContexts);
   }
 
diff --git a/gpu/config/gpu_driver_bug_list_json.cc b/gpu/config/gpu_driver_bug_list_json.cc
index 827ff0c..7b2d8df 100644
--- a/gpu/config/gpu_driver_bug_list_json.cc
+++ b/gpu/config/gpu_driver_bug_list_json.cc
@@ -436,21 +436,6 @@
       "features": [
         "disable_angle_instanced_arrays"
       ]
-    },
-    {
-      "id": 38,
-      "cr_bugs": [289461],
-      "description": "Non-virtual contexts on Qualcomm sometimes cause out-of-order frames",
-      "os": {
-        "type": "android"
-      },
-      "gl_vendor": {
-        "op": "beginwith",
-        "value": "Qualcomm"
-      },
-      "features": [
-        "use_virtualized_gl_contexts"
-      ]
     }
   ]
 }