Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Unified Diff: third_party/WebCore/inspector/compile-front-end.py

Issue 12319151: WebKit IDL roll. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebCore/inspector/compile-front-end.py
diff --git a/third_party/WebCore/inspector/compile-front-end.py b/third_party/WebCore/inspector/compile-front-end.py
new file mode 100755
index 0000000000000000000000000000000000000000..4c4d7abb156f5fe061496cec410632213ccf8a6f
--- /dev/null
+++ b/third_party/WebCore/inspector/compile-front-end.py
@@ -0,0 +1,445 @@
+#!/usr/bin/env python
+# Copyright (c) 2012 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import os
+import os.path
+import generate_protocol_externs
+import shutil
+import sys
+import tempfile
+
+inspector_path = "Source/WebCore/inspector"
+inspector_frontend_path = inspector_path + "/front-end"
+protocol_externs_path = inspector_frontend_path + "/protocol-externs.js"
+
+generate_protocol_externs.generate_protocol_externs(protocol_externs_path, inspector_path + "/Inspector.json")
+
+jsmodule_name_prefix = "jsmodule_"
+modules = [
+ {
+ "name": "common",
+ "dependencies": [],
+ "sources": [
+ "Color.js",
+ "DOMExtension.js",
+ "Object.js",
+ "ParsedURL.js",
+ "Progress.js",
+ "Settings.js",
+ "UIString.js",
+ "UserMetrics.js",
+ "utilities.js",
+ ]
+ },
+ {
+ "name": "sdk",
+ "dependencies": ["common"],
+ "sources": [
+ "ApplicationCacheModel.js",
+ "CompilerScriptMapping.js",
+ "ConsoleModel.js",
+ "ContentProvider.js",
+ "ContentProviders.js",
+ "CookieParser.js",
+ "CSSMetadata.js",
+ "CSSStyleModel.js",
+ "BreakpointManager.js",
+ "Database.js",
+ "DOMAgent.js",
+ "DOMStorage.js",
+ "DebuggerModel.js",
+ "DebuggerScriptMapping.js",
+ "FileManager.js",
+ "FileMapping.js",
+ "FileSystemMapping.js",
+ "FileSystemModel.js",
+ "FileSystemProjectDelegate.js",
+ "FileUtils.js",
+ "HAREntry.js",
+ "IndexedDBModel.js",
+ "InspectorBackend.js",
+ "IsolatedFileSystemManager.js",
+ "IsolatedFileSystem.js",
+ "Linkifier.js",
+ "NetworkLog.js",
+ "NetworkUISourceCodeProvider.js",
+ "PresentationConsoleMessageHelper.js",
+ "RuntimeModel.js",
+ "SASSSourceMapping.js",
+ "Script.js",
+ "ScriptFormatter.js",
+ "ScriptSnippetModel.js",
+ "SimpleWorkspaceProvider.js",
+ "SnippetStorage.js",
+ "SourceMapping.js",
+ "StylesSourceMapping.js",
+ "TimelineManager.js",
+ "RemoteObject.js",
+ "Resource.js",
+ "DefaultScriptMapping.js",
+ "ResourceScriptMapping.js",
+ "LiveEditSupport.js",
+ "ResourceTreeModel.js",
+ "ResourceType.js",
+ "ResourceUtils.js",
+ "SourceMap.js",
+ "NetworkManager.js",
+ "NetworkRequest.js",
+ "UISourceCode.js",
+ "UserAgentSupport.js",
+ "Workspace.js",
+ "protocol-externs.js",
+ ]
+ },
+ {
+ "name": "ui",
+ "dependencies": ["common"],
+ "sources": [
+ "Checkbox.js",
+ "ContextMenu.js",
+ "DOMSyntaxHighlighter.js",
+ "DataGrid.js",
+ "DefaultTextEditor.js",
+ "Dialog.js",
+ "DockController.js",
+ "Drawer.js",
+ "EmptyView.js",
+ "GoToLineDialog.js",
+ "HelpScreen.js",
+ "InspectorView.js",
+ "KeyboardShortcut.js",
+ "Panel.js",
+ "PanelEnablerView.js",
+ "Placard.js",
+ "Popover.js",
+ "ProgressIndicator.js",
+ "PropertiesSection.js",
+ "SearchController.js",
+ "Section.js",
+ "SidebarPane.js",
+ "SidebarTreeElement.js",
+ "ShortcutsScreen.js",
+ "ShowMoreDataGridNode.js",
+ "SidebarOverlay.js",
+ "SoftContextMenu.js",
+ "SourceTokenizer.js",
+ "Spectrum.js",
+ "SplitView.js",
+ "SidebarView.js",
+ "StatusBarButton.js",
+ "SuggestBox.js",
+ "TabbedPane.js",
+ "TextEditor.js",
+ "TextEditorHighlighter.js",
+ "TextEditorModel.js",
+ "TextPrompt.js",
+ "TextUtils.js",
+ "TimelineGrid.js",
+ "Toolbar.js",
+ "UIUtils.js",
+ "View.js",
+ "ViewportControl.js",
+ "treeoutline.js",
+ ]
+ },
+ {
+ "name": "components",
+ "dependencies": ["sdk", "ui"],
+ "sources": [
+ "AdvancedSearchController.js",
+ "HandlerRegistry.js",
+ "ConsoleMessage.js",
+ "CookiesTable.js",
+ "DOMBreakpointsSidebarPane.js",
+ "DOMPresentationUtils.js",
+ "ElementsTreeOutline.js",
+ "FontView.js",
+ "ImageView.js",
+ "NativeBreakpointsSidebarPane.js",
+ "ObjectPopoverHelper.js",
+ "ObjectPropertiesSection.js",
+ "SourceFrame.js",
+ "ResourceView.js",
+ ]
+ },
+ {
+ "name": "elements",
+ "dependencies": ["components"],
+ "sources": [
+ "CSSNamedFlowCollectionsView.js",
+ "CSSNamedFlowView.js",
+ "ElementsPanel.js",
+ "ElementsPanelDescriptor.js",
+ "EventListenersSidebarPane.js",
+ "MetricsSidebarPane.js",
+ "PropertiesSidebarPane.js",
+ "StylesSidebarPane.js",
+ ]
+ },
+ {
+ "name": "network",
+ "dependencies": ["components"],
+ "sources": [
+ "NetworkItemView.js",
+ "RequestCookiesView.js",
+ "RequestHeadersView.js",
+ "RequestHTMLView.js",
+ "RequestJSONView.js",
+ "RequestPreviewView.js",
+ "RequestResponseView.js",
+ "RequestTimingView.js",
+ "RequestView.js",
+ "ResourceWebSocketFrameView.js",
+ "NetworkPanel.js",
+ "NetworkPanelDescriptor.js",
+ ]
+ },
+ {
+ "name": "resources",
+ "dependencies": ["components"],
+ "sources": [
+ "ApplicationCacheItemsView.js",
+ "CookieItemsView.js",
+ "DatabaseQueryView.js",
+ "DatabaseTableView.js",
+ "DirectoryContentView.js",
+ "DOMStorageItemsView.js",
+ "FileContentView.js",
+ "FileSystemView.js",
+ "IndexedDBViews.js",
+ "ResourcesPanel.js",
+ ]
+ },
+ {
+ "name": "workers",
+ "dependencies": ["components"],
+ "sources": [
+ "WorkerManager.js",
+ ]
+ },
+ {
+ "name": "scripts",
+ "dependencies": ["components", "workers"],
+ "sources": [
+ "BreakpointsSidebarPane.js",
+ "CallStackSidebarPane.js",
+ "FilteredItemSelectionDialog.js",
+ "JavaScriptSourceFrame.js",
+ "NavigatorOverlayController.js",
+ "NavigatorView.js",
+ "RevisionHistoryView.js",
+ "ScopeChainSidebarPane.js",
+ "ScriptsNavigator.js",
+ "ScriptsPanel.js",
+ "ScriptsPanelDescriptor.js",
+ "ScriptsSearchScope.js",
+ "SnippetJavaScriptSourceFrame.js",
+ "StyleSheetOutlineDialog.js",
+ "TabbedEditorContainer.js",
+ "UISourceCodeFrame.js",
+ "WatchExpressionsSidebarPane.js",
+ "WorkersSidebarPane.js",
+ ]
+ },
+ {
+ "name": "console",
+ "dependencies": ["components"],
+ "sources": [
+ "ConsoleView.js",
+ "ConsolePanel.js",
+ ]
+ },
+ {
+ "name": "timeline",
+ "dependencies": ["components"],
+ "sources": [
+ "DOMCountersGraph.js",
+ "MemoryStatistics.js",
+ "NativeMemoryGraph.js",
+ "TimelineModel.js",
+ "TimelineOverviewPane.js",
+ "TimelinePanel.js",
+ "TimelinePanelDescriptor.js",
+ "TimelinePresentationModel.js",
+ "TimelineFrameController.js"
+ ]
+ },
+ {
+ "name": "audits",
+ "dependencies": ["components"],
+ "sources": [
+ "AuditCategories.js",
+ "AuditFormatters.js",
+ "AuditLauncherView.js",
+ "AuditResultView.js",
+ "AuditRules.js",
+ "AuditsPanel.js",
+ ]
+ },
+ {
+ "name": "extensions",
+ "dependencies": ["components"],
+ "sources": [
+ "ExtensionAPI.js",
+ "ExtensionAuditCategory.js",
+ "ExtensionPanel.js",
+ "ExtensionRegistryStub.js",
+ "ExtensionServer.js",
+ "ExtensionView.js",
+ ]
+ },
+ {
+ "name": "settings",
+ "dependencies": ["components", "extensions"],
+ "sources": [
+ "SettingsScreen.js",
+ "OverridesView.js",
+ ]
+ },
+ {
+ "name": "tests",
+ "dependencies": ["components"],
+ "sources": [
+ "TestController.js",
+ ]
+ },
+ {
+ "name": "profiler",
+ "dependencies": ["components", "workers"],
+ "sources": [
+ "BottomUpProfileDataGridTree.js",
+ "CPUProfileView.js",
+ "CSSSelectorProfileView.js",
+ "HeapSnapshot.js",
+ "HeapSnapshotDataGrids.js",
+ "HeapSnapshotGridNodes.js",
+ "HeapSnapshotLoader.js",
+ "HeapSnapshotProxy.js",
+ "HeapSnapshotView.js",
+ "HeapSnapshotWorker.js",
+ "HeapSnapshotWorkerDispatcher.js",
+ "JSHeapSnapshot.js",
+ "NativeHeapSnapshot.js",
+ "NativeMemorySnapshotView.js",
+ "ProfileDataGridTree.js",
+ "ProfilesPanel.js",
+ "ProfilesPanelDescriptor.js",
+ "ProfileLauncherView.js",
+ "TopDownProfileDataGridTree.js",
+ "CanvasProfileView.js",
+ ]
+ },
+ {
+ "name": "host_stub",
+ "dependencies": ["components", "profiler", "timeline"],
+ "sources": [
+ "InspectorFrontendAPI.js",
+ "InspectorFrontendHostStub.js",
+ ]
+ }
+]
+
+modules_by_name = {}
+for module in modules:
+ modules_by_name[module["name"]] = module
+
+
+def dump_module(name, recursively, processed_modules):
+ if name in processed_modules:
+ return ""
+ processed_modules[name] = True
+ module = modules_by_name[name]
+ command = ""
+ if recursively:
+ for dependency in module["dependencies"]:
+ command += dump_module(dependency, recursively, processed_modules)
+ command += " \\\n --module " + jsmodule_name_prefix + module["name"] + ":"
+ command += str(len(module["sources"]))
+ firstDependency = True
+ for dependency in module["dependencies"]:
+ if firstDependency:
+ command += ":"
+ else:
+ command += ","
+ firstDependency = False
+ command += jsmodule_name_prefix + dependency
+ for script in module["sources"]:
+ command += " \\\n --js " + inspector_frontend_path + "/" + script
+ return command
+
+modules_dir = tempfile.mkdtemp()
+compiler_command = "java -jar ~/closure/compiler.jar --summary_detail_level 3 --compilation_level SIMPLE_OPTIMIZATIONS --warning_level VERBOSE --language_in ECMASCRIPT5 --accept_const_keyword --module_output_path_prefix %s/ \\\n" % modules_dir
+
+process_recursively = len(sys.argv) > 1
+if process_recursively:
+ module_name = sys.argv[1]
+ if module_name != "all":
+ modules = []
+ for i in range(1, len(sys.argv)):
+ modules.append(modules_by_name[sys.argv[i]])
+ for module in modules:
+ command = compiler_command
+ command += " --externs " + inspector_frontend_path + "/externs.js"
+ command += dump_module(module["name"], True, {})
+ print "Compiling \"" + module["name"] + "\""
+ os.system(command)
+else:
+ command = compiler_command
+ command += " --externs " + inspector_frontend_path + "/externs.js"
+ for module in modules:
+ command += dump_module(module["name"], False, {})
+ os.system(command)
+
+if not process_recursively:
+ print "Compiling InjectedScriptSource.js..."
+ os.system("echo \"var injectedScriptValue = \" > " + inspector_path + "/" + "InjectedScriptSourceTmp.js")
+ os.system("cat " + inspector_path + "/" + "InjectedScriptSource.js" + " >> " + inspector_path + "/" + "InjectedScriptSourceTmp.js")
+ command = compiler_command
+ command += " --externs " + inspector_path + "/" + "InjectedScriptExterns.js" + " \\\n"
+ command += " --externs " + protocol_externs_path + " \\\n"
+ command += " --module " + jsmodule_name_prefix + "injected_script" + ":" + "1" + " \\\n"
+ command += " --js " + inspector_path + "/" + "InjectedScriptSourceTmp.js" + " \\\n"
+ command += "\n"
+ os.system(command)
+ os.system("rm " + inspector_path + "/" + "InjectedScriptSourceTmp.js")
+
+ print "Compiling InjectedScriptCanvasModuleSource.js..."
+ os.system("echo \"var injectedScriptCanvasModuleValue = \" > " + inspector_path + "/" + "InjectedScriptCanvasModuleSourceTmp.js")
+ os.system("cat " + inspector_path + "/" + "InjectedScriptCanvasModuleSource.js" + " >> " + inspector_path + "/" + "InjectedScriptCanvasModuleSourceTmp.js")
+ command = compiler_command
+ command += " --externs " + inspector_path + "/" + "InjectedScriptExterns.js" + " \\\n"
+ command += " --externs " + protocol_externs_path + " \\\n"
+ command += " --module " + jsmodule_name_prefix + "injected_script" + ":" + "1" + " \\\n"
+ command += " --js " + inspector_path + "/" + "InjectedScriptCanvasModuleSourceTmp.js" + " \\\n"
+ command += "\n"
+ os.system(command)
+ os.system("rm " + inspector_path + "/" + "InjectedScriptCanvasModuleSourceTmp.js")
+
+shutil.rmtree(modules_dir)
+#os.system("rm " + protocol_externs_path)
« no previous file with comments | « third_party/WebCore/inspector/JavaScriptCallFrame.idl ('k') | third_party/WebCore/inspector/generate_protocol_externs.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698