├── .eslintignore ├── .eslintrc ├── .gitignore ├── .npmignore ├── .prettierignore ├── .travis.yml ├── .vscode └── launch.json ├── CHANGELOG.md ├── LICENCE ├── README.md ├── bin └── weex-devtool.js ├── frontend ├── assets │ ├── fonts │ │ ├── iconfont.eot │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ └── iconfont.woff │ ├── images │ │ ├── arrow_left.png │ │ ├── arrow_right.png │ │ ├── logo.svg │ │ └── qrcode_bg.png │ ├── scss │ │ ├── animation.scss │ │ ├── common.scss │ │ ├── components.scss │ │ ├── debugger.scss │ │ ├── entry.scss │ │ ├── iconfont.scss │ │ ├── performance.scss │ │ ├── prophet.scss │ │ └── timeline.scss │ └── styles │ │ ├── anchor-tips.css │ │ ├── anchor-tips.css.map │ │ ├── common.css │ │ ├── common.css.map │ │ ├── components.css │ │ ├── components.css.map │ │ ├── debugger.css │ │ ├── debugger.css.map │ │ ├── entry.css │ │ ├── entry.css.map │ │ ├── iconfont.css │ │ ├── iconfont.css.map │ │ ├── performance.css │ │ ├── performance.css.map │ │ ├── prophet.css │ │ ├── prophet.css.map │ │ ├── timeline.css │ │ ├── timeline.css.map │ │ ├── toast.css │ │ └── toast.css.map ├── debug.html ├── devtool_fake.html ├── favicon.ico ├── index.html ├── inspector.json ├── inspector │ ├── .editorconfig │ ├── Images │ │ ├── accelerometer-back.png │ │ ├── accelerometer-bottom.png │ │ ├── accelerometer-front.png │ │ ├── accelerometer-left.png │ │ ├── accelerometer-right.png │ │ ├── accelerometer-top.png │ │ ├── audits_logo.svg │ │ ├── breakpoint.png │ │ ├── breakpointConditional.png │ │ ├── breakpointConditional_2x.png │ │ ├── breakpoint_2x.png │ │ ├── checkboxCheckmark.png │ │ ├── checkboxCheckmark_2x.png │ │ ├── checker.png │ │ ├── chevrons.png │ │ ├── chevrons_2x.png │ │ ├── chromeDisabledSelect.png │ │ ├── chromeDisabledSelect_2x.png │ │ ├── chromeLeft.png │ │ ├── chromeMiddle.png │ │ ├── chromeRight.png │ │ ├── chromeSelect.png │ │ ├── chromeSelect_2x.png │ │ ├── deleteIcon.png │ │ ├── errorWave.png │ │ ├── errorWave_2x.png │ │ ├── ic_info_black_18dp.svg │ │ ├── ic_warning_black_18dp.svg │ │ ├── largeIcons.png │ │ ├── largeIcons_2x.png │ │ ├── mediumIcons.png │ │ ├── mediumIcons_2x.png │ │ ├── navigationControls.png │ │ ├── navigationControls_2x.png │ │ ├── nodeIcon.png │ │ ├── popoverArrows.png │ │ ├── profileGroupIcon.png │ │ ├── profileIcon.png │ │ ├── profileSmallIcon.png │ │ ├── radioDot.png │ │ ├── readme.md │ │ ├── resizeDiagonal.png │ │ ├── resizeDiagonal_2x.png │ │ ├── resizeHorizontal.png │ │ ├── resizeHorizontal_2x.png │ │ ├── resizeVertical.png │ │ ├── resizeVertical_2x.png │ │ ├── resourceCSSIcon.png │ │ ├── resourceDocumentIcon.png │ │ ├── resourceDocumentIconSmall.png │ │ ├── resourceJSIcon.png │ │ ├── resourcePlainIcon.png │ │ ├── resourcePlainIconSmall.png │ │ ├── resourcesTimeGraphIcon.png │ │ ├── searchNext.png │ │ ├── searchPrev.png │ │ ├── securityIcons.png │ │ ├── securityIcons_2x.png │ │ ├── smallIcons.png │ │ ├── smallIcons_2x.png │ │ ├── speech.png │ │ ├── src │ │ │ ├── breakpoint.svg │ │ │ ├── breakpointConditional.svg │ │ │ ├── checkboxCheckmark.svg │ │ │ ├── chevrons.svg │ │ │ ├── errorWave.svg │ │ │ ├── largeIcons.svg │ │ │ ├── mediumIcons.svg │ │ │ ├── optimize_png.hashes │ │ │ ├── securityIcons.svg │ │ │ ├── smallIcons.svg │ │ │ ├── svg2png.hashes │ │ │ └── treeoutlineTriangles.svg │ │ ├── toolbarResizerVertical.png │ │ ├── touchCursor.png │ │ ├── touchCursor_2x.png │ │ ├── treeoutlineTriangles.png │ │ ├── treeoutlineTriangles_2x.png │ │ └── whatsnew.png │ ├── InspectorBackendCommands.js │ ├── OWNERS │ ├── Runtime.js │ ├── SupportedCSSProperties.js │ ├── Tests.js │ ├── accessibility │ │ ├── ARIAAttributesView.js │ │ ├── ARIAMetadata.js │ │ ├── AXBreadcrumbsPane.js │ │ ├── AccessibilityModel.js │ │ ├── AccessibilityNodeView.js │ │ ├── AccessibilitySidebarView.js │ │ ├── AccessibilityStrings.js │ │ ├── accessibilityNode.css │ │ ├── accessibilityProperties.css │ │ ├── axBreadcrumbs.css │ │ └── module.json │ ├── accessibility_test_runner │ │ ├── AccessibilityPaneTestRunner.js │ │ └── module.json │ ├── animation │ │ ├── AnimationGroupPreviewUI.js │ │ ├── AnimationModel.js │ │ ├── AnimationScreenshotPopover.js │ │ ├── AnimationTimeline.js │ │ ├── AnimationUI.js │ │ ├── animationScreenshotPopover.css │ │ ├── animationTimeline.css │ │ └── module.json │ ├── application_test_runner │ │ ├── AppcacheTestRunner.js │ │ ├── CacheStorageTestRunner.js │ │ ├── IndexedDBTestRunner.js │ │ ├── ResourceTreeTestRunner.js │ │ ├── ResourcesTestRunner.js │ │ ├── ServiceWorkersTestRunner.js │ │ └── module.json │ ├── audits2 │ │ ├── Audits2Controller.js │ │ ├── Audits2Panel.js │ │ ├── Audits2ProtocolService.js │ │ ├── Audits2ReportRenderer.js │ │ ├── Audits2ReportSelector.js │ │ ├── Audits2StartView.js │ │ ├── Audits2StatusView.js │ │ ├── RadioSetting.js │ │ ├── audits2Dialog.css │ │ ├── audits2Panel.css │ │ ├── audits2StartView.css │ │ ├── lighthouse │ │ │ ├── LICENSE │ │ │ ├── README.chromium │ │ │ ├── renderer │ │ │ │ ├── category-renderer.js │ │ │ │ ├── crc-details-renderer.js │ │ │ │ ├── details-renderer.js │ │ │ │ ├── dom.js │ │ │ │ ├── performance-category-renderer.js │ │ │ │ ├── report-renderer.js │ │ │ │ └── util.js │ │ │ ├── report-styles.css │ │ │ └── templates.html │ │ └── module.json │ ├── audits2_test_runner │ │ ├── Audits2TestRunner.js │ │ └── module.json │ ├── audits2_worker.js │ ├── audits2_worker.json │ ├── audits2_worker │ │ ├── Audits2Service.js │ │ ├── lighthouse │ │ │ ├── LICENSE │ │ │ ├── README.chromium │ │ │ └── lighthouse-background.js │ │ └── module.json │ ├── bindings │ │ ├── BlackboxManager.js │ │ ├── BreakpointManager.js │ │ ├── CSSWorkspaceBinding.js │ │ ├── CompilerScriptMapping.js │ │ ├── ContentProviderBasedProject.js │ │ ├── DebuggerWorkspaceBinding.js │ │ ├── DefaultScriptMapping.js │ │ ├── FileUtils.js │ │ ├── LiveLocation.js │ │ ├── NetworkProject.js │ │ ├── PresentationConsoleMessageHelper.js │ │ ├── ResourceMapping.js │ │ ├── ResourceScriptMapping.js │ │ ├── ResourceUtils.js │ │ ├── SASSSourceMapping.js │ │ ├── StylesSourceMapping.js │ │ ├── TempFile.js │ │ └── module.json │ ├── bindings_test_runner │ │ ├── AutomappingTestRunner.js │ │ ├── BindingsTestRunner.js │ │ ├── IsolatedFilesystemTestRunner.js │ │ ├── OverridesTestRunner.js │ │ ├── PersistenceTestRunner.js │ │ └── module.json │ ├── browser_components │ │ ├── ImagePreview.js │ │ ├── imagePreview.css │ │ └── module.json │ ├── browser_console │ │ ├── BrowserConsole.js │ │ └── module.json │ ├── browser_debugger │ │ ├── DOMBreakpointsSidebarPane.js │ │ ├── EventListenerBreakpointsSidebarPane.js │ │ ├── ObjectEventListenersSidebarPane.js │ │ ├── XHRBreakpointsSidebarPane.js │ │ ├── domBreakpointsSidebarPane.css │ │ ├── eventListenerBreakpoints.css │ │ ├── module.json │ │ └── xhrBreakpointsSidebarPane.css │ ├── browser_sdk │ │ ├── HAREntry.js │ │ ├── LogManager.js │ │ ├── NetworkLog.js │ │ └── module.json │ ├── changes │ │ ├── ChangesHighlighter.js │ │ ├── ChangesSidebar.js │ │ ├── ChangesView.js │ │ ├── changesSidebar.css │ │ ├── changesView.css │ │ └── module.json │ ├── cm │ │ ├── LICENSE │ │ ├── LICENSE_python │ │ ├── PRESUBMIT.py │ │ ├── README.md │ │ ├── activeline.js │ │ ├── closebrackets.js │ │ ├── codemirror.css │ │ ├── codemirror.js │ │ ├── comment.js │ │ ├── markselection.js │ │ ├── matchbrackets.js │ │ ├── module.json │ │ ├── multiplex.js │ │ └── overlay.js │ ├── cm_headless │ │ ├── headlesscodemirror.js │ │ └── module.json │ ├── cm_modes │ │ ├── DefaultCodeMirrorMimeMode.js │ │ ├── LICENSE │ │ ├── PRESUBMIT.py │ │ ├── clike.js │ │ ├── clojure.js │ │ ├── coffeescript.js │ │ ├── jsx.js │ │ ├── livescript.js │ │ ├── markdown.js │ │ ├── module.json │ │ ├── php.js │ │ ├── python.js │ │ ├── shell.js │ │ └── stylus.js │ ├── cm_web_modes │ │ ├── css.js │ │ ├── htmlembedded.js │ │ ├── htmlmixed.js │ │ ├── javascript.js │ │ └── xml.js │ ├── color_picker │ │ ├── ContrastDetails.js │ │ ├── ContrastInfo.js │ │ ├── ContrastOverlay.js │ │ ├── Spectrum.js │ │ ├── module.json │ │ └── spectrum.css │ ├── common │ │ ├── CharacterIdMap.js │ │ ├── Color.js │ │ ├── Console.js │ │ ├── ContentProvider.js │ │ ├── ModuleExtensionInterfaces.js │ │ ├── Object.js │ │ ├── OutputStream.js │ │ ├── ParsedURL.js │ │ ├── Progress.js │ │ ├── ResourceType.js │ │ ├── SegmentedRange.js │ │ ├── Settings.js │ │ ├── StaticContentProvider.js │ │ ├── TextDictionary.js │ │ ├── Throttler.js │ │ ├── Trie.js │ │ ├── UIString.js │ │ ├── Worker.js │ │ └── module.json │ ├── components │ │ ├── DockController.js │ │ ├── JSPresentationUtils.js │ │ ├── Linkifier.js │ │ ├── Reload.js │ │ ├── TargetDetachedDialog.js │ │ ├── jsUtils.css │ │ └── module.json │ ├── console │ │ ├── ConsoleContextSelector.js │ │ ├── ConsoleFilter.js │ │ ├── ConsolePanel.js │ │ ├── ConsolePinPane.js │ │ ├── ConsolePrompt.js │ │ ├── ConsoleSidebar.js │ │ ├── ConsoleView.js │ │ ├── ConsoleViewMessage.js │ │ ├── ConsoleViewport.js │ │ ├── consoleContextSelector.css │ │ ├── consolePinPane.css │ │ ├── consoleSidebar.css │ │ ├── consoleView.css │ │ └── module.json │ ├── console_counters │ │ ├── WarningErrorCounter.js │ │ ├── errorWarningCounter.css │ │ └── module.json │ ├── console_test_runner │ │ ├── ConsoleTestRunner.js │ │ └── module.json │ ├── cookie_table │ │ ├── CookiesTable.js │ │ └── module.json │ ├── coverage │ │ ├── CoverageDecorationManager.js │ │ ├── CoverageListView.js │ │ ├── CoverageModel.js │ │ ├── CoverageView.js │ │ ├── coverageListView.css │ │ ├── coverageView.css │ │ └── module.json │ ├── coverage_test_runner │ │ ├── CoverageTestRunner.js │ │ └── module.json │ ├── cpu_profiler_test_runner │ │ ├── ProfilerTestRunner.js │ │ └── module.json │ ├── data_grid │ │ ├── DataGrid.js │ │ ├── ShowMoreDataGridNode.js │ │ ├── SortableDataGrid.js │ │ ├── ViewportDataGrid.js │ │ ├── dataGrid.css │ │ └── module.json │ ├── data_grid_test_runner │ │ ├── DataGridTestRunner.js │ │ └── module.json │ ├── device_mode_test_runner │ │ ├── DeviceModeTestRunner.js │ │ └── module.json │ ├── devices │ │ ├── DevicesView.js │ │ ├── devicesView.css │ │ └── module.json │ ├── devtools_app.html │ ├── devtools_app.js │ ├── devtools_app.json │ ├── devtools_compatibility.js │ ├── diff │ │ ├── Diff.js │ │ ├── diff_match_patch.js │ │ └── module.json │ ├── dom_extension │ │ ├── DOMExtension.js │ │ └── module.json │ ├── elements │ │ ├── ClassesPaneWidget.js │ │ ├── ColorSwatchPopoverIcon.js │ │ ├── ComputedStyleModel.js │ │ ├── ComputedStyleWidget.js │ │ ├── DOMLinkifier.js │ │ ├── DOMPath.js │ │ ├── ElementStatePaneWidget.js │ │ ├── ElementsBreadcrumbs.js │ │ ├── ElementsPanel.js │ │ ├── ElementsSidebarPane.js │ │ ├── ElementsTreeElement.js │ │ ├── ElementsTreeElementHighlighter.js │ │ ├── ElementsTreeOutline.js │ │ ├── EventListenersWidget.js │ │ ├── InspectElementModeController.js │ │ ├── MarkerDecorator.js │ │ ├── MetricsSidebarPane.js │ │ ├── PlatformFontsWidget.js │ │ ├── PropertiesWidget.js │ │ ├── StylePropertyHighlighter.js │ │ ├── StylePropertyTreeElement.js │ │ ├── StylesSidebarPane.js │ │ ├── breadcrumbs.css │ │ ├── classesPaneWidget.css │ │ ├── computedStyleSidebarPane.css │ │ ├── computedStyleWidgetTree.css │ │ ├── domLinkifier.css │ │ ├── elementStatePaneWidget.css │ │ ├── elementsPanel.css │ │ ├── elementsTreeOutline.css │ │ ├── metricsSidebarPane.css │ │ ├── module.json │ │ ├── platformFontsWidget.css │ │ ├── propertiesWidget.css │ │ ├── stylesSectionTree.css │ │ └── stylesSidebarPane.css │ ├── elements_test_runner │ │ ├── EditDOMTestRunner.js │ │ ├── ElementsPanelShadowSelectionOnRefreshTestRunner.js │ │ ├── ElementsTestRunner.js │ │ ├── SetOuterHTMLTestRunner.js │ │ ├── StylesUpdateLinksTestRunner.js │ │ └── module.json │ ├── emulated_devices │ │ ├── Nexus5X-landscape.svg │ │ ├── Nexus5X-portrait.svg │ │ ├── Nexus6P-landscape.svg │ │ ├── Nexus6P-portrait.svg │ │ ├── google-nexus-5-horizontal-default-1x.png │ │ ├── google-nexus-5-horizontal-default-2x.png │ │ ├── google-nexus-5-horizontal-keyboard-1x.png │ │ ├── google-nexus-5-horizontal-keyboard-2x.png │ │ ├── google-nexus-5-horizontal-navigation-1x.png │ │ ├── google-nexus-5-horizontal-navigation-2x.png │ │ ├── google-nexus-5-vertical-default-1x.png │ │ ├── google-nexus-5-vertical-default-2x.png │ │ ├── google-nexus-5-vertical-keyboard-1x.png │ │ ├── google-nexus-5-vertical-keyboard-2x.png │ │ ├── google-nexus-5-vertical-navigation-1x.png │ │ ├── google-nexus-5-vertical-navigation-2x.png │ │ ├── google-nexus-5x-horizontal-default-1x.png │ │ ├── google-nexus-5x-horizontal-default-2x.png │ │ ├── google-nexus-5x-horizontal-keyboard-1x.png │ │ ├── google-nexus-5x-horizontal-keyboard-2x.png │ │ ├── google-nexus-5x-horizontal-navigation-1x.png │ │ ├── google-nexus-5x-horizontal-navigation-2x.png │ │ ├── google-nexus-5x-vertical-default-1x.png │ │ ├── google-nexus-5x-vertical-default-2x.png │ │ ├── google-nexus-5x-vertical-keyboard-1x.png │ │ ├── google-nexus-5x-vertical-keyboard-2x.png │ │ ├── google-nexus-5x-vertical-navigation-1x.png │ │ ├── google-nexus-5x-vertical-navigation-2x.png │ │ ├── iPad-landscape.svg │ │ ├── iPad-portrait.svg │ │ ├── iPhone5-landscape.svg │ │ ├── iPhone5-portrait.svg │ │ ├── iPhone6-landscape.svg │ │ ├── iPhone6-portrait.svg │ │ ├── iPhone6Plus-landscape.svg │ │ ├── iPhone6Plus-portrait.svg │ │ └── module.json │ ├── emulation │ │ ├── AdvancedApp.js │ │ ├── DeviceModeModel.js │ │ ├── DeviceModeToolbar.js │ │ ├── DeviceModeView.js │ │ ├── DeviceModeWrapper.js │ │ ├── DevicesSettingsTab.js │ │ ├── EmulatedDevices.js │ │ ├── InspectedPagePlaceholder.js │ │ ├── MediaQueryInspector.js │ │ ├── SensorsView.js │ │ ├── deviceModeToolbar.css │ │ ├── deviceModeView.css │ │ ├── devicesSettingsTab.css │ │ ├── inspectedPagePlaceholder.css │ │ ├── mediaQueryInspector.css │ │ ├── module.json │ │ └── sensors.css │ ├── event_listeners │ │ ├── EventListenersUtils.js │ │ ├── EventListenersView.js │ │ ├── eventListenersView.css │ │ └── module.json │ ├── extensions │ │ ├── ExtensionAPI.js │ │ ├── ExtensionPanel.js │ │ ├── ExtensionRegistryStub.js │ │ ├── ExtensionServer.js │ │ ├── ExtensionTraceProvider.js │ │ ├── ExtensionView.js │ │ └── module.json │ ├── extensions_test_runner │ │ ├── ExtensionsNetworkTestRunner.js │ │ ├── ExtensionsTestRunner.js │ │ └── module.json │ ├── externs.js │ ├── formatter │ │ ├── FormatterWorkerPool.js │ │ ├── ScriptFormatter.js │ │ └── module.json │ ├── formatter_worker.js │ ├── formatter_worker.json │ ├── formatter_worker │ │ ├── AcornTokenizer.js │ │ ├── CSSFormatter.js │ │ ├── CSSRuleParser.js │ │ ├── ESTreeWalker.js │ │ ├── FormattedContentBuilder.js │ │ ├── FormatterWorker.js │ │ ├── HTMLFormatter.js │ │ ├── IdentityFormatter.js │ │ ├── JavaScriptFormatter.js │ │ ├── JavaScriptOutline.js │ │ ├── RelaxedJSONParser.js │ │ ├── acorn │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ ├── acorn.js │ │ │ └── acorn_loose.js │ │ └── module.json │ ├── har_importer │ │ ├── HARFormat.js │ │ ├── HARImporter.js │ │ └── module.json │ ├── heap_profiler_test_runner │ │ ├── HeapProfilerTestRunner.js │ │ └── module.json │ ├── heap_snapshot_model │ │ ├── HeapSnapshotModel.js │ │ └── module.json │ ├── heap_snapshot_worker.js │ ├── heap_snapshot_worker.json │ ├── heap_snapshot_worker │ │ ├── AllocationProfile.js │ │ ├── HeapSnapshot.js │ │ ├── HeapSnapshotLoader.js │ │ ├── HeapSnapshotWorker.js │ │ ├── HeapSnapshotWorkerDispatcher.js │ │ └── module.json │ ├── help │ │ ├── Help.js │ │ ├── ReleaseNoteText.js │ │ ├── ReleaseNoteView.js │ │ ├── module.json │ │ └── releaseNote.css │ ├── host │ │ ├── InspectorFrontendHost.js │ │ ├── InspectorFrontendHostAPI.js │ │ ├── Platform.js │ │ ├── ResourceLoader.js │ │ ├── UserMetrics.js │ │ └── module.json │ ├── inline_editor │ │ ├── BezierEditor.js │ │ ├── BezierUI.js │ │ ├── CSSShadowEditor.js │ │ ├── CSSShadowModel.js │ │ ├── ColorSwatch.js │ │ ├── SwatchPopoverHelper.js │ │ ├── bezierEditor.css │ │ ├── bezierSwatch.css │ │ ├── colorSwatch.css │ │ ├── cssShadowEditor.css │ │ ├── cssShadowSwatch.css │ │ ├── module.json │ │ └── swatchPopover.css │ ├── inspector.html │ ├── inspector.js │ ├── inspector.json │ ├── inspector_main │ │ ├── InspectorMain.js │ │ ├── RenderingOptions.js │ │ ├── RequestAppBannerActionDelegate.js │ │ ├── module.json │ │ ├── nodeIcon.css │ │ └── renderingOptions.css │ ├── integration_test_runner.html │ ├── integration_test_runner.js │ ├── integration_test_runner.json │ ├── javascript_metadata │ │ ├── JavaScriptMetadata.js │ │ ├── NativeFunctions.js │ │ └── module.json │ ├── js_app.html │ ├── js_app.js │ ├── js_app.json │ ├── js_main │ │ ├── JsMain.js │ │ └── module.json │ ├── js_profiler │ │ └── module.json │ ├── layer_viewer │ │ ├── LayerDetailsView.js │ │ ├── LayerTreeOutline.js │ │ ├── LayerViewHost.js │ │ ├── Layers3DView.js │ │ ├── PaintProfilerView.js │ │ ├── TransformController.js │ │ ├── layerDetailsView.css │ │ ├── layers3DView.css │ │ ├── module.json │ │ └── paintProfiler.css │ ├── layers │ │ ├── LayerPaintProfilerView.js │ │ ├── LayerTreeModel.js │ │ ├── LayersPanel.js │ │ └── module.json │ ├── layers_test_runner │ │ ├── LayersTestRunner.js │ │ └── module.json │ ├── main │ │ ├── ExecutionContextSelector.js │ │ ├── Main.js │ │ ├── SimpleApp.js │ │ └── module.json │ ├── mobile_throttling │ │ ├── MobileThrottlingSelector.js │ │ ├── NetworkPanelIndicator.js │ │ ├── NetworkThrottlingSelector.js │ │ ├── ThrottlingManager.js │ │ ├── ThrottlingPresets.js │ │ ├── ThrottlingSettingsTab.js │ │ ├── module.json │ │ └── throttlingSettingsTab.css │ ├── ndb_app.html │ ├── ndb_app.js │ ├── ndb_app.json │ ├── network │ │ ├── BlockedURLsPane.js │ │ ├── EventSourceMessagesView.js │ │ ├── HARWriter.js │ │ ├── NetworkConfigView.js │ │ ├── NetworkDataGridNode.js │ │ ├── NetworkFrameGrouper.js │ │ ├── NetworkItemView.js │ │ ├── NetworkLogView.js │ │ ├── NetworkLogViewColumns.js │ │ ├── NetworkManageCustomHeadersView.js │ │ ├── NetworkOverview.js │ │ ├── NetworkPanel.js │ │ ├── NetworkSearchScope.js │ │ ├── NetworkTimeCalculator.js │ │ ├── NetworkWaterfallColumn.js │ │ ├── RequestCookiesView.js │ │ ├── RequestHTMLView.js │ │ ├── RequestHeadersView.js │ │ ├── RequestPreviewView.js │ │ ├── RequestResponseView.js │ │ ├── RequestTimingView.js │ │ ├── ResourceWebSocketFrameView.js │ │ ├── SignedExchangeInfoView.js │ │ ├── blockedURLsPane.css │ │ ├── eventSourceMessagesView.css │ │ ├── module.json │ │ ├── networkConfigView.css │ │ ├── networkLogView.css │ │ ├── networkManageCustomHeadersView.css │ │ ├── networkPanel.css │ │ ├── networkTimingTable.css │ │ ├── networkWaterfallColumn.css │ │ ├── requestCookiesView.css │ │ ├── requestHTMLView.css │ │ ├── requestHeadersTree.css │ │ ├── requestHeadersView.css │ │ ├── signedExchangeInfoTree.css │ │ ├── signedExchangeInfoView.css │ │ └── webSocketFrameView.css │ ├── network_test_runner │ │ ├── NetworkTestRunner.js │ │ ├── ProductRegistryTestRunner.js │ │ └── module.json │ ├── node_app.html │ ├── node_app.js │ ├── node_app.json │ ├── node_debugger │ │ └── module.json │ ├── node_main │ │ ├── NodeConnectionsPanel.js │ │ ├── NodeMain.js │ │ ├── module.json │ │ └── nodeConnectionsPanel.css │ ├── object_ui │ │ ├── CustomPreviewComponent.js │ │ ├── JavaScriptAutocomplete.js │ │ ├── ObjectPopoverHelper.js │ │ ├── ObjectPropertiesSection.js │ │ ├── RemoteObjectPreviewFormatter.js │ │ ├── customPreviewComponent.css │ │ ├── module.json │ │ ├── objectPopover.css │ │ ├── objectPropertiesSection.css │ │ └── objectValue.css │ ├── perf_ui │ │ ├── ChartViewport.js │ │ ├── FilmStripView.js │ │ ├── FlameChart.js │ │ ├── GCActionDelegate.js │ │ ├── LineLevelProfile.js │ │ ├── NetworkPriorities.js │ │ ├── OverviewGrid.js │ │ ├── PieChart.js │ │ ├── TimelineGrid.js │ │ ├── TimelineOverviewPane.js │ │ ├── chartViewport.css │ │ ├── filmStripView.css │ │ ├── flameChart.css │ │ ├── module.json │ │ ├── overviewGrid.css │ │ ├── pieChart.css │ │ ├── timelineGrid.css │ │ └── timelineOverviewInfo.css │ ├── performance_monitor │ │ ├── PerformanceMonitor.js │ │ ├── module.json │ │ └── performanceMonitor.css │ ├── performance_test_runner │ │ ├── TimelineDataTestRunner.js │ │ ├── TimelineTestRunner.js │ │ └── module.json │ ├── persistence │ │ ├── Automapping.js │ │ ├── EditFileSystemView.js │ │ ├── FileSystemWorkspaceBinding.js │ │ ├── IsolatedFileSystem.js │ │ ├── IsolatedFileSystemManager.js │ │ ├── NetworkPersistenceManager.js │ │ ├── Persistence.js │ │ ├── PersistenceActions.js │ │ ├── PersistenceUtils.js │ │ ├── WorkspaceSettingsTab.js │ │ ├── editFileSystemView.css │ │ ├── module.json │ │ └── workspaceSettingsTab.css │ ├── platform │ │ ├── module.json │ │ └── utilities.js │ ├── product_registry │ │ ├── BadgePool.js │ │ ├── ProductRegistry.js │ │ ├── badge.css │ │ ├── module.json │ │ └── popup.css │ ├── product_registry_impl │ │ ├── ProductRegistryData.js │ │ ├── ProductRegistryImpl.js │ │ ├── module.json │ │ └── sha1 │ │ │ ├── README.chromium │ │ │ └── sha1.js │ ├── profiler │ │ ├── BottomUpProfileDataGrid.js │ │ ├── CPUProfileFlameChart.js │ │ ├── CPUProfileView.js │ │ ├── HeapProfileView.js │ │ ├── HeapProfilerPanel.js │ │ ├── HeapSnapshotDataGrids.js │ │ ├── HeapSnapshotGridNodes.js │ │ ├── HeapSnapshotProxy.js │ │ ├── HeapSnapshotView.js │ │ ├── IsolateSelector.js │ │ ├── ProfileDataGrid.js │ │ ├── ProfileHeader.js │ │ ├── ProfileLauncherView.js │ │ ├── ProfileType.js │ │ ├── ProfileTypeRegistry.js │ │ ├── ProfileView.js │ │ ├── ProfilesPanel.js │ │ ├── TopDownProfileDataGrid.js │ │ ├── heapProfiler.css │ │ ├── module.json │ │ ├── profileLauncherView.css │ │ ├── profilesPanel.css │ │ └── profilesSidebarTree.css │ ├── protocol │ │ ├── InspectorBackend.js │ │ └── module.json │ ├── protocol_monitor │ │ ├── ProtocolMonitor.js │ │ ├── module.json │ │ └── protocolMonitor.css │ ├── quick_open │ │ ├── CommandMenu.js │ │ ├── FilteredListWidget.js │ │ ├── HelpQuickOpen.js │ │ ├── QuickOpen.js │ │ ├── filteredListWidget.css │ │ └── module.json │ ├── resources │ │ ├── AppManifestView.js │ │ ├── ApplicationCacheItemsView.js │ │ ├── ApplicationCacheModel.js │ │ ├── ApplicationPanelSidebar.js │ │ ├── ClearStorageView.js │ │ ├── CookieItemsView.js │ │ ├── DOMStorageItemsView.js │ │ ├── DOMStorageModel.js │ │ ├── DatabaseModel.js │ │ ├── DatabaseQueryView.js │ │ ├── DatabaseTableView.js │ │ ├── IndexedDBModel.js │ │ ├── IndexedDBViews.js │ │ ├── ResourcesPanel.js │ │ ├── ResourcesSection.js │ │ ├── ServiceWorkerCacheViews.js │ │ ├── ServiceWorkersView.js │ │ ├── StorageItemsView.js │ │ ├── appManifestView.css │ │ ├── clearStorageView.css │ │ ├── indexedDBViews.css │ │ ├── module.json │ │ ├── resourcesPanel.css │ │ ├── resourcesSidebar.css │ │ ├── serviceWorkerCacheViews.css │ │ └── serviceWorkersView.css │ ├── screencast │ │ ├── InputModel.js │ │ ├── ScreencastApp.js │ │ ├── ScreencastView.js │ │ ├── module.json │ │ └── screencastView.css │ ├── sdk │ │ ├── CPUProfileDataModel.js │ │ ├── CPUProfilerModel.js │ │ ├── CSSMatchedStyles.js │ │ ├── CSSMedia.js │ │ ├── CSSMetadata.js │ │ ├── CSSModel.js │ │ ├── CSSProperty.js │ │ ├── CSSRule.js │ │ ├── CSSStyleDeclaration.js │ │ ├── CSSStyleSheetHeader.js │ │ ├── ChildTargetManager.js │ │ ├── Connections.js │ │ ├── ConsoleModel.js │ │ ├── ContentProviders.js │ │ ├── CookieModel.js │ │ ├── CookieParser.js │ │ ├── DOMDebuggerModel.js │ │ ├── DOMModel.js │ │ ├── DebuggerModel.js │ │ ├── EmulationModel.js │ │ ├── FilmStripModel.js │ │ ├── HeapProfilerModel.js │ │ ├── LayerTreeBase.js │ │ ├── LogModel.js │ │ ├── NetworkManager.js │ │ ├── NetworkRequest.js │ │ ├── OverlayModel.js │ │ ├── PaintProfiler.js │ │ ├── PerformanceMetricsModel.js │ │ ├── ProfileTreeModel.js │ │ ├── RemoteObject.js │ │ ├── Resource.js │ │ ├── ResourceTreeModel.js │ │ ├── RuntimeModel.js │ │ ├── ScreenCaptureModel.js │ │ ├── Script.js │ │ ├── SecurityOriginManager.js │ │ ├── ServerTiming.js │ │ ├── ServiceWorkerCacheModel.js │ │ ├── ServiceWorkerManager.js │ │ ├── SourceMap.js │ │ ├── SourceMapManager.js │ │ ├── Target.js │ │ ├── TargetManager.js │ │ ├── TracingManager.js │ │ ├── TracingModel.js │ │ └── module.json │ ├── sdk_test_runner │ │ ├── PageMockTestRunner.js │ │ └── module.json │ ├── search │ │ ├── SearchConfig.js │ │ ├── SearchResultsPane.js │ │ ├── SearchView.js │ │ ├── module.json │ │ ├── searchResultsPane.css │ │ └── searchView.css │ ├── security │ │ ├── SecurityModel.js │ │ ├── SecurityPanel.js │ │ ├── lockIcon.css │ │ ├── mainView.css │ │ ├── module.json │ │ ├── originView.css │ │ └── sidebar.css │ ├── security_test_runner │ │ ├── SecurityTestRunner.js │ │ └── module.json │ ├── services │ │ ├── ServiceManager.js │ │ └── module.json │ ├── settings │ │ ├── FrameworkBlackboxSettingsTab.js │ │ ├── SettingsScreen.js │ │ ├── frameworkBlackboxSettingsTab.css │ │ ├── module.json │ │ └── settingsScreen.css │ ├── shell.json │ ├── snippets │ │ ├── ScriptSnippetModel.js │ │ ├── SnippetStorage.js │ │ ├── SnippetsQuickOpen.js │ │ └── module.json │ ├── source_frame │ │ ├── FontView.js │ │ ├── ImageView.js │ │ ├── JSONView.js │ │ ├── PreviewFactory.js │ │ ├── ResourceSourceFrame.js │ │ ├── SourceCodeDiff.js │ │ ├── SourceFrame.js │ │ ├── SourcesTextEditor.js │ │ ├── XMLView.js │ │ ├── fontView.css │ │ ├── imageView.css │ │ ├── jsonView.css │ │ ├── messagesPopover.css │ │ ├── module.json │ │ ├── resourceSourceFrame.css │ │ ├── xmlTree.css │ │ └── xmlView.css │ ├── sources │ │ ├── AddSourceMapURLDialog.js │ │ ├── CSSPlugin.js │ │ ├── CallStackSidebarPane.js │ │ ├── DebuggerPausedMessage.js │ │ ├── DebuggerPlugin.js │ │ ├── EditingLocationHistoryManager.js │ │ ├── FilePathScoreFunction.js │ │ ├── FilteredUISourceCodeListProvider.js │ │ ├── GoToLineQuickOpen.js │ │ ├── GutterDiffPlugin.js │ │ ├── InplaceFormatterEditorAction.js │ │ ├── JavaScriptBreakpointsSidebarPane.js │ │ ├── JavaScriptCompilerPlugin.js │ │ ├── NavigatorView.js │ │ ├── OpenFileQuickOpen.js │ │ ├── OutlineQuickOpen.js │ │ ├── ScopeChainSidebarPane.js │ │ ├── ScriptFormatterEditorAction.js │ │ ├── SearchSourcesView.js │ │ ├── SimpleHistoryManager.js │ │ ├── SnippetsPlugin.js │ │ ├── SourceFormatter.js │ │ ├── SourceMapNamesResolver.js │ │ ├── SourcesNavigator.js │ │ ├── SourcesPanel.js │ │ ├── SourcesSearchScope.js │ │ ├── SourcesView.js │ │ ├── TabbedEditorContainer.js │ │ ├── ThreadsSidebarPane.js │ │ ├── UISourceCodeFrame.js │ │ ├── WatchExpressionsSidebarPane.js │ │ ├── callStackSidebarPane.css │ │ ├── debuggerPausedMessage.css │ │ ├── dialog.css │ │ ├── javaScriptBreakpointsSidebarPane.css │ │ ├── module.json │ │ ├── navigatorTree.css │ │ ├── navigatorView.css │ │ ├── revisionHistory.css │ │ ├── scopeChainSidebarPane.css │ │ ├── serviceWorkersSidebar.css │ │ ├── sourcesPanel.css │ │ ├── sourcesView.css │ │ ├── threadsSidebarPane.css │ │ └── watchExpressionsSidebarPane.css │ ├── sources_test_runner │ │ ├── AutocompleteTestRunner.js │ │ ├── DebuggerTestRunner.js │ │ ├── EditorTestRunner.js │ │ ├── LiveEditTestRunner.js │ │ ├── SearchTestRunner.js │ │ ├── SourcesTestRunner.js │ │ └── module.json │ ├── terminal │ │ ├── TerminalWidget.js │ │ ├── module.json │ │ ├── terminal.css │ │ └── xterm.js │ │ │ ├── LICENSE │ │ │ ├── README.chromium │ │ │ ├── addons │ │ │ └── fit │ │ │ │ ├── fit.js │ │ │ │ └── package.json │ │ │ └── build │ │ │ ├── xterm.css │ │ │ └── xterm.js │ ├── test_runner │ │ ├── TestRunner.js │ │ └── module.json │ ├── text_editor │ │ ├── CodeMirrorTextEditor.js │ │ ├── CodeMirrorUtils.js │ │ ├── TextEditorAutocompleteController.js │ │ ├── autocompleteTooltip.css │ │ ├── cmdevtools.css │ │ └── module.json │ ├── text_utils │ │ ├── Text.js │ │ ├── TextRange.js │ │ ├── TextUtils.js │ │ └── module.json │ ├── timeline │ │ ├── CountersGraph.js │ │ ├── EventsTimelineTreeView.js │ │ ├── ExtensionTracingSession.js │ │ ├── PerformanceModel.js │ │ ├── TimelineController.js │ │ ├── TimelineDetailsView.js │ │ ├── TimelineEventOverview.js │ │ ├── TimelineFilters.js │ │ ├── TimelineFlameChartDataProvider.js │ │ ├── TimelineFlameChartNetworkDataProvider.js │ │ ├── TimelineFlameChartView.js │ │ ├── TimelineHistoryManager.js │ │ ├── TimelineLayersView.js │ │ ├── TimelineLoader.js │ │ ├── TimelinePaintProfilerView.js │ │ ├── TimelinePanel.js │ │ ├── TimelineTreeView.js │ │ ├── TimelineUIUtils.js │ │ ├── historyToolbarButton.css │ │ ├── invalidationsTree.css │ │ ├── module.json │ │ ├── timelineFlamechartPopover.css │ │ ├── timelineHistoryManager.css │ │ ├── timelinePaintProfiler.css │ │ ├── timelinePanel.css │ │ └── timelineStatusDialog.css │ ├── timeline_model │ │ ├── TimelineFrameModel.js │ │ ├── TimelineIRModel.js │ │ ├── TimelineJSProfile.js │ │ ├── TimelineModel.js │ │ ├── TimelineModelFilter.js │ │ ├── TimelineProfileTree.js │ │ ├── TracingLayerTree.js │ │ └── module.json │ ├── toolbox.html │ ├── toolbox.js │ ├── toolbox.json │ ├── toolbox_bootstrap │ │ ├── Toolbox.js │ │ └── module.json │ ├── ui │ │ ├── ARIAUtils.js │ │ ├── ActionRegistry.js │ │ ├── Context.js │ │ ├── ContextMenu.js │ │ ├── Dialog.js │ │ ├── DropTarget.js │ │ ├── EmptyWidget.js │ │ ├── FilterBar.js │ │ ├── FilterSuggestionBuilder.js │ │ ├── ForwardedInputEventHandler.js │ │ ├── Fragment.js │ │ ├── Geometry.js │ │ ├── GlassPane.js │ │ ├── HistoryInput.js │ │ ├── Icon.js │ │ ├── Infobar.js │ │ ├── InplaceEditor.js │ │ ├── InspectorView.js │ │ ├── KeyboardShortcut.js │ │ ├── ListControl.js │ │ ├── ListModel.js │ │ ├── ListWidget.js │ │ ├── Panel.js │ │ ├── Popover.js │ │ ├── ProgressIndicator.js │ │ ├── RemoteDebuggingTerminatedScreen.js │ │ ├── ReportView.js │ │ ├── ResizerWidget.js │ │ ├── RootView.js │ │ ├── SearchableView.js │ │ ├── SegmentedButton.js │ │ ├── SettingsUI.js │ │ ├── ShortcutRegistry.js │ │ ├── ShortcutsScreen.js │ │ ├── SoftContextMenu.js │ │ ├── SoftDropDown.js │ │ ├── SplitWidget.js │ │ ├── SuggestBox.js │ │ ├── SyntaxHighlighter.js │ │ ├── TabbedPane.js │ │ ├── TargetCrashedScreen.js │ │ ├── TextEditor.js │ │ ├── TextPrompt.js │ │ ├── ThrottledWidget.js │ │ ├── Toolbar.js │ │ ├── Tooltip.js │ │ ├── UIUtils.js │ │ ├── View.js │ │ ├── Widget.js │ │ ├── XElement.js │ │ ├── XLink.js │ │ ├── XWidget.js │ │ ├── ZoomManager.js │ │ ├── checkboxTextLabel.css │ │ ├── closeButton.css │ │ ├── confirmDialog.css │ │ ├── dialog.css │ │ ├── dropTarget.css │ │ ├── emptyWidget.css │ │ ├── filter.css │ │ ├── glassPane.css │ │ ├── infobar.css │ │ ├── inlineButton.css │ │ ├── inspectorCommon.css │ │ ├── inspectorStyle.css │ │ ├── inspectorSyntaxHighlight.css │ │ ├── inspectorSyntaxHighlightDark.css │ │ ├── inspectorViewTabbedPane.css │ │ ├── listWidget.css │ │ ├── module.json │ │ ├── popover.css │ │ ├── progressIndicator.css │ │ ├── radioButton.css │ │ ├── remoteDebuggingTerminatedScreen.css │ │ ├── reportView.css │ │ ├── rootView.css │ │ ├── searchableView.css │ │ ├── segmentedButton.css │ │ ├── slider.css │ │ ├── smallBubble.css │ │ ├── softContextMenu.css │ │ ├── softDropDown.css │ │ ├── softDropDownButton.css │ │ ├── splitWidget.css │ │ ├── suggestBox.css │ │ ├── tabbedPane.css │ │ ├── targetCrashedScreen.css │ │ ├── textButton.css │ │ ├── textPrompt.css │ │ ├── toolbar.css │ │ ├── tooltip.css │ │ ├── treeoutline.css │ │ ├── treeoutline.js │ │ └── viewContainers.css │ ├── worker_app.html │ ├── worker_app.js │ ├── worker_app.json │ ├── worker_main │ │ ├── WorkerMain.js │ │ └── module.json │ ├── worker_service │ │ ├── ServiceDispatcher.js │ │ └── module.json │ ├── workspace │ │ ├── FileManager.js │ │ ├── UISourceCode.js │ │ ├── Workspace.js │ │ └── module.json │ └── workspace_diff │ │ ├── WorkspaceDiff.js │ │ └── module.json ├── lib │ ├── app.js │ ├── common.js │ ├── constructors │ │ ├── EventEmitter.js │ │ ├── WebsocketClient.js │ │ └── _EventEmitter.js │ ├── datas │ │ └── performace.js │ ├── debug │ │ └── debugger.js │ ├── i18n │ │ ├── i18n.js │ │ └── locale.js │ ├── prophet │ │ ├── index.js │ │ ├── performance.js │ │ ├── preprocessTracingData.js │ │ ├── template │ │ │ └── report.js │ │ └── timeline.js │ ├── runtime │ │ └── index.js │ └── utils │ │ ├── anchor_tips.js │ │ └── toast.js ├── protocol.json ├── runtime.html └── vendor │ ├── doT.js │ ├── formSeralize.js │ ├── g2.js │ ├── qrcode.js │ ├── resizable.js │ └── rmodal.js ├── index.js ├── package.json ├── scripts └── update.js ├── src ├── MemoryFile.js ├── config │ └── index.js ├── index.js ├── link │ ├── constructors │ │ ├── channel.js │ │ ├── emitter.js │ │ ├── enum.js │ │ ├── filter.js │ │ ├── handler.js │ │ ├── hub.js │ │ ├── message.js │ │ ├── router.js │ │ └── terminal.js │ ├── handlers │ │ ├── debugger.js │ │ ├── device_manager.js │ │ ├── entry.js │ │ ├── inspector.js │ │ ├── native.js │ │ ├── runtime_proxy.js │ │ └── runtime_worker.js │ ├── index.js │ ├── managers │ │ ├── device_manager.js │ │ └── runtime_manager.js │ ├── setup.js │ └── tools │ │ ├── index.js │ │ ├── invoker.js │ │ └── loader.js ├── server │ ├── headless.js │ ├── index.js │ └── router │ │ ├── http.js │ │ └── websocket.js ├── util │ ├── Hosts.js │ ├── crypto.js │ ├── env.js │ ├── hosts.js │ ├── index.js │ ├── launcher.js │ ├── logger.js │ ├── request.js │ ├── util.js │ └── wrapper.js └── worker │ ├── sandbox_worker.js │ └── worker.js └── test ├── api.js └── channel.js /.eslintignore: -------------------------------------------------------------------------------- 1 | worker/ -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["eslint-config-standard", "eslint-config-prettier"], 3 | "parserOptions": { 4 | "ecmaVersion": 2017 5 | }, 6 | "rules": { 7 | "prefer-promise-reject-errors": "off", 8 | "no-new-func": "off", 9 | "standard/no-callback-literal": "off" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | demo 3 | .idea/ 4 | .DS_Store 5 | .vscode/ 6 | lib/ 7 | dest/ 8 | frontend/weex 9 | 10 | !frontend/lib/ 11 | 12 | frontend/lib/temp 13 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage/ 3 | .idea/ 4 | inspector_5.2 5 | inspector_5.4 6 | frontend/devtools 7 | 8 | .git/ 9 | .vscode/ 10 | 11 | src/ 12 | 13 | frontend/lib/temp 14 | 15 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | package.json 3 | package-lock.json 4 | yarn.lock 5 | readme.md 6 | lib/ -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "6" -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // 使用 IntelliSense 了解相关属性。 3 | // 悬停以查看现有属性的描述。 4 | // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "node", 9 | "request": "launch", 10 | "name": "Launch Program", 11 | "program": "${workspaceFolder}/bin/weex-devtool.js", 12 | "args": [ 13 | ] 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2015-present, Weex Team 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /frontend/assets/fonts/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/assets/fonts/iconfont.eot -------------------------------------------------------------------------------- /frontend/assets/fonts/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/assets/fonts/iconfont.ttf -------------------------------------------------------------------------------- /frontend/assets/fonts/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/assets/fonts/iconfont.woff -------------------------------------------------------------------------------- /frontend/assets/images/arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/assets/images/arrow_left.png -------------------------------------------------------------------------------- /frontend/assets/images/arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/assets/images/arrow_right.png -------------------------------------------------------------------------------- /frontend/assets/images/qrcode_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/assets/images/qrcode_bg.png -------------------------------------------------------------------------------- /frontend/assets/scss/prophet.scss: -------------------------------------------------------------------------------- 1 | @import 'timeline.scss'; 2 | @import 'performance.scss'; 3 | 4 | #prophet-page { 5 | width: 100%; 6 | position: fixed; 7 | bottom: 0; 8 | left: 0; 9 | right: 0; 10 | height: calc(100% - 100px); 11 | background: white; 12 | visibility: hidden; 13 | z-index: 10; 14 | } 15 | 16 | #operate-menu { 17 | display: inline-block; 18 | height: 52px; 19 | vertical-align: middle; 20 | } 21 | 22 | #prophet-menu { 23 | display: none; 24 | .menu-btn { 25 | display: inline-block; 26 | color: rgba(255, 255, 255, 0.75); 27 | padding: 5px 12px; 28 | border-radius: 6px; 29 | font-size: 16px; 30 | cursor: pointer; 31 | margin-top: 11px; 32 | margin-left: 32px; 33 | transition: all .2s ease; 34 | &:hover { 35 | color: rgba(255, 255, 255, 1); 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /frontend/assets/styles/anchor-tips.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "mappings": "AAAA,cAAc;EACZ,QAAQ,EAAE,QAAQ;EAClB,eAAe,EAAE,SAAS;EAC1B,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,IAAI;EACb,UAAU,EAAC,IAAI;;AAEjB,mBAAmB;EACjB,gBAAgB,EAAE,8BAA8B;;AAGlD,uCAAuC;EACrC,SAAS,EAAE,cAAc;;AAE3B,0BAA0B;EACxB,gBAAgB,EAAE,6BAA6B;;AAGjD,8CAA8C;EAC5C,SAAS,EAAE,cAAc;;AAG3B,oBAAoB;EAClB,gBAAgB,EAAE,6BAA6B;;AAEjD,wCAAwC;EACtC,SAAS,EAAE,aAAa;;AAE1B,2BAA2B;EACzB,gBAAgB,EAAE,8BAA8B;;AAGlD,+CAA+C;EAC7C,SAAS,EAAE,cAAc;;AAE3B,mBAAmB;EACjB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,OAAO;EACpB,WAAW,EAAE,OAAO;;AAGtB,uCAAuC;EACrC,SAAS,EAAC,0BAAyB;;AAErC,mBAAmB;EACjB,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,mBAAgB;EAC5B,OAAO,EAAE,GAAG;EACZ,OAAO,EAAE,IAAI;EACb,QAAQ,EAAC,MAAM;EACf,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,CAAC;;AAEZ,mBAAmB;EACjB,OAAO,EAAE,CAAC", 4 | "sources": ["../scss/anchor-tips.scss"], 5 | "names": [], 6 | "file": "anchor-tips.css" 7 | } 8 | -------------------------------------------------------------------------------- /frontend/assets/styles/common.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "mappings": "AAAA,IAAK;EACH,MAAM,EAAE,IAAI;;AAGd,IAAK;EACH,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,uCAAuC;;AAGtD,QAAS;EACP,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,KAAK;EACjB,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,cAAc;EAC1B,aAAa,EAAE,cAAc;;AAG/B,MAAO;EACL,MAAM,EAAE,MAAM;EACd,MAAM,EAAE,cAAc;EACtB,OAAO,EAAE,QAAQ;EACjB,SAAS,EAAE,IAAI;EACf,aAAa,EAAE,GAAG;;AAGpB,CAAE;EACA,OAAO,EAAE,KAAK;;AAGhB,MAAM;EACJ,MAAM,EAAC,CAAC;EACR,OAAO,EAAC,CAAC;EACT,OAAO,EAAE,KAAK;;AAGhB,OAAQ;EACN,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,IAAI;EACb,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,QAAQ;;AAGpB,+BAAgC;EAC9B,OAAO,EAAE,IAAI;;AAGf,eAAgB;EACd,WAAW,EAAC,qBAAqB;EACjC,SAAS,EAAC,IAAI;EACd,UAAU,EAAC,MAAM;EACjB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,OAAO,EAAE,OAAO;EAChB,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,IAAI;EACjB,SAAS,EAAE,IAAI;EACf,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,KAAK;EACX,GAAG,EAAE,GAAG;;AAGV,OAAQ;EACN,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,OAAO;EACf,yBAAoB;IAClB,SAAS,EAAE,IAAI;;AAInB,+BAAgC;EAC9B,OAAO,EAAE,OAAO;EAChB,SAAS,EAAE,IAAI;;AAGjB,OAAO;EACL,OAAO,EAAE,eAAe", 4 | "sources": ["../scss/common.scss"], 5 | "names": [], 6 | "file": "common.css" 7 | } 8 | -------------------------------------------------------------------------------- /frontend/assets/styles/iconfont.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "mappings": "AAAA;;;;;;;;EAQE;AACF,UAOC;EANC,WAAW,EAAE,UAAU;EAAG,uBAAuB;EACjD,GAAG,EAAE,wDAAwD;EAC7D,GAAG,EAAE,mUAG0E;AAGjF,SAAU;EACR,WAAW,EAAC,qBAAqB;EACjC,SAAS,EAAC,IAAI;EACd,UAAU,EAAC,MAAM;EACjB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;;AAKpC,uBAAwB;EAAE,OAAO,EAAE,OAAO;;AAE1C,oBAAqB;EAAE,OAAO,EAAE,OAAO;;AAEvC,kBAAmB;EAAE,OAAO,EAAE,OAAO;;AAErC,eAAgB;EAAE,OAAO,EAAE,OAAO;;AAElC,iBAAkB;EAAE,OAAO,EAAE,OAAO;;AAEpC,gBAAiB;EAAE,OAAO,EAAE,OAAO;;AAEnC,oBAAqB;EAAE,OAAO,EAAE,OAAO;;AAEvC,kBAAmB;EAAE,OAAO,EAAE,OAAO;;AAErC,2BAA4B;EAAE,OAAO,EAAE,OAAO;;AAE9C,8BAA+B;EAAE,OAAO,EAAE,OAAO;;AAEjD,6BAA8B;EAAE,OAAO,EAAE,OAAO;;AAEhD,6BAA8B;EAAE,OAAO,EAAE,OAAO;;AAEhD,qBAAsB;EAAE,OAAO,EAAE,OAAO;;AAExC,mBAAoB;EAAE,OAAO,EAAE,OAAO;;AAEtC,wBAAyB;EAAE,OAAO,EAAE,OAAO;;AAE3C,gBAAiB;EAAE,OAAO,EAAE,OAAO;;AAEnC,sBAAuB;EAAE,OAAO,EAAE,OAAO", 4 | "sources": ["../scss/iconfont.scss"], 5 | "names": [], 6 | "file": "iconfont.css" 7 | } 8 | -------------------------------------------------------------------------------- /frontend/assets/styles/timeline.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "mappings": "AAAA,aAAc;EACZ,MAAM,EAAE,OAAO;EACf,iCAAoB;IAClB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,KAAK;EAGf,6BAAgB;IACd,MAAM,EAAE,IAAI;EAGd,oCAAuB;IACrB,MAAM,EAAE,gBAAgB;EAG1B,8BAAiB;IACf,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,4BAA4B;IACxC,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,GAAG;EAGd,gCAAmB;IACjB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,MAAM;EAInB,mCAAK;IACH,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,IAAI;EAIrB,iCAAoB;IAClB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,GAAG;IACV,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,MAAM;EAGpB,oDAAuC;IACrC,KAAK,EAAE,GAAG;EAGZ,0DAA6C;IACzC,gBAAgB,EAAE,wBAAqB;IACvC,aAAa,EAAE,IAAI", 4 | "sources": ["../scss/timeline.scss"], 5 | "names": [], 6 | "file": "timeline.css" 7 | } 8 | -------------------------------------------------------------------------------- /frontend/assets/styles/toast.css: -------------------------------------------------------------------------------- 1 | .widget-notice { 2 | position: fixed; 3 | left: 50%; 4 | top: 5%; 5 | -webkit-transform: translate(-50%); 6 | transform: translate(-50%); 7 | padding: 10px 30px; 8 | color: #fff; 9 | z-index: 1000; 10 | border-radius: 3px; 11 | cursor: pointer; 12 | -webkit-transition: 0.5s; 13 | transition: 0.5s; 14 | line-height: 1.6; 15 | font-size: 14px; 16 | background: #2b91d9; 17 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5abaff), to(#2b91d9)); 18 | background-image: linear-gradient(to bottom, #5abaff, #2b91d9); 19 | -webkit-box-shadow: 0px 0px 11px 0px rgba(0, 0, 0, 0.5); 20 | box-shadow: 0px 0px 11px 0px rgba(0, 0, 0, 0.5); } 21 | 22 | .widget-notice.disapear { 23 | opacity: 0; } 24 | 25 | /*# sourceMappingURL=toast.css.map */ -------------------------------------------------------------------------------- /frontend/assets/styles/toast.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "mappings": "AAAA,cAAc;EACV,QAAQ,EAAE,KAAK;EACf,IAAI,EAAE,GAAG;EACT,GAAG,EAAE,EAAE;EACP,SAAS,EAAE,eAAe;EAC1B,OAAO,EAAE,SAAS;EAClB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;EACb,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,IAAI;EAChB,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,OAAO;EACnB,gBAAgB,EAAE,4CAA4C;EAC9D,UAAU,EAAE,mCAAgC;;AAEhD,uBAAuB;EACnB,OAAO,EAAE,CAAC", 4 | "sources": ["../scss/toast.scss"], 5 | "names": [], 6 | "file": "toast.css" 7 | } 8 | -------------------------------------------------------------------------------- /frontend/devtool_fake.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/devtool_fake.html -------------------------------------------------------------------------------- /frontend/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/favicon.ico -------------------------------------------------------------------------------- /frontend/inspector/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | -------------------------------------------------------------------------------- /frontend/inspector/Images/accelerometer-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/accelerometer-back.png -------------------------------------------------------------------------------- /frontend/inspector/Images/accelerometer-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/accelerometer-bottom.png -------------------------------------------------------------------------------- /frontend/inspector/Images/accelerometer-front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/accelerometer-front.png -------------------------------------------------------------------------------- /frontend/inspector/Images/accelerometer-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/accelerometer-left.png -------------------------------------------------------------------------------- /frontend/inspector/Images/accelerometer-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/accelerometer-right.png -------------------------------------------------------------------------------- /frontend/inspector/Images/accelerometer-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/accelerometer-top.png -------------------------------------------------------------------------------- /frontend/inspector/Images/breakpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/breakpoint.png -------------------------------------------------------------------------------- /frontend/inspector/Images/breakpointConditional.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/breakpointConditional.png -------------------------------------------------------------------------------- /frontend/inspector/Images/breakpointConditional_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/breakpointConditional_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/breakpoint_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/breakpoint_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/checkboxCheckmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/checkboxCheckmark.png -------------------------------------------------------------------------------- /frontend/inspector/Images/checkboxCheckmark_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/checkboxCheckmark_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/checker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/checker.png -------------------------------------------------------------------------------- /frontend/inspector/Images/chevrons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/chevrons.png -------------------------------------------------------------------------------- /frontend/inspector/Images/chevrons_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/chevrons_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/chromeDisabledSelect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/chromeDisabledSelect.png -------------------------------------------------------------------------------- /frontend/inspector/Images/chromeDisabledSelect_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/chromeDisabledSelect_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/chromeLeft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/chromeLeft.png -------------------------------------------------------------------------------- /frontend/inspector/Images/chromeMiddle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/chromeMiddle.png -------------------------------------------------------------------------------- /frontend/inspector/Images/chromeRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/chromeRight.png -------------------------------------------------------------------------------- /frontend/inspector/Images/chromeSelect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/chromeSelect.png -------------------------------------------------------------------------------- /frontend/inspector/Images/chromeSelect_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/chromeSelect_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/deleteIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/deleteIcon.png -------------------------------------------------------------------------------- /frontend/inspector/Images/errorWave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/errorWave.png -------------------------------------------------------------------------------- /frontend/inspector/Images/errorWave_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/errorWave_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/ic_info_black_18dp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /frontend/inspector/Images/ic_warning_black_18dp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /frontend/inspector/Images/largeIcons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/largeIcons.png -------------------------------------------------------------------------------- /frontend/inspector/Images/largeIcons_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/largeIcons_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/mediumIcons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/mediumIcons.png -------------------------------------------------------------------------------- /frontend/inspector/Images/mediumIcons_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/mediumIcons_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/navigationControls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/navigationControls.png -------------------------------------------------------------------------------- /frontend/inspector/Images/navigationControls_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/navigationControls_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/nodeIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/nodeIcon.png -------------------------------------------------------------------------------- /frontend/inspector/Images/popoverArrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/popoverArrows.png -------------------------------------------------------------------------------- /frontend/inspector/Images/profileGroupIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/profileGroupIcon.png -------------------------------------------------------------------------------- /frontend/inspector/Images/profileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/profileIcon.png -------------------------------------------------------------------------------- /frontend/inspector/Images/profileSmallIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/profileSmallIcon.png -------------------------------------------------------------------------------- /frontend/inspector/Images/radioDot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/radioDot.png -------------------------------------------------------------------------------- /frontend/inspector/Images/readme.md: -------------------------------------------------------------------------------- 1 | ## Adding new icons 2 | 3 | 1. Use Inkscape 0.92 or newer. 4 | 1. Choose an existing spritesheet, like `largeIcons.svg` to add the icon to 5 | 1. Open that file with Inkscape and import the new SVG into the document 6 | 1. Place in an open spot, and use guides to scale the icon to a good size, relative to other icons 7 | 1. Any straight lines should be snapped to the closest pixel value. 8 | - Use the `Edit paths by nodes` tool (F2) to edit the path directly. 9 | - Tweak the X, Y values at the top to be integers. 10 | 1. Generate PNGs from the SVGs: 11 | - `./scripts/convert_svg_images_to_png.py` 12 | 1. Optimize PNGs: 13 | - `./scripts/optimize_png_images.py` 14 | 1. In `ui/Icon.js` add an entry in `UI.Icon.Descriptors`. 15 | - Look at the spritesheet's axes to identify the correct grid position. 16 | 1. You may want to regenerate devtools resources: 17 | - `ninja -C ~/chromium/src/out/Release/ devtools_frontend_resources` 18 | 19 | -------------------------------------------------------------------------------- /frontend/inspector/Images/resizeDiagonal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resizeDiagonal.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resizeDiagonal_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resizeDiagonal_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resizeHorizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resizeHorizontal.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resizeHorizontal_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resizeHorizontal_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resizeVertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resizeVertical.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resizeVertical_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resizeVertical_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resourceCSSIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resourceCSSIcon.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resourceDocumentIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resourceDocumentIcon.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resourceDocumentIconSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resourceDocumentIconSmall.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resourceJSIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resourceJSIcon.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resourcePlainIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resourcePlainIcon.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resourcePlainIconSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resourcePlainIconSmall.png -------------------------------------------------------------------------------- /frontend/inspector/Images/resourcesTimeGraphIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/resourcesTimeGraphIcon.png -------------------------------------------------------------------------------- /frontend/inspector/Images/searchNext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/searchNext.png -------------------------------------------------------------------------------- /frontend/inspector/Images/searchPrev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/searchPrev.png -------------------------------------------------------------------------------- /frontend/inspector/Images/securityIcons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/securityIcons.png -------------------------------------------------------------------------------- /frontend/inspector/Images/securityIcons_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/securityIcons_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/smallIcons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/smallIcons.png -------------------------------------------------------------------------------- /frontend/inspector/Images/smallIcons_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/smallIcons_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/speech.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/speech.png -------------------------------------------------------------------------------- /frontend/inspector/Images/src/breakpoint.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/inspector/Images/src/breakpointConditional.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/inspector/Images/src/optimize_png.hashes: -------------------------------------------------------------------------------- 1 | { 2 | "securityIcons.svg": "27676f7c1f1542659c7c49a8052259dc", 3 | "largeIcons.svg": "faf26930e93e7525a3cbcc595527662c", 4 | "breakpointConditional.svg": "4cf90210b2af2ed84db2f60b07bcde28", 5 | "checkboxCheckmark.svg": "f039bf85cee42ad5c30ca3bfdce7912a", 6 | "errorWave.svg": "e183fa242a22ed4784a92f6becbc2c45", 7 | "smallIcons.svg": "40aefe4606ebba939725954ff9f908ef", 8 | "mediumIcons.svg": "115d211e8c00873698de4c861d7f3e44", 9 | "breakpoint.svg": "69cd92d807259c022791112809b97799", 10 | "treeoutlineTriangles.svg": "2d26ab85d919f83d5021f2f385dffd0b", 11 | "chevrons.svg": "79b4b527771e30b6388ce664077b3409" 12 | } -------------------------------------------------------------------------------- /frontend/inspector/Images/src/svg2png.hashes: -------------------------------------------------------------------------------- 1 | { 2 | "securityIcons.svg": "27676f7c1f1542659c7c49a8052259dc", 3 | "largeIcons.svg": "faf26930e93e7525a3cbcc595527662c", 4 | "breakpointConditional.svg": "4cf90210b2af2ed84db2f60b07bcde28", 5 | "checkboxCheckmark.svg": "f039bf85cee42ad5c30ca3bfdce7912a", 6 | "errorWave.svg": "e183fa242a22ed4784a92f6becbc2c45", 7 | "smallIcons.svg": "40aefe4606ebba939725954ff9f908ef", 8 | "mediumIcons.svg": "115d211e8c00873698de4c861d7f3e44", 9 | "breakpoint.svg": "69cd92d807259c022791112809b97799", 10 | "treeoutlineTriangles.svg": "2d26ab85d919f83d5021f2f385dffd0b", 11 | "chevrons.svg": "79b4b527771e30b6388ce664077b3409" 12 | } -------------------------------------------------------------------------------- /frontend/inspector/Images/toolbarResizerVertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/toolbarResizerVertical.png -------------------------------------------------------------------------------- /frontend/inspector/Images/touchCursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/touchCursor.png -------------------------------------------------------------------------------- /frontend/inspector/Images/touchCursor_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/touchCursor_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/treeoutlineTriangles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/treeoutlineTriangles.png -------------------------------------------------------------------------------- /frontend/inspector/Images/treeoutlineTriangles_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/treeoutlineTriangles_2x.png -------------------------------------------------------------------------------- /frontend/inspector/Images/whatsnew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/Images/whatsnew.png -------------------------------------------------------------------------------- /frontend/inspector/OWNERS: -------------------------------------------------------------------------------- 1 | alph@chromium.org 2 | caseq@chromium.org 3 | dgozman@chromium.org 4 | lushnikov@chromium.org 5 | pfeldman@chromium.org 6 | -------------------------------------------------------------------------------- /frontend/inspector/accessibility/accessibilityProperties.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .ax-name { 8 | color: rgb(153, 69, 0); 9 | flex-shrink: 0; 10 | } 11 | 12 | .ax-readable-name { 13 | flex-shrink: 0; 14 | padding-left: 2px; 15 | } 16 | 17 | .ax-readable-string { 18 | font-style: italic; 19 | } 20 | 21 | .ax-value-string { 22 | color: rgb(200, 0, 0); 23 | } 24 | 25 | span.ax-internal-role { 26 | font-style: italic; 27 | } 28 | -------------------------------------------------------------------------------- /frontend/inspector/accessibility/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "elements-sidebar", 6 | "id": "accessibility.view", 7 | "title": "Accessibility", 8 | "order": 10, 9 | "persistence": "permanent", 10 | "className": "Accessibility.AccessibilitySidebarView" 11 | } 12 | ], 13 | "dependencies": ["elements"], 14 | "scripts": [ 15 | "AccessibilityModel.js", 16 | "AccessibilitySidebarView.js", 17 | "AccessibilityNodeView.js", 18 | "AccessibilityStrings.js", 19 | "ARIAAttributesView.js", 20 | "ARIAMetadata.js", 21 | "ARIAProperties.js", 22 | "AXBreadcrumbsPane.js" 23 | ], 24 | "skip_compilation": [ 25 | "ARIAProperties.js" 26 | ], 27 | "resources": [ 28 | "accessibilityNode.css", 29 | "accessibilityProperties.css", 30 | "axBreadcrumbs.css" 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /frontend/inspector/accessibility_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "accessibility", 5 | "elements_test_runner" 6 | ], 7 | "scripts": [ 8 | "AccessibilityPaneTestRunner.js" 9 | ], 10 | "skip_compilation": [ 11 | "AccessibilityPaneTestRunner.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /frontend/inspector/animation/animationScreenshotPopover.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | img { 8 | max-height: 300px; 9 | border-radius: 2px; 10 | } 11 | 12 | .animation-progress { 13 | position: absolute; 14 | height: 2px; 15 | bottom: 0; 16 | left: 0; 17 | background: var(--selection-bg-color); 18 | } 19 | -------------------------------------------------------------------------------- /frontend/inspector/animation/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "drawer-view", 6 | "id": "animations", 7 | "title": "Animations", 8 | "persistence": "closeable", 9 | "order": 0, 10 | "className": "Animation.AnimationTimeline" 11 | } 12 | ], 13 | "dependencies": [ 14 | "elements" 15 | ], 16 | "scripts": [ 17 | "AnimationModel.js", 18 | "AnimationGroupPreviewUI.js", 19 | "AnimationScreenshotPopover.js", 20 | "AnimationTimeline.js", 21 | "AnimationUI.js" 22 | ], 23 | "resources": [ 24 | "animationScreenshotPopover.css", 25 | "animationTimeline.css" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /frontend/inspector/application_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "resources", 5 | "console_test_runner", 6 | "sources", 7 | "sources_test_runner" 8 | ], 9 | "scripts": [ 10 | "AppcacheTestRunner.js", 11 | "CacheStorageTestRunner.js", 12 | "IndexedDBTestRunner.js", 13 | "ResourceTreeTestRunner.js", 14 | "ResourcesTestRunner.js", 15 | "ServiceWorkersTestRunner.js" 16 | ], 17 | "skip_compilation": [ 18 | "AppcacheTestRunner.js", 19 | "CacheStorageTestRunner.js", 20 | "IndexedDBTestRunner.js", 21 | "ResourceTreeTestRunner.js", 22 | "ResourcesTestRunner.js", 23 | "ServiceWorkersTestRunner.js" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /frontend/inspector/audits2/lighthouse/README.chromium: -------------------------------------------------------------------------------- 1 | Name: Lighthouse is a performance auditing component written in JavaScript that works in the browser. 2 | Short Name: lighthouse 3 | URL: github.com/GoogleChrome/lighthouse 4 | License: Apache License 2.0 5 | Security Critical: no 6 | 7 | This directory contains Chromium's version of the lighthouse report assets, including renderer. 8 | 9 | -------------------------------------------------------------------------------- /frontend/inspector/audits2_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "audits2" 5 | ], 6 | "scripts": [ 7 | "Audits2TestRunner.js" 8 | ] 9 | } -------------------------------------------------------------------------------- /frontend/inspector/audits2_worker.js: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | // Release build has Runtime.js bundled. 5 | if (!self.Runtime) 6 | self.importScripts('Runtime.js'); 7 | Runtime.startWorker('audits2_worker'); 8 | -------------------------------------------------------------------------------- /frontend/inspector/audits2_worker.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules": [ 3 | { "name": "worker_service", "type": "autostart" }, 4 | { "name": "audits2_worker", "type": "remote" } 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /frontend/inspector/audits2_worker/lighthouse/README.chromium: -------------------------------------------------------------------------------- 1 | Name: Lighthouse is a performance auditing component written in JavaScript that works in the browser. 2 | Short Name: lighthouse 3 | URL: github.com/GoogleChrome/lighthouse 4 | License: Apache License 2.0 5 | Security Critical: no 6 | 7 | This directory contains Chromium's version of lighthouse with tests, demo and sources removed. 8 | 9 | -------------------------------------------------------------------------------- /frontend/inspector/audits2_worker/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "worker_service" 4 | ], 5 | "extensions": [ 6 | { 7 | "type": "@Service", 8 | "factoryName": "Audits2Service", 9 | "name": "Audits2Service" 10 | } 11 | ], 12 | "scripts": [ 13 | "lighthouse/lighthouse-background.js", 14 | "Audits2Service.js" 15 | ], 16 | "skip_compilation": [ 17 | "lighthouse/lighthouse-background.js" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /frontend/inspector/bindings/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "sdk", 4 | "platform", 5 | "services", 6 | "workspace" 7 | ], 8 | "scripts": [ 9 | "LiveLocation.js", 10 | "ResourceMapping.js", 11 | "CompilerScriptMapping.js", 12 | "ResourceScriptMapping.js", 13 | "SASSSourceMapping.js", 14 | "StylesSourceMapping.js", 15 | "CSSWorkspaceBinding.js", 16 | "DebuggerWorkspaceBinding.js", 17 | "BreakpointManager.js", 18 | "ContentProviderBasedProject.js", 19 | "DefaultScriptMapping.js", 20 | "FileUtils.js", 21 | "BlackboxManager.js", 22 | "NetworkProject.js", 23 | "PresentationConsoleMessageHelper.js", 24 | "ResourceUtils.js", 25 | "TempFile.js" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /frontend/inspector/bindings_test_runner/OverridesTestRunner.js: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | /** 6 | * @param {string} folderPath 7 | * @return {!{isolatedFileSystem: !Persistence.IsolatedFileSystem, project: !Workspace.Project, testFileSystem: !BindingsTestRunner.TestFileSystem}} 8 | */ 9 | BindingsTestRunner.createOverrideProject = async function(folderPath) { 10 | const testFileSystem = new BindingsTestRunner.TestFileSystem(folderPath); 11 | const isolatedFileSystem = await testFileSystem.reportCreatedPromise('overrides'); 12 | isolatedFileSystem._type = 'overrides'; 13 | const project = 14 | Workspace.workspace.project(Persistence.FileSystemWorkspaceBinding.projectId(isolatedFileSystem.path())); 15 | console.assert(project); 16 | return {isolatedFileSystem, project, testFileSystem}; 17 | }; 18 | 19 | /** 20 | * @param {boolean} enabled 21 | */ 22 | BindingsTestRunner.setOverridesEnabled = function(enabled) { 23 | Common.settings.moduleSetting('persistenceNetworkOverridesEnabled').set(enabled); 24 | }; 25 | -------------------------------------------------------------------------------- /frontend/inspector/bindings_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "workspace", 5 | "diff", 6 | "bindings", 7 | "persistence" 8 | ], 9 | "scripts": [ 10 | "BindingsTestRunner.js", 11 | "IsolatedFilesystemTestRunner.js", 12 | "AutomappingTestRunner.js", 13 | "PersistenceTestRunner.js", 14 | "OverridesTestRunner.js" 15 | ], 16 | "skip_compilation": [ 17 | "BindingsTestRunner.js", 18 | "IsolatedFilesystemTestRunner.js", 19 | "AutomappingTestRunner.js", 20 | "PersistenceTestRunner.js", 21 | "OverridesTestRunner.js" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /frontend/inspector/browser_components/imagePreview.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .image-preview-container { 8 | background: transparent; 9 | text-align: center; 10 | border-spacing: 0; 11 | } 12 | 13 | .image-preview-container img { 14 | margin: 2px auto; 15 | max-width: 100px; 16 | max-height: 100px; 17 | background-image: url(Images/checker.png); 18 | -webkit-user-select: text; 19 | -webkit-user-drag: auto; 20 | } 21 | 22 | .image-container { 23 | padding: 0; 24 | } 25 | -------------------------------------------------------------------------------- /frontend/inspector/browser_components/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "browser_sdk", 4 | "components" 5 | ], 6 | "scripts": [ 7 | "ImagePreview.js" 8 | ], 9 | "resources": [ 10 | "imagePreview.css" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /frontend/inspector/browser_console/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "@UI.ContextMenu.Provider", 5 | "contextTypes": [ 6 | "SDK.ConsoleMessage" 7 | ], 8 | "className": "BrowserConsole.BrowserConsole" 9 | }, 10 | { 11 | "type": "@Common.Renderer", 12 | "contextTypes": [ 13 | "SDK.ConsoleMessage" 14 | ], 15 | "source": "network", 16 | "className": "BrowserConsole.BrowserConsole" 17 | } 18 | ], 19 | "dependencies": [ 20 | "browser_sdk", 21 | "console" 22 | ], 23 | "scripts": [ 24 | "BrowserConsole.js" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /frontend/inspector/browser_debugger/domBreakpointsSidebarPane.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .breakpoint-list { 8 | padding-bottom: 3px; 9 | } 10 | 11 | .breakpoint-list .dom-breakpoint > div { 12 | overflow: hidden; 13 | text-overflow: ellipsis; 14 | } 15 | 16 | .breakpoint-entry { 17 | display: flex; 18 | white-space: nowrap; 19 | text-overflow: ellipsis; 20 | overflow: hidden; 21 | padding: 2px 0; 22 | } 23 | 24 | .breakpoint-list .breakpoint-entry:hover { 25 | background-color: #eee; 26 | } 27 | 28 | .breakpoint-hit { 29 | background-color: rgb(255, 255, 194); 30 | } 31 | 32 | :host-context(.-theme-with-dark-background) .breakpoint-hit { 33 | background-color: hsl(46, 98%, 22%); 34 | color: #ccc; 35 | } 36 | -------------------------------------------------------------------------------- /frontend/inspector/browser_debugger/eventListenerBreakpoints.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | margin: 0; 9 | padding: 2px 4px; 10 | min-height: 18px; 11 | } 12 | 13 | .tree-outline { 14 | padding: 0; 15 | } 16 | 17 | .tree-outline li { 18 | margin-left: 14px; 19 | -webkit-user-select: text; 20 | cursor: default; 21 | } 22 | 23 | .tree-outline li.parent { 24 | margin-left: 1px; 25 | } 26 | 27 | .tree-outline li:not(.parent)::before { 28 | display: none; 29 | } 30 | 31 | .breakpoint-hit { 32 | background-color: rgb(255, 255, 194); 33 | } 34 | 35 | :host-context(.-theme-with-dark-background) .breakpoint-hit { 36 | background-color: hsl(46, 98%, 22%); 37 | color: #ccc; 38 | } 39 | 40 | .breakpoint-hit .breakpoint-hit-marker { 41 | background-color: rgb(255, 255, 194); 42 | height: 18px; 43 | left: 0; 44 | margin-left: -30px; 45 | position: absolute; 46 | right: -4px; 47 | z-index: -1; 48 | } 49 | -------------------------------------------------------------------------------- /frontend/inspector/browser_debugger/xhrBreakpointsSidebarPane.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .breakpoint-list { 8 | padding-bottom: 3px; 9 | } 10 | 11 | .breakpoint-list .editing.being-edited { 12 | overflow: hidden; 13 | white-space: nowrap; 14 | } 15 | 16 | .breakpoint-condition { 17 | display: block; 18 | margin-top: 4px; 19 | margin-bottom: 4px; 20 | margin-left: 23px; 21 | margin-right: 8px; 22 | } 23 | 24 | .breakpoint-condition-input { 25 | display: block; 26 | margin-left: 0; 27 | margin-right: 0; 28 | outline: none !important; 29 | border: 1px solid rgb(66%, 66%, 66%); 30 | } 31 | 32 | .breakpoint-entry { 33 | white-space: nowrap; 34 | padding: 2px 0; 35 | } 36 | 37 | .breakpoint-list .breakpoint-entry:hover { 38 | background-color: #eee; 39 | } 40 | 41 | .breakpoint-entry [is=dt-checkbox] { 42 | max-width: 100%; 43 | } 44 | 45 | .breakpoint-hit { 46 | background-color: rgb(255, 255, 194); 47 | } 48 | 49 | :host-context(.-theme-with-dark-background) .breakpoint-hit { 50 | background-color: hsl(46, 98%, 22%); 51 | color: #ccc; 52 | } 53 | -------------------------------------------------------------------------------- /frontend/inspector/browser_sdk/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "setting", 5 | "category": "Network", 6 | "storageType": "session", 7 | "title": "Preserve log", 8 | "settingName": "network_log.preserve-log", 9 | "settingType": "boolean", 10 | "defaultValue": false, 11 | "tags": "preserve, clear, reset", 12 | "options": [ 13 | { 14 | "value": true, 15 | "title": "Do not preserve log on page reload / navigation" 16 | }, 17 | { 18 | "value": false, 19 | "title": "Preserve log on page reload / navigation" 20 | } 21 | ] 22 | } 23 | ], 24 | "scripts": [ 25 | "LogManager.js", 26 | "NetworkLog.js", 27 | "HAREntry.js" 28 | ], 29 | "dependencies": [ 30 | "sdk" 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /frontend/inspector/changes/changesSidebar.css: -------------------------------------------------------------------------------- 1 | li .icon { 2 | margin: -3px -5px -3px -5px; 3 | background: linear-gradient(45deg, hsl(0, 0%, 50%), hsl(0, 0%, 70%)); 4 | } 5 | 6 | .tree-outline li { 7 | min-height: 20px; 8 | } 9 | 10 | .tree-outline li:hover:not(.selected) .selection { 11 | display: block; 12 | background-color: rgba(56, 121, 217, 0.1); 13 | } 14 | 15 | .navigator-fs-tree-item .icon{ 16 | background: linear-gradient(45deg, hsl(28, 75%, 50%), hsl(28, 75%, 70%)); 17 | } 18 | 19 | .navigator-sm-script-tree-item .icon, 20 | .navigator-script-tree-item .icon, 21 | .navigator-snippet-tree-item .icon { 22 | background: linear-gradient(45deg, hsl(48, 70%, 50%), hsl(48, 70%, 70%)); 23 | } 24 | 25 | .navigator-sm-stylesheet-tree-item .icon, 26 | .navigator-stylesheet-tree-item .icon { 27 | background: linear-gradient(45deg, hsl(256, 50%, 50%), hsl(256, 50%, 70%)); 28 | } 29 | 30 | .navigator-image-tree-item .icon, 31 | .navigator-font-tree-item .icon { 32 | background: linear-gradient(45deg, hsl(109, 33%, 50%), hsl(109, 33%, 70%)); 33 | } -------------------------------------------------------------------------------- /frontend/inspector/changes/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "drawer-view", 6 | "id": "changes.changes", 7 | "title": "Changes", 8 | "persistence": "closeable", 9 | "className": "Changes.ChangesView" 10 | }, 11 | { 12 | "type": "@Common.Revealer", 13 | "contextTypes": [ 14 | "WorkspaceDiff.DiffUILocation" 15 | ], 16 | "destination": "Changes drawer", 17 | "className": "Changes.ChangesView.DiffUILocationRevealer" 18 | } 19 | ], 20 | "dependencies": [ 21 | "workspace_diff", 22 | "text_editor", 23 | "workspace", 24 | "diff", 25 | "bindings", 26 | "persistence", 27 | "ui" 28 | ], 29 | "scripts": [ 30 | "ChangesHighlighter.js", 31 | "ChangesView.js", 32 | "ChangesSidebar.js" 33 | ], 34 | "resources": [ 35 | "changesView.css", 36 | "changesSidebar.css" 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /frontend/inspector/cm/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (C) 2017 by Marijn Haverbeke and others 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /frontend/inspector/cm/LICENSE_python: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2010 Timothy Farrell 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /frontend/inspector/cm/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": [ 3 | "codemirror.js", 4 | "multiplex.js", 5 | "matchbrackets.js", 6 | "closebrackets.js", 7 | "markselection.js", 8 | "comment.js", 9 | "overlay.js", 10 | "activeline.js" 11 | ], 12 | "skip_compilation": [ 13 | "codemirror.js", 14 | "multiplex.js", 15 | "matchbrackets.js", 16 | "closebrackets.js", 17 | "markselection.js", 18 | "comment.js", 19 | "overlay.js", 20 | "activeline.js" 21 | ], 22 | "resources": [ 23 | "codemirror.css" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /frontend/inspector/cm_headless/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": [ 3 | "headlesscodemirror.js" 4 | ], 5 | "skip_compilation": [ 6 | "headlesscodemirror.js" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /frontend/inspector/cm_modes/DefaultCodeMirrorMimeMode.js: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | /** 6 | * @constructor 7 | * @implements {TextEditor.CodeMirrorMimeMode} 8 | */ 9 | CmModes.DefaultCodeMirrorMimeMode = function() 10 | { 11 | } 12 | 13 | CmModes.DefaultCodeMirrorMimeMode.prototype = { 14 | /** 15 | * @param {!Runtime.Extension} extension 16 | * @override 17 | */ 18 | install: function(extension) 19 | { 20 | var modeFileName = extension.descriptor()["fileName"]; 21 | var modeContent = extension.module().resource(modeFileName); 22 | self.eval(modeContent + "\n//# sourceURL=" + modeFileName); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /frontend/inspector/cm_modes/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2016 by Marijn Haverbeke and others 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /frontend/inspector/cm_modes/PRESUBMIT.py: -------------------------------------------------------------------------------- 1 | # Copyright 2015 The Chromium Authors. All rights reserved. 2 | # Use of this source code is governed by a BSD-style license that can be 3 | # found in the LICENSE file. 4 | 5 | 6 | def _CheckCodeMirrorChanges(input_api, output_api): 7 | errorText = ("ERROR: Attempt to modify CodeMirror. The only allowed changes are " 8 | "rolls from the upstream (http://codemirror.net). If this is a roll, " 9 | "make sure you mention 'roll CodeMirror' (no quotes) in the change description.\n" 10 | "CodeMirror rolling instructions:\n" 11 | " src/third_party/blink/renderer/devtools/front_end/cm/README.md") 12 | changeDescription = input_api.change.DescriptionText() 13 | errors = [] 14 | if "roll codemirror" not in changeDescription.lower(): 15 | errors.append(output_api.PresubmitError(errorText)) 16 | return errors 17 | 18 | 19 | def CheckChangeOnUpload(input_api, output_api): 20 | results = [] 21 | results.extend(_CheckCodeMirrorChanges(input_api, output_api)) 22 | return results 23 | -------------------------------------------------------------------------------- /frontend/inspector/color_picker/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "ui", 4 | "sdk" 5 | ], 6 | "scripts": [ 7 | "ContrastInfo.js", 8 | "ContrastOverlay.js", 9 | "ContrastDetails.js", 10 | "Spectrum.js" 11 | ], 12 | "resources": [ 13 | "spectrum.css" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /frontend/inspector/common/OutputStream.js: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | /** 6 | * @interface 7 | */ 8 | Common.OutputStream = function() {}; 9 | 10 | Common.OutputStream.prototype = { 11 | /** 12 | * @param {string} data 13 | * @return {!Promise} 14 | */ 15 | write(data) {}, 16 | 17 | close() {} 18 | }; 19 | 20 | /** 21 | * @implements {Common.OutputStream} 22 | */ 23 | Common.StringOutputStream = class { 24 | constructor() { 25 | this._data = ''; 26 | } 27 | 28 | /** 29 | * @override 30 | * @param {string} chunk 31 | * @return {!Promise} 32 | */ 33 | async write(chunk) { 34 | this._data += chunk; 35 | } 36 | 37 | /** 38 | * @override 39 | */ 40 | close() { 41 | } 42 | 43 | /** 44 | * @return {string} 45 | */ 46 | data() { 47 | return this._data; 48 | } 49 | }; 50 | -------------------------------------------------------------------------------- /frontend/inspector/common/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "text_utils", 4 | "platform" 5 | ], 6 | "scripts": [ 7 | "Worker.js", 8 | "TextDictionary.js", 9 | "Object.js", 10 | "Color.js", 11 | "Console.js", 12 | "ContentProvider.js", 13 | "ParsedURL.js", 14 | "Progress.js", 15 | "ResourceType.js", 16 | "Settings.js", 17 | "StaticContentProvider.js", 18 | "OutputStream.js", 19 | "SegmentedRange.js", 20 | "Throttler.js", 21 | "Trie.js", 22 | "UIString.js", 23 | "ModuleExtensionInterfaces.js", 24 | "CharacterIdMap.js" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /frontend/inspector/components/Reload.js: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | Components.reload = function() { 5 | if (Components.dockController.canDock() && 6 | Components.dockController.dockSide() === Components.DockController.State.Undocked) 7 | InspectorFrontendHost.setIsDocked(true, function() {}); 8 | window.location.reload(); 9 | }; 10 | -------------------------------------------------------------------------------- /frontend/inspector/components/jsUtils.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | display: inline; 9 | } 10 | 11 | .stack-preview-async-description { 12 | padding: 3px 0 1px; 13 | font-style: italic; 14 | } 15 | 16 | .stack-preview-container .webkit-html-blackbox-link { 17 | opacity: 0.6; 18 | } 19 | 20 | .stack-preview-container > tr { 21 | height: 16px; 22 | line-height: 16px; 23 | } 24 | 25 | .stack-preview-container td { 26 | white-space: nowrap; 27 | overflow: hidden; 28 | text-overflow: ellipsis; 29 | } 30 | 31 | .stack-preview-container .function-name { 32 | max-width: 80em; 33 | } 34 | 35 | .stack-preview-container:not(.show-blackboxed) > tr.blackboxed { 36 | display: none; 37 | } 38 | 39 | .stack-preview-container.show-blackboxed > tr.show-blackboxed-link { 40 | display: none; 41 | } 42 | 43 | .stack-preview-container > tr.show-blackboxed-link { 44 | font-style: italic; 45 | } 46 | -------------------------------------------------------------------------------- /frontend/inspector/components/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "bindings", 4 | "platform", 5 | "ui" 6 | ], 7 | "scripts": [ 8 | "JSPresentationUtils.js", 9 | "DockController.js", 10 | "Linkifier.js", 11 | "Reload.js", 12 | "TargetDetachedDialog.js" 13 | ], 14 | "resources": [ 15 | "jsUtils.css" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /frontend/inspector/console/consoleContextSelector.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | padding: 2px 1px 2px 2px; 9 | white-space: nowrap; 10 | display: flex; 11 | flex-direction: column; 12 | height: 36px; 13 | justify-content: center; 14 | } 15 | 16 | .title { 17 | overflow: hidden; 18 | text-overflow: ellipsis; 19 | flex-grow: 0; 20 | } 21 | 22 | .badge { 23 | pointer-events: none; 24 | margin-right: 4px; 25 | display: inline-block; 26 | height: 15px; 27 | } 28 | 29 | .subtitle { 30 | color: #999; 31 | margin-right: 3px; 32 | overflow: hidden; 33 | text-overflow: ellipsis; 34 | flex-grow: 0; 35 | } 36 | 37 | :host(.highlighted) .subtitle { 38 | color: inherit; 39 | } 40 | -------------------------------------------------------------------------------- /frontend/inspector/console_counters/errorWarningCounter.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | cursor: pointer; 9 | padding: 0 2px; 10 | min-width: 26px; 11 | } 12 | 13 | :host:hover { 14 | color: #333; 15 | } 16 | 17 | .counter-item { 18 | margin-left: 6px; 19 | } 20 | 21 | .counter-item label { 22 | cursor: inherit; 23 | } 24 | 25 | .counter-item.counter-item-first { 26 | margin-left: 0; 27 | } 28 | -------------------------------------------------------------------------------- /frontend/inspector/console_counters/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "@UI.ToolbarItem.Provider", 5 | "className": "ConsoleCounters.WarningErrorCounter", 6 | "order": 1, 7 | "location": "main-toolbar-right" 8 | } 9 | ], 10 | "dependencies": [ 11 | "common", 12 | "ui", 13 | "sdk" 14 | ], 15 | "scripts": [ 16 | "WarningErrorCounter.js" 17 | ], 18 | "resources": [ 19 | "errorWarningCounter.css" 20 | ] 21 | } -------------------------------------------------------------------------------- /frontend/inspector/console_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "console", 5 | "console_counters" 6 | ], 7 | "scripts": [ 8 | "ConsoleTestRunner.js" 9 | ] 10 | } -------------------------------------------------------------------------------- /frontend/inspector/cookie_table/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "ui", 4 | "sdk", 5 | "data_grid" 6 | ], 7 | "scripts": [ 8 | "CookiesTable.js" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /frontend/inspector/coverage/coverageListView.css: -------------------------------------------------------------------------------- 1 | .data-grid { 2 | border: none; 3 | } 4 | 5 | .data-grid td .url-outer { 6 | width: 100%; 7 | display: inline-flex; 8 | justify-content: flex-start; 9 | } 10 | 11 | .data-grid td .url-outer .filter-highlight { 12 | font-weight: bold; 13 | } 14 | 15 | .data-grid td .url-prefix { 16 | overflow-x: hidden; 17 | text-overflow: ellipsis; 18 | } 19 | 20 | .data-grid td .url-suffix { 21 | flex: none; 22 | } 23 | 24 | .data-grid td .bar { 25 | display: inline-block; 26 | height: 8px; 27 | } 28 | 29 | .data-grid .selected td .bar { 30 | border-top: 1px white solid; 31 | border-bottom: 1px white solid; 32 | } 33 | 34 | .data-grid .selected td .bar:last-child { 35 | border-right: 1px white solid; 36 | } 37 | 38 | .data-grid .selected td .bar:first-child { 39 | border-left: 1px white solid; 40 | } 41 | 42 | .data-grid td .bar-container { 43 | } 44 | 45 | .data-grid td .bar-unused-size { 46 | background-color: #E57373; 47 | } 48 | 49 | .data-grid td .bar-used-size { 50 | background-color: #81C784; 51 | } 52 | 53 | .data-grid td .percent-value { 54 | color: #888; 55 | width: 45px; 56 | display: inline-block; 57 | } 58 | 59 | .data-grid:focus tr.selected span.percent-value { 60 | color: #eee; 61 | } 62 | -------------------------------------------------------------------------------- /frontend/inspector/coverage/coverageView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | overflow: hidden; 9 | } 10 | 11 | .coverage-toolbar-container { 12 | display: flex; 13 | border-bottom: 1px solid #ccc; 14 | flex: 0 0; 15 | } 16 | 17 | .coverage-toolbar { 18 | display: inline-block; 19 | } 20 | 21 | .coverage-toolbar-summary { 22 | background-color: #eee; 23 | border-top: 1px solid #ccc; 24 | padding-left: 5px; 25 | flex: 0 0 19px; 26 | display: flex; 27 | padding-right: 5px; 28 | } 29 | 30 | .coverage-toolbar-summary .coverage-message { 31 | padding-top: 2px; 32 | padding-left: 1ex; 33 | text-overflow: ellipsis; 34 | white-space: nowrap; 35 | overflow: hidden; 36 | } 37 | 38 | .coverage-results { 39 | overflow-y: auto; 40 | display: flex; 41 | flex: auto; 42 | } 43 | 44 | .landing-page { 45 | justify-content: center; 46 | align-items: center; 47 | padding: 20px; 48 | } 49 | 50 | .landing-page .message { 51 | white-space: pre-line; 52 | } 53 | -------------------------------------------------------------------------------- /frontend/inspector/coverage_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "coverage", 5 | "sources_test_runner" 6 | ], 7 | "scripts": [ 8 | "CoverageTestRunner.js" 9 | ], 10 | "skip_compilation": [ 11 | "CoverageTestRunner.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /frontend/inspector/cpu_profiler_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "profiler", 4 | "test_runner" 5 | ], 6 | "scripts": [ 7 | "ProfilerTestRunner.js" 8 | ], 9 | "skip_compilation": [ 10 | "ProfilerTestRunner.js" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /frontend/inspector/data_grid/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "ui" 4 | ], 5 | "scripts": [ 6 | "DataGrid.js", 7 | "ViewportDataGrid.js", 8 | "SortableDataGrid.js", 9 | "ShowMoreDataGridNode.js" 10 | ], 11 | "resources": [ 12 | "dataGrid.css" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /frontend/inspector/data_grid_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "data_grid" 5 | ], 6 | "scripts": [ 7 | "DataGridTestRunner.js" 8 | ], 9 | "skip_compilation": [ 10 | "DataGridTestRunner.js" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /frontend/inspector/device_mode_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "emulation" 5 | ], 6 | "scripts": [ 7 | "DeviceModeTestRunner.js" 8 | ], 9 | "skip_compilation": [ 10 | "DeviceModeTestRunner.js" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /frontend/inspector/devices/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "drawer-view", 6 | "id": "remote-devices", 7 | "title": "Remote devices", 8 | "persistence": "closeable", 9 | "order": 50, 10 | "className": "Devices.DevicesView", 11 | "tags": "usb, android, mobile" 12 | } 13 | ], 14 | "dependencies": ["platform", "ui", "host", "components"], 15 | "scripts": [ 16 | "DevicesView.js" 17 | ], 18 | "resources": [ 19 | "devicesView.css" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /frontend/inspector/devtools_app.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /frontend/inspector/devtools_app.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | Runtime.startApplication('devtools_app'); 5 | -------------------------------------------------------------------------------- /frontend/inspector/devtools_app.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules" : [ 3 | { "name": "emulation", "type": "autostart" }, 4 | { "name": "inspector_main", "type": "autostart" }, 5 | { "name": "mobile_throttling", "type": "autostart" }, 6 | { "name": "browser_components", "type": "autostart" }, 7 | 8 | { "name": "browser_console" }, 9 | { "name": "browser_debugger" }, 10 | { "name": "cookie_table" }, 11 | { "name": "elements" }, 12 | { "name": "emulated_devices" , "type": "remote" }, 13 | { "name": "har_importer" }, 14 | { "name": "help" }, 15 | { "name": "layers" }, 16 | { "name": "layer_viewer" }, 17 | { "name": "network" } 18 | ], 19 | "extends": "shell", 20 | "has_html": true 21 | } 22 | -------------------------------------------------------------------------------- /frontend/inspector/diff/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "common" 4 | ], 5 | "scripts": [ 6 | "Diff.js", 7 | "diff_match_patch.js" 8 | ], 9 | "skip_compilation": [ 10 | "diff_match_patch.js" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /frontend/inspector/dom_extension/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "platform" 4 | ], 5 | "scripts": [ 6 | "DOMExtension.js" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /frontend/inspector/elements/MarkerDecorator.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | /** 6 | * @interface 7 | */ 8 | Elements.MarkerDecorator = function() {}; 9 | 10 | Elements.MarkerDecorator.prototype = { 11 | /** 12 | * @param {!SDK.DOMNode} node 13 | * @return {?{title: string, color: string}} 14 | */ 15 | decorate(node) {} 16 | }; 17 | 18 | /** 19 | * @implements {Elements.MarkerDecorator} 20 | * @unrestricted 21 | */ 22 | Elements.GenericDecorator = class { 23 | /** 24 | * @param {!Runtime.Extension} extension 25 | */ 26 | constructor(extension) { 27 | this._title = Common.UIString(extension.title()); 28 | this._color = extension.descriptor()['color']; 29 | } 30 | 31 | /** 32 | * @override 33 | * @param {!SDK.DOMNode} node 34 | * @return {?{title: string, color: string}} 35 | */ 36 | decorate(node) { 37 | return {title: this._title, color: this._color}; 38 | } 39 | }; 40 | -------------------------------------------------------------------------------- /frontend/inspector/elements/breadcrumbs.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .crumbs { 8 | display: inline-block; 9 | pointer-events: auto; 10 | cursor: default; 11 | white-space: nowrap; 12 | } 13 | 14 | .crumbs .crumb { 15 | display: inline-block; 16 | padding: 0 7px; 17 | line-height: 23px; 18 | white-space: nowrap; 19 | } 20 | 21 | .crumbs .crumb.collapsed > * { 22 | display: none; 23 | } 24 | 25 | .crumbs .crumb.collapsed::before { 26 | content: "\2026"; 27 | font-weight: bold; 28 | } 29 | 30 | .crumbs .crumb.compact .extra { 31 | display: none; 32 | } 33 | 34 | .crumb.selected, .crumb:hover { 35 | background-color: var(--toolbar-bg-color); 36 | } 37 | 38 | .crumb:not(.selected) .node-label-name { 39 | color: var(--dom-tag-name-color); 40 | } 41 | 42 | .crumb:not(.selected) .node-label-class { 43 | color: var(--dom-attribute-name-color); 44 | } 45 | -------------------------------------------------------------------------------- /frontend/inspector/elements/classesPaneWidget.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .styles-element-classes-pane { 8 | background-color: var(--toolbar-bg-color); 9 | border-bottom: 1px solid rgb(189, 189, 189); 10 | padding: 6px 2px 2px; 11 | } 12 | 13 | .styles-element-classes-container { 14 | display: flex; 15 | flex-wrap: wrap; 16 | justify-content: flex-start; 17 | } 18 | 19 | .styles-element-classes-pane label { 20 | margin-right: 15px; 21 | } 22 | 23 | .styles-element-classes-pane .title-container { 24 | padding-bottom: 2px; 25 | } 26 | 27 | .styles-element-classes-pane .new-class-input { 28 | padding-left: 3px; 29 | padding-right: 3px; 30 | overflow: hidden; 31 | border: 1px solid #ddd; 32 | line-height: 15px; 33 | margin-left: 3px; 34 | width: calc(100% - 7px); 35 | background-color: #fff; 36 | cursor: text; 37 | } 38 | -------------------------------------------------------------------------------- /frontend/inspector/elements/computedStyleSidebarPane.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .computed-properties { 8 | -webkit-user-select: text; 9 | flex-shrink: 0; 10 | } 11 | 12 | .styles-sidebar-pane-toolbar { 13 | border-bottom: 1px solid #eee; 14 | flex-shrink: 0; 15 | } 16 | 17 | .styles-sidebar-pane-filter-box { 18 | flex: auto; 19 | display: flex; 20 | } 21 | 22 | .styles-sidebar-pane-filter-box > input { 23 | outline: none !important; 24 | border: none; 25 | width: 100%; 26 | background: white; 27 | padding-left: 4px; 28 | margin: 3px; 29 | } 30 | 31 | .styles-sidebar-pane-filter-box > input:focus, 32 | .styles-sidebar-pane-filter-box > input:not(:placeholder-shown) { 33 | box-shadow: var(--focus-ring-active-shadow); 34 | } 35 | -------------------------------------------------------------------------------- /frontend/inspector/elements/domLinkifier.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | display: inline; 9 | } 10 | 11 | .node-link { 12 | cursor: pointer; 13 | display: inline; 14 | pointer-events: auto; 15 | } 16 | 17 | .node-label-name { 18 | color: rgb(136, 18, 128); 19 | } 20 | 21 | .node-label-class, .node-label-pseudo { 22 | color: rgb(153, 69, 0); 23 | } 24 | -------------------------------------------------------------------------------- /frontend/inspector/elements/elementStatePaneWidget.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .styles-element-state-pane { 8 | overflow: hidden; 9 | padding-left: 2px; 10 | background-color: var(--toolbar-bg-color); 11 | border-bottom: 1px solid rgb(189, 189, 189); 12 | margin-top: 0; 13 | padding-bottom: 2px; 14 | } 15 | 16 | .styles-element-state-pane > div { 17 | margin: 8px 4px 6px; 18 | } 19 | 20 | .styles-element-state-pane > table { 21 | width: 100%; 22 | border-spacing: 0; 23 | } 24 | 25 | .styles-element-state-pane td { 26 | padding: 0; 27 | } 28 | -------------------------------------------------------------------------------- /frontend/inspector/elements/platformFontsWidget.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | -webkit-user-select: text; 9 | } 10 | 11 | .platform-fonts { 12 | flex-shrink: 0; 13 | } 14 | 15 | .font-name { 16 | font-weight: bold; 17 | } 18 | 19 | .font-usage { 20 | color: #888; 21 | padding-left: 3px; 22 | } 23 | 24 | .title { 25 | padding: 0 5px; 26 | border-top: 1px solid; 27 | border-bottom: 1px solid; 28 | border-color: #ddd; 29 | white-space: nowrap; 30 | text-overflow: ellipsis; 31 | overflow: hidden; 32 | height: 24px; 33 | background-color: #f1f1f1; 34 | display: flex; 35 | align-items: center; 36 | } 37 | 38 | .stats-section { 39 | margin: 5px 0; 40 | } 41 | 42 | .font-stats-item { 43 | padding-left: 1em; 44 | } 45 | 46 | .font-stats-item .font-delimeter { 47 | margin: 0 1ex 0 1ex; 48 | } 49 | 50 | -------------------------------------------------------------------------------- /frontend/inspector/elements/propertiesWidget.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .properties-widget-section { 8 | padding: 2px 0px 2px 5px; 9 | flex: none; 10 | } 11 | -------------------------------------------------------------------------------- /frontend/inspector/elements_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "elements", 5 | "event_listeners", 6 | "animation" 7 | ], 8 | "scripts": [ 9 | "ElementsTestRunner.js", 10 | "EditDOMTestRunner.js", 11 | "SetOuterHTMLTestRunner.js", 12 | "ElementsPanelShadowSelectionOnRefreshTestRunner.js", 13 | "StylesUpdateLinksTestRunner.js" 14 | ], 15 | "skip_compilation": [ 16 | "ElementsTestRunner.js", 17 | "EditDOMTestRunner.js", 18 | "SetOuterHTMLTestRunner.js", 19 | "ElementsPanelShadowSelectionOnRefreshTestRunner.js", 20 | "StylesUpdateLinksTestRunner.js" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-horizontal-default-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-horizontal-default-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-horizontal-default-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-horizontal-default-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-horizontal-navigation-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-horizontal-navigation-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-horizontal-navigation-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-horizontal-navigation-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-vertical-default-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-vertical-default-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-vertical-default-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-vertical-default-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-vertical-keyboard-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-vertical-keyboard-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-vertical-keyboard-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-vertical-keyboard-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-vertical-navigation-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-vertical-navigation-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5-vertical-navigation-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5-vertical-navigation-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-horizontal-default-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-horizontal-default-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-horizontal-default-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-horizontal-default-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-horizontal-keyboard-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-horizontal-keyboard-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-horizontal-keyboard-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-horizontal-keyboard-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-horizontal-navigation-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-horizontal-navigation-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-horizontal-navigation-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-horizontal-navigation-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-vertical-default-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-vertical-default-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-vertical-default-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-vertical-default-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-vertical-keyboard-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-vertical-keyboard-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-vertical-keyboard-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-vertical-keyboard-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-vertical-navigation-1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-vertical-navigation-1x.png -------------------------------------------------------------------------------- /frontend/inspector/emulated_devices/google-nexus-5x-vertical-navigation-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/weexteam/debugger-tool-for-Apache-Weex/24b4b3aad4b0bb2586a911e3309d53188e01ec2d/frontend/inspector/emulated_devices/google-nexus-5x-vertical-navigation-2x.png -------------------------------------------------------------------------------- /frontend/inspector/emulation/deviceModeToolbar.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .device-mode-size-input { 8 | width: 41px; 9 | max-height: 18px; 10 | margin: 0 2px; 11 | text-align: center; 12 | } 13 | 14 | .device-mode-size-input:focus::-webkit-input-placeholder { 15 | color: transparent; 16 | } 17 | 18 | .device-mode-size-input:disabled { 19 | background: transparent; 20 | -webkit-user-select: none; 21 | opacity: 0.6; 22 | } 23 | 24 | .device-mode-x { 25 | margin: 0 1px; 26 | font-size: 16px; 27 | } 28 | 29 | .device-mode-empty-toolbar-element { 30 | width: 0; 31 | } 32 | -------------------------------------------------------------------------------- /frontend/inspector/emulation/inspectedPagePlaceholder.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | background-color: white; 9 | } 10 | -------------------------------------------------------------------------------- /frontend/inspector/event_listeners/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "ui", 4 | "common", 5 | "components", 6 | "sdk", 7 | "object_ui" 8 | ], 9 | "scripts": [ 10 | "EventListenersView.js", 11 | "EventListenersUtils.js" 12 | ], 13 | "resources": [ 14 | "eventListenersView.css" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /frontend/inspector/extensions/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "components", 4 | "browser_sdk", 5 | "common" 6 | ], 7 | "scripts": [ 8 | "ExtensionAPI.js", 9 | "ExtensionRegistryStub.js", 10 | "ExtensionTraceProvider.js", 11 | "ExtensionServer.js", 12 | "ExtensionPanel.js", 13 | "ExtensionView.js" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /frontend/inspector/extensions_test_runner/ExtensionsNetworkTestRunner.js: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | /** 6 | * @fileoverview using private properties isn't a Closure violation in tests. 7 | * @suppress {accessControls} 8 | */ 9 | 10 | function extension_getRequestByUrl(urls, callback) { 11 | function onHAR(response) { 12 | const entries = response.entries; 13 | 14 | for (let i = 0; i < entries.length; ++i) { 15 | for (let url = 0; url < urls.length; ++url) { 16 | if (urls[url].test(entries[i].request.url)) { 17 | callback(entries[i]); 18 | return; 19 | } 20 | } 21 | } 22 | 23 | output('no item found'); 24 | callback(null); 25 | } 26 | 27 | webInspector.network.getHAR(onHAR); 28 | } 29 | -------------------------------------------------------------------------------- /frontend/inspector/extensions_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "extensions" 5 | ], 6 | "scripts": [ 7 | "ExtensionsNetworkTestRunner.js", 8 | "ExtensionsTestRunner.js" 9 | ], 10 | "skip_compilation": [ 11 | "ExtensionsNetworkTestRunner.js", 12 | "ExtensionsTestRunner.js" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /frontend/inspector/formatter/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "common" 4 | ], 5 | "scripts": [ 6 | "FormatterWorkerPool.js", 7 | "ScriptFormatter.js" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /frontend/inspector/formatter_worker.js: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | // Release build has Runtime.js bundled. 5 | if (!self.Runtime) 6 | self.importScripts('Runtime.js'); 7 | Runtime.startWorker('formatter_worker'); 8 | -------------------------------------------------------------------------------- /frontend/inspector/formatter_worker.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules": [ 3 | { "name": "platform", "type": "autostart" }, 4 | { "name": "text_utils", "type": "autostart" }, 5 | { "name": "cm_headless", "type": "autostart" }, 6 | { "name": "formatter_worker", "type": "autostart" } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /frontend/inspector/formatter_worker/IdentityFormatter.js: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | /** 5 | * @unrestricted 6 | */ 7 | FormatterWorker.IdentityFormatter = class { 8 | /** 9 | * @param {!FormatterWorker.FormattedContentBuilder} builder 10 | */ 11 | constructor(builder) { 12 | this._builder = builder; 13 | } 14 | 15 | /** 16 | * @param {string} text 17 | * @param {!Array} lineEndings 18 | * @param {number} fromOffset 19 | * @param {number} toOffset 20 | */ 21 | format(text, lineEndings, fromOffset, toOffset) { 22 | const content = text.substring(fromOffset, toOffset); 23 | this._builder.addToken(content, fromOffset); 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /frontend/inspector/formatter_worker/acorn/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2012-2018 by various contributors (see AUTHORS) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /frontend/inspector/formatter_worker/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "platform", 4 | "text_utils", 5 | "cm_headless" 6 | ], 7 | "scripts": [ 8 | "../cm_web_modes/css.js", 9 | "../cm_web_modes/xml.js", 10 | "ESTreeWalker.js", 11 | "FormatterWorker.js", 12 | "acorn/acorn.js", 13 | "acorn/acorn_loose.js", 14 | "CSSFormatter.js", 15 | "AcornTokenizer.js", 16 | "JavaScriptFormatter.js", 17 | "FormattedContentBuilder.js", 18 | "CSSRuleParser.js", 19 | "HTMLFormatter.js", 20 | "IdentityFormatter.js", 21 | "JavaScriptOutline.js", 22 | "RelaxedJSONParser.js" 23 | ], 24 | "skip_compilation": [ 25 | "acorn/acorn.js", 26 | "acorn/acorn_loose.js", 27 | "../cm_web_modes/css.js", 28 | "../cm_web_modes/xml.js" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /frontend/inspector/har_importer/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "common", 4 | "browser_sdk" 5 | ], 6 | "scripts": [ 7 | "HARFormat.js", 8 | "HARImporter.js" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /frontend/inspector/heap_profiler_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "heap_snapshot_worker", 4 | "test_runner", 5 | "profiler", 6 | "data_grid" 7 | ], 8 | "scripts": [ 9 | "HeapProfilerTestRunner.js" 10 | ], 11 | "skip_compilation": [ 12 | "HeapProfilerTestRunner.js" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /frontend/inspector/heap_snapshot_model/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [], 3 | "scripts": [ 4 | "HeapSnapshotModel.js" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /frontend/inspector/heap_snapshot_worker.js: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | // Release build has Runtime.js bundled. 5 | if (!self.Runtime) 6 | self.importScripts('Runtime.js'); 7 | Runtime.startWorker('heap_snapshot_worker'); 8 | -------------------------------------------------------------------------------- /frontend/inspector/heap_snapshot_worker.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules": [ 3 | { "name": "heap_snapshot_worker", "type": "autostart" }, 4 | { "name": "heap_snapshot_model", "type": "autostart" }, 5 | { "name": "platform", "type": "autostart" }, 6 | { "name": "text_utils", "type": "autostart" }, 7 | { "name": "common", "type": "autostart" } 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /frontend/inspector/heap_snapshot_worker/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": [ 3 | "AllocationProfile.js", 4 | "HeapSnapshot.js", 5 | "HeapSnapshotLoader.js", 6 | "HeapSnapshotWorkerDispatcher.js", 7 | "HeapSnapshotWorker.js" 8 | ], 9 | "dependencies": [ 10 | "heap_snapshot_model", 11 | "platform", 12 | "common" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /frontend/inspector/host/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "common", 4 | "platform" 5 | ], 6 | "scripts": [ 7 | "InspectorFrontendHostAPI.js", 8 | "InspectorFrontendHost.js", 9 | "Platform.js", 10 | "ResourceLoader.js", 11 | "UserMetrics.js" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /frontend/inspector/inline_editor/bezierSwatch.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | white-space: nowrap; 9 | } 10 | 11 | .bezier-swatch-icon { 12 | position: relative; 13 | margin-left: 1px; 14 | margin-right: 2px; 15 | top: 1px; 16 | -webkit-user-select: none; 17 | line-height: 10px; 18 | background-color: #9C27B0; 19 | cursor: default; 20 | } 21 | 22 | .bezier-swatch-icon:hover { 23 | background-color: #800080; 24 | } 25 | -------------------------------------------------------------------------------- /frontend/inspector/inline_editor/colorSwatch.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | white-space: nowrap; 9 | } 10 | 11 | .color-swatch { 12 | position: relative; 13 | margin-left: 1px; 14 | margin-right: 2px; 15 | width: 10px; 16 | height: 10px; 17 | top: 1px; 18 | display: inline-block; 19 | -webkit-user-select: none; 20 | background-image: url(Images/checker.png); 21 | line-height: 10px; 22 | } 23 | 24 | .color-swatch-inner { 25 | width: 100%; 26 | height: 100%; 27 | display: inline-block; 28 | border: 1px solid rgba(128, 128, 128, 0.6); 29 | cursor: default; 30 | } 31 | 32 | .color-swatch-inner:hover { 33 | border: 1px solid rgba(64, 64, 64, 0.8); 34 | } 35 | 36 | -------------------------------------------------------------------------------- /frontend/inspector/inline_editor/cssShadowSwatch.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | white-space: nowrap; 9 | } 10 | 11 | .shadow-swatch-icon { 12 | position: relative; 13 | margin-left: 1px; 14 | margin-right: 2px; 15 | top: 1px; 16 | -webkit-user-select: none; 17 | line-height: 10px; 18 | background-color: #9C27B0; 19 | } 20 | 21 | .shadow-swatch-icon:hover { 22 | background-color: #800080; 23 | } 24 | -------------------------------------------------------------------------------- /frontend/inspector/inline_editor/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "ui" 4 | ], 5 | "scripts": [ 6 | "BezierEditor.js", 7 | "BezierUI.js", 8 | "ColorSwatch.js", 9 | "CSSShadowEditor.js", 10 | "SwatchPopoverHelper.js", 11 | "CSSShadowModel.js" 12 | ], 13 | "resources": [ 14 | "bezierEditor.css", 15 | "colorSwatch.css", 16 | "bezierSwatch.css", 17 | "cssShadowSwatch.css", 18 | "cssShadowEditor.css", 19 | "swatchPopover.css" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /frontend/inspector/inline_editor/swatchPopover.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .widget { 8 | display: flex; 9 | background: white; 10 | box-shadow: var(--drop-shadow); 11 | border-radius: 2px; 12 | overflow: auto; 13 | -webkit-user-select: text; 14 | line-height: 11px; 15 | } 16 | -------------------------------------------------------------------------------- /frontend/inspector/inspector.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /frontend/inspector/inspector.js: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | Runtime.startApplication('inspector'); 5 | -------------------------------------------------------------------------------- /frontend/inspector/inspector.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules" : [ 3 | { "name": "screencast", "type": "autostart" } 4 | ], 5 | "extends": "devtools_app", 6 | "has_html": true 7 | } 8 | -------------------------------------------------------------------------------- /frontend/inspector/inspector_main/RequestAppBannerActionDelegate.js: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | /** 5 | * @implements {UI.ActionDelegate} 6 | * @unrestricted 7 | */ 8 | InspectorMain.RequestAppBannerActionDelegate = class { 9 | /** 10 | * @override 11 | * @param {!UI.Context} context 12 | * @param {string} actionId 13 | * @return {boolean} 14 | */ 15 | handleAction(context, actionId) { 16 | const target = SDK.targetManager.mainTarget(); 17 | if (target && target.hasBrowserCapability()) { 18 | target.pageAgent().requestAppBanner(); 19 | Common.console.show(); 20 | } 21 | return true; 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /frontend/inspector/inspector_main/nodeIcon.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .node-icon { 8 | width: 28px; 9 | height: 26px; 10 | background-image: url(Images/nodeIcon.png); 11 | background-size: 17px 17px; 12 | background-repeat: no-repeat; 13 | background-position: center; 14 | opacity: 0.8; 15 | } 16 | 17 | .node-icon:hover { 18 | opacity: 1.0; 19 | } 20 | 21 | .node-icon.inactive { 22 | filter: grayscale(100%); 23 | } 24 | -------------------------------------------------------------------------------- /frontend/inspector/inspector_main/renderingOptions.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | padding: 12px; 9 | } 10 | 11 | label { 12 | margin: 0px 0px 10px 0px; 13 | flex: none; 14 | } 15 | 16 | .media-row { 17 | margin-left: 22px; 18 | flex: none; 19 | } 20 | 21 | .media-row p { 22 | margin-top: 0; 23 | color: gray; 24 | } 25 | 26 | .panel-section-separator { 27 | height: 1px; 28 | margin-bottom: 10px; 29 | background: #f0f0f0; 30 | flex: none; 31 | } 32 | -------------------------------------------------------------------------------- /frontend/inspector/integration_test_runner.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /frontend/inspector/integration_test_runner.js: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | if (self.testRunner) { 6 | testRunner.dumpAsText(); 7 | testRunner.waitUntilDone(); 8 | } 9 | 10 | Runtime.startApplication('integration_test_runner'); 11 | -------------------------------------------------------------------------------- /frontend/inspector/integration_test_runner.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules" : [ 3 | { "name": "test_runner", "type": "autostart" }, 4 | 5 | { "name": "heap_snapshot_worker" }, 6 | 7 | { "name": "accessibility_test_runner" }, 8 | { "name": "application_test_runner" }, 9 | { "name": "audits2_test_runner" }, 10 | { "name": "bindings_test_runner" }, 11 | { "name": "console_test_runner" }, 12 | { "name": "coverage_test_runner" }, 13 | { "name": "cpu_profiler_test_runner" }, 14 | { "name": "data_grid_test_runner" }, 15 | { "name": "device_mode_test_runner" }, 16 | { "name": "elements_test_runner" }, 17 | { "name": "extensions_test_runner" }, 18 | { "name": "heap_profiler_test_runner" }, 19 | { "name": "layers_test_runner" }, 20 | { "name": "network_test_runner" }, 21 | { "name": "performance_test_runner" }, 22 | { "name": "sdk_test_runner" }, 23 | { "name": "security_test_runner" }, 24 | { "name": "sources_test_runner" } 25 | ], 26 | "extends": "devtools_app", 27 | "has_html": true 28 | } 29 | -------------------------------------------------------------------------------- /frontend/inspector/javascript_metadata/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "@Common.JavaScriptMetadata", 5 | "className": "JavaScriptMetadata.JavaScriptMetadata" 6 | } 7 | ], 8 | "dependencies": [ 9 | "common" 10 | ], 11 | "scripts": [ 12 | "NativeFunctions.js", 13 | "JavaScriptMetadata.js" 14 | ], 15 | "skip_compilation": [ 16 | "NativeFunctions.js" 17 | ] 18 | } -------------------------------------------------------------------------------- /frontend/inspector/js_app.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /frontend/inspector/js_app.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | Runtime.startApplication('js_app'); 5 | -------------------------------------------------------------------------------- /frontend/inspector/js_app.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules" : [ 3 | { "name": "js_main", "type": "autostart" }, 4 | { "name": "js_profiler" } 5 | ], 6 | "extends": "shell", 7 | "has_html": true 8 | } 9 | -------------------------------------------------------------------------------- /frontend/inspector/js_main/JsMain.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | /** 6 | * @implements {Common.Runnable} 7 | */ 8 | JsMain.JsMain = class extends Common.Object { 9 | /** 10 | * @override 11 | */ 12 | run() { 13 | Host.userMetrics.actionTaken(Host.UserMetrics.Action.ConnectToNodeJSDirectly); 14 | const target = SDK.targetManager.createTarget( 15 | 'main', Common.UIString('Main'), SDK.Target.Capability.JS, this._createMainConnection.bind(this), null, true /* isNodeJS */); 16 | target.runtimeAgent().runIfWaitingForDebugger(); 17 | InspectorFrontendHost.connectionReady(); 18 | } 19 | 20 | /** 21 | * @param {!Protocol.InspectorBackend.Connection.Params} params 22 | * @return {!Protocol.InspectorBackend.Connection} 23 | */ 24 | _createMainConnection(params) { 25 | return SDK.createMainConnection(params, () => Components.TargetDetachedDialog.webSocketConnectionLost()); 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /frontend/inspector/js_main/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "early-initialization", 5 | "className": "JsMain.JsMain" 6 | } 7 | ], 8 | "dependencies": [ 9 | "components" 10 | ], 11 | "scripts": [ 12 | "JsMain.js" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /frontend/inspector/js_profiler/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "panel", 6 | "id": "js_profiler", 7 | "title": "Profiler", 8 | "order": 65, 9 | "className": "Profiler.JSProfilerPanel" 10 | } 11 | ], 12 | "dependencies": [ 13 | "profiler" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /frontend/inspector/layer_viewer/layerDetailsView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | table td { 8 | padding-left: 8px; 9 | } 10 | 11 | table td:first-child { 12 | font-weight: bold; 13 | } 14 | 15 | .scroll-rect.active { 16 | background-color: rgba(100, 100, 100, 0.2); 17 | } 18 | 19 | ul { 20 | list-style: none; 21 | -webkit-padding-start: 0; 22 | -webkit-margin-before: 0; 23 | -webkit-margin-after: 0; 24 | } 25 | 26 | a { 27 | padding: 8px; 28 | display: block; 29 | } 30 | -------------------------------------------------------------------------------- /frontend/inspector/layer_viewer/layers3DView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .layers-3d-view { 8 | overflow: hidden; 9 | -webkit-user-select: none; 10 | } 11 | 12 | .toolbar { 13 | background-color: var(--toolbar-bg-color); 14 | border-bottom: var(--divider-border); 15 | } 16 | 17 | canvas { 18 | flex: 1 1; 19 | } 20 | -------------------------------------------------------------------------------- /frontend/inspector/layer_viewer/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "components", 4 | "sdk", 5 | "timeline_model", 6 | "ui", 7 | "perf_ui" 8 | ], 9 | "scripts": [ 10 | "LayerDetailsView.js", 11 | "LayerTreeOutline.js", 12 | "LayerViewHost.js", 13 | "Layers3DView.js", 14 | "PaintProfilerView.js", 15 | "TransformController.js" 16 | ], 17 | "resources": [ 18 | "layers3DView.css", 19 | "paintProfiler.css", 20 | "layerDetailsView.css" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /frontend/inspector/layer_viewer/paintProfiler.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .paint-profiler-overview { 8 | background-color: #eee; 9 | } 10 | 11 | .paint-profiler-canvas-container { 12 | flex: auto; 13 | position: relative; 14 | } 15 | 16 | .paint-profiler-pie-chart { 17 | width: 60px !important; 18 | height: 60px !important; 19 | padding: 2px; 20 | overflow: hidden; 21 | font-size: 10px; 22 | } 23 | 24 | .paint-profiler-canvas-container canvas { 25 | z-index: 200; 26 | background-color: white; 27 | opacity: 0.95; 28 | height: 100%; 29 | width: 100%; 30 | } 31 | 32 | .paint-profiler-canvas-container .overview-grid-dividers-background, 33 | .paint-profiler-canvas-container .overview-grid-window { 34 | bottom: 0; 35 | height: auto; 36 | } 37 | 38 | .paint-profiler-canvas-container .overview-grid-window-resizer { 39 | z-index: 2000; 40 | } 41 | -------------------------------------------------------------------------------- /frontend/inspector/layers/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "panel", 6 | "id": "layers", 7 | "title": "Layers", 8 | "order": 100, 9 | "persistence": "closeable", 10 | "className": "Layers.LayersPanel" 11 | } 12 | ], 13 | "dependencies": ["layer_viewer"], 14 | "scripts": [ 15 | "LayerPaintProfilerView.js", 16 | "LayerTreeModel.js", 17 | "LayersPanel.js" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /frontend/inspector/layers_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "layers", 5 | "elements", 6 | "components" 7 | ], 8 | "scripts": [ 9 | "LayersTestRunner.js" 10 | ], 11 | "skip_compilation": [ 12 | "LayersTestRunner.js" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /frontend/inspector/main/SimpleApp.js: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | /** 5 | * @implements {Common.App} 6 | * @unrestricted 7 | */ 8 | Main.SimpleApp = class { 9 | /** 10 | * @override 11 | * @param {!Document} document 12 | */ 13 | presentUI(document) { 14 | const rootView = new UI.RootView(); 15 | UI.inspectorView.show(rootView.element); 16 | rootView.attachToDocument(document); 17 | rootView.focus(); 18 | } 19 | }; 20 | 21 | /** 22 | * @implements {Common.AppProvider} 23 | * @unrestricted 24 | */ 25 | Main.SimpleAppProvider = class { 26 | /** 27 | * @override 28 | * @return {!Common.App} 29 | */ 30 | createApp() { 31 | return new Main.SimpleApp(); 32 | } 33 | }; 34 | -------------------------------------------------------------------------------- /frontend/inspector/ndb_app.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /frontend/inspector/ndb_app.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | Runtime.startApplication('ndb_app'); 5 | -------------------------------------------------------------------------------- /frontend/inspector/ndb_app.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules" : [ 3 | ], 4 | "extends": "shell", 5 | "has_html": true 6 | } 7 | -------------------------------------------------------------------------------- /frontend/inspector/network/eventSourceMessagesView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .event-source-messages-view .data-grid { 8 | flex: auto; 9 | border: none; 10 | } 11 | -------------------------------------------------------------------------------- /frontend/inspector/network/networkManageCustomHeadersView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | .custom-headers-list { 7 | height: 272px; 8 | width: 250px; 9 | } 10 | 11 | .custom-headers-wrapper{ 12 | margin: 10px; 13 | } 14 | 15 | .header { 16 | padding: 0 0 6px; 17 | font-size: 18px; 18 | font-weight: normal; 19 | flex: none; 20 | } 21 | 22 | .custom-headers-header { 23 | padding:2px; 24 | } 25 | 26 | .custom-headers-list-item { 27 | padding-left: 5px; 28 | } 29 | 30 | .editor-container { 31 | padding: 5px 0px 0px 5px; 32 | } 33 | 34 | .add-button { 35 | width: 150px; 36 | margin: auto; 37 | margin-top: 5px; 38 | } 39 | -------------------------------------------------------------------------------- /frontend/inspector/network/networkWaterfallColumn.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2016 The Chromium Authors. All rights reserved. 2 | * Use of this source code is governed by a BSD-style license that can be 3 | * found in the LICENSE file. 4 | */ 5 | .network-waterfall-v-scroll { 6 | position: absolute; 7 | top: 0; 8 | right: 0; 9 | bottom: 0; 10 | overflow-x: hidden; 11 | margin-top: 31px; 12 | z-index: 200; 13 | } 14 | 15 | .network-waterfall-v-scroll.small { 16 | margin-top: 27px; 17 | } 18 | 19 | .network-waterfall-v-scroll-content { 20 | width: 15px; 21 | pointer-events: none; 22 | } 23 | -------------------------------------------------------------------------------- /frontend/inspector/network/requestCookiesView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .request-cookies-view { 8 | display: flex; 9 | overflow: auto; 10 | margin: 12px; 11 | height: 100%; 12 | } 13 | 14 | .request-cookies-view .data-grid { 15 | flex: auto; 16 | height: 100%; 17 | } 18 | 19 | .request-cookies-view .data-grid .row-group { 20 | font-weight: bold; 21 | } 22 | -------------------------------------------------------------------------------- /frontend/inspector/network/requestHTMLView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | .html-preview-frame { 7 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); 8 | flex-grow: 1; 9 | margin: 20px; 10 | } 11 | -------------------------------------------------------------------------------- /frontend/inspector/network/requestHeadersView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .request-headers-view { 8 | -webkit-user-select: text; 9 | overflow: auto; 10 | } 11 | 12 | .resource-status-image { 13 | margin-top: -2px; 14 | margin-right: 3px; 15 | } 16 | 17 | .request-headers-view .filter-input { 18 | outline: none !important; 19 | border: none; 20 | border-bottom: solid 1px #ccc; 21 | flex: 0 0 19px; 22 | padding: 0 4px; 23 | } 24 | 25 | .request-headers-tree { 26 | flex-grow: 1; 27 | overflow-y: auto; 28 | margin: 0; 29 | } 30 | 31 | .header-decode-error { 32 | color: red; 33 | } 34 | 35 | .-theme-with-dark-background .header-decode-error { 36 | color: hsl(0, 100%, 65%); 37 | } 38 | -------------------------------------------------------------------------------- /frontend/inspector/network/signedExchangeInfoView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .signed-exchange-info-view { 8 | -webkit-user-select: text; 9 | overflow: auto; 10 | } 11 | 12 | .signed-exchange-info-tree { 13 | flex-grow: 1; 14 | overflow-y: auto; 15 | margin: 0; 16 | } 17 | -------------------------------------------------------------------------------- /frontend/inspector/network_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "product_registry_impl", 5 | "console_test_runner" 6 | ], 7 | "scripts": [ 8 | "NetworkTestRunner.js", 9 | "ProductRegistryTestRunner.js" 10 | ], 11 | "skip_compilation": [ 12 | "NetworkTestRunner.js", 13 | "ProductRegistryTestRunner.js" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /frontend/inspector/node_app.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /frontend/inspector/node_app.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | Runtime.startApplication('node_app'); 6 | -------------------------------------------------------------------------------- /frontend/inspector/node_app.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules" : [ 3 | { "name": "node_main", "type": "autostart" }, 4 | { "name": "node_debugger" }, 5 | { "name": "js_profiler" } 6 | ], 7 | "extends": "shell", 8 | "has_html": true 9 | } 10 | -------------------------------------------------------------------------------- /frontend/inspector/node_debugger/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "navigator-view", 6 | "id": "navigator-network", 7 | "title": "Node", 8 | "order": 2, 9 | "persistence": "permanent", 10 | "className": "Sources.NetworkNavigatorView" 11 | } 12 | ], 13 | "dependencies": [ 14 | "sources" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /frontend/inspector/node_main/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "early-initialization", 5 | "className": "NodeMain.NodeMain" 6 | }, 7 | { 8 | "type": "view", 9 | "location": "panel", 10 | "id": "node-connection", 11 | "title": "Connection", 12 | "order": 0, 13 | "className": "NodeMain.NodeConnectionsPanel", 14 | "tags": "node" 15 | } 16 | ], 17 | "dependencies": ["platform", "ui", "host", "components"], 18 | "scripts": [ 19 | "NodeConnectionsPanel.js", 20 | "NodeMain.js" 21 | ], 22 | "resources": [ 23 | "nodeConnectionsPanel.css" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /frontend/inspector/object_ui/customPreviewComponent.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .custom-expandable-section { 8 | display: inline-flex; 9 | flex-direction: column; 10 | } 11 | 12 | .custom-expand-icon { 13 | -webkit-user-select: none; 14 | opacity: 0.5; 15 | margin-right: 4px; 16 | margin-bottom: -2px; 17 | background: black; 18 | } 19 | 20 | .custom-expandable-section-standard-section { 21 | display: inline-flex; 22 | } -------------------------------------------------------------------------------- /frontend/inspector/object_ui/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "@Common.Renderer", 5 | "contextTypes": [ 6 | "SDK.RemoteObject" 7 | ], 8 | "className": "ObjectUI.ObjectPropertiesSection.Renderer" 9 | } 10 | ], 11 | "dependencies": [ 12 | "ui", 13 | "sdk", 14 | "components", 15 | "formatter" 16 | ], 17 | "scripts": [ 18 | "CustomPreviewComponent.js", 19 | "ObjectPopoverHelper.js", 20 | "ObjectPropertiesSection.js", 21 | "JavaScriptAutocomplete.js", 22 | "RemoteObjectPreviewFormatter.js" 23 | ], 24 | "resources": [ 25 | "customPreviewComponent.css", 26 | "objectPopover.css", 27 | "objectPropertiesSection.css", 28 | "objectValue.css" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /frontend/inspector/perf_ui/GCActionDelegate.js: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | /** 6 | * @implements {UI.ActionDelegate} 7 | */ 8 | PerfUI.GCActionDelegate = class { 9 | /** 10 | * @override 11 | * @param {!UI.Context} context 12 | * @param {string} actionId 13 | * @return {boolean} 14 | */ 15 | handleAction(context, actionId) { 16 | for (const heapProfilerModel of SDK.targetManager.models(SDK.HeapProfilerModel)) 17 | heapProfilerModel.collectGarbage(); 18 | return true; 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /frontend/inspector/perf_ui/pieChart.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .root { 8 | position: relative; 9 | width: 100%; 10 | height: 100%; 11 | } 12 | 13 | .pie-chart-foreground { 14 | position: absolute; 15 | width: 100%; 16 | height: 100%; 17 | z-index: 10; 18 | top: 0; 19 | display: flex; 20 | } 21 | 22 | .pie-chart-total { 23 | margin: auto; 24 | padding: 2px 5px; 25 | background-color: rgba(255, 255, 255, 0.6); 26 | } 27 | -------------------------------------------------------------------------------- /frontend/inspector/perf_ui/timelineOverviewInfo.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .overview-info:not(:empty) { 8 | display: flex; 9 | background: white; 10 | box-shadow: var(--drop-shadow); 11 | padding: 3px; 12 | } 13 | 14 | .overview-info .frame .time { 15 | display: none; 16 | } 17 | 18 | .overview-info .frame .thumbnail img { 19 | max-width: 50vw; 20 | max-height: 50vh; 21 | } 22 | -------------------------------------------------------------------------------- /frontend/inspector/performance_monitor/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "drawer-view", 6 | "id": "performance.monitor", 7 | "title": "Performance monitor", 8 | "persistence": "closeable", 9 | "order": 100, 10 | "className": "PerformanceMonitor.PerformanceMonitor", 11 | "tags": "performance, system monitor, monitor, activity, metrics" 12 | } 13 | ], 14 | "dependencies": [ 15 | "sdk", 16 | "ui" 17 | ], 18 | "scripts": [ 19 | "PerformanceMonitor.js" 20 | ], 21 | "resources": [ 22 | "performanceMonitor.css" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /frontend/inspector/performance_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "timeline_model", 5 | "timeline" 6 | ], 7 | "scripts": [ 8 | "TimelineTestRunner.js", 9 | "TimelineDataTestRunner.js" 10 | ], 11 | "skip_compilation": [ 12 | "TimelineTestRunner.js", 13 | "TimelineDataTestRunner.js" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /frontend/inspector/platform/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | ], 4 | "scripts": [ 5 | "utilities.js" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /frontend/inspector/product_registry/badge.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .product-registry-badge { 8 | background-color: rgba(0, 0, 0, 0.2); 9 | border-radius: 2px; 10 | padding: 1px 2px; 11 | white-space: pre; 12 | cursor: pointer; 13 | } 14 | 15 | .product-registry-badge::before { 16 | content: attr(data-initial); 17 | color: #222; 18 | } 19 | 20 | .hide-badge-title .product-registry-badge-title { 21 | display: none; 22 | } 23 | 24 | .product-registry-badge-title { 25 | padding-left: 4px; 26 | } -------------------------------------------------------------------------------- /frontend/inspector/product_registry/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "setting", 5 | "category": "Appearance", 6 | "title": "Show third party URL badges", 7 | "settingName": "product_registry.badges-visible", 8 | "settingType": "boolean", 9 | "defaultValue": false, 10 | "options": [ 11 | { 12 | "value": true, 13 | "title": "Show third party badges" 14 | }, 15 | { 16 | "value": false, 17 | "title": "Do not show third party badges" 18 | } 19 | ] 20 | } 21 | ], 22 | "dependencies": [ 23 | "common", 24 | "sdk", 25 | "ui" 26 | ], 27 | "scripts": [ 28 | "BadgePool.js", 29 | "ProductRegistry.js" 30 | ], 31 | "resources": [ 32 | "badge.css", 33 | "popup.css" 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /frontend/inspector/product_registry/popup.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .product-registry-popup { 8 | background-color: white; 9 | padding: 15px 45px 15px 15px; 10 | border-radius: 4px; 11 | white-space: nowrap; 12 | box-shadow: 0px 1px 2px 0px gray; 13 | } 14 | 15 | .product-registry-domain { 16 | font-weight: bold; 17 | } 18 | 19 | .product-registry-name { 20 | padding: 10px 0; 21 | } 22 | 23 | .product-registry-link { 24 | display: block; 25 | } 26 | 27 | div[is=dt-close-button] { 28 | position: absolute; 29 | top: 5px; 30 | right: 5px; 31 | } 32 | -------------------------------------------------------------------------------- /frontend/inspector/product_registry_impl/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "@ProductRegistry.Registry", 5 | "className": "ProductRegistryImpl.Registry" 6 | } 7 | ], 8 | "dependencies": [ 9 | "common", 10 | "product_registry" 11 | ], 12 | "scripts": [ 13 | "ProductRegistryImpl.js", 14 | "ProductRegistryData.js", 15 | "sha1/sha1.js" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /frontend/inspector/product_registry_impl/sha1/README.chromium: -------------------------------------------------------------------------------- 1 | Name: A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined in FIPS 180-1. 2 | Short Name: sha1.js 3 | URL: http://pajhome.org.uk/crypt/md5/ 4 | License: BSD 5 | Security Critical: no 6 | 7 | This directory contains Chromium's version of sha1.js which is for hashing strings in javascript synchronously. Added 8 | jsdoc types to functions, wrapped functions in an outer function and removed portions of code that are not needed by 9 | Chromium. -------------------------------------------------------------------------------- /frontend/inspector/profiler/ProfileTypeRegistry.js: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | /** 5 | * @unrestricted 6 | */ 7 | Profiler.ProfileTypeRegistry = class { 8 | constructor() { 9 | this.cpuProfileType = new Profiler.CPUProfileType(); 10 | this.heapSnapshotProfileType = new Profiler.HeapSnapshotProfileType(); 11 | this.samplingHeapProfileType = new Profiler.SamplingHeapProfileType(); 12 | this.samplingNativeHeapProfileType = new Profiler.SamplingNativeHeapProfileType(); 13 | this.samplingNativeHeapSnapshotBrowserType = new Profiler.SamplingNativeHeapSnapshotBrowserType(); 14 | this.samplingNativeHeapSnapshotRendererType = new Profiler.SamplingNativeHeapSnapshotRendererType(); 15 | this.trackingHeapSnapshotProfileType = new Profiler.TrackingHeapSnapshotProfileType(); 16 | } 17 | }; 18 | 19 | Profiler.ProfileTypeRegistry.instance = new Profiler.ProfileTypeRegistry(); 20 | -------------------------------------------------------------------------------- /frontend/inspector/profiler/profileLauncherView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .profile-isolate-item { 8 | padding: 4px; 9 | line-height: 16px; 10 | border-left: 2px solid transparent; 11 | overflow-x: hidden; 12 | } 13 | 14 | .profile-isolate-item:hover { 15 | background-color: hsla(0, 0%, 0%, 0.05); 16 | } 17 | 18 | .profile-isolate-item.selected { 19 | border-color: #4285f4; 20 | background-color: #4285f420; 21 | } 22 | 23 | .profile-isolate-item > div { 24 | flex-shrink: 0; 25 | margin-left: 9px; 26 | } 27 | 28 | .profile-isolate-item-heap { 29 | width: 120px; 30 | } 31 | -------------------------------------------------------------------------------- /frontend/inspector/protocol/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "common" 4 | ], 5 | "scripts": [ 6 | "InspectorBackend.js", 7 | "../InspectorBackendCommands.js" 8 | ], 9 | "skip_compilation": [ 10 | "../InspectorBackendCommands.js" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /frontend/inspector/protocol_monitor/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "drawer-view", 6 | "id": "protocol-monitor", 7 | "title": "Protocol monitor", 8 | "order": 100, 9 | "persistence": "closeable", 10 | "className": "ProtocolMonitor.ProtocolMonitor", 11 | "experiment": "protocolMonitor" 12 | } 13 | ], 14 | "dependencies": ["platform", "ui", "host", "components", "data_grid", "source_frame"], 15 | "scripts": [ 16 | "ProtocolMonitor.js" 17 | ], 18 | "resources": [ 19 | "protocolMonitor.css" 20 | ] 21 | } -------------------------------------------------------------------------------- /frontend/inspector/protocol_monitor/protocolMonitor.css: -------------------------------------------------------------------------------- 1 | .data-grid { 2 | border: none; 3 | } 4 | .data-grid { 5 | flex: auto; 6 | border: none; 7 | } 8 | 9 | .data-grid .data { 10 | background-image: none; 11 | } 12 | 13 | .data-grid td { 14 | /* border-bottom: 1px solid #ccc; */ 15 | border-left-color: #ccc; 16 | } 17 | 18 | .data-grid tr.selected { 19 | background-color: #def; 20 | } 21 | 22 | .data-grid th { 23 | border-left-color: #ccc; 24 | } 25 | 26 | .protocol-message-sent { 27 | background-color: hsl(281, 64%, 95%); 28 | } 29 | 30 | .protocol-monitor-toolbar { 31 | border-bottom:var(--divider-border); 32 | } 33 | -------------------------------------------------------------------------------- /frontend/inspector/resources/appManifestView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | -------------------------------------------------------------------------------- /frontend/inspector/resources/clearStorageView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .report-row { 8 | display: flex; 9 | align-items: center; 10 | } 11 | 12 | .clear-storage-button .report-row { 13 | margin: 0 0 0 20px; 14 | display: flex; 15 | } 16 | 17 | .link { 18 | margin-left: 10px; 19 | display: none; 20 | } 21 | 22 | .report-row:hover .link { 23 | display: inline; 24 | } 25 | 26 | .usage-breakdown-row { 27 | min-width: fit-content; 28 | } 29 | 30 | .usage-breakdown-legend-row { 31 | margin: 5px auto; 32 | } 33 | 34 | .usage-breakdown-legend-title { 35 | display: inline-block; 36 | } 37 | 38 | .usage-breakdown-legend-value { 39 | display: inline-block; 40 | width: 70px; 41 | text-align: right; 42 | } 43 | 44 | .usage-breakdown-legend-swatch { 45 | display: inline-block; 46 | width: 11px; 47 | height: 11px; 48 | margin: 0 6px; 49 | position: relative; 50 | top: 1px; 51 | border: 1px solid rgba(0, 0, 0, 0.2); 52 | } 53 | -------------------------------------------------------------------------------- /frontend/inspector/screencast/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "@Common.AppProvider", 5 | "className": "Screencast.ScreencastAppProvider", 6 | "order": 1 7 | }, 8 | { 9 | "type": "@UI.ToolbarItem.Provider", 10 | "className": "Screencast.ScreencastApp.ToolbarButtonProvider", 11 | "order": 1, 12 | "location": "main-toolbar-left" 13 | }, 14 | { 15 | "type": "context-menu-item", 16 | "location": "mainMenu", 17 | "order": 10, 18 | "actionId": "components.request-app-banner" 19 | } 20 | ], 21 | "dependencies": [ 22 | "components", 23 | "emulation" 24 | ], 25 | "scripts": [ 26 | "InputModel.js", 27 | "ScreencastApp.js", 28 | "ScreencastView.js" 29 | ], 30 | "resources": [ 31 | "screencastView.css" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /frontend/inspector/sdk_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "sdk", 4 | "test_runner" 5 | ], 6 | "scripts": [ 7 | "PageMockTestRunner.js" 8 | ], 9 | "skip_compilation": [ 10 | "PageMockTestRunner.js" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /frontend/inspector/search/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "components" 4 | ], 5 | "scripts": [ 6 | "SearchView.js", 7 | "SearchConfig.js", 8 | "SearchResultsPane.js" 9 | ], 10 | "resources": [ 11 | "searchResultsPane.css", 12 | "searchView.css" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /frontend/inspector/search/searchView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .search-drawer-header { 8 | align-items: center; 9 | flex-shrink: 0; 10 | overflow: hidden; 11 | } 12 | 13 | .search-toolbar { 14 | background-color: var(--toolbar-bg-color); 15 | border-bottom: var(--divider-border); 16 | } 17 | 18 | .search-toolbar-summary { 19 | background-color: #eee; 20 | border-top: 1px solid #ccc; 21 | padding-left: 5px; 22 | flex: 0 0 19px; 23 | display: flex; 24 | padding-right: 5px; 25 | } 26 | 27 | .search-toolbar-summary .search-message { 28 | padding-top: 2px; 29 | padding-left: 1ex; 30 | text-overflow: ellipsis; 31 | white-space: nowrap; 32 | overflow: hidden; 33 | } 34 | 35 | .search-view .search-results { 36 | overflow-y: auto; 37 | display: flex; 38 | flex: auto; 39 | } 40 | 41 | .search-view .search-results > div { 42 | flex: auto; 43 | } 44 | -------------------------------------------------------------------------------- /frontend/inspector/security/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "panel", 6 | "id": "security", 7 | "title": "Security", 8 | "order": 80, 9 | "className": "Security.SecurityPanel" 10 | } 11 | ], 12 | "dependencies": ["network", "platform", "ui", "sdk"], 13 | "scripts": [ 14 | "SecurityModel.js", 15 | "SecurityPanel.js" 16 | ], 17 | "resources": [ 18 | "lockIcon.css", 19 | "mainView.css", 20 | "originView.css", 21 | "sidebar.css" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /frontend/inspector/security_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "security" 5 | ], 6 | "scripts": [ 7 | "SecurityTestRunner.js" 8 | ], 9 | "skip_compilation": [ 10 | "SecurityTestRunner.js" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /frontend/inspector/services/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "common", 4 | "host" 5 | ], 6 | "scripts": [ 7 | "ServiceManager.js" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /frontend/inspector/snippets/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "@QuickOpen.FilteredListWidget.Provider", 5 | "title": "Run snippet", 6 | "prefix": "!", 7 | "className": "Snippets.SnippetsQuickOpen" 8 | } 9 | ], 10 | "dependencies": ["bindings", "quick_open"], 11 | "scripts": [ 12 | "SnippetStorage.js", 13 | "ScriptSnippetModel.js", 14 | "SnippetsQuickOpen.js" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /frontend/inspector/source_frame/fontView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .font-view { 8 | font-size: 60px; 9 | white-space: pre-wrap; 10 | word-wrap: break-word; 11 | text-align: center; 12 | padding: 15px; 13 | } 14 | -------------------------------------------------------------------------------- /frontend/inspector/source_frame/imageView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .image-view { 8 | overflow: auto; 9 | } 10 | 11 | .image-view > .image { 12 | padding: 20px 20px 10px 20px; 13 | text-align: center; 14 | } 15 | 16 | .image-view img.resource-image-view { 17 | max-width: 100%; 18 | max-height: 1000px; 19 | background-image: url(Images/checker.png); 20 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.5); 21 | -webkit-user-select: text; 22 | -webkit-user-drag: auto; 23 | } 24 | -------------------------------------------------------------------------------- /frontend/inspector/source_frame/jsonView.css: -------------------------------------------------------------------------------- 1 | .json-view { 2 | padding: 2px 6px; 3 | overflow: auto; 4 | } 5 | -------------------------------------------------------------------------------- /frontend/inspector/source_frame/messagesPopover.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .text-editor-messages-description-container { 8 | display: inline-block; 9 | } 10 | 11 | .text-editor-row-message:first-child { 12 | border-top-width: 0; 13 | } 14 | 15 | .text-editor-row-message { 16 | line-height: 1.2; 17 | white-space: nowrap; 18 | display: flex; 19 | align-items: center; 20 | justify-content: flex-start; 21 | margin-top: 2px; 22 | } 23 | 24 | .text-editor-row-message-repeat-count { 25 | margin-right: 0.5em; 26 | } 27 | -------------------------------------------------------------------------------- /frontend/inspector/source_frame/resourceSourceFrame.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | .searchable-view { 7 | flex: 1; 8 | } 9 | 10 | .toolbar { 11 | background-color: #eee; 12 | border-top: 1px solid #ccc; 13 | } 14 | -------------------------------------------------------------------------------- /frontend/inspector/source_frame/xmlTree.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .tree-outline ol { 8 | list-style: none; 9 | padding: 0; 10 | margin: 0; 11 | -webkit-padding-start: 16px; 12 | } 13 | 14 | ol.tree-outline { 15 | -webkit-padding-start: 0; 16 | } 17 | 18 | .tree-outline li { 19 | min-height: 12px; 20 | } 21 | 22 | .tree-outline li.shadow-xml-view-close-tag { 23 | margin-left: -16px; 24 | } 25 | 26 | .shadow-xml-view-tag { 27 | color: rgb(136, 18, 128); 28 | } 29 | 30 | .shadow-xml-view-comment { 31 | color: rgb(35, 110, 37); 32 | } 33 | 34 | .shadow-xml-view-processing-instruction { 35 | color: rgb(35, 110, 37); 36 | } 37 | 38 | .shadow-xml-view-attribute-name { 39 | color: rgb(153, 69, 0); 40 | } 41 | 42 | .shadow-xml-view-attribute-value { 43 | color: rgb(26, 26, 166); 44 | } 45 | 46 | .shadow-xml-view-text { 47 | color: rgb(0, 0, 0); 48 | white-space: pre; 49 | } 50 | 51 | .shadow-xml-view-cdata { 52 | color: rgb(0, 0, 0); 53 | } 54 | -------------------------------------------------------------------------------- /frontend/inspector/source_frame/xmlView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .shadow-xml-view { 8 | -webkit-user-select: text; 9 | overflow: auto; 10 | padding: 2px 4px; 11 | } 12 | -------------------------------------------------------------------------------- /frontend/inspector/sources/SnippetsPlugin.js: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | Sources.SnippetsPlugin = class extends Sources.UISourceCodeFrame.Plugin { 6 | /** 7 | * @param {!SourceFrame.SourcesTextEditor} textEditor 8 | * @param {!Workspace.UISourceCode} uiSourceCode 9 | */ 10 | constructor(textEditor, uiSourceCode) { 11 | super(); 12 | this._textEditor = textEditor; 13 | this._uiSourceCode = uiSourceCode; 14 | } 15 | 16 | /** 17 | * @override 18 | * @param {!Workspace.UISourceCode} uiSourceCode 19 | * @return {boolean} 20 | */ 21 | static accepts(uiSourceCode) { 22 | return uiSourceCode.project().type() === Workspace.projectTypes.Snippets; 23 | } 24 | 25 | /** 26 | * @override 27 | * @return {!Array} 28 | */ 29 | rightToolbarItems() { 30 | const runSnippet = UI.Toolbar.createActionButtonForId('debugger.run-snippet'); 31 | runSnippet.setText(Host.isMac() ? Common.UIString('\u2318+Enter') : Common.UIString('Ctrl+Enter')); 32 | 33 | return [runSnippet]; 34 | } 35 | }; 36 | -------------------------------------------------------------------------------- /frontend/inspector/sources/javaScriptBreakpointsSidebarPane.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .breakpoint-entry { 8 | padding: 3px 8px 3px 8px; 9 | min-height: 18px; 10 | line-height: 15px; 11 | border-top: 1px solid #efefef; 12 | } 13 | 14 | .breakpoint-entry [is=dt-checkbox] { 15 | max-width: 100%; 16 | white-space: nowrap; 17 | } 18 | 19 | :not(.breakpoints-list-deactivated) > .breakpoint-entry:hover { 20 | background-color: #eee; 21 | } 22 | 23 | .breakpoint-entry > .source-text { 24 | cursor: pointer; 25 | text-overflow: ellipsis; 26 | overflow: hidden; 27 | white-space: nowrap; 28 | } 29 | 30 | .breakpoints-list-deactivated { 31 | background-color: #eee; 32 | opacity: 0.3; 33 | } 34 | 35 | .breakpoint-hit { 36 | background-color: rgb(255, 255, 194); 37 | } 38 | 39 | :host-context(.-theme-with-dark-background) .breakpoint-hit { 40 | background-color: hsl(46, 98%, 22%); 41 | color: #ccc; 42 | } 43 | -------------------------------------------------------------------------------- /frontend/inspector/sources/navigatorView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .navigator-toolbar { 8 | border-bottom: 1px solid #ccc; 9 | padding-left: 8px; 10 | } 11 | -------------------------------------------------------------------------------- /frontend/inspector/sources/scopeChainSidebarPane.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .scope-chain-sidebar-pane-section-header { 8 | flex: auto; 9 | } 10 | 11 | .scope-chain-sidebar-pane-section-subtitle { 12 | float: right; 13 | margin-left: 5px; 14 | max-width: 55%; 15 | text-overflow: ellipsis; 16 | overflow: hidden; 17 | } 18 | 19 | .scope-chain-sidebar-pane-section-title { 20 | font-weight: normal; 21 | word-wrap: break-word; 22 | white-space: normal; 23 | } 24 | 25 | .scope-chain-sidebar-pane-section { 26 | padding: 2px 4px; 27 | flex: none; 28 | } 29 | -------------------------------------------------------------------------------- /frontend/inspector/sources/serviceWorkersSidebar.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .service-worker { 8 | padding: 5px 5px 5px 8px; 9 | border-bottom: 1px solid #aaa; 10 | display: flex; 11 | align-items: center; 12 | } 13 | 14 | .service-worker:last-child { 15 | border-bottom: none; 16 | } 17 | 18 | .service-worker-scope { 19 | color: #777; 20 | flex: auto; 21 | margin: 5px 5px 0 0; 22 | white-space: nowrap; 23 | overflow: hidden; 24 | text-overflow: ellipsis; 25 | } 26 | -------------------------------------------------------------------------------- /frontend/inspector/sources/threadsSidebarPane.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .thread-item { 8 | padding: 3px 8px 3px 20px; 9 | position: relative; 10 | min-height: 18px; 11 | line-height: 15px; 12 | display: flex; 13 | flex-wrap: wrap; 14 | } 15 | 16 | .thread-item + .thread-item { 17 | border-top: 1px solid #efefef; 18 | } 19 | 20 | .thread-item:hover { 21 | background-color: #eee; 22 | } 23 | 24 | .thread-item-title, 25 | .thread-item-paused-state { 26 | text-overflow: ellipsis; 27 | overflow: hidden; 28 | white-space: nowrap; 29 | } 30 | 31 | .thread-item-paused-state { 32 | color: #888; 33 | margin-left: auto; 34 | padding: 0 10px 0 10px; 35 | } 36 | 37 | .selected-thread-icon { 38 | display: none; 39 | position: absolute; 40 | top: 5px; 41 | left: 4px; 42 | } 43 | 44 | .thread-item.selected .selected-thread-icon { 45 | display: block; 46 | } 47 | 48 | -------------------------------------------------------------------------------- /frontend/inspector/sources_test_runner/LiveEditTestRunner.js: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | /** 6 | * @fileoverview using private properties isn't a Closure violation in tests. 7 | * @suppress {accessControls} 8 | */ 9 | 10 | SourcesTestRunner.replaceInSource = function(sourceFrame, string, replacement) { 11 | sourceFrame._textEditor.setReadOnly(false); 12 | 13 | for (let i = 0; i < sourceFrame._textEditor.linesCount; ++i) { 14 | const line = sourceFrame._textEditor.line(i); 15 | const column = line.indexOf(string); 16 | 17 | if (column === -1) 18 | continue; 19 | 20 | const range = new TextUtils.TextRange(i, column, i, column + string.length); 21 | sourceFrame._textEditor.editRange(range, replacement); 22 | break; 23 | } 24 | }; 25 | 26 | SourcesTestRunner.commitSource = function(sourceFrame) { 27 | sourceFrame.commitEditing(); 28 | }; 29 | 30 | SourcesTestRunner.undoSourceEditing = function(sourceFrame) { 31 | sourceFrame._textEditor.undo(); 32 | }; 33 | -------------------------------------------------------------------------------- /frontend/inspector/sources_test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "test_runner", 4 | "sources", 5 | "workspace", 6 | "source_frame", 7 | "text_utils", 8 | "browser_debugger" 9 | ], 10 | "scripts": [ 11 | "SourcesTestRunner.js", 12 | "DebuggerTestRunner.js", 13 | "LiveEditTestRunner.js", 14 | "SearchTestRunner.js", 15 | "EditorTestRunner.js", 16 | "AutocompleteTestRunner.js" 17 | ], 18 | "skip_compilation": [ 19 | "DebuggerTestRunner.js", 20 | "LiveEditTestRunner.js", 21 | "SearchTestRunner.js", 22 | "SourcesTestRunner.js", 23 | "EditorTestRunner.js", 24 | "AutocompleteTestRunner.js" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /frontend/inspector/terminal/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "view", 5 | "location": "drawer-sidebar", 6 | "id": "drawer.xterm", 7 | "title": "Terminal", 8 | "order": 10, 9 | "factoryName": "Terminal.TerminalWidget" 10 | } 11 | ], 12 | "dependencies": [ 13 | "components", 14 | "ui", 15 | "services" 16 | ], 17 | "experiment": "terminalInDrawer", 18 | "scripts": [ 19 | "xterm.js/build/xterm.js", 20 | "xterm.js/addons/fit/fit.js", 21 | "TerminalWidget.js" 22 | ], 23 | "skip_compilation": [ 24 | "xterm.js/build/xterm.js", 25 | "xterm.js/addons/fit/fit.js" 26 | ], 27 | "resources": [ 28 | "terminal.css", 29 | "xterm.js/build/xterm.css" 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /frontend/inspector/terminal/terminal.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .terminal-root { 8 | background-color: #111; 9 | color: #fafafa; 10 | padding: 2px; 11 | -webkit-user-select: text; 12 | white-space: nowrap; 13 | } 14 | 15 | .terminal-error-message { 16 | display: flex; 17 | align-items: center; 18 | padding: 10px; 19 | background-color: rgba(255, 255, 255, 0.8); 20 | justify-content: center; 21 | font-size: 16px; 22 | color: #222; 23 | } 24 | 25 | .terminal-error-message div { 26 | padding-right: 10px; 27 | } 28 | 29 | .terminal-link { 30 | color: inherit; 31 | text-decoration: inherit; 32 | } 33 | 34 | .terminal-link:hover { 35 | text-decoration: underline; 36 | cursor: pointer; 37 | } 38 | -------------------------------------------------------------------------------- /frontend/inspector/terminal/xterm.js/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014, sourceLair Limited (https://github.com/sourcelair/) 2 | Copyright (c) 2012-2013, Christopher Jeffrey (https://github.com/chjj/) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /frontend/inspector/terminal/xterm.js/README.chromium: -------------------------------------------------------------------------------- 1 | Name: Xterm.js is a terminal front-end component written in JavaScript that works in the browser. 2 | Short Name: xterm.js 3 | URL: https://github.com/sourcelair/xterm.js 4 | License: MIT 5 | Security Critical: no 6 | 7 | This directory contains Chrome's version of xterm.js with tests, demo and some addons folders removed. 8 | -------------------------------------------------------------------------------- /frontend/inspector/terminal/xterm.js/addons/fit/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "xterm.fit", 3 | "main": "fit.js", 4 | "private": true 5 | } 6 | -------------------------------------------------------------------------------- /frontend/inspector/test_runner/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "sdk", 4 | "workspace", 5 | "ui", 6 | "host", 7 | "main" 8 | ], 9 | "scripts": [ 10 | "TestRunner.js" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /frontend/inspector/text_editor/autocompleteTooltip.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | .autocomplete-tooltip { 7 | pointer-events: none; 8 | margin-left: -3px; 9 | } 10 | 11 | .autocomplete-tooltip > div > * { 12 | padding: 0px 4px; 13 | white-space: nowrap; 14 | vertical-align: middle; 15 | line-height: 20px; 16 | box-shadow: var(--drop-shadow); 17 | background-color: #FFFFFF; 18 | width: fit-content; 19 | } -------------------------------------------------------------------------------- /frontend/inspector/text_editor/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "@TextUtils.TokenizerFactory", 5 | "className": "TextEditor.CodeMirrorUtils.TokenizerFactory" 6 | }, 7 | { 8 | "type": "@UI.TextEditorFactory", 9 | "className": "TextEditor.CodeMirrorTextEditorFactory" 10 | } 11 | ], 12 | "dependencies": [ 13 | "ui", 14 | "platform", 15 | "common", 16 | "cm" 17 | ], 18 | "scripts": [ 19 | "../cm_web_modes/css.js", 20 | "../cm_web_modes/javascript.js", 21 | "../cm_web_modes/xml.js", 22 | "../cm_web_modes/htmlmixed.js", 23 | "../cm_web_modes/htmlembedded.js", 24 | "CodeMirrorUtils.js", 25 | "TextEditorAutocompleteController.js", 26 | "CodeMirrorTextEditor.js" 27 | ], 28 | "resources": [ 29 | "autocompleteTooltip.css", 30 | "cmdevtools.css" 31 | ], 32 | "skip_compilation": [ 33 | "acorn/acorn.js", 34 | "../cm_web_modes/css.js", 35 | "../cm_web_modes/javascript.js", 36 | "../cm_web_modes/xml.js", 37 | "../cm_web_modes/htmlmixed.js", 38 | "../cm_web_modes/htmlembedded.js" 39 | ] 40 | } -------------------------------------------------------------------------------- /frontend/inspector/text_utils/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "platform" 4 | ], 5 | "scripts": [ 6 | "Text.js", 7 | "TextUtils.js", 8 | "TextRange.js" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /frontend/inspector/timeline/historyToolbarButton.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | width: 160px; 9 | height: 26px; 10 | text-align: left; 11 | display: flex; 12 | } 13 | 14 | :host([disabled]) { 15 | opacity: .5; 16 | } 17 | 18 | .content { 19 | padding-right: 5px; 20 | overflow: hidden; 21 | text-overflow: ellipsis; 22 | flex: 1 1; 23 | min-width: 35px; 24 | } 25 | -------------------------------------------------------------------------------- /frontend/inspector/timeline/invalidationsTree.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .header, .children, .content { 8 | min-height: initial; 9 | line-height: initial; 10 | } 11 | 12 | /* This TreeElement is always expanded and has no arrow. */ 13 | /* FIXME(crbug.com/475618): Implement this in TreeElement. */ 14 | .children li::before { 15 | display: none; 16 | } 17 | 18 | .content { 19 | margin-bottom: 4px; 20 | } 21 | 22 | .content .stack-preview-container { 23 | margin-left: 8px; 24 | } 25 | 26 | .content .node-list { 27 | margin-left: 10px; 28 | } 29 | -------------------------------------------------------------------------------- /frontend/inspector/timeline/timelineFlamechartPopover.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .timeline-flamechart-popover { 8 | overflow: hidden; 9 | } 10 | 11 | .timeline-flamechart-popover span { 12 | margin-right: 5px; 13 | } 14 | 15 | .timeline-flamechart-popover span.timeline-info-network-time { 16 | color: #009; 17 | } 18 | 19 | .timeline-flamechart-popover span.timeline-info-time { 20 | color: #282; 21 | } 22 | 23 | .timeline-flamechart-popover span.timeline-info-warning { 24 | color: #e44; 25 | } 26 | 27 | .timeline-flamechart-popover span.timeline-info-warning * { 28 | color: inherit; 29 | } 30 | -------------------------------------------------------------------------------- /frontend/inspector/timeline/timelineHistoryManager.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .drop-down { 8 | padding: 1px; 9 | box-shadow: var(--drop-shadow); 10 | background: white; 11 | } 12 | 13 | .preview-item { 14 | border-color: transparent; 15 | border-style: solid; 16 | border-width: 1px 5px; 17 | padding: 2px 0px; 18 | margin: 2px 1px; 19 | } 20 | 21 | .preview-item.selected { 22 | border-color: var(--selection-bg-color); 23 | } 24 | 25 | .preview-item canvas { 26 | width: 100%; 27 | height: 100%; 28 | } 29 | 30 | .text-details { 31 | font-size: 11px; 32 | padding: 3px; 33 | } 34 | 35 | .text-details span { 36 | flex: 1 0; 37 | padding-left: 8px; 38 | padding-right: 8px; 39 | } 40 | 41 | .text-details .name { 42 | font-weight: bold; 43 | } 44 | 45 | .text-details span.time { 46 | color: #555; 47 | text-align: right; 48 | } 49 | 50 | .screenshot-thumb { 51 | display: flex; 52 | border: 1px solid #ccc; 53 | margin: 2px 4px; 54 | } 55 | 56 | .screenshot-thumb img { 57 | margin: auto; 58 | max-width: 100%; 59 | max-height: 100%; 60 | } 61 | -------------------------------------------------------------------------------- /frontend/inspector/timeline/timelinePaintProfiler.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .paint-profiler-image-view { 8 | overflow: hidden; 9 | } 10 | 11 | .paint-profiler-image-view .paint-profiler-image-container { 12 | -webkit-transform-origin: 0 0; 13 | } 14 | 15 | .paint-profiler-image-view .paint-profiler-image-container div { 16 | border-color: rgba(100, 100, 100, 0.4); 17 | border-style: solid; 18 | z-index: 100; 19 | position: absolute; 20 | top: 0; 21 | left: 0; 22 | } 23 | 24 | .paint-profiler-image-view img { 25 | border: solid 1px black; 26 | } 27 | -------------------------------------------------------------------------------- /frontend/inspector/timeline_model/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "sdk" 4 | ], 5 | "scripts": [ 6 | "TimelineModelFilter.js", 7 | "TracingLayerTree.js", 8 | "TimelineModel.js", 9 | "TimelineIRModel.js", 10 | "TimelineJSProfile.js", 11 | "TimelineFrameModel.js", 12 | "TimelineProfileTree.js" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /frontend/inspector/toolbox.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /frontend/inspector/toolbox.js: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | Runtime.startApplication('toolbox'); 5 | -------------------------------------------------------------------------------- /frontend/inspector/toolbox.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules": [ 3 | { "name": "platform", "type": "autostart" }, 4 | { "name": "dom_extension","type": "autostart" }, 5 | { "name": "toolbox_bootstrap", "type": "autostart" } 6 | ], 7 | "has_html": true 8 | } 9 | -------------------------------------------------------------------------------- /frontend/inspector/toolbox_bootstrap/Toolbox.js: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | (function() { 5 | /** 6 | * @suppressGlobalPropertiesCheck 7 | */ 8 | function toolboxLoaded() { 9 | if (!window.opener) 10 | return; 11 | const app = window.opener['Emulation']['AdvancedApp']['_instance'](); 12 | app['toolboxLoaded'](document); 13 | } 14 | 15 | runOnWindowLoad(toolboxLoaded); 16 | })(); 17 | -------------------------------------------------------------------------------- /frontend/inspector/toolbox_bootstrap/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "platform", 4 | "dom_extension" 5 | ], 6 | "scripts": [ 7 | "Toolbox.js" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /frontend/inspector/ui/TargetCrashedScreen.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | UI.TargetCrashedScreen = class extends UI.VBox { 6 | /** 7 | * @param {function()} hideCallback 8 | */ 9 | constructor(hideCallback) { 10 | super(true); 11 | this.registerRequiredCSS('ui/targetCrashedScreen.css'); 12 | this.contentElement.createChild('div', 'message').textContent = 13 | Common.UIString('DevTools was disconnected from the page.'); 14 | this.contentElement.createChild('div', 'message').textContent = 15 | Common.UIString('Once page is reloaded, DevTools will automatically reconnect.'); 16 | this._hideCallback = hideCallback; 17 | } 18 | 19 | /** 20 | * @override 21 | */ 22 | willHide() { 23 | this._hideCallback.call(null); 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /frontend/inspector/ui/closeButton.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .close-button { 8 | width: 14px; 9 | height: 14px; 10 | cursor: default; 11 | display: flex; 12 | align-items: center; 13 | justify-content: center; 14 | } 15 | 16 | .hover-icon, .active-icon { 17 | display: none; 18 | } 19 | 20 | .close-button:hover .default-icon, .close-button:active .default-icon { 21 | display: none; 22 | } 23 | 24 | .close-button:hover .hover-icon { 25 | display: block; 26 | } 27 | 28 | .close-button:active .hover-icon { 29 | display: none !important; 30 | } 31 | 32 | .close-button:active .active-icon { 33 | display: block; 34 | } 35 | -------------------------------------------------------------------------------- /frontend/inspector/ui/confirmDialog.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .widget { 8 | padding: 20px; 9 | } 10 | 11 | .message, .button { 12 | font-size: larger; 13 | white-space: pre; 14 | margin: 5px; 15 | } 16 | 17 | .button { 18 | text-align: center; 19 | margin-top: 10px; 20 | } 21 | 22 | .button button { 23 | min-width: 80px; 24 | } 25 | 26 | .reason { 27 | color: #8b0000; 28 | } 29 | -------------------------------------------------------------------------------- /frontend/inspector/ui/dialog.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .widget { 8 | box-shadow: var(--drop-shadow); 9 | background: white; 10 | justify-content: flex-start; 11 | align-items: stretch; 12 | display: flex; 13 | } 14 | 15 | .dialog-close-button { 16 | position: absolute; 17 | right: 9px; 18 | top: 9px; 19 | z-index: 1; 20 | } -------------------------------------------------------------------------------- /frontend/inspector/ui/dropTarget.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | position: absolute; 9 | top: 0; 10 | bottom: 0; 11 | left: 0; 12 | right: 0; 13 | display: flex; 14 | background-color: rgba(255,255,255,0.8); 15 | z-index: 1000; 16 | } 17 | 18 | .drop-target-message { 19 | flex: auto; 20 | font-size: 30px; 21 | color: #999; 22 | display: flex; 23 | justify-content: center; 24 | align-items: center; 25 | margin: 20px; 26 | border: 4px dashed #ddd; 27 | pointer-events: none; 28 | } 29 | -------------------------------------------------------------------------------- /frontend/inspector/ui/emptyWidget.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .empty-view { 8 | color: hsla(0, 0%, 65%, 1); 9 | padding: 30px; 10 | display: flex; 11 | align-items: center; 12 | flex-direction: column; 13 | min-width: 70px; 14 | } 15 | 16 | .empty-view-scroller { 17 | justify-content: center; 18 | overflow: auto; 19 | } 20 | 21 | .empty-view p { 22 | white-space: initial; 23 | line-height: 18px; 24 | max-width: 300px; 25 | } 26 | -------------------------------------------------------------------------------- /frontend/inspector/ui/glassPane.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | position: absolute !important; 9 | top: 0; 10 | bottom: 0; 11 | left: 0; 12 | right: 0; 13 | overflow: hidden; 14 | contain: strict; 15 | background-color: transparent; 16 | } 17 | 18 | :host-context(.dimmed-pane) { 19 | background-color: rgba(255, 255, 255, 0.5); 20 | } 21 | 22 | :host-context(.no-pointer-events) { 23 | pointer-events: none; 24 | } 25 | 26 | .widget { 27 | display: flex; 28 | background-color: transparent; 29 | pointer-events: auto; 30 | flex: none; 31 | } 32 | 33 | .no-pointer-events { 34 | pointer-events: none; 35 | } 36 | 37 | .arrow-top { 38 | margin-top: -19px; 39 | margin-left: -9px; 40 | } 41 | 42 | .arrow-bottom { 43 | margin-left: -9px; 44 | } 45 | 46 | .arrow-left { 47 | margin-left: -19px; 48 | margin-top: -9px; 49 | } 50 | 51 | .arrow-right { 52 | margin-top: -9px; 53 | } 54 | 55 | .arrow-none { 56 | display: none; 57 | } 58 | 59 | :host-context(.-theme-with-dark-background) .arrow { 60 | -webkit-filter: invert(80%); 61 | } 62 | -------------------------------------------------------------------------------- /frontend/inspector/ui/inlineButton.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | :host { 8 | display: inline-block; 9 | border: 1px solid #ddd; 10 | position: relative; 11 | top: 7px; 12 | margin: 2px; 13 | background-color: var(--toolbar-bg-color); 14 | } 15 | 16 | :host > * { 17 | position: relative; 18 | left: -2px; 19 | width: 28px; 20 | height: 26px; 21 | } -------------------------------------------------------------------------------- /frontend/inspector/ui/inspectorViewTabbedPane.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .tabbed-pane-header-tab, 8 | .tabbed-pane-header-tab.selected { 9 | height: 26px; 10 | margin: 0; 11 | border: none; 12 | border-left: 2px solid transparent; 13 | border-right: 2px solid transparent; 14 | } 15 | 16 | .tabbed-pane-header-tab.selected { 17 | border-width: 0 2px 0 2px; 18 | } 19 | 20 | .tabbed-pane-header-contents { 21 | margin-left: 0; 22 | } 23 | 24 | .tabbed-pane-left-toolbar { 25 | margin-right: 0 !important; 26 | } 27 | -------------------------------------------------------------------------------- /frontend/inspector/ui/popover.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .widget { 8 | display: flex; 9 | background: white; 10 | box-shadow: var(--drop-shadow); 11 | border-radius: 2px; 12 | overflow: auto; 13 | -webkit-user-select: text; 14 | line-height: 11px; 15 | } 16 | 17 | .widget.has-padding { 18 | padding: 6px; 19 | } 20 | -------------------------------------------------------------------------------- /frontend/inspector/ui/progressIndicator.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .progress-indicator-shadow-stop-button { 8 | background-color: rgb(216, 0, 0) !important; 9 | border: 0; 10 | width: 10px; 11 | height: 12px; 12 | border-radius: 2px; 13 | } 14 | 15 | .progress-indicator-shadow-container { 16 | display: flex; 17 | flex: 1 0 auto; 18 | align-items: center; 19 | } 20 | 21 | .progress-indicator-shadow-container .title { 22 | text-overflow: ellipsis; 23 | overflow: hidden; 24 | max-width: 150px; 25 | margin-right: 2px; 26 | color: #777; 27 | } 28 | 29 | .progress-indicator-shadow-container progress { 30 | flex: auto; 31 | margin: 0 2px; 32 | width: 100px 33 | } 34 | -------------------------------------------------------------------------------- /frontend/inspector/ui/radioButton.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | ::content .dt-radio-button { 8 | height: 17px; 9 | width: 17px; 10 | min-width: 17px; 11 | border: 1px solid rgb(165, 165, 165); 12 | background-image: linear-gradient(to bottom, rgb(252, 252, 252), rgb(223, 223, 223)); 13 | border-radius: 8px; 14 | -webkit-appearance: none; 15 | vertical-align: middle; 16 | margin: 0 5px 5px 0; 17 | } 18 | 19 | ::content .dt-radio-button:active:not(:disabled) { 20 | background-image: linear-gradient(to bottom, rgb(194, 194, 194), rgb(239, 239, 239)); 21 | } 22 | 23 | ::content .dt-radio-button:checked { 24 | background: url(Images/radioDot.png) center no-repeat, 25 | linear-gradient(to bottom, rgb(252, 252, 252), rgb(223, 223, 223)); 26 | } 27 | 28 | ::content .dt-radio-button:checked:active { 29 | background: url(Images/radioDot.png) center no-repeat, 30 | linear-gradient(to bottom, rgb(194, 194, 194), rgb(239, 239, 239)); 31 | } 32 | -------------------------------------------------------------------------------- /frontend/inspector/ui/remoteDebuggingTerminatedScreen.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .widget { 8 | padding: 20px; 9 | } 10 | 11 | .message, .button { 12 | font-size: larger; 13 | white-space: pre; 14 | margin: 5px; 15 | } 16 | 17 | .button { 18 | text-align: center; 19 | margin-top: 10px; 20 | } 21 | 22 | .reason { 23 | color: #8b0000; 24 | } 25 | -------------------------------------------------------------------------------- /frontend/inspector/ui/rootView.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .root-view { 8 | background-color: white; 9 | overflow: hidden; 10 | position: absolute !important; 11 | left: 0; 12 | top: 0; 13 | right: 0; 14 | bottom: 0; 15 | } 16 | -------------------------------------------------------------------------------- /frontend/inspector/ui/slider.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .dt-range-input { 8 | -webkit-appearance: none; 9 | margin: 0; 10 | padding: 0; 11 | height: 10px; 12 | width: 88px; 13 | outline: none; 14 | background: none; 15 | } 16 | 17 | .dt-range-input::-webkit-slider-thumb, -theme-preserve { 18 | -webkit-appearance: none; 19 | margin: 0; 20 | padding: 0; 21 | border: 0; 22 | width: 12px; 23 | height: 12px; 24 | margin-top: -5px; 25 | border-radius: 50%; 26 | background-color: #4285F4; 27 | } 28 | 29 | .dt-range-input::-webkit-slider-runnable-track { 30 | -webkit-appearance: none; 31 | margin: 0; 32 | padding: 0; 33 | width: 100%; 34 | height: 2px; 35 | background-color: rgba(0, 0, 0, 0.26); 36 | } 37 | 38 | .dt-range-input:focus::-webkit-slider-thumb, -theme-preserve { 39 | box-shadow: 0 0 0 2px rgba(66, 133, 244, 0.4); 40 | } 41 | 42 | .dt-range-input:disabled::-webkit-slider-thumb { 43 | background-color: #bdbdbd; 44 | } 45 | -------------------------------------------------------------------------------- /frontend/inspector/ui/smallBubble.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | div { 8 | display: inline-block; 9 | height: 14px; 10 | vertical-align: middle; 11 | white-space: nowrap; 12 | padding: 1px 4px; 13 | text-align: left; 14 | font-size: 11px; 15 | line-height: normal; 16 | font-weight: bold; 17 | text-shadow: none; 18 | color: white; 19 | margin-top: -1px; 20 | border-radius: 7px; 21 | } 22 | 23 | div.verbose { 24 | background-color: rgb(0, 0, 255); 25 | } 26 | 27 | div.info { 28 | background-color: rgb(128, 151, 189); 29 | } 30 | 31 | div.warning { 32 | background-color: rgb(232, 164, 0); 33 | } 34 | 35 | div.error { 36 | background-color: rgb(216, 35, 35); 37 | } 38 | -------------------------------------------------------------------------------- /frontend/inspector/ui/softDropDown.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .item.disabled { 8 | opacity: 0.5; 9 | } 10 | 11 | .item-list { 12 | background-color: white; 13 | box-shadow: var(--drop-shadow); 14 | overflow-x: hidden; 15 | overflow-y: auto; 16 | width: 100%; 17 | } 18 | 19 | .item.highlighted { 20 | color: var(--selection-fg-color); 21 | background-color: var(--selection-bg-color); 22 | } 23 | -------------------------------------------------------------------------------- /frontend/inspector/ui/softDropDownButton.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | :host { 7 | height: 26px; 8 | text-align: left; 9 | position: relative; 10 | border: none; 11 | background: none; 12 | } 13 | 14 | :host([disabled]) { 15 | opacity: .5; 16 | } 17 | 18 | :host .title { 19 | padding-right: 5px; 20 | width: 120px; 21 | overflow: hidden; 22 | text-overflow: ellipsis; 23 | } 24 | 25 | :host([data-keyboard-focus="true"]:focus)::before { 26 | content: ""; 27 | position: absolute; 28 | top: 2px; 29 | left: 2px; 30 | right: 2px; 31 | bottom: 2px; 32 | border-radius: 2px; 33 | background: rgba(0, 0, 0, 0.08); 34 | } 35 | -------------------------------------------------------------------------------- /frontend/inspector/ui/targetCrashedScreen.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The Chromium Authors. All rights reserved. 3 | * Use of this source code is governed by a BSD-style license that can be 4 | * found in the LICENSE file. 5 | */ 6 | 7 | .widget { 8 | padding: 25px; 9 | } 10 | 11 | .message { 12 | font-size: larger; 13 | white-space: pre; 14 | margin: 5px; 15 | } 16 | -------------------------------------------------------------------------------- /frontend/inspector/worker_app.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /frontend/inspector/worker_app.js: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | Runtime.startApplication('worker_app'); 6 | -------------------------------------------------------------------------------- /frontend/inspector/worker_app.json: -------------------------------------------------------------------------------- 1 | { 2 | "modules" : [ 3 | { "name": "mobile_throttling", "type": "autostart" }, 4 | { "name": "worker_main", "type": "autostart" }, 5 | { "name": "browser_components", "type": "autostart" }, 6 | 7 | { "name": "browser_console" }, 8 | { "name": "browser_debugger" }, 9 | { "name": "cookie_table" }, 10 | { "name": "elements" }, 11 | { "name": "har_importer" }, 12 | { "name": "help" }, 13 | { "name": "layer_viewer" }, 14 | { "name": "network" }, 15 | { "name": "product_registry_impl", "type": "remote" }, 16 | { "name": "resources" }, 17 | { "name": "timeline" }, 18 | { "name": "timeline_model" } 19 | ], 20 | "extends": "shell", 21 | "has_html": true 22 | } 23 | -------------------------------------------------------------------------------- /frontend/inspector/worker_main/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": [ 3 | { 4 | "type": "early-initialization", 5 | "className": "WorkerMain.WorkerMain" 6 | } 7 | ], 8 | "dependencies": [ 9 | "components", 10 | "mobile_throttling" 11 | ], 12 | "scripts": [ 13 | "WorkerMain.js" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /frontend/inspector/worker_service/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": [ 3 | "ServiceDispatcher.js" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /frontend/inspector/workspace/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "common", 4 | "host", 5 | "platform" 6 | ], 7 | "scripts": [ 8 | "FileManager.js", 9 | "UISourceCode.js", 10 | "Workspace.js" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /frontend/inspector/workspace_diff/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": [ 3 | "workspace", 4 | "diff", 5 | "persistence" 6 | ], 7 | "scripts": [ 8 | "WorkspaceDiff.js" 9 | ] 10 | } -------------------------------------------------------------------------------- /frontend/lib/utils/toast.js: -------------------------------------------------------------------------------- 1 | function toast(text, delayed, theme) { 2 | let noticeCtn = document.createElement('div') 3 | noticeCtn.className = "widget-notice " + (theme || '') 4 | noticeCtn.innerHTML = '' + text + '' 5 | document.body.appendChild(noticeCtn) 6 | if (delayed > 0) { 7 | setTimeout(function () { 8 | if (noticeCtn) { 9 | noticeCtn.className += ' disapear' 10 | } 11 | setTimeout(function () { 12 | noticeCtn&&document.body.removeChild(noticeCtn) 13 | noticeCtn=null 14 | }, 500) 15 | }, delayed) 16 | } 17 | noticeCtn.onclick = function () { 18 | if (noticeCtn) { 19 | noticeCtn.className += ' disapear' 20 | } 21 | setTimeout(function () { 22 | noticeCtn&&document.body.removeChild(noticeCtn) 23 | noticeCtn=null 24 | }, 500) 25 | } 26 | } -------------------------------------------------------------------------------- /frontend/runtime.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Weex Devtool - JS Debugger 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | -------------------------------------------------------------------------------- /scripts/update.js: -------------------------------------------------------------------------------- 1 | const fse = require('fs-extra'); 2 | const path = require('path'); 3 | const package = require('../package.json'); 4 | 5 | const localFilePath = path.join(__dirname, '../frontend/lib/i18n/locale.js'); 6 | const localFileContent = fse.readFileSync(localFilePath).toString(); 7 | 8 | const versionReg = /\"VERSION\":\".+\"/ig; 9 | 10 | fse.writeFileSync(localFilePath, localFileContent.replace(versionReg, `"VERSION":"weex devtool ${package.version}"`)); 11 | 12 | fse.copySync(path.resolve('src/worker/'), path.resolve('lib/worker/')) 13 | 14 | const binFilePath = path.join(__dirname, '../bin/weex-devtool.js'); 15 | const binFileContent = fse.readFileSync(binFilePath).toString(); 16 | const sourceReg = /\.\.\/src/ig; 17 | 18 | fse.writeFileSync(binFilePath, binFileContent.replace(sourceReg, '../lib')); 19 | -------------------------------------------------------------------------------- /src/config/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | BUNDLE_DIRECTORY: "weex", 3 | REMOTE_DEBUG_PORT: "9222", 4 | ENABLE_HEADLESS: true 5 | }; 6 | -------------------------------------------------------------------------------- /src/link/constructors/enum.js: -------------------------------------------------------------------------------- 1 | exports.CHANNEL_MODE = { 2 | P2P: 0, 3 | P2P_STRICT: 1, 4 | N2N: 2 5 | }; 6 | -------------------------------------------------------------------------------- /src/link/handlers/runtime_proxy.js: -------------------------------------------------------------------------------- 1 | const mlink = require("../index"); 2 | const Router = mlink.Router; 3 | const debuggerRouter = Router.get("debugger"); 4 | debuggerRouter 5 | .registerHandler(function(message) { 6 | if ( 7 | message.payload.method === "Debugger.scriptParsed" || 8 | (message.payload.result && message.payload.result.frameTree) || 9 | (message.payload.params && 10 | /\/syncCallNative/.test(message.payload.params.message)) 11 | ) { 12 | message.discard(); 13 | } 14 | message.to("proxy.inspector"); 15 | }) 16 | .at("runtime.proxy"); 17 | -------------------------------------------------------------------------------- /src/link/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | Router: require("./constructors/router"), 3 | Enum: require("./constructors/enum"), 4 | Filter: require("./constructors/filter"), 5 | Hub: require("./constructors/hub"), 6 | Terminal: require("./constructors/terminal"), 7 | Handler: require("./constructors/handler"), 8 | Channel: require("./constructors/channel"), 9 | load: require("./tools/loader") 10 | }; 11 | -------------------------------------------------------------------------------- /src/link/setup.js: -------------------------------------------------------------------------------- 1 | const mlink = require("./index"); 2 | const Router = mlink.Router; 3 | const Hub = mlink.Hub; 4 | const debuggerRouter = new Router("debugger"); 5 | const nativeProxyHub = new Hub("proxy.native"); 6 | const debuggerHub = new Hub("page.debugger"); 7 | const inspectorHub = new Hub("proxy.inspector"); 8 | const runtimeWorkerHub = new Hub("runtime.worker"); 9 | const entryHub = new Hub("page.entry"); 10 | const runtimeProxyHub = new Hub("runtime.proxy"); 11 | const syncNativeHub = new Hub("sync.native"); 12 | const syncV8Hub = new Hub("sync.v8"); 13 | 14 | const setup = () => { 15 | debuggerRouter.link(nativeProxyHub); 16 | debuggerRouter.link(debuggerHub); 17 | debuggerRouter.link(inspectorHub); 18 | debuggerRouter.link(entryHub); 19 | debuggerRouter.link(syncNativeHub); 20 | debuggerRouter.link(syncV8Hub); 21 | debuggerRouter.link(runtimeWorkerHub); 22 | debuggerRouter.link(runtimeProxyHub); 23 | mlink.load(__dirname); 24 | }; 25 | module.exports = { 26 | setup 27 | }; 28 | -------------------------------------------------------------------------------- /src/link/tools/index.js: -------------------------------------------------------------------------------- 1 | exports.objectGet = function(object, prop, defaultValue) { 2 | const props = prop.split("."); 3 | let p = props.shift(); 4 | let cur = object; 5 | while (p) { 6 | cur = cur[p]; 7 | if (cur === undefined || cur === null) break; 8 | p = props.shift(); 9 | } 10 | return cur || defaultValue; 11 | }; 12 | exports.objectLocate = function objectLocate(object, prop) { 13 | if (!prop) return object; 14 | const props = prop.split("."); 15 | let p = props.shift(); 16 | let cur = object; 17 | while (p) { 18 | if (cur[p] === undefined) { 19 | cur[p] = {}; 20 | } 21 | cur = cur[p]; 22 | p = props.shift(); 23 | } 24 | return cur; 25 | }; 26 | exports.clearObjectAt = function(object, prop) { 27 | const props = prop.split("."); 28 | let p = props.shift(); 29 | let cur = object; 30 | while (p) { 31 | if (props.length === 0) { 32 | cur[p] = {}; 33 | } else { 34 | cur = cur[p]; 35 | } 36 | 37 | if (!cur) break; 38 | p = props.shift(); 39 | } 40 | return cur; 41 | }; 42 | exports.matchHubId = function(base, target) { 43 | return ( 44 | base === target || 45 | (target.indexOf(base) === 0 && target.charAt(base.length) === ".") 46 | ); 47 | }; 48 | -------------------------------------------------------------------------------- /src/link/tools/loader.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | const Router = require("../constructors/router"); 4 | const Hub = require("../constructors/hub"); 5 | module.exports = function loader(dir, config = {}) { 6 | require(path.join(dir, config.linkPath || "setup.js")); 7 | const handlerPath = path.join(dir, config.handlerPath || "handlers"); 8 | fs.readdirSync(handlerPath).forEach(file => { 9 | require(path.join(handlerPath, file)); 10 | }); 11 | Router.check(); 12 | Hub.check(); 13 | }; 14 | -------------------------------------------------------------------------------- /src/server/headless.js: -------------------------------------------------------------------------------- 1 | const puppeteer = require('puppeteer') 2 | let page 3 | let browser = null 4 | const { logger } = require('../util') 5 | 6 | exports.launchHeadless = async (host, remotePort) => { 7 | browser = await puppeteer.launch({ 8 | args: [`--remote-debugging-port=${remotePort}`, `--disable-gpu`], 9 | }) 10 | logger.verbose(`Headless has been launched`) 11 | page = await browser.newPage() 12 | await page.setUserAgent( 13 | '5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36', 14 | ) 15 | await page.goto(`http://${host}/runtime.html`) 16 | logger.verbose(`Headless page goto http://${host}/runtime.html`) 17 | } 18 | 19 | exports.closeHeadless = async () => { 20 | if (page) { 21 | await page.close() 22 | } 23 | if (browser) { 24 | await browser.close() 25 | } 26 | browser = null 27 | logger.verbose(`Cloased headless`) 28 | } 29 | -------------------------------------------------------------------------------- /src/server/index.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | const Koa = require("koa"); 3 | const serve = require("koa-static"); 4 | const Websockify = require("koa-websocket"); 5 | const bodyParser = require("koa-bodyparser"); 6 | const WsRouter = require("./router/websocket"); 7 | const HttpRouter = require("./router/http"); 8 | const app = Websockify(new Koa()); 9 | const rootPath = path.join(__dirname, "../../frontend/"); 10 | const { setup } = require("../link/setup"); 11 | const { logger } = require("../util"); 12 | 13 | exports.start = (port, cb) => { 14 | setup(); 15 | app.use(bodyParser()); 16 | app.ws.use(WsRouter.routes()).use(WsRouter.allowedMethods()); 17 | app.use(HttpRouter.routes()); 18 | app.use(serve(rootPath)); 19 | app.on("error", (err, ctx) => { 20 | logger.error(err); 21 | }); 22 | 23 | app.listen(port, cb); 24 | }; 25 | -------------------------------------------------------------------------------- /src/util/Hosts.js: -------------------------------------------------------------------------------- 1 | const HostsParser = require("parse-hosts"); 2 | const os = require("os"); 3 | const findRealHost = function(domain) { 4 | const hosts = HostsParser.get(); 5 | for (const key in hosts) { 6 | if (hosts.hasOwnProperty(key)) { 7 | const domains = hosts[key]; 8 | if (domains.indexOf(domain) !== -1) { 9 | return key; 10 | } 11 | } 12 | } 13 | return domain; 14 | }; 15 | const isValidLocalHost = function(host) { 16 | const ipMap = os.networkInterfaces(); 17 | let flag = false; 18 | for (const name in ipMap) { 19 | if (ipMap.hasOwnProperty(name)) { 20 | const ips = ipMap[name]; 21 | ips.forEach(function(ip) { 22 | if (host === ip.address) { 23 | flag = true; 24 | return true; 25 | } 26 | }); 27 | } 28 | } 29 | return flag; 30 | }; 31 | 32 | module.exports = { 33 | findRealHost, 34 | isValidLocalHost 35 | }; 36 | -------------------------------------------------------------------------------- /src/util/crypto.js: -------------------------------------------------------------------------------- 1 | const crypto = require("crypto"); 2 | 3 | const md5 = function(str) { 4 | const md5 = crypto.createHash("md5"); 5 | md5.update(str); 6 | return md5.digest("hex"); 7 | }; 8 | 9 | module.exports = { 10 | md5 11 | }; 12 | -------------------------------------------------------------------------------- /src/util/hosts.js: -------------------------------------------------------------------------------- 1 | const HostsParser = require("parse-hosts"); 2 | const os = require("os"); 3 | const findRealHost = function(domain) { 4 | const hosts = HostsParser.get(); 5 | for (const key in hosts) { 6 | if (hosts.hasOwnProperty(key)) { 7 | const domains = hosts[key]; 8 | if (domains.indexOf(domain) !== -1) { 9 | return key; 10 | } 11 | } 12 | } 13 | return domain; 14 | }; 15 | const isValidLocalHost = function(host) { 16 | const ipMap = os.networkInterfaces(); 17 | let flag = false; 18 | for (const name in ipMap) { 19 | if (ipMap.hasOwnProperty(name)) { 20 | const ips = ipMap[name]; 21 | ips.forEach(function(ip) { 22 | if (host === ip.address) { 23 | flag = true; 24 | return true; 25 | } 26 | }); 27 | } 28 | } 29 | return flag; 30 | }; 31 | 32 | module.exports = { 33 | findRealHost, 34 | isValidLocalHost 35 | }; 36 | -------------------------------------------------------------------------------- /src/util/index.js: -------------------------------------------------------------------------------- 1 | const util = require("./util"); 2 | const crypto = require("./crypto"); 3 | const env = require("./env"); 4 | const launcher = require("./launcher"); 5 | const logger = require("./logger"); 6 | const request = require("./request"); 7 | const wrapper = require("./wrapper"); 8 | const hosts = require("./hosts"); 9 | 10 | module.exports = { 11 | util, 12 | crypto, 13 | env, 14 | launcher, 15 | logger, 16 | request, 17 | wrapper, 18 | hosts 19 | }; 20 | -------------------------------------------------------------------------------- /src/util/launcher.js: -------------------------------------------------------------------------------- 1 | const chromeOpn = require("chrome-opn"); 2 | 3 | const pendingList = []; 4 | let pending = false; 5 | const launchChrome = function(url, remoteDebugPort, wait, callback) { 6 | if (!pending) { 7 | pending = true; 8 | url = url.replace(/[&*]/g, "\\&"); 9 | const args = remoteDebugPort > 0 ? ["-remote-debugging-port=" + remoteDebugPort] : null; 10 | chromeOpn(url, args, !!wait).then(cp => { 11 | cp.once("close", e => { 12 | callback && callback(null); 13 | if (pendingList.length > 0) { 14 | pending = false; 15 | pendingList.shift()(); 16 | } 17 | }); 18 | cp.once("error", err => { 19 | pending = false; 20 | callback && callback(err); 21 | }); 22 | }); 23 | } else { 24 | pendingList.push(function() { 25 | launchChrome(url, remoteDebugPort, wait, callback); 26 | }); 27 | } 28 | }; 29 | const launchNewChrome = function(url, args) {}; 30 | 31 | module.exports = { 32 | launchNewChrome, 33 | launchChrome 34 | }; 35 | -------------------------------------------------------------------------------- /src/util/request.js: -------------------------------------------------------------------------------- 1 | const protocols = { 2 | "http:": require("http"), 3 | "https:": require("https") 4 | }; 5 | const URL = require("url"); 6 | const getRemote = function getRemote(url) { 7 | return new Promise(function(resolve, reject) { 8 | const urlObj = URL.parse(url); 9 | (protocols[urlObj.protocol] || protocols["http:"]) 10 | .get( 11 | { 12 | hostname: urlObj.hostname, 13 | port: urlObj.port, 14 | path: urlObj.path, 15 | method: "GET", 16 | headers: { 17 | "User-Agent": "Weex/1.0.0" 18 | } 19 | }, 20 | function(res) { 21 | let chunks = []; 22 | res.on("data", function(chunk) { 23 | chunks.push(chunk); 24 | }); 25 | res.on("end", function() { 26 | resolve(Buffer.concat(chunks).toString()); 27 | chunks = null; 28 | }); 29 | } 30 | ) 31 | .on("error", function(e) { 32 | reject(e); 33 | }); 34 | }); 35 | }; 36 | 37 | module.exports = { 38 | getRemote 39 | }; 40 | -------------------------------------------------------------------------------- /src/util/util.js: -------------------------------------------------------------------------------- 1 | const URL = require("url"); 2 | const queryParser = require("querystring"); 3 | 4 | let connectUrl; 5 | 6 | const normalize = remoteurl => { 7 | const urlObj = URL.parse(remoteurl); 8 | if (urlObj.query) { 9 | urlObj.query = queryParser.stringify(queryParser.parse(urlObj.query)); 10 | urlObj.search = "?" + urlObj.query; 11 | } 12 | return urlObj.format(); 13 | }; 14 | 15 | const getConnectUrl = channelId => { 16 | return connectUrl.replace("{channelId}", channelId); 17 | }; 18 | 19 | const setConnectUrl = url => { 20 | connectUrl = url; 21 | }; 22 | 23 | module.exports = { 24 | normalize, 25 | getConnectUrl, 26 | setConnectUrl 27 | }; 28 | -------------------------------------------------------------------------------- /test/api.js: -------------------------------------------------------------------------------- 1 | var devtool=require('../index') 2 | var ip=require('ip') 3 | devtool.start('',{ip:ip.address(),port:'8088'}) --------------------------------------------------------------------------------