Home | History | Annotate | Download | only in devtools
      1 #
      2 # Copyright (C) 2013 Google Inc. All rights reserved.
      3 #
      4 # Redistribution and use in source and binary forms, with or without
      5 # modification, are permitted provided that the following conditions are
      6 # met:
      7 #
      8 #         * Redistributions of source code must retain the above copyright
      9 # notice, this list of conditions and the following disclaimer.
     10 #         * Redistributions in binary form must reproduce the above
     11 # copyright notice, this list of conditions and the following disclaimer
     12 # in the documentation and/or other materials provided with the
     13 # distribution.
     14 #         * Neither the name of Google Inc. nor the names of its
     15 # contributors may be used to endorse or promote products derived from
     16 # this software without specific prior written permission.
     17 #
     18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     29 #
     30 
     31 {
     32     'variables': {
     33         # If debug_devtools is set to 1, JavaScript files for DevTools are
     34         # stored as is. Otherwise, a concatenated file is stored.
     35         'debug_devtools%': 0,
     36         'devtools_files': [
     37             'front_end/inspector.html',
     38             'front_end/AdvancedSearchController.js',
     39             'front_end/ApplicationCacheModel.js',
     40             'front_end/BreakpointManager.js',
     41             'front_end/Checkbox.js',
     42             'front_end/Color.js',
     43             'front_end/CompilerScriptMapping.js',
     44             'front_end/CompletionDictionary.js',
     45             'front_end/ConsoleMessage.js',
     46             'front_end/ConsoleModel.js',
     47             'front_end/ConsolePanel.js',
     48             'front_end/ConsoleView.js',
     49             'front_end/ContentProvider.js',
     50             'front_end/ContentProviderBasedProjectDelegate.js',
     51             'front_end/ContentProviders.js',
     52             'front_end/ContextMenu.js',
     53             'front_end/CookieItemsView.js',
     54             'front_end/CookieParser.js',
     55             'front_end/CookiesTable.js',
     56             'front_end/CSSMetadata.js',
     57             'front_end/CSSStyleModel.js',
     58             'front_end/CSSStyleSheetMapping.js',
     59             'front_end/Database.js',
     60             'front_end/DataGrid.js',
     61             'front_end/DebuggerModel.js',
     62             'front_end/DebuggerScriptMapping.js',
     63             'front_end/DevToolsExtensionAPI.js',
     64             'front_end/Tests.js',
     65             'front_end/Dialog.js',
     66             'front_end/DOMAgent.js',
     67             'front_end/DOMBreakpointsSidebarPane.js',
     68             'front_end/DOMCountersGraph.js',
     69             'front_end/DOMExtension.js',
     70             'front_end/DOMPresentationUtils.js',
     71             'front_end/DOMStorage.js',
     72             'front_end/DOMSyntaxHighlighter.js',
     73             'front_end/DefaultScriptMapping.js',
     74             'front_end/DockController.js',
     75             'front_end/Drawer.js',
     76             'front_end/ElementsPanelDescriptor.js',
     77             'front_end/ElementsTreeOutline.js',
     78             'front_end/EmptyView.js',
     79             'front_end/ExtensionAPI.js',
     80             'front_end/ExtensionAuditCategory.js',
     81             'front_end/ExtensionPanel.js',
     82             'front_end/ExtensionRegistryStub.js',
     83             'front_end/ExtensionServer.js',
     84             'front_end/ExtensionView.js',
     85             'front_end/FileManager.js',
     86             'front_end/FileSystemMapping.js',
     87             'front_end/FileSystemModel.js',
     88             'front_end/FileSystemProjectDelegate.js',
     89             'front_end/FileUtils.js',
     90             'front_end/FontView.js',
     91             'front_end/GoToLineDialog.js',
     92             'front_end/HAREntry.js',
     93             'front_end/HandlerRegistry.js',
     94             'front_end/HeapSnapshotWorker.js',
     95             'front_end/HelpScreen.js',
     96             'front_end/ImageView.js',
     97             'front_end/IndexedDBModel.js',
     98             'front_end/InspectorBackend.js',
     99             'front_end/InspectorFrontendAPI.js',
    100             'front_end/InspectorFrontendHostStub.js',
    101             'front_end/InspectorView.js',
    102             'front_end/inspector.js',
    103             'front_end/IsolatedFileSystem.js',
    104             'front_end/IsolatedFileSystemManager.js',
    105             'front_end/JavaScriptFormatter.js',
    106             'front_end/jsdifflib.js',
    107             'front_end/KeyboardShortcut.js',
    108             'front_end/Linkifier.js',
    109             'front_end/LiveEditSupport.js',
    110             'front_end/NativeBreakpointsSidebarPane.js',
    111             'front_end/NetworkManager.js',
    112             'front_end/NetworkLog.js',
    113             'front_end/NetworkPanelDescriptor.js',
    114             'front_end/NetworkRequest.js',
    115             'front_end/NetworkUISourceCodeProvider.js',
    116             'front_end/InspectElementModeController.js',
    117             'front_end/Object.js',
    118             'front_end/ObjectPopoverHelper.js',
    119             'front_end/ObjectPropertiesSection.js',
    120             'front_end/OverridesSupport.js',
    121             'front_end/OverridesView.js',
    122             'front_end/OverviewGrid.js',
    123             'front_end/Panel.js',
    124             'front_end/ParsedURL.js',
    125             'front_end/Placard.js',
    126             'front_end/Popover.js',
    127             'front_end/PresentationConsoleMessageHelper.js',
    128             'front_end/ProfilesPanelDescriptor.js',
    129             'front_end/Progress.js',
    130             'front_end/ProgressIndicator.js',
    131             'front_end/PropertiesSection.js',
    132             'front_end/RemoteObject.js',
    133             'front_end/Resource.js',
    134             'front_end/ResourceScriptMapping.js',
    135             'front_end/ResourceTreeModel.js',
    136             'front_end/ResourceType.js',
    137             'front_end/ResourceUtils.js',
    138             'front_end/ResourceView.js',
    139             'front_end/RuntimeModel.js',
    140             'front_end/SASSSourceMapping.js',
    141             'front_end/Script.js',
    142             'front_end/ScriptFormatter.js',
    143             'front_end/ScriptFormatterWorker.js',
    144             'front_end/ScriptSnippetModel.js',
    145             'front_end/ScriptsPanelDescriptor.js',
    146             'front_end/SearchController.js',
    147             'front_end/SettingsScreen.js',
    148             'front_end/Section.js',
    149             'front_end/Settings.js',
    150             'front_end/ShortcutsScreen.js',
    151             'front_end/ShowMoreDataGridNode.js',
    152             'front_end/SidebarOverlay.js',
    153             'front_end/SidebarPane.js',
    154             'front_end/SidebarView.js',
    155             'front_end/SidebarTreeElement.js',
    156             'front_end/SimpleWorkspaceProvider.js',
    157             'front_end/SnippetStorage.js',
    158             'front_end/SoftContextMenu.js',
    159             'front_end/SourceCSSTokenizer.js',
    160             'front_end/SourceFrame.js',
    161             'front_end/SourceHTMLTokenizer.js',
    162             'front_end/SourceJavaScriptTokenizer.js',
    163             'front_end/SourceMap.js',
    164             'front_end/SourceMapping.js',
    165             'front_end/SourceTokenizer.js',
    166             'front_end/Spectrum.js',
    167             'front_end/SplitView.js',
    168             'front_end/StatusBarButton.js',
    169             'front_end/StylesSourceMapping.js',
    170             'front_end/SuggestBox.js',
    171             'front_end/TabbedPane.js',
    172             'front_end/TestController.js',
    173             'front_end/TextEditor.js',
    174             'front_end/TextEditorHighlighter.js',
    175             'front_end/TextRange.js',
    176             'front_end/TextEditorModel.js',
    177             'front_end/TextPrompt.js',
    178             'front_end/TextUtils.js',
    179             'front_end/TimelineGrid.js',
    180             'front_end/TimelineManager.js',
    181             'front_end/TimelinePanelDescriptor.js',
    182             'front_end/Toolbar.js',
    183             'front_end/TracingAgent.js',
    184             'front_end/treeoutline.js',
    185             'front_end/UISourceCode.js',
    186             'front_end/UIString.js',
    187             'front_end/UIUtils.js',
    188             'front_end/UserMetrics.js',
    189             'front_end/utilities.js',
    190             'front_end/View.js',
    191             'front_end/ViewportControl.js',
    192             'front_end/WorkerManager.js',
    193             'front_end/Workspace.js',
    194             'front_end/WorkspaceController.js',
    195             'front_end/dialog.css',
    196             'front_end/inspector.css',
    197             'front_end/inspectorSyntaxHighlight.css',
    198             'front_end/popover.css',
    199             '<@(devtools_modules_js_files)',
    200             '<@(devtools_standalone_files)',
    201         ],
    202         'devtools_standalone_files': [
    203             'front_end/auditsPanel.css',
    204             'front_end/breadcrumbList.css',
    205             'front_end/breakpointsList.css',
    206             'front_end/buildSystemOnly.js',
    207             'front_end/cm/cmdevtools.css',
    208             'front_end/cm/codemirror.css',
    209             'front_end/cssNamedFlows.css',
    210             'front_end/dataGrid.css',
    211             'front_end/elementsPanel.css',
    212             'front_end/filteredItemSelectionDialog.css',
    213             'front_end/flameChart.css',
    214             'front_end/heapProfiler.css',
    215             'front_end/helpScreen.css',
    216             'front_end/indexedDBViews.css',
    217             'front_end/inspectorCommon.css',
    218             'front_end/navigatorView.css',
    219             'front_end/networkLogView.css',
    220             'front_end/networkPanel.css',
    221             'front_end/panelEnablerView.css',
    222             'front_end/profilesPanel.css',
    223             'front_end/resourceView.css',
    224             'front_end/resourcesPanel.css',
    225             'front_end/revisionHistory.css',
    226             'front_end/scriptsPanel.css',
    227             'front_end/sidebarPane.css',
    228             'front_end/spectrum.css',
    229             'front_end/splitView.css',
    230             'front_end/tabbedPane.css',
    231             'front_end/textPrompt.css',
    232             'front_end/timelinePanel.css',
    233             'front_end/canvasProfiler.css',
    234         ],
    235         'devtools_elements_js_files': [
    236             'front_end/CSSNamedFlowCollectionsView.js',
    237             'front_end/CSSNamedFlowView.js',
    238             'front_end/ElementsPanel.js',
    239             'front_end/EventListenersSidebarPane.js',
    240             'front_end/MetricsSidebarPane.js',
    241             'front_end/PropertiesSidebarPane.js',
    242             'front_end/StylesSidebarPane.js',
    243         ],
    244         'devtools_resources_js_files': [
    245             'front_end/ApplicationCacheItemsView.js',
    246             'front_end/DOMStorageItemsView.js',
    247             'front_end/DatabaseQueryView.js',
    248             'front_end/DatabaseTableView.js',
    249             'front_end/DirectoryContentView.js',
    250             'front_end/FileContentView.js',
    251             'front_end/FileSystemView.js',
    252             'front_end/IndexedDBViews.js',
    253             'front_end/ResourcesPanel.js',
    254         ],
    255         'devtools_network_js_files': [
    256             'front_end/NetworkItemView.js',
    257             'front_end/RequestCookiesView.js',
    258             'front_end/RequestHeadersView.js',
    259             'front_end/RequestHTMLView.js',
    260             'front_end/RequestJSONView.js',
    261             'front_end/RequestPreviewView.js',
    262             'front_end/RequestResponseView.js',
    263             'front_end/RequestTimingView.js',
    264             'front_end/RequestView.js',
    265             'front_end/ResourceWebSocketFrameView.js',
    266             'front_end/NetworkPanel.js',
    267         ],
    268         'devtools_scripts_js_files': [
    269             'front_end/BreakpointsSidebarPane.js',
    270             'front_end/CallStackSidebarPane.js',
    271             'front_end/FilePathScoreFunction.js',
    272             'front_end/FilteredItemSelectionDialog.js',
    273             'front_end/JavaScriptSourceFrame.js',
    274             'front_end/NavigatorOverlayController.js',
    275             'front_end/NavigatorView.js',
    276             'front_end/RevisionHistoryView.js',
    277             'front_end/ScopeChainSidebarPane.js',
    278             'front_end/ScriptsNavigator.js',
    279             'front_end/ScriptsPanel.js',
    280             'front_end/ScriptsSearchScope.js',
    281             'front_end/StyleSheetOutlineDialog.js',
    282             'front_end/TabbedEditorContainer.js',
    283             'front_end/UISourceCodeFrame.js',
    284             'front_end/WatchExpressionsSidebarPane.js',
    285             'front_end/WorkersSidebarPane.js',
    286         ],
    287         'devtools_timeline_js_files': [
    288             'front_end/MemoryStatistics.js',
    289             'front_end/TimelineFrameController.js',
    290             'front_end/TimelineModel.js',
    291             'front_end/TimelinePresentationModel.js',
    292             'front_end/TimelineOverviewPane.js',
    293             'front_end/TimelinePanel.js',
    294         ],
    295 
    296         'devtools_profiles_js_files': [
    297             'front_end/BottomUpProfileDataGridTree.js',
    298             'front_end/CPUProfileView.js',
    299             'front_end/FlameChart.js',
    300             'front_end/HeapSnapshot.js',
    301             'front_end/HeapSnapshotDataGrids.js',
    302             'front_end/HeapSnapshotGridNodes.js',
    303             'front_end/HeapSnapshotLoader.js',
    304             'front_end/HeapSnapshotProxy.js',
    305             'front_end/HeapSnapshotView.js',
    306             'front_end/HeapSnapshotWorkerDispatcher.js',
    307             'front_end/JSHeapSnapshot.js',
    308             'front_end/ProfileDataGridTree.js',
    309             'front_end/ProfilesPanel.js',
    310             'front_end/ProfileLauncherView.js',
    311             'front_end/TopDownProfileDataGridTree.js',
    312             'front_end/CanvasProfileView.js',
    313         ],
    314 
    315         'devtools_audits_js_files': [
    316             'front_end/AuditCategories.js',
    317             'front_end/AuditController.js',
    318             'front_end/AuditFormatters.js',
    319             'front_end/AuditLauncherView.js',
    320             'front_end/AuditResultView.js',
    321             'front_end/AuditRules.js',
    322             'front_end/AuditsPanel.js',
    323         ],
    324 
    325         'devtools_codemirror_js_files': [
    326             'front_end/CodeMirrorTextEditor.js',
    327             'front_end/cm/clike.js',
    328             'front_end/cm/closebrackets.js',
    329             'front_end/cm/codemirror.js',
    330             'front_end/cm/coffeescript.js',
    331             'front_end/cm/comment.js',
    332             'front_end/cm/css.js',
    333             'front_end/cm/htmlembedded.js',
    334             'front_end/cm/htmlmixed.js',
    335             'front_end/cm/javascript.js',
    336             'front_end/cm/markselection.js',
    337             'front_end/cm/matchbrackets.js',
    338             'front_end/cm/overlay.js',
    339             'front_end/cm/php.js',
    340             'front_end/cm/python.js',
    341             'front_end/cm/shell.js',
    342             'front_end/cm/xml.js',
    343         ],
    344 
    345         'devtools_modules_js_files': [
    346             '<@(devtools_elements_js_files)',
    347             '<@(devtools_resources_js_files)',
    348             '<@(devtools_network_js_files)',
    349             '<@(devtools_scripts_js_files)',
    350             '<@(devtools_timeline_js_files)',
    351             '<@(devtools_profiles_js_files)',
    352             '<@(devtools_audits_js_files)',
    353             '<@(devtools_codemirror_js_files)',
    354         ],
    355         'devtools_uglifyjs_files': [
    356             'front_end/UglifyJS/parse-js.js',
    357         ],
    358         'devtools_image_files': [
    359             'front_end/Images/addIcon.png',
    360             'front_end/Images/applicationCache.png',
    361             'front_end/Images/back.png',
    362             'front_end/Images/breakpointBorder.png',
    363             'front_end/Images/breakpoint2.png',
    364             'front_end/Images/breakpoint2_2x.png',
    365             'front_end/Images/breakpointConditional2.png',
    366             'front_end/Images/breakpointConditional2_2x.png',
    367             'front_end/Images/breakpointConditionalBorder.png',
    368             'front_end/Images/breakpointConditionalCounterBorder.png',
    369             'front_end/Images/breakpointCounterBorder.png',
    370             'front_end/Images/checker.png',
    371             'front_end/Images/cookie.png',
    372             'front_end/Images/namedFlowOverflow.png',
    373             'front_end/Images/database.png',
    374             'front_end/Images/databaseTable.png',
    375             'front_end/Images/deleteIcon.png',
    376             'front_end/Images/domain.png',
    377             'front_end/Images/forward.png',
    378             'front_end/Images/fileSystem.png',
    379             'front_end/Images/frame.png',
    380             'front_end/Images/glossyHeader.png',
    381             'front_end/Images/glossyHeaderPressed.png',
    382             'front_end/Images/glossyHeaderSelected.png',
    383             'front_end/Images/glossyHeaderSelectedPressed.png',
    384             'front_end/Images/graphLabelCalloutLeft.png',
    385             'front_end/Images/graphLabelCalloutRight.png',
    386             'front_end/Images/indexedDB.png',
    387             'front_end/Images/indexedDBObjectStore.png',
    388             'front_end/Images/indexedDBIndex.png',
    389             'front_end/Images/localStorage.png',
    390             'front_end/Images/paneAddButtons.png',
    391             'front_end/Images/paneElementStateButtons.png',
    392             'front_end/Images/paneFilterButtons.png',
    393             'front_end/Images/paneRefreshButtons.png',
    394             'front_end/Images/paneSettingsButtons.png',
    395             'front_end/Images/popoverArrows.png',
    396             'front_end/Images/popoverBackground.png',
    397             'front_end/Images/profileGroupIcon.png',
    398             'front_end/Images/profileIcon.png',
    399             'front_end/Images/profileSmallIcon.png',
    400             'front_end/Images/programCounterBorder.png',
    401             'front_end/Images/radioDot.png',
    402             'front_end/Images/regionEmpty.png',
    403             'front_end/Images/regionFit.png',
    404             'front_end/Images/regionOverset.png',
    405             'front_end/Images/resourceCSSIcon.png',
    406             'front_end/Images/resourceDocumentIcon.png',
    407             'front_end/Images/resourceDocumentIconSmall.png',
    408             'front_end/Images/resourceJSIcon.png',
    409             'front_end/Images/resourcePlainIcon.png',
    410             'front_end/Images/resourcePlainIconSmall.png',
    411             'front_end/Images/resourcesTimeGraphIcon.png',
    412             'front_end/Images/searchSmallBlue.png',
    413             'front_end/Images/searchSmallBrightBlue.png',
    414             'front_end/Images/searchSmallGray.png',
    415             'front_end/Images/searchSmallWhite.png',
    416             'front_end/Images/searchNext.png',
    417             'front_end/Images/searchPrev.png',
    418             'front_end/Images/segment.png',
    419             'front_end/Images/segmentEnd.png',
    420             'front_end/Images/segmentHover.png',
    421             'front_end/Images/segmentHoverEnd.png',
    422             'front_end/Images/segmentSelected.png',
    423             'front_end/Images/segmentSelectedEnd.png',
    424             'front_end/Images/sessionStorage.png',
    425             'front_end/Images/settingsListRemove.png',
    426             'front_end/Images/settingsListRemove_2x.png',
    427             'front_end/Images/spinner.gif',
    428             'front_end/Images/spinnerActive.gif',
    429             'front_end/Images/spinnerActiveSelected.gif',
    430             'front_end/Images/spinnerInactive.gif',
    431             'front_end/Images/spinnerInactiveSelected.gif',
    432             'front_end/Images/statusbarButtonGlyphs.png',
    433             'front_end/Images/statusbarButtonGlyphs2x.png',
    434             'front_end/Images/statusbarResizerHorizontal.png',
    435             'front_end/Images/statusbarResizerVertical.png',
    436             'front_end/Images/thumbActiveHoriz.png',
    437             'front_end/Images/thumbActiveVert.png',
    438             'front_end/Images/thumbHoriz.png',
    439             'front_end/Images/thumbVert.png',
    440             'front_end/Images/thumbHoverHoriz.png',
    441             'front_end/Images/thumbHoverVert.png',
    442             'front_end/Images/timelineHollowPillBlue.png',
    443             'front_end/Images/timelineHollowPillGray.png',
    444             'front_end/Images/timelineHollowPillGreen.png',
    445             'front_end/Images/timelineHollowPillOrange.png',
    446             'front_end/Images/timelineHollowPillPurple.png',
    447             'front_end/Images/timelineHollowPillRed.png',
    448             'front_end/Images/timelineHollowPillYellow.png',
    449             'front_end/Images/timelinePillBlue.png',
    450             'front_end/Images/timelinePillGray.png',
    451             'front_end/Images/timelinePillGreen.png',
    452             'front_end/Images/timelinePillOrange.png',
    453             'front_end/Images/timelinePillPurple.png',
    454             'front_end/Images/timelinePillRed.png',
    455             'front_end/Images/timelinePillYellow.png',
    456             'front_end/Images/toolbarItemSelected.png',
    457             'front_end/Images/trackHoriz.png',
    458             'front_end/Images/trackVert.png',
    459         ],
    460         'devtools_extension_api_files': [
    461             'front_end/ExtensionAPI.js',
    462             'front_end/DevToolsExtensionAPI.js'
    463         ],
    464     },
    465     'targets': [
    466         {
    467             'target_name': 'devtools_frontend_resources',
    468             'type': 'none',
    469             'dependencies': [
    470                 'devtools_html',
    471                 'frontend_protocol_sources',
    472             ],
    473             'conditions': [
    474                 ['debug_devtools==0', {
    475                     'dependencies': ['concatenated_devtools_js',
    476                                      'concatenated_devtools_elements_js',
    477                                      'concatenated_devtools_resources_js',
    478                                      'concatenated_devtools_network_js',
    479                                      'concatenated_devtools_scripts_js',
    480                                      'concatenated_devtools_timeline_js',
    481                                      'concatenated_devtools_profiles_js',
    482                                      'concatenated_devtools_audits_js',
    483                                      'concatenated_devtools_codemirror_js',
    484                                      'concatenated_heap_snapshot_worker_js',
    485                                      'concatenated_script_formatter_worker_js',
    486                                      'concatenated_devtools_css'],
    487                 }],
    488             ],
    489             'copies': [
    490                 {
    491                     'destination': '<(PRODUCT_DIR)/resources/inspector',
    492                     'files': [
    493                         '<@(devtools_files)',
    494                         '<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js',
    495                     ],
    496                     'conditions': [
    497                         ['debug_devtools==0', {
    498                             'files/': [['exclude', '\\.(js|css|html)$']],
    499                         }],
    500                     ],
    501                 },
    502                 {
    503                     'destination': '<(PRODUCT_DIR)/resources/inspector/UglifyJS',
    504                     'files': [
    505                         '<@(devtools_uglifyjs_files)',
    506                     ],
    507                     'conditions': [
    508                         ['debug_devtools==0', {
    509                             'files/': [['exclude', '\\.(js|css|html)$']],
    510                         }],
    511                     ],
    512                 },
    513                 {
    514                     'destination': '<(PRODUCT_DIR)/resources/inspector/Images',
    515                     'files': [
    516                         '<@(devtools_image_files)',
    517                     ],
    518                 },
    519             ],
    520         },
    521         {
    522             'target_name': 'devtools_html',
    523             'type': 'none',
    524             'sources': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'],
    525             'actions': [{
    526                 'action_name': 'devtools_html',
    527                 'script_name': 'scripts/generate_devtools_html.py',
    528                 'input_page': 'front_end/inspector.html',
    529                 'inputs': [
    530                     '<@(_script_name)',
    531                     '<@(_input_page)',
    532                 ],
    533                 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'],
    534                 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_outputs)', '<@(debug_devtools)'],
    535             }],
    536         },
    537         {
    538             'target_name': 'devtools_extension_api',
    539             'type': 'none',
    540             'actions': [{
    541                 'action_name': 'devtools_html',
    542                 'script_name': 'scripts/generate_devtools_extension_api.py',
    543                 'inputs': [
    544                     '<@(_script_name)',
    545                     '<@(devtools_extension_api_files)',
    546                 ],
    547                 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools_extension_api.js'],
    548                 'action': ['python', '<@(_script_name)', '<@(_outputs)', '<@(devtools_extension_api_files)'],
    549             }],
    550         },
    551         {
    552             'target_name': 'generate_devtools_grd',
    553             'type': 'none',
    554             'dependencies': [
    555                 'devtools_html',
    556                 'devtools_extension_api'
    557             ],
    558             'conditions': [
    559                 ['debug_devtools==0', {
    560                     'dependencies': ['concatenated_devtools_js',
    561                                      'concatenated_devtools_elements_js',
    562                                      'concatenated_devtools_resources_js',
    563                                      'concatenated_devtools_network_js',
    564                                      'concatenated_devtools_scripts_js',
    565                                      'concatenated_devtools_timeline_js',
    566                                      'concatenated_devtools_profiles_js',
    567                                      'concatenated_devtools_audits_js',
    568                                      'concatenated_devtools_codemirror_js',
    569                                      'concatenated_heap_snapshot_worker_js',
    570                                      'concatenated_script_formatter_worker_js',
    571                                      'concatenated_devtools_css'],
    572                     'actions': [{
    573                         'action_name': 'generate_devtools_grd',
    574                         'script_name': 'scripts/generate_devtools_grd.py',
    575                         'input_pages': [
    576                             '<(PRODUCT_DIR)/resources/inspector/devtools.html',
    577                             '<(PRODUCT_DIR)/resources/inspector/inspector.js',
    578                             '<(PRODUCT_DIR)/resources/inspector/ElementsPanel.js',
    579                             '<(PRODUCT_DIR)/resources/inspector/ResourcesPanel.js',
    580                             '<(PRODUCT_DIR)/resources/inspector/NetworkPanel.js',
    581                             '<(PRODUCT_DIR)/resources/inspector/ScriptsPanel.js',
    582                             '<(PRODUCT_DIR)/resources/inspector/TimelinePanel.js',
    583                             '<(PRODUCT_DIR)/resources/inspector/ProfilesPanel.js',
    584                             '<(PRODUCT_DIR)/resources/inspector/AuditsPanel.js',
    585                             '<(PRODUCT_DIR)/resources/inspector/CodeMirrorTextEditor.js',
    586                             '<(PRODUCT_DIR)/resources/inspector/HeapSnapshotWorker.js',
    587                             '<(PRODUCT_DIR)/resources/inspector/ScriptFormatterWorker.js',
    588                             '<(PRODUCT_DIR)/resources/inspector/inspector.css',
    589                             '<(PRODUCT_DIR)/resources/inspector/devtools_extension_api.js',
    590                             '<@(devtools_standalone_files)',
    591                         ],
    592                         'images': [
    593                             '<@(devtools_image_files)',
    594                         ],
    595                         'inputs': [
    596                             '<@(_script_name)',
    597                             '<@(_input_pages)',
    598                             '<@(_images)',
    599                         ],
    600                         'search_path': [
    601                             'front_end/Images',
    602                         ],
    603                         'outputs': ['<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd'],
    604                         'action': ['python', '<@(_script_name)', '<@(_input_pages)', '--images', '<@(_search_path)', '--output', '<@(_outputs)'],
    605                     }],
    606                 },
    607                 {
    608                     # If we're not concatenating devtools files, we want to
    609                     # run after the original files have been copied to
    610                     # <(PRODUCT_DIR)/resources/inspector.
    611                     'dependencies': ['devtools_frontend_resources'],
    612                     'actions': [{
    613                         'action_name': 'generate_devtools_grd',
    614                         'script_name': 'scripts/generate_devtools_grd.py',
    615                         'input_pages': [
    616                             '<@(devtools_files)',
    617                             '<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js',
    618                             '<(PRODUCT_DIR)/resources/inspector/devtools.html',
    619                         ],
    620                         'images': [
    621                             '<@(devtools_image_files)',
    622                         ],
    623                         'inputs': [
    624                             '<@(_script_name)',
    625                             '<@(_input_pages)',
    626                             '<@(_images)',
    627                         ],
    628                         'search_path': [
    629                             'front_end/Images',
    630                         ],
    631                         # Note that other files are put under /devtools directory, together with declared devtools_resources.grd
    632                         'outputs': ['<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd'],
    633                         'action': ['python', '<@(_script_name)', '<@(_input_pages)', '--images', '<@(_search_path)', '--output', '<@(_outputs)'],
    634                     }],
    635                 }],
    636             ],
    637         },
    638         {
    639           'target_name': 'frontend_protocol_sources',
    640           'type': 'none',
    641           'actions': [
    642             {
    643               'action_name': 'generateInspectorProtocolFrontendSources',
    644               'inputs': [
    645                 # The python script in action below.
    646                 'scripts/CodeGeneratorFrontend.py',
    647                 # Input file for the script.
    648                 'protocol.json',
    649               ],
    650               'outputs': [
    651                 '<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js',
    652               ],
    653               'action': [
    654                 'python',
    655                 'scripts/CodeGeneratorFrontend.py',
    656                 'protocol.json',
    657                 '--output_js_dir', '<(SHARED_INTERMEDIATE_DIR)/blink',
    658               ],
    659               'message': 'Generating Inspector protocol frontend sources from protocol.json',
    660               'msvs_cygwin_shell': 1,
    661             },
    662           ]
    663         },
    664     ], # targets
    665     'conditions': [
    666         ['debug_devtools==0', {
    667             'targets': [
    668                 {
    669                     'target_name': 'concatenated_devtools_js',
    670                     'type': 'none',
    671                     'dependencies': [
    672                         'devtools_html',
    673                         'frontend_protocol_sources'
    674                     ],
    675                     'actions': [{
    676                         'action_name': 'concatenate_devtools_js',
    677                         'script_name': 'scripts/concatenate_js_files.py',
    678                         'input_page': 'front_end/inspector.html',
    679                         'inputs': [
    680                             '<@(_script_name)',
    681                             '<@(_input_page)',
    682                             '<@(devtools_files)',
    683                             '<(SHARED_INTERMEDIATE_DIR)/blink/InspectorBackendCommands.js'
    684                         ],
    685                         'search_path': [
    686                             'front_end',
    687                             '<(SHARED_INTERMEDIATE_DIR)/blink',
    688                         ],
    689                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/inspector.js'],
    690                         'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'],
    691                     }],
    692                 },
    693                 {
    694                     'target_name': 'concatenated_devtools_elements_js',
    695                     'type': 'none',
    696                     'actions': [{
    697                         'action_name': 'concatenate_devtools_elements_js',
    698                         'script_name': 'scripts/inline_js_imports.py',
    699                         'input_file': 'front_end/ElementsPanel.js',
    700                         'inputs': [
    701                             '<@(_script_name)',
    702                             '<@(devtools_elements_js_files)',
    703                         ],
    704                         'search_path': 'front_end',
    705                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/ElementsPanel.js'],
    706                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
    707                     }],
    708                 },
    709                 {
    710                     'target_name': 'concatenated_devtools_resources_js',
    711                     'type': 'none',
    712                     'actions': [{
    713                         'action_name': 'concatenate_devtools_resources_js',
    714                         'script_name': 'scripts/inline_js_imports.py',
    715                         'input_file': 'front_end/ResourcesPanel.js',
    716                         'inputs': [
    717                             '<@(_script_name)',
    718                             '<@(devtools_resources_js_files)',
    719                         ],
    720                         'search_path': 'front_end',
    721                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/ResourcesPanel.js'],
    722                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
    723                     }],
    724                 },
    725                 {
    726                     'target_name': 'concatenated_devtools_network_js',
    727                     'type': 'none',
    728                     'actions': [{
    729                         'action_name': 'concatenate_devtools_network_js',
    730                         'script_name': 'scripts/inline_js_imports.py',
    731                         'input_file': 'front_end/NetworkPanel.js',
    732                         'inputs': [
    733                             '<@(_script_name)',
    734                             '<@(devtools_network_js_files)',
    735                         ],
    736                         'search_path': 'front_end',
    737                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/NetworkPanel.js'],
    738                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
    739                     }],
    740                 },
    741                 {
    742                     'target_name': 'concatenated_devtools_scripts_js',
    743                     'type': 'none',
    744                     'actions': [{
    745                         'action_name': 'concatenate_devtools_scripts_js',
    746                         'script_name': 'scripts/inline_js_imports.py',
    747                         'input_file': 'front_end/ScriptsPanel.js',
    748                         'inputs': [
    749                             '<@(_script_name)',
    750                             '<@(devtools_scripts_js_files)',
    751                         ],
    752                         'search_path': 'front_end',
    753                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/ScriptsPanel.js'],
    754                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
    755                     }],
    756                 },
    757                 {
    758                     'target_name': 'concatenated_devtools_timeline_js',
    759                     'type': 'none',
    760                     'actions': [{
    761                         'action_name': 'concatenate_devtools_timeline_js',
    762                         'script_name': 'scripts/inline_js_imports.py',
    763                         'input_file': 'front_end/TimelinePanel.js',
    764                         'inputs': [
    765                             '<@(_script_name)',
    766                             '<@(devtools_timeline_js_files)',
    767                         ],
    768                         'search_path': 'front_end',
    769                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/TimelinePanel.js'],
    770                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
    771                     }],
    772                 },
    773                 {
    774                     'target_name': 'concatenated_devtools_profiles_js',
    775                     'type': 'none',
    776                     'actions': [{
    777                         'action_name': 'concatenate_devtools_profiles_js',
    778                         'script_name': 'scripts/inline_js_imports.py',
    779                         'input_file': 'front_end/ProfilesPanel.js',
    780                         'inputs': [
    781                             '<@(_script_name)',
    782                             '<@(devtools_profiles_js_files)',
    783                         ],
    784                         'search_path': 'front_end',
    785                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/ProfilesPanel.js'],
    786                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
    787                     }],
    788                 },
    789                 {
    790                     'target_name': 'concatenated_devtools_audits_js',
    791                     'type': 'none',
    792                     'actions': [{
    793                         'action_name': 'concatenate_devtools_audits_js',
    794                         'script_name': 'scripts/inline_js_imports.py',
    795                         'input_file': 'front_end/AuditsPanel.js',
    796                         'inputs': [
    797                             '<@(_script_name)',
    798                             '<@(devtools_audits_js_files)',
    799                         ],
    800                         'search_path': 'front_end',
    801                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/AuditsPanel.js'],
    802                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
    803                     }],
    804                 },
    805                 {
    806                     'target_name': 'concatenated_devtools_codemirror_js',
    807                     'type': 'none',
    808                     'actions': [{
    809                         'action_name': 'concatenate_devtools_codemirror_js',
    810                         'script_name': 'scripts/inline_js_imports.py',
    811                         'input_file': 'front_end/CodeMirrorTextEditor.js',
    812                         'inputs': [
    813                             '<@(_script_name)',
    814                             '<@(devtools_codemirror_js_files)',
    815                         ],
    816                         'search_path': 'front_end',
    817                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/CodeMirrorTextEditor.js'],
    818                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
    819                     }],
    820                 },
    821                 {
    822                     'target_name': 'concatenated_heap_snapshot_worker_js',
    823                     'type': 'none',
    824                     'actions': [{
    825                         'action_name': 'concatenate_heap_snapshot_worker_js',
    826                         'script_name': 'scripts/inline_js_imports.py',
    827                         'input_file': 'front_end/HeapSnapshotWorker.js',
    828                         'inputs': [
    829                             '<@(_script_name)',
    830                             '<@(_input_file)',
    831                             'front_end/HeapSnapshot.js',
    832                             'front_end/HeapSnapshotLoader.js',
    833                             'front_end/HeapSnapshotWorkerDispatcher.js',
    834                             'front_end/JSHeapSnapshot.js',
    835                             'front_end/utilities.js',
    836                         ],
    837                         'search_path': 'front_end',
    838                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/HeapSnapshotWorker.js'],
    839                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
    840                     }],
    841                 },
    842                 {
    843                     'target_name': 'concatenated_script_formatter_worker_js',
    844                     'type': 'none',
    845                     'actions': [{
    846                         'action_name': 'concatenate_script_formatter_worker_js',
    847                         'script_name': 'scripts/inline_js_imports.py',
    848                         'input_file': 'front_end/ScriptFormatterWorker.js',
    849                         'inputs': [
    850                             '<@(_script_name)',
    851                             '<@(_input_file)',
    852                             '<@(devtools_uglifyjs_files)'
    853                         ],
    854                         'search_path': 'front_end',
    855                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/ScriptFormatterWorker.js'],
    856                         'action': ['python', '<@(_script_name)', '<@(_input_file)', '<@(_search_path)', '<@(_outputs)'],
    857                     }],
    858                 },
    859                 {
    860                     'target_name': 'concatenated_devtools_css',
    861                     'type': 'none',
    862                     'dependencies': [
    863                         'devtools_html'
    864                     ],
    865                     'actions': [{
    866                         'action_name': 'concatenate_devtools_css',
    867                         'script_name': 'scripts/concatenate_css_files.py',
    868                         'input_page': 'front_end/inspector.html',
    869                         'inputs': [
    870                             '<@(_script_name)',
    871                             '<@(_input_page)',
    872                             '<@(devtools_files)',
    873                         ],
    874                         'search_path': [ 'front_end' ],
    875                         'outputs': ['<(PRODUCT_DIR)/resources/inspector/inspector.css'],
    876                         'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'],
    877                     }],
    878                     'copies': [{
    879                         'destination': '<(PRODUCT_DIR)/resources/inspector',
    880                         'files': [
    881                             '<@(devtools_standalone_files)',
    882                         ],
    883                     }],
    884                 },
    885             ],
    886         }],
    887     ], # conditions
    888 }
    889