Index: chrome/test/chromedriver/embed_mobile_devices_in_cpp.py |
diff --git a/chrome/test/chromedriver/embed_mobile_devices_in_cpp.py b/chrome/test/chromedriver/embed_mobile_devices_in_cpp.py |
index 2667014c95a5b775bfbf6a6de30163e5f7c0fef5..327012d120b18a9c56ded8e720f766d1772f3407 100755 |
--- a/chrome/test/chromedriver/embed_mobile_devices_in_cpp.py |
+++ b/chrome/test/chromedriver/embed_mobile_devices_in_cpp.py |
@@ -5,18 +5,33 @@ |
"""Embeds standalone JavaScript snippets in C++ code. |
-The script requires the OverridesView file from WebKit that lists the known |
-mobile devices to be passed in as the only argument. The list of known devices |
-will be written to a C-style string to be parsed with JSONReader. |
+The script requires the devtools/front_end/toolbox/OverridesUI.js file from |
+WebKit that lists the known mobile devices to be passed in as the only argument. |
+The list of known devices will be written to a C-style string to be parsed with |
+JSONReader. |
""" |
import optparse |
import os |
+import re |
+import subprocess |
import sys |
import cpp_source |
+def quotizeKeys(s, keys): |
+ """Returns the string s with each instance of each key wrapped in quotes. |
+ |
+ Args: |
+ s: a string containing keys that need to be wrapped in quotes. |
+ keys: an iterable of keys to be wrapped in quotes in the string. |
+ """ |
+ for key in keys: |
+ s = re.sub('%s: ' % key, '"%s": ' % key, s) |
+ return s |
+ |
+ |
def main(): |
parser = optparse.OptionParser() |
parser.add_option( |
@@ -30,8 +45,10 @@ def main(): |
with open(file_name, 'r') as f: |
for line in f: |
if not inside_list: |
- if 'WebInspector.OverridesUI._phones = [' in line or \ |
- 'WebInspector.OverridesUI._tablets = [' in line: |
+ if 'WebInspector.OverridesUI._phones = [' in line: |
+ inside_list = True |
+ if 'WebInspector.OverridesUI._tablets = [' in line: |
+ devices += ',' |
inside_list = True |
else: |
if line.strip() == '];': |
@@ -39,11 +56,19 @@ def main(): |
continue |
devices += line.strip() |
+ output_dir = 'chrome/test/chromedriver/chrome' |
devices += ']' |
+ devices = quotizeKeys(devices, |
+ ['title', 'width', 'height', 'deviceScaleFactor', |
+ 'userAgent', 'touch', 'mobile']) |
cpp_source.WriteSource('mobile_device_list', |
- 'chrome/test/chromedriver/chrome', |
+ output_dir, |
options.directory, {'kMobileDevices': devices}) |
+ clang_format = ['clang-format', '-i'] |
+ subprocess.Popen(clang_format + ['%s/mobile_device_list.cc' % output_dir]) |
+ subprocess.Popen(clang_format + ['%s/mobile_device_list.h' % output_dir]) |
+ |
if __name__ == '__main__': |
sys.exit(main()) |