[ChromeDriver] Add Pixel 2 to mobile emulation list

Also modified embed_mobile_devices_in_cpp.py, so users can use both old
device names such as 'iPhone 6', and new names such as 'iPhone 6/7/8'.

Bug: chromedriver:2231
Change-Id: I476527d223bd6d3e440bef3823edba65b214b1fd
Reviewed-on: https://chromium-review.googlesource.com/879467
Reviewed-by: Jonathon Kereliuk <kereliuk@chromium.org>
Commit-Queue: John Chen <johnchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534553}
diff --git a/chrome/test/chromedriver/chrome/mobile_device_list.cc b/chrome/test/chromedriver/chrome/mobile_device_list.cc
index a2aa9ed..cf505c6 100644
--- a/chrome/test/chromedriver/chrome/mobile_device_list.cc
+++ b/chrome/test/chromedriver/chrome/mobile_device_list.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// This file was generated at (2018-01-03 09:47:36.639726) by running:
+// This file was generated at (2018-01-22 12:56:00.187529) by running:
 //     ./chrome/test/chromedriver/embed_mobile_devices_in_cpp.py --directory
 //     chrome/test/chromedriver/chrome/
 //     third_party/WebKit/Source/devtools/front_end/emulated_devices/module.json
@@ -12,8 +12,8 @@
 const char kMobileDevices[] =
     "{\"iPad\": {\"deviceScaleFactor\": 2, \"mobile\": true, \"height\": 1024, "
     "\"width\": 768, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (iPad; CPU "
-    "OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) "
-    "Version/9.0 Mobile/13B143 Safari/601.1\"}, \"Laptop with touch\": "
+    "OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) "
+    "Version/11.0 Mobile/15A5341f Safari/604.1\"}, \"Laptop with touch\": "
     "{\"deviceScaleFactor\": 1, \"mobile\": false, \"height\": 1280, "
     "\"width\": 950, \"touch\": true, \"userAgent\": \"\"}, \"BlackBerry "
     "Z30\": {\"deviceScaleFactor\": 2, \"mobile\": true, \"height\": 640, "
@@ -21,122 +21,144 @@
     "Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile "
     "Safari/537.10+\"}, \"Nexus 6\": {\"deviceScaleFactor\": 3.5, \"mobile\": "
     "true, \"height\": 732, \"width\": 412, \"touch\": true, \"userAgent\": "
-    "\"Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) "
-    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3302.0 Mobile "
-    "Safari/537.36\"}, \"LG Optimus L70\": {\"deviceScaleFactor\": 1.25, "
-    "\"mobile\": true, \"height\": 640, \"width\": 384, \"touch\": true, "
-    "\"userAgent\": \"Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 "
-    "Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 "
-    "Chrome/65.0.3302.0 Mobile Safari/537.36\"}, \"Nexus 4\": "
-    "{\"deviceScaleFactor\": 2, \"mobile\": true, \"height\": 640, \"width\": "
-    "384, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; Android 4.4.2; "
-    "Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) "
-    "Chrome/65.0.3302.0 Mobile Safari/537.36\"}, \"Nexus 5\": "
-    "{\"deviceScaleFactor\": 3, \"mobile\": true, \"height\": 640, \"width\": "
-    "360, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; Android 6.0; "
-    "Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) "
-    "Chrome/65.0.3302.0 Mobile Safari/537.36\"}, \"Blackberry PlayBook\": "
-    "{\"deviceScaleFactor\": 1, \"mobile\": true, \"height\": 1024, \"width\": "
-    "600, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (PlayBook; U; RIM "
-    "Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) "
-    "Version/7.2.1.0 Safari/536.2+\"}, \"Galaxy Note 3\": "
-    "{\"deviceScaleFactor\": 3, \"mobile\": true, \"height\": 640, \"width\": "
-    "360, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; U; Android "
-    "4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) "
-    "Version/4.0 Mobile Safari/534.30\"}, \"Nexus 6P\": "
-    "{\"deviceScaleFactor\": 3.5, \"mobile\": true, \"height\": 732, "
+    "\"Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) "
+    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3329.0 Mobile "
+    "Safari/537.36\"}, \"Nexus 7\": {\"deviceScaleFactor\": 2, \"mobile\": "
+    "true, \"height\": 960, \"width\": 600, \"touch\": true, \"userAgent\": "
+    "\"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) "
+    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3329.0 "
+    "Safari/537.36\"}, \"Nexus 4\": {\"deviceScaleFactor\": 2, \"mobile\": "
+    "true, \"height\": 640, \"width\": 384, \"touch\": true, \"userAgent\": "
+    "\"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) "
+    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3329.0 Mobile "
+    "Safari/537.36\"}, \"Nexus 5\": {\"deviceScaleFactor\": 3, \"mobile\": "
+    "true, \"height\": 640, \"width\": 360, \"touch\": true, \"userAgent\": "
+    "\"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) "
+    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3329.0 Mobile "
+    "Safari/537.36\"}, \"Blackberry PlayBook\": {\"deviceScaleFactor\": 1, "
+    "\"mobile\": true, \"height\": 1024, \"width\": 600, \"touch\": true, "
+    "\"userAgent\": \"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) "
+    "AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+\"}, "
+    "\"Pixel 2\": {\"deviceScaleFactor\": 2.625, \"mobile\": true, \"height\": "
+    "731, \"width\": 411, \"touch\": true, \"userAgent\": \"Mozilla/5.0 "
+    "(Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 "
+    "(KHTML, like Gecko) Chrome/66.0.3329.0 Mobile Safari/537.36\"}, \"Nexus "
+    "6P\": {\"deviceScaleFactor\": 3.5, \"mobile\": true, \"height\": 732, "
     "\"width\": 412, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; "
-    "Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like "
-    "Gecko) Chrome/65.0.3302.0 Mobile Safari/537.36\"}, \"iPhone 8 Plus\": "
+    "Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, "
+    "like Gecko) Chrome/66.0.3329.0 Mobile Safari/537.36\"}, \"iPhone 8 "
+    "Plus\": {\"deviceScaleFactor\": 3, \"mobile\": true, \"height\": 736, "
+    "\"width\": 414, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (iPhone; "
+    "CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like "
+    "Gecko) Version/11.0 Mobile/15A372 Safari/604.1\"}, \"iPhone 7 Plus\": "
     "{\"deviceScaleFactor\": 3, \"mobile\": true, \"height\": 736, \"width\": "
     "414, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS "
-    "10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) "
-    "CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1\"}, \"iPhone 7 Plus\": "
-    "{\"deviceScaleFactor\": 3, \"mobile\": true, \"height\": 736, \"width\": "
-    "414, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS "
-    "10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) "
-    "CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1\"}, \"Laptop with HiDPI "
-    "screen\": {\"deviceScaleFactor\": 2, \"mobile\": false, \"height\": 1440, "
-    "\"width\": 900, \"touch\": false, \"userAgent\": \"\"}, \"Nexus 7\": "
-    "{\"deviceScaleFactor\": 2, \"mobile\": true, \"height\": 960, \"width\": "
-    "600, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; Android 4.3; "
-    "Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) "
-    "Chrome/65.0.3302.0 Safari/537.36\"}, \"Nokia N9\": "
+    "11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 "
+    "Mobile/15A372 Safari/604.1\"}, \"Laptop with HiDPI screen\": "
+    "{\"deviceScaleFactor\": 2, \"mobile\": false, \"height\": 1440, "
+    "\"width\": 900, \"touch\": false, \"userAgent\": \"\"}, \"Nokia N9\": "
     "{\"deviceScaleFactor\": 1, \"mobile\": true, \"height\": 854, \"width\": "
     "480, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (MeeGo; NokiaN9) "
     "AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile "
     "Safari/534.13\"}, \"Nokia Lumia 520\": {\"deviceScaleFactor\": 1.5, "
     "\"mobile\": true, \"height\": 533, \"width\": 320, \"touch\": true, "
     "\"userAgent\": \"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; "
-    "Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)\"}, \"iPhone "
-    "7\": {\"deviceScaleFactor\": 2, \"mobile\": true, \"height\": 667, "
-    "\"width\": 375, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (iPhone; "
-    "CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like "
-    "Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1\"}, \"Microsoft "
-    "Lumia 950\": {\"deviceScaleFactor\": 4, \"mobile\": true, \"height\": "
-    "640, \"width\": 360, \"touch\": true, \"userAgent\": \"Mozilla/5.0 "
-    "(Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) "
-    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile "
-    "Safari/537.36 Edge/14.14263\"}, \"iPhone 5\": {\"deviceScaleFactor\": 2, "
-    "\"mobile\": true, \"height\": 568, \"width\": 320, \"touch\": true, "
-    "\"userAgent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) "
-    "AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 "
-    "Safari/601.1\"}, \"iPhone 4\": {\"deviceScaleFactor\": 2, \"mobile\": "
+    "Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)\"}, \"Galaxy "
+    "S5\": {\"deviceScaleFactor\": 3, \"mobile\": true, \"height\": 640, "
+    "\"width\": 360, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; "
+    "Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like "
+    "Gecko) Chrome/66.0.3329.0 Mobile Safari/537.36\"}, \"iPhone 7\": "
+    "{\"deviceScaleFactor\": 2, \"mobile\": true, \"height\": 667, \"width\": "
+    "375, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS "
+    "11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 "
+    "Mobile/15A372 Safari/604.1\"}, \"LG Optimus L70\": "
+    "{\"deviceScaleFactor\": 1.25, \"mobile\": true, \"height\": 640, "
+    "\"width\": 384, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; U; "
+    "Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 "
+    "(KHTML, like Gecko) Version/4.0 Chrome/66.0.3329.0 Mobile "
+    "Safari/537.36\"}, \"iPhone 5\": {\"deviceScaleFactor\": 2, \"mobile\": "
+    "true, \"height\": 568, \"width\": 320, \"touch\": true, \"userAgent\": "
+    "\"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) "
+    "AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 "
+    "Safari/602.1\"}, \"iPhone 4\": {\"deviceScaleFactor\": 2, \"mobile\": "
     "true, \"height\": 480, \"width\": 320, \"touch\": true, \"userAgent\": "
-    "\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) "
-    "AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 "
-    "Safari/601.1\"}, \"Nexus 10\": {\"deviceScaleFactor\": 2, \"mobile\": "
+    "\"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) "
+    "AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 "
+    "Safari/9537.53\"}, \"Nexus 10\": {\"deviceScaleFactor\": 2, \"mobile\": "
     "true, \"height\": 1280, \"width\": 800, \"touch\": true, \"userAgent\": "
-    "\"Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JSS15Q) "
-    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3302.0 "
+    "\"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) "
+    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3329.0 "
     "Safari/537.36\"}, \"iPhone 8\": {\"deviceScaleFactor\": 2, \"mobile\": "
     "true, \"height\": 667, \"width\": 375, \"touch\": true, \"userAgent\": "
-    "\"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) "
-    "AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 "
-    "Mobile/14E5239e Safari/602.1\"}, \"iPhone 6\": {\"deviceScaleFactor\": 2, "
-    "\"mobile\": true, \"height\": 667, \"width\": 375, \"touch\": true, "
-    "\"userAgent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) "
-    "AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 "
-    "Safari/601.1\"}, \"Galaxy S III\": {\"deviceScaleFactor\": 2, \"mobile\": "
+    "\"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) "
+    "AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 "
+    "Safari/604.1\"}, \"iPhone 6\": {\"deviceScaleFactor\": 2, \"mobile\": "
+    "true, \"height\": 667, \"width\": 375, \"touch\": true, \"userAgent\": "
+    "\"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) "
+    "AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 "
+    "Safari/604.1\"}, \"Galaxy S III\": {\"deviceScaleFactor\": 2, \"mobile\": "
     "true, \"height\": 640, \"width\": 360, \"touch\": true, \"userAgent\": "
     "\"Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) "
     "AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile "
-    "Safari/534.30\"}, \"Microsoft Lumia 550\": {\"deviceScaleFactor\": 2, "
+    "Safari/534.30\"}, \"iPhone 6/7/8\": {\"deviceScaleFactor\": 2, "
+    "\"mobile\": true, \"height\": 667, \"width\": 375, \"touch\": true, "
+    "\"userAgent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) "
+    "AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 "
+    "Safari/604.1\"}, \"iPhone SE\": {\"deviceScaleFactor\": 2, \"mobile\": "
+    "true, \"height\": 568, \"width\": 320, \"touch\": true, \"userAgent\": "
+    "\"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) "
+    "AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 "
+    "Safari/602.1\"}, \"Microsoft Lumia 550\": {\"deviceScaleFactor\": 2, "
     "\"mobile\": true, \"height\": 360, \"width\": 640, \"touch\": true, "
     "\"userAgent\": \"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; "
     "Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) "
     "Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263\"}, \"iPad Mini\": "
     "{\"deviceScaleFactor\": 2, \"mobile\": true, \"height\": 1024, \"width\": "
-    "768, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 9_1 like "
-    "Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 "
-    "Mobile/13B143 Safari/601.1\"}, \"iPad Pro\": {\"deviceScaleFactor\": 2, "
-    "\"mobile\": true, \"height\": 1366, \"width\": 1024, \"touch\": true, "
-    "\"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) "
-    "AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 "
-    "Safari/601.1\"}, \"Nexus 5X\": {\"deviceScaleFactor\": 2.625, \"mobile\": "
-    "true, \"height\": 732, \"width\": 412, \"touch\": true, \"userAgent\": "
-    "\"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) "
-    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3302.0 Mobile "
-    "Safari/537.36\"}, \"Galaxy Note II\": {\"deviceScaleFactor\": 2, "
+    "768, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (iPad; CPU OS 11_0 "
+    "like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 "
+    "Mobile/15A5341f Safari/604.1\"}, \"iPhone 5/SE\": {\"deviceScaleFactor\": "
+    "2, \"mobile\": true, \"height\": 568, \"width\": 320, \"touch\": true, "
+    "\"userAgent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) "
+    "AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 "
+    "Safari/602.1\"}, \"iPad Pro\": {\"deviceScaleFactor\": 2, \"mobile\": "
+    "true, \"height\": 1366, \"width\": 1024, \"touch\": true, \"userAgent\": "
+    "\"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 "
+    "(KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1\"}, \"Nexus "
+    "5X\": {\"deviceScaleFactor\": 2.625, \"mobile\": true, \"height\": 732, "
+    "\"width\": 412, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; "
+    "Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, "
+    "like Gecko) Chrome/66.0.3329.0 Mobile Safari/537.36\"}, \"iPhone 6/7/8 "
+    "Plus\": {\"deviceScaleFactor\": 3, \"mobile\": true, \"height\": 736, "
+    "\"width\": 414, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (iPhone; "
+    "CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like "
+    "Gecko) Version/11.0 Mobile/15A372 Safari/604.1\"}, \"Galaxy Note II\": "
+    "{\"deviceScaleFactor\": 2, \"mobile\": true, \"height\": 640, \"width\": "
+    "360, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; U; Android "
+    "4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) "
+    "Version/4.0 Mobile Safari/534.30\"}, \"iPhone 6 Plus\": "
+    "{\"deviceScaleFactor\": 3, \"mobile\": true, \"height\": 736, \"width\": "
+    "414, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS "
+    "11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 "
+    "Mobile/15A372 Safari/604.1\"}, \"iPhone X\": {\"deviceScaleFactor\": 3, "
+    "\"mobile\": true, \"height\": 812, \"width\": 375, \"touch\": true, "
+    "\"userAgent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) "
+    "AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 "
+    "Safari/604.1\"}, \"Microsoft Lumia 950\": {\"deviceScaleFactor\": 4, "
     "\"mobile\": true, \"height\": 640, \"width\": 360, \"touch\": true, "
-    "\"userAgent\": \"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 "
-    "Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile "
-    "Safari/534.30\"}, \"iPhone 6 Plus\": {\"deviceScaleFactor\": 3, "
-    "\"mobile\": true, \"height\": 736, \"width\": 414, \"touch\": true, "
-    "\"userAgent\": \"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) "
-    "AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 "
-    "Safari/601.1\"}, \"iPhone X\": {\"deviceScaleFactor\": 3, \"mobile\": "
-    "true, \"height\": 812, \"width\": 375, \"touch\": true, \"userAgent\": "
-    "\"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) "
-    "AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 "
-    "Mobile/14E5239e Safari/602.1\"}, \"Galaxy S5\": {\"deviceScaleFactor\": "
-    "3, \"mobile\": true, \"height\": 640, \"width\": 360, \"touch\": true, "
-    "\"userAgent\": \"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) "
-    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3302.0 Mobile "
-    "Safari/537.36\"}, \"Kindle Fire HDX\": {\"deviceScaleFactor\": 2, "
-    "\"mobile\": true, \"height\": 1280, \"width\": 800, \"touch\": true, "
-    "\"userAgent\": \"Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) "
-    "AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 "
-    "Silk-Accelerated=true\"}, \"Laptop with MDPI screen\": "
+    "\"userAgent\": \"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; "
+    "Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) "
+    "Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263\"}, \"Pixel 2 XL\": "
+    "{\"deviceScaleFactor\": 3.5, \"mobile\": true, \"height\": 823, "
+    "\"width\": 411, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; "
+    "Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 "
+    "(KHTML, like Gecko) Chrome/66.0.3329.0 Mobile Safari/537.36\"}, \"Galaxy "
+    "Note 3\": {\"deviceScaleFactor\": 3, \"mobile\": true, \"height\": 640, "
+    "\"width\": 360, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; U; "
+    "Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, "
+    "like Gecko) Version/4.0 Mobile Safari/534.30\"}, \"Kindle Fire HDX\": "
+    "{\"deviceScaleFactor\": 2, \"mobile\": true, \"height\": 1280, \"width\": "
+    "800, \"touch\": true, \"userAgent\": \"Mozilla/5.0 (Linux; U; en-us; "
+    "KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 "
+    "Safari/535.19 Silk-Accelerated=true\"}, \"Laptop with MDPI screen\": "
     "{\"deviceScaleFactor\": 1, \"mobile\": false, \"height\": 1280, "
     "\"width\": 800, \"touch\": false, \"userAgent\": \"\"}}";
diff --git a/chrome/test/chromedriver/chrome/mobile_device_list.h b/chrome/test/chromedriver/chrome/mobile_device_list.h
index 925680edd..18d7414 100644
--- a/chrome/test/chromedriver/chrome/mobile_device_list.h
+++ b/chrome/test/chromedriver/chrome/mobile_device_list.h
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// This file was generated at (2018-01-03 09:47:36.639726) by running:
+// This file was generated at (2018-01-22 12:56:00.187529) by running:
 //     ./chrome/test/chromedriver/embed_mobile_devices_in_cpp.py --directory
 //     chrome/test/chromedriver/chrome/
 //     third_party/WebKit/Source/devtools/front_end/emulated_devices/module.json
diff --git a/chrome/test/chromedriver/embed_mobile_devices_in_cpp.py b/chrome/test/chromedriver/embed_mobile_devices_in_cpp.py
index 551de25..0a706f7 100755
--- a/chrome/test/chromedriver/embed_mobile_devices_in_cpp.py
+++ b/chrome/test/chromedriver/embed_mobile_devices_in_cpp.py
@@ -57,14 +57,29 @@
   for extension in extensions:
     if extension['type'] == 'emulated-device':
       device = extension['device']
-      devices[device['title']] = {
-        'userAgent': device['user-agent'].replace('%s', version),
-        'width': device['screen']['vertical']['width'],
-        'height': device['screen']['vertical']['height'],
-        'deviceScaleFactor': device['screen']['device-pixel-ratio'],
-        'touch': 'touch' in device['capabilities'],
-        'mobile': 'mobile' in device['capabilities'],
-      }
+      title = device['title']
+      titles = [title]
+      # For 'iPhone 6/7/8', also add ['iPhone 6', 'iPhone 7', 'iPhone 8'] for
+      # backward compatibility.
+      if '/' in title:
+        words = title.split()
+        for i in range(len(words)):
+          if '/' in words[i]:
+            # Only support one word containing '/'
+            break
+        tokens = words[i].split('/')
+        for token in tokens:
+          words[i] = token
+          titles.append(' '.join(words))
+      for title in titles:
+        devices[title] = {
+          'userAgent': device['user-agent'].replace('%s', version),
+          'width': device['screen']['vertical']['width'],
+          'height': device['screen']['vertical']['height'],
+          'deviceScaleFactor': device['screen']['device-pixel-ratio'],
+          'touch': 'touch' in device['capabilities'],
+          'mobile': 'mobile' in device['capabilities'],
+        }
 
   output_dir = 'chrome/test/chromedriver/chrome'
   cpp_source.WriteSource('mobile_device_list',