diff options
Diffstat (limited to 'chrome/common/extensions/docs/build/build.py')
-rwxr-xr-x | chrome/common/extensions/docs/build/build.py | 85 |
1 files changed, 48 insertions, 37 deletions
diff --git a/chrome/common/extensions/docs/build/build.py b/chrome/common/extensions/docs/build/build.py index 220924e..336756e 100755 --- a/chrome/common/extensions/docs/build/build.py +++ b/chrome/common/extensions/docs/build/build.py @@ -18,6 +18,8 @@ from optparse import OptionParser _script_path = os.path.realpath(__file__) _build_dir = os.path.dirname(_script_path) _base_dir = os.path.normpath(_build_dir + "/..") +_webkit_dir = _base_dir + "/../../../../third_party/WebKit" +_devtools_dir = _webkit_dir + "/Source/WebCore/inspector/front-end" _static_dir = _base_dir + "/static" _js_dir = _base_dir + "/js" _template_dir = _base_dir + "/template" @@ -25,6 +27,7 @@ _samples_dir = _base_dir + "/examples" _extension_api_dir = os.path.normpath(_base_dir + "/../api") _extension_api_json = _extension_api_dir + "/extension_api.json" +_devtools_api_json = _devtools_dir + "/ExtensionAPISchema.json" _api_template_html = _template_dir + "/api_template.html" _page_shell_html = _template_dir + "/page_shell.html" _generator_html = _build_dir + "/generator.html" @@ -42,9 +45,9 @@ from directory import Sample from directory import ApiManifest from directory import SamplesManifest -def RenderPages(names, test_shell): +def RenderPages(names, dump_render_tree): """ - Calls test_shell --layout-tests .../generator.html?<names> and writes the + Calls DumpRenderTree .../generator.html?<names> and writes the results to .../docs/<name>.html """ if not names: @@ -67,11 +70,11 @@ def RenderPages(names, test_shell): shutil.copy(_page_shell_html, input_file) - # Run test_shell and capture result - test_shell_timeout = 1000 * 60 * 5 # five minutes + # Run DumpRenderTree and capture result + dump_render_tree_timeout = 1000 * 60 * 5 # five minutes p = Popen( - [test_shell, "--layout-tests", "--time-out-ms=%s" % test_shell_timeout, - generator_url], + [dump_render_tree, "--test-shell", + "%s %s" % (generator_url, dump_render_tree_timeout)], stdout=PIPE) # The remaining output will be the content of the generated pages. @@ -82,21 +85,22 @@ def RenderPages(names, test_shell): end = output.rfind(_expected_output_postamble) if (begin < 0 or end < 0): - raise Exception ("test_shell returned invalid output:\n\n" + output) + raise Exception("%s returned invalid output:\n\n%s" % + (dump_render_tree, output)) begin += len(_expected_output_preamble) try: output_parsed = json.loads(output[begin:end]) except ValueError, msg: - raise Exception("Could not parse test_shell output as JSON. Error: " + msg + - "\n\nOutput was:\n" + output) + raise Exception("Could not parse DumpRenderTree output as JSON. Error: " + + msg + "\n\nOutput was:\n" + output) changed_files = [] for name in names: result = output_parsed[name].encode("utf8") + '\n' - # Remove CRs that are appearing from captured test_shell output. + # Remove CRs that are appearing from captured DumpRenderTree output. result = result.replace('\r', '') # Remove page_shell @@ -111,8 +115,8 @@ def RenderPages(names, test_shell): return changed_files -def FindTestShell(): - # This is hacky. It is used to guess the location of the test_shell +def FindDumpRenderTree(): + # This is hacky. It is used to guess the location of the DumpRenderTree chrome_dir = os.path.normpath(_base_dir + "/../../../") src_dir = os.path.normpath(chrome_dir + "/../") @@ -120,34 +124,36 @@ def FindTestShell(): if (sys.platform in ('cygwin', 'win32')): home_dir = os.path.normpath(os.getenv("HOMEDRIVE") + os.getenv("HOMEPATH")) - search_locations.append(chrome_dir + "/Release/test_shell.exe") - search_locations.append(chrome_dir + "/Debug/test_shell.exe") - search_locations.append(home_dir + "/bin/test_shell/" + - "test_shell.exe") + search_locations.append(chrome_dir + "/Release/DumpRenderTree.exe") + search_locations.append(chrome_dir + "/Debug/DumpRenderTree.exe") + search_locations.append(home_dir + "/bin/DumpRenderTree/" + "DumpRenderTree.exe") if (sys.platform in ('linux', 'linux2')): - search_locations.append(src_dir + "/sconsbuild/Release/test_shell") - search_locations.append(src_dir + "/out/Release/test_shell") - search_locations.append(src_dir + "/sconsbuild/Debug/test_shell") - search_locations.append(src_dir + "/out/Debug/test_shell") - search_locations.append(os.getenv("HOME") + "/bin/test_shell/test_shell") + search_locations.append(src_dir + "/sconsbuild/Release/DumpRenderTree") + search_locations.append(src_dir + "/out/Release/DumpRenderTree") + search_locations.append(src_dir + "/sconsbuild/Debug/DumpRenderTree") + search_locations.append(src_dir + "/out/Debug/DumpRenderTree") + search_locations.append(os.getenv("HOME") + "/bin/DumpRenderTree/" + "DumpRenderTree") if (sys.platform == 'darwin'): search_locations.append(src_dir + - "/xcodebuild/Release/TestShell.app/Contents/MacOS/TestShell") + "/xcodebuild/Release/DumpRenderTree.app/Contents/MacOS/DumpRenderTree") search_locations.append(src_dir + - "/xcodebuild/Debug/TestShell.app/Contents/MacOS/TestShell") - search_locations.append(os.getenv("HOME") + "/bin/test_shell/" + - "TestShell.app/Contents/MacOS/TestShell") + "/xcodebuild/Debug/DumpRenderTree.app/Contents/MacOS/DumpRenderTree") + search_locations.append(os.getenv("HOME") + "/bin/DumpRenderTree/" + + "DumpRenderTree.app/Contents/MacOS/DumpRenderTree") for loc in search_locations: if os.path.isfile(loc): return loc - raise Exception("Could not find test_shell executable\n" + - "**test_shell may need to be built**\n" + - "Searched: \n" + "\n".join(search_locations) + "\n" + - "To specify a path to test_shell use --test-shell-path") + raise Exception("Could not find DumpRenderTree executable\n" + "**DumpRenderTree may need to be built**\n" + "Searched: \n" + "\n".join(search_locations) + "\n" + "To specify a path to DumpRenderTree use " + "--dump-render-tree-path") def GetStaticFileNames(): static_files = os.listdir(_static_dir) @@ -162,29 +168,34 @@ def main(): "build.sh script instead, which uses depot_tools python.") parser = OptionParser() - parser.add_option("--test-shell-path", dest="test_shell_path", + parser.add_option("--dump-render-tree-path", dest="dump_render_tree_path", metavar="PATH", - help="path to test_shell executable") + help="path to DumpRenderTree executable") parser.add_option("--page-name", dest="page_name", metavar="PAGE", help="only generate docs for PAGE.html") parser.add_option("--nozip", dest="zips", action="store_false", help="do not generate zip files for samples", default=True) - (options, args) = parser.parse_args() + options, args = parser.parse_args() - if (options.test_shell_path and os.path.isfile(options.test_shell_path)): - test_shell = options.test_shell_path + if (options.dump_render_tree_path and + os.path.isfile(options.dump_render_tree_path)): + dump_render_tree = options.dump_render_tree_path else: - test_shell = FindTestShell() + dump_render_tree = FindDumpRenderTree() # Load the manifest of existing API Methods api_manifest = ApiManifest(_extension_api_json) + # DevTools API is maintained separately, in WebCore land + devtools_api_manifest = ApiManifest(_devtools_api_json) + # Read static file names static_names = GetStaticFileNames() # Read module names - module_names = api_manifest.getModuleNames() + module_names = (api_manifest.getModuleNames() | + devtools_api_manifest.getModuleNames()) # All pages to generate page_names = static_names | module_names @@ -208,7 +219,7 @@ def main(): else: modified_zips = [] - modified_files = RenderPages(page_names, test_shell) + modified_files = RenderPages(page_names, dump_render_tree) modified_files.extend(modified_zips) if len(modified_files) == 0: |