├── .editorconfig
├── .gitignore
├── .jscsrc
├── .jshintrc
├── .travis.yml
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── build.sh
├── docs
├── building.md
├── https.md
└── tips.md
├── gfx
├── icon.icns
├── icon.ico
└── icon.png
├── iconset.sh
├── package.json
└── src
├── dt
├── .jscsrc
├── Images
│ ├── applicationCache.png
│ ├── breakpoint.png
│ ├── breakpointConditional.png
│ ├── breakpointConditional_2x.png
│ ├── breakpoint_2x.png
│ ├── checker.png
│ ├── chromeDisabledSelect.png
│ ├── chromeDisabledSelect_2x.png
│ ├── chromeLeft.png
│ ├── chromeMiddle.png
│ ├── chromeRight.png
│ ├── chromeSelect.png
│ ├── chromeSelect_2x.png
│ ├── cookie.png
│ ├── database.png
│ ├── databaseTable.png
│ ├── deleteIcon.png
│ ├── domain.png
│ ├── errorWave.png
│ ├── errorWave_2x.png
│ ├── fileSystem.png
│ ├── forward.png
│ ├── frame.png
│ ├── graphLabelCalloutLeft.png
│ ├── graphLabelCalloutRight.png
│ ├── indexedDB.png
│ ├── indexedDBIndex.png
│ ├── indexedDBObjectStore.png
│ ├── localStorage.png
│ ├── navigationControls.png
│ ├── navigationControls_2x.png
│ ├── notifications.svg
│ ├── paneAddButtons.png
│ ├── paneFilterButtons.png
│ ├── paneRefreshButtons.png
│ ├── popoverArrows.png
│ ├── profileGroupIcon.png
│ ├── profileIcon.png
│ ├── profileSmallIcon.png
│ ├── radioDot.png
│ ├── resourceCSSIcon.png
│ ├── resourceDocumentIcon.png
│ ├── resourceDocumentIconSmall.png
│ ├── resourceJSIcon.png
│ ├── resourcePlainIcon.png
│ ├── resourcePlainIconSmall.png
│ ├── resourcesTimeGraphIcon.png
│ ├── responsiveDesign.png
│ ├── responsiveDesign_2x.png
│ ├── searchNext.png
│ ├── searchPrev.png
│ ├── securityPropertyInfo.svg
│ ├── securityPropertyInsecure.svg
│ ├── securityPropertySecure.svg
│ ├── securityPropertyWarning.svg
│ ├── securityStateInsecure.svg
│ ├── securityStateNeutral.svg
│ ├── securityStateSecure.svg
│ ├── serviceWorker.svg
│ ├── sessionStorage.png
│ ├── settingsListRemove.png
│ ├── settingsListRemove_2x.png
│ ├── speech.png
│ ├── src
│ │ ├── breakpoint.svg
│ │ ├── breakpointConditional.svg
│ │ ├── errorWave.svg
│ │ ├── optimize_png.hashes
│ │ ├── responsiveDesign.svg
│ │ ├── settingsListRemove.svg
│ │ ├── svg2png.hashes
│ │ └── toolbarButtonGlyphs.svg
│ ├── thumbActiveHoriz.png
│ ├── thumbActiveVert.png
│ ├── thumbHoriz.png
│ ├── thumbHoverHoriz.png
│ ├── thumbHoverVert.png
│ ├── thumbVert.png
│ ├── toolbarButtonGlyphs.png
│ ├── toolbarButtonGlyphs_2x.png
│ ├── toolbarItemSelected.png
│ ├── toolbarResizerHorizontal.png
│ ├── toolbarResizerVertical.png
│ ├── touchCursor.png
│ ├── touchCursor_2x.png
│ ├── transformControls.png
│ ├── transformControls_2x.png
│ └── updateServiceWorker.svg
├── OWNERS
├── Runtime.js
├── accessibility
│ ├── AccessibilityModel.js
│ ├── AccessibilitySidebarView.js
│ ├── AccessibilityStrings.js
│ ├── accessibilityNode.css
│ └── module.json
├── acorn
│ ├── LICENSE
│ └── acorn.js
├── animation
│ ├── AnimationControlPane.js
│ ├── AnimationGroupPreviewUI.js
│ ├── AnimationModel.js
│ ├── AnimationTimeline.js
│ ├── AnimationUI.js
│ ├── animationTimeline.css
│ └── module.json
├── audits
│ ├── AuditCategories.js
│ ├── AuditCategory.js
│ ├── AuditController.js
│ ├── AuditExtensionCategory.js
│ ├── AuditFormatters.js
│ ├── AuditLauncherView.js
│ ├── AuditResultView.js
│ ├── AuditRules.js
│ ├── AuditsPanel.js
│ ├── auditResultTree.css
│ ├── auditsPanel.css
│ └── module.json
├── bindings
│ ├── BlackboxSupport.js
│ ├── BreakpointManager.js
│ ├── CSSWorkspaceBinding.js
│ ├── CompilerScriptMapping.js
│ ├── ContentProviderBasedProjectDelegate.js
│ ├── ContentScriptProjectDecorator.js
│ ├── DebuggerWorkspaceBinding.js
│ ├── DefaultScriptMapping.js
│ ├── FileSystemWorkspaceBinding.js
│ ├── FileUtils.js
│ ├── LiveLocation.js
│ ├── NetworkMapping.js
│ ├── NetworkProject.js
│ ├── PresentationConsoleMessageHelper.js
│ ├── ResourceScriptMapping.js
│ ├── ResourceUtils.js
│ ├── SASSSourceMapping.js
│ ├── StylesSourceMapping.js
│ ├── TempFile.js
│ ├── WorkspaceController.js
│ └── module.json
├── cm
│ ├── LICENSE
│ ├── LICENSE_python
│ ├── PRESUBMIT.py
│ ├── activeline.js
│ ├── closebrackets.js
│ ├── codemirror.css
│ ├── codemirror.js
│ ├── comment.js
│ ├── css.js
│ ├── headlesscodemirror.js
│ ├── htmlembedded.js
│ ├── htmlmixed.js
│ ├── javascript.js
│ ├── markselection.js
│ ├── matchbrackets.js
│ ├── overlay.js
│ ├── simple.js
│ └── xml.js
├── cm_modes
│ ├── DefaultCodeMirrorMimeMode.js
│ ├── LICENSE
│ ├── PRESUBMIT.py
│ ├── clike.js
│ ├── clojure.js
│ ├── coffeescript.js
│ ├── livescript.js
│ ├── module.json
│ ├── php.js
│ ├── python.js
│ ├── shell.js
│ └── stylus.js
├── common
│ ├── Color.js
│ ├── Console.js
│ ├── ContentProvider.js
│ ├── Geometry.js
│ ├── ModuleExtensionInterfaces.js
│ ├── NotificationService.js
│ ├── Object.js
│ ├── OutputStream.js
│ ├── ParsedURL.js
│ ├── Progress.js
│ ├── ResourceType.js
│ ├── Settings.js
│ ├── StaticContentProvider.js
│ ├── TestBase.js
│ ├── TextDictionary.js
│ ├── TextRange.js
│ ├── TextUtils.js
│ ├── Throttler.js
│ ├── UIString.js
│ ├── WebInspector.js
│ ├── WorkerRuntime.js
│ └── module.json
├── components
│ ├── BreakpointsSidebarPaneBase.js
│ ├── CustomPreviewSection.js
│ ├── DOMBreakpointsSidebarPane.js
│ ├── DOMPresentationUtils.js
│ ├── DataSaverInfobar.js
│ ├── DebuggerPresentationUtils.js
│ ├── DockController.js
│ ├── Drawer.js
│ ├── EventListenersUtils.js
│ ├── EventListenersView.js
│ ├── ExecutionContextModel.js
│ ├── ExecutionContextSelector.js
│ ├── HandlerRegistry.js
│ ├── InspectorView.js
│ ├── Linkifier.js
│ ├── NetworkConditionsSelector.js
│ ├── ObjectPopoverHelper.js
│ ├── ObjectPropertiesSection.js
│ ├── Reload.js
│ ├── RemoteObjectPreviewFormatter.js
│ ├── ShortcutsScreen.js
│ ├── breakpointsList.css
│ ├── customPreviewSection.css
│ ├── domUtils.css
│ ├── eventListenersView.css
│ ├── inspectorViewTabbedPane.css
│ ├── module.json
│ ├── networkConditionsSettingsTab.css
│ ├── objectPropertiesSection.css
│ └── objectValue.css
├── components_lazy
│ ├── CookiesTable.js
│ ├── FilmStripModel.js
│ ├── FilmStripView.js
│ ├── filmStripDialog.css
│ ├── filmStripView.css
│ └── module.json
├── console
│ ├── ConsolePanel.js
│ ├── ConsoleView.js
│ ├── ConsoleViewMessage.js
│ ├── consoleView.css
│ └── module.json
├── devices
│ ├── DevicesDialog.js
│ ├── DevicesView.js
│ ├── devicesView.css
│ └── module.json
├── devtools.js
├── diff
│ ├── Diff.js
│ ├── diff_match_patch.js
│ └── module.json
├── elements
│ ├── BezierEditor.js
│ ├── BezierUI.js
│ ├── ComputedStyleWidget.js
│ ├── ElementStatePaneWidget.js
│ ├── ElementsBreadcrumbs.js
│ ├── ElementsPanel.js
│ ├── ElementsSidebarPane.js
│ ├── ElementsSidebarView.js
│ ├── ElementsTreeElement.js
│ ├── ElementsTreeElementHighlighter.js
│ ├── ElementsTreeOutline.js
│ ├── EventListenersWidget.js
│ ├── InspectElementModeController.js
│ ├── MetricsSidebarPane.js
│ ├── PlatformFontsWidget.js
│ ├── PropertiesWidget.js
│ ├── PropertyChangeHighlighter.js
│ ├── SharedSidebarModel.js
│ ├── Spectrum.js
│ ├── StylesPopoverHelper.js
│ ├── StylesSectionModel.js
│ ├── StylesSidebarPane.js
│ ├── bezierEditor.css
│ ├── breadcrumbs.css
│ ├── computedStyleSidebarPane.css
│ ├── elementsPanel.css
│ ├── elementsTreeOutline.css
│ ├── module.json
│ └── spectrum.css
├── emulated_devices
│ ├── 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
│ └── module.json
├── emulation
│ ├── DeviceModeButton.js
│ ├── DevicesSettingsTab.js
│ ├── EmulatedDevices.js
│ ├── InspectedPagePlaceholder.js
│ ├── MediaQueryInspector.js
│ ├── OverridesSupport.js
│ ├── OverridesUI.js
│ ├── OverridesView.js
│ ├── ResponsiveDesignView.js
│ ├── SensorsView.js
│ ├── devicesSettingsTab.css
│ ├── module.json
│ ├── overrides.css
│ ├── responsiveDesignView.css
│ └── sensors.css
├── es6.js
├── extensions
│ ├── ExtensionAPI.js
│ ├── ExtensionAuditCategory.js
│ ├── ExtensionPanel.js
│ ├── ExtensionRegistryStub.js
│ ├── ExtensionServer.js
│ ├── ExtensionView.js
│ └── module.json
├── externs.js
├── heap_snapshot_worker
│ ├── AllocationProfile.js
│ ├── HeapSnapshot.js
│ ├── HeapSnapshotLoader.js
│ ├── HeapSnapshotWorker.js
│ ├── HeapSnapshotWorkerDispatcher.js
│ ├── JSHeapSnapshot.js
│ └── module.json
├── host
│ ├── InspectorFrontendHost.js
│ ├── InspectorFrontendHostAPI.js
│ ├── Platform.js
│ ├── ResourceLoader.js
│ ├── UserMetrics.js
│ └── module.json
├── inspector.css
├── inspector.html
├── inspector.js
├── inspector.json
├── inspectorStyle.css
├── layers
│ ├── LayerPaintProfilerView.js
│ ├── LayersPanel.js
│ └── module.json
├── main
│ ├── AdvancedApp.js
│ ├── FrontendWebSocketAPI.js
│ ├── Main.js
│ ├── OverlayController.js
│ ├── RenderingOptions.js
│ ├── SimpleApp.js
│ ├── Tests.js
│ ├── module.json
│ ├── remoteDebuggingTerminatedScreen.css
│ ├── renderingOptions.css
│ └── targetCrashedScreen.css
├── network
│ ├── BlockedURLsPane.js
│ ├── EventSourceMessagesView.js
│ ├── FilterSuggestionBuilder.js
│ ├── HARWriter.js
│ ├── NetworkConfigView.js
│ ├── NetworkDataGridNode.js
│ ├── NetworkItemView.js
│ ├── NetworkLogView.js
│ ├── NetworkOverview.js
│ ├── NetworkPanel.js
│ ├── NetworkTimeCalculator.js
│ ├── RequestCookiesView.js
│ ├── RequestHTMLView.js
│ ├── RequestHeadersView.js
│ ├── RequestJSONView.js
│ ├── RequestPreviewView.js
│ ├── RequestResponseView.js
│ ├── RequestTimingView.js
│ ├── RequestView.js
│ ├── ResourceWebSocketFrameView.js
│ ├── XMLView.js
│ ├── blockedURLsPane.css
│ ├── eventSourceMessagesView.css
│ ├── module.json
│ ├── networkConfigView.css
│ ├── networkLogView.css
│ ├── networkPanel.css
│ ├── requestCookiesView.css
│ ├── requestHeadersView.css
│ ├── webSocketFrameView.css
│ └── xmlView.css
├── platform
│ ├── DOMExtension.js
│ ├── module.json
│ └── utilities.js
├── popover.css
├── profiler
│ ├── CPUProfileBottomUpDataGrid.js
│ ├── CPUProfileDataGrid.js
│ ├── CPUProfileFlameChart.js
│ ├── CPUProfileTopDownDataGrid.js
│ ├── CPUProfileView.js
│ ├── HeapSnapshotCommon.js
│ ├── HeapSnapshotDataGrids.js
│ ├── HeapSnapshotGridNodes.js
│ ├── HeapSnapshotProxy.js
│ ├── HeapSnapshotView.js
│ ├── ProfileLauncherView.js
│ ├── ProfileTypeRegistry.js
│ ├── ProfilesPanel.js
│ ├── TargetsComboBoxController.js
│ ├── heapProfiler.css
│ ├── module.json
│ └── profilesPanel.css
├── promises
│ ├── PromisePane.js
│ ├── module.json
│ └── promisePane.css
├── protocol.json
├── resources
│ ├── ApplicationCacheItemsView.js
│ ├── CookieItemsView.js
│ ├── DOMStorageItemsView.js
│ ├── DOMStorageModel.js
│ ├── DatabaseModel.js
│ ├── DatabaseQueryView.js
│ ├── DatabaseTableView.js
│ ├── DirectoryContentView.js
│ ├── FileContentView.js
│ ├── FileSystemModel.js
│ ├── FileSystemView.js
│ ├── IndexedDBModel.js
│ ├── IndexedDBViews.js
│ ├── ResourcesPanel.js
│ ├── ServiceWorkerCacheViews.js
│ ├── ServiceWorkersView.js
│ ├── indexedDBViews.css
│ ├── module.json
│ ├── resourcesPanel.css
│ ├── serviceWorkerCacheViews.css
│ └── serviceWorkersView.css
├── screencast
│ ├── ScreencastApp.js
│ ├── ScreencastView.js
│ ├── module.json
│ └── screencastView.css
├── script_formatter_worker
│ ├── AcornTokenizer.js
│ ├── CSSFormatter.js
│ ├── ESTreeWalker.js
│ ├── JavaScriptFormatter.js
│ ├── ScriptFormatterWorker.js
│ └── module.json
├── sdk
│ ├── ApplicationCacheModel.js
│ ├── CPUProfileDataModel.js
│ ├── CPUProfilerModel.js
│ ├── CSSMetadata.js
│ ├── CSSParser.js
│ ├── CSSStyleModel.js
│ ├── ConsoleModel.js
│ ├── ContentProviders.js
│ ├── CookieParser.js
│ ├── DOMModel.js
│ ├── DebuggerModel.js
│ ├── HAREntry.js
│ ├── HeapProfilerModel.js
│ ├── InspectorBackend.js
│ ├── InspectorBackendHostedMode.js
│ ├── NetworkLog.js
│ ├── NetworkManager.js
│ ├── NetworkRequest.js
│ ├── PaintProfiler.js
│ ├── RemoteObject.js
│ ├── Resource.js
│ ├── ResourceTreeModel.js
│ ├── RuntimeModel.js
│ ├── Script.js
│ ├── ServiceWorkerCacheModel.js
│ ├── ServiceWorkerManager.js
│ ├── SourceMap.js
│ ├── Target.js
│ ├── TracingManager.js
│ ├── TracingModel.js
│ ├── WorkerManager.js
│ └── module.json
├── security
│ ├── SecurityModel.js
│ ├── SecurityPanel.js
│ ├── lockIcon.css
│ ├── mainView.css
│ ├── module.json
│ ├── originView.css
│ └── sidebar.css
├── settings
│ ├── EditFileSystemView.js
│ ├── FrameworkBlackboxSettingsTab.js
│ ├── SettingsScreen.js
│ ├── editFileSystemView.css
│ ├── frameworkBlackboxSettingsTab.css
│ ├── module.json
│ └── settingsScreen.css
├── sidebarPane.css
├── snippets
│ ├── ScriptSnippetModel.js
│ ├── SnippetStorage.js
│ └── module.json
├── source_frame
│ ├── CodeMirrorDictionary.js
│ ├── CodeMirrorTextEditor.js
│ ├── CodeMirrorUtils.js
│ ├── FontView.js
│ ├── ImageView.js
│ ├── ResourceSourceFrame.js
│ ├── SourceFrame.js
│ ├── TextEditorAutocompleteController.js
│ ├── cmdevtools.css
│ ├── fontView.css
│ ├── imageView.css
│ └── module.json
├── sources
│ ├── AddSourceMapURLDialog.js
│ ├── AdvancedSearchView.js
│ ├── AsyncOperationsSidebarPane.js
│ ├── CSSSourceFrame.js
│ ├── CallStackSidebarPane.js
│ ├── EditingLocationHistoryManager.js
│ ├── EventListenerBreakpointsSidebarPane.js
│ ├── FileBasedSearchResultsPane.js
│ ├── FilePathScoreFunction.js
│ ├── FilteredItemSelectionDialog.js
│ ├── InplaceFormatterEditorAction.js
│ ├── JavaScriptBreakpointsSidebarPane.js
│ ├── JavaScriptCompiler.js
│ ├── JavaScriptSourceFrame.js
│ ├── NavigatorView.js
│ ├── ObjectEventListenersSidebarPane.js
│ ├── RevisionHistoryView.js
│ ├── ScopeChainSidebarPane.js
│ ├── ScriptFormatter.js
│ ├── ScriptFormatterEditorAction.js
│ ├── ServiceWorkersSidebarPane.js
│ ├── SimpleHistoryManager.js
│ ├── SourcesNavigator.js
│ ├── SourcesPanel.js
│ ├── SourcesSearchScope.js
│ ├── SourcesView.js
│ ├── StyleSheetOutlineDialog.js
│ ├── TabbedEditorContainer.js
│ ├── ThreadsSidebarPane.js
│ ├── UIList.js
│ ├── UISourceCodeFrame.js
│ ├── WatchExpressionsSidebarPane.js
│ ├── WorkspaceMappingTip.js
│ ├── XHRBreakpointsSidebarPane.js
│ ├── addSourceMapURLDialog.css
│ ├── filteredItemSelectionDialog.css
│ ├── module.json
│ ├── navigatorView.css
│ ├── revisionHistory.css
│ ├── serviceWorkersSidebar.css
│ ├── sourcesPanel.css
│ ├── sourcesSearch.css
│ ├── sourcesView.css
│ └── uiList.css
├── temp_storage_shared_worker
│ ├── TempStorageSharedWorker.js
│ └── module.json
├── timeline
│ ├── CountersGraph.js
│ ├── LayerDetailsView.js
│ ├── LayerTreeModel.js
│ ├── LayerTreeOutline.js
│ ├── LayerViewHost.js
│ ├── Layers3DView.js
│ ├── MemoryCountersGraph.js
│ ├── PaintProfilerView.js
│ ├── TimelineEventOverview.js
│ ├── TimelineFlameChart.js
│ ├── TimelineFrameModel.js
│ ├── TimelineJSProfile.js
│ ├── TimelineLayersView.js
│ ├── TimelineModel.js
│ ├── TimelinePaintProfilerView.js
│ ├── TimelinePanel.js
│ ├── TimelinePresentationModel.js
│ ├── TimelineTreeView.js
│ ├── TimelineUIUtils.js
│ ├── TimelineView.js
│ ├── TransformController.js
│ ├── invalidationsTree.css
│ ├── module.json
│ ├── timelinePanel.css
│ └── timelineStatusDialog.css
├── toolbox.css
├── toolbox.html
├── toolbox.js
├── toolbox.json
├── toolbox_bootstrap
│ ├── Toolbox.js
│ └── module.json
├── ui
│ ├── ActionRegistry.js
│ ├── ColorSwatch.js
│ ├── Context.js
│ ├── ContextMenu.js
│ ├── DOMSyntaxHighlighter.js
│ ├── Dialog.js
│ ├── DropDownMenu.js
│ ├── DropTarget.js
│ ├── EmptyWidget.js
│ ├── FilterBar.js
│ ├── ForwardedInputEventHandler.js
│ ├── HistoryInput.js
│ ├── Infobar.js
│ ├── InplaceEditor.js
│ ├── KeyboardShortcut.js
│ ├── ListWidget.js
│ ├── Panel.js
│ ├── Popover.js
│ ├── ProgressIndicator.js
│ ├── ResizerWidget.js
│ ├── RootView.js
│ ├── SearchableView.js
│ ├── Section.js
│ ├── SettingsUI.js
│ ├── ShortcutRegistry.js
│ ├── SidebarPane.js
│ ├── SidebarTreeElement.js
│ ├── SoftContextMenu.js
│ ├── SplitWidget.js
│ ├── StackView.js
│ ├── SuggestBox.js
│ ├── TabbedPane.js
│ ├── TextPrompt.js
│ ├── ThrottledWidget.js
│ ├── Toolbar.js
│ ├── Tooltip.js
│ ├── UIUtils.js
│ ├── ViewportControl.js
│ ├── Widget.js
│ ├── ZoomManager.js
│ ├── checkboxTextLabel.css
│ ├── closeButton.css
│ ├── colorSwatch.css
│ ├── dialog.css
│ ├── dropTarget.css
│ ├── emptyWidget.css
│ ├── filter.css
│ ├── infobar.css
│ ├── inspectorCommon.css
│ ├── inspectorSyntaxHighlight.css
│ ├── listWidget.css
│ ├── module.json
│ ├── panelEnablerView.css
│ ├── progressIndicator.css
│ ├── propertiesSection.css
│ ├── radioButton.css
│ ├── searchableView.css
│ ├── section.css
│ ├── smallIcon.css
│ ├── softContextMenu.css
│ ├── splitWidget.css
│ ├── suggestBox.css
│ ├── tabbedPane.css
│ ├── textButton.css
│ ├── textPrompt.css
│ ├── toolbar.css
│ ├── tooltip.css
│ ├── treeoutline.css
│ └── treeoutline.js
├── ui_lazy
│ ├── DataGrid.js
│ ├── FlameChart.js
│ ├── OverviewGrid.js
│ ├── PieChart.js
│ ├── ShowMoreDataGridNode.js
│ ├── SortableDataGrid.js
│ ├── TimelineGrid.js
│ ├── TimelineOverviewPane.js
│ ├── ViewportDataGrid.js
│ ├── dataGrid.css
│ ├── flameChart.css
│ ├── module.json
│ ├── overviewGrid.css
│ ├── pieChart.css
│ └── timelineGrid.css
└── workspace
│ ├── FileManager.js
│ ├── FileSystemMapping.js
│ ├── IsolatedFileSystem.js
│ ├── IsolatedFileSystemManager.js
│ ├── SearchConfig.js
│ ├── UISourceCode.js
│ ├── Workspace.js
│ └── module.json
├── lib
├── captured-connection.js
├── front-end-connection.js
├── init-time.js
├── rdp-message-formatter.js
└── traffic-interceptor.js
├── main.js
└── menu.js
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | end_of_line = lf
5 | insert_final_newline = true
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 4
9 |
10 | [*.{json,yml}]
11 | indent_style = space
12 | indent_size = 2
13 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .idea
3 | bin/
4 | npm-debug.log
5 |
--------------------------------------------------------------------------------
/.jscsrc:
--------------------------------------------------------------------------------
1 | {
2 | "preset": "google",
3 | "validateIndentation": 4,
4 | "maximumLineLength": {
5 | "value": 120
6 | },
7 | "esnext": true
8 | }
--------------------------------------------------------------------------------
/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "esnext": true,
3 | "node": true,
4 | "validthis": true
5 | }
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "5.0"
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## Reporting issues and requesting feature
2 |
3 | Please make sure that the issue has not been already reported.
4 |
5 | Take time to include as much details as needed to reproduce your problem or justify your request.
6 |
7 | Remember that reports are great, but Pull Requests are *so much more awesome*.
8 |
9 | ## How Betwixt works
10 |
11 | Betwixt is an [Electron](http://electron.atom.io/) app that runs a custom Chrome DevTools instance in the frontend and a proxy server in the backend. Backend talks to the frontend over a websocket connection using [Remote Debugging Protocol](https://developer.chrome.com/devtools/docs/debugger-protocol). Proxy server is responsible for capturing traffic and pushing it to the frontend.
12 |
13 | ## Main goals of the project
14 |
15 | Betwixt should nail these two things:
16 |
17 | - Capture information about all passing traffic as accurately and transparently as possible (avoid modifying requests, responses and timing).
18 | - Format valid Remote Debugging Protocol messages based on the gathered network information and pass them to the frontend.
19 |
20 | DevTools will do the rest.
21 |
22 | ## Folder structure
23 |
24 | - `/src` - Betwixt source files
25 | - `/src/dt` - customized snapshot of Chrome DevTools
26 | - `/src/main.js` - app entry point
27 |
28 | ## Tips and tricks
29 |
30 | All messages sent between backend and frontend can be explored using [Remote Debugging Protocol Viewer](https://chromedevtools.github.io/debugger-protocol-viewer/). However, since some details are not documented, you may want to see how "regular" DevTools are doing things by sniffing the protocol ([as explained in the "Sniffing the protocol" section](https://developer.chrome.com/devtools/docs/debugger-protocol)).
31 |
32 | ## Versioning
33 |
34 | Let's do the [semver](http://semver.org/) thing.
35 |
36 | ## Testing
37 |
38 | `npm test`. ATM it will only run `jshint` and `jscs`. It might be a bit to late for the TDD thing, but tests are still welcome.
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2015 Konrad Dzwinel
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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | [](https://travis-ci.org/kdzwinel/betwixt)
4 | [](https://david-dm.org/kdzwinel/betwixt)
5 |
6 | Betwixt will help you analyze web traffic outside the browser using familiar Chrome DevTools interface.
7 |
8 |

9 |
10 |
11 | ## Installing
12 |
13 | Download the [latest release](https://github.com/kdzwinel/betwixt/releases/latest) for your operating system, [build your own bundle](docs/building.md) or [run Betwixt from the source code](docs/building.md).
14 |
15 | ## Setting up
16 |
17 | In order to capture traffic, you'll have to direct it to the proxy created by Betwixt in the background (`http://localhost:8008`).
18 |
19 | If you wish to analyze traffic system wide:
20 | - on macOS - `System Preferences → Network → Advanced → Proxies → Web Proxy (HTTP)`
21 | - on Windows - `Settings → Network & Internet → Proxy`
22 | - on Ubuntu - `All Settings → Network → Network Proxy`
23 |
24 | 
25 |
26 | If you want to capture traffic coming from a single terminal use `export http_proxy=http://localhost:8008`.
27 |
28 | Capturing encrypted traffic (HTTPS) requires additional step, see [this doc](docs/https.md) for instructions.
29 |
30 | ## Contributing
31 |
32 | All contributors are very welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) fore more details.
33 |
34 | #### License [MIT](LICENSE.md)
35 |
--------------------------------------------------------------------------------
/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # clean up after last build
4 | rm -rf build/
5 | rm -rf bin/
6 |
7 | mkdir build/
8 | mkdir bin/
9 |
10 | # move files required by production app to the /build folder
11 | cp -r src/ build/src/
12 | cp -r gfx/ build/gfx/
13 | cp package.json build/
14 |
15 | # install all dependencies
16 | cd build/
17 | npm i --production
18 | cd ..
19 |
20 | # build packages for all supported OS versions
21 | electron-packager ./build/ Betwixt --out ./bin/ --version=0.36.12 --platform=all --arch=all --icon=./gfx/icon
22 |
--------------------------------------------------------------------------------
/docs/building.md:
--------------------------------------------------------------------------------
1 | ## Building
2 |
3 | ### Setup
4 |
5 | To clone and run this repository you'll need [Git](https://git-scm.com) and [Node.js 4.x+](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line:
6 |
7 | ```bash
8 | # Clone this repository
9 | $ git clone https://github.com/kdzwinel/betwixt.git
10 | # Go into the repository
11 | $ cd betwixt
12 | # Install dependencies
13 | $ npm install
14 | ```
15 |
16 | ### Running
17 |
18 | You can run Betwixt right away using `npm start`.
19 |
20 | ### Command line configuration options
21 |
22 | - `--proxy-port` - change the default port for proxy
23 | - `--ssl-ca-dir` - change the default directory where auto-generated SSL certificates are kept
24 |
25 | Example usage: `npm start -- --proxy-port=1234 --ssl-ca-dir="/Users/kdzwinel/Documents/betwixt-certs"`
26 |
27 | ### Creating a bundle
28 |
29 | [build.sh](https://github.com/kdzwinel/betwixt/blob/master/build.sh) is responsible for creating bundles for all supported platforms and architectures. You should be able to easily adjust it to your needs.
30 |
--------------------------------------------------------------------------------
/docs/https.md:
--------------------------------------------------------------------------------
1 | ## HTTPS
2 |
3 | ### Root Certificate
4 |
5 | In order to capture encrypted traffic, you'll have to install root certificate provided by Betwixt.
6 | The certificate is generated for you when you first launch Betwixt. You can quickly locate it on disk using `Tools > Root Certificate` menu.
7 |
8 | 
9 |
10 | `ca.pem` has to be imported and marked as trusted.
11 |
12 | On OS X this is done via Keychain app as shown below.
13 |
14 | 
15 |
16 | After certificate is installed, expand the `Trust` section and toggle the first dropdown to `Always Trust`:
17 |
18 | 
19 |
20 | On Windows use certmgr.
21 |
22 | 
23 |
24 | ### Proxy
25 |
26 | Direct the traffic to the proxy created by Betwixt in the background (`http://localhost:8008`).
27 |
28 | If you wish to analyze traffic system wide:
29 | - on OS X - `System Preferences → Network → Advanced → Proxies → Secure Web Proxy (HTTPS)`
30 | - on Ubuntu - `All Settings → Network → Network Proxy`
31 | - on Windows - `Settings → Network & Internet → Proxy`
32 |
33 | 
34 |
35 | 
36 |
37 | If you want to capture traffic coming from a single terminal use `export https_proxy=http://localhost:8008`. Note that NodeJS has a hardcoded list of CA certificates so it doesn't care for Keychain/certmgr/etc. You may need to use `export NODE_TLS_REJECT_UNAUTHORIZED=0` to overcome this issue.
38 |
--------------------------------------------------------------------------------
/docs/tips.md:
--------------------------------------------------------------------------------
1 | # Tips & Tricks
2 | Somehow related to Betwixt.
3 |
4 | ## Chrome
5 |
6 | - Set proxy: `--proxy-server=localhost:8008`
7 | - Run as a new temporary user: `--user-data-dir="/tmp/chrome_tmp_profile"`
8 | - Ignore SSL errors: `--ignore-urlfetcher-cert-requests --ignore-certificate-errors`
9 |
10 | ## Terminal
11 |
12 | - Set HTTP proxy: `export http_proxy=http://localhost:8008`
13 | - Set HTTPS proxy: `export https_proxy=http://localhost:8008`
14 |
--------------------------------------------------------------------------------
/gfx/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/gfx/icon.icns
--------------------------------------------------------------------------------
/gfx/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/gfx/icon.ico
--------------------------------------------------------------------------------
/gfx/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/gfx/icon.png
--------------------------------------------------------------------------------
/iconset.sh:
--------------------------------------------------------------------------------
1 | !#/bin/sh
2 |
3 | mkdir gfx/icon.iconset
4 | sips -z 16 16 gfx/icon.png --out gfx/icon.iconset/icon_16x16.png
5 | sips -z 32 32 gfx/icon.png --out gfx/icon.iconset/icon_16x16@2x.png
6 | sips -z 32 32 gfx/icon.png --out gfx/icon.iconset/icon_32x32.png
7 | sips -z 64 64 gfx/icon.png --out gfx/icon.iconset/icon_32x32@2x.png
8 | sips -z 128 128 gfx/icon.png --out gfx/icon.iconset/icon_128x128.png
9 | sips -z 256 256 gfx/icon.png --out gfx/icon.iconset/icon_128x128@2x.png
10 | sips -z 256 256 gfx/icon.png --out gfx/icon.iconset/icon_256x256.png
11 | sips -z 512 512 gfx/icon.png --out gfx/icon.iconset/icon_256x256@2x.png
12 | sips -z 512 512 gfx/icon.png --out gfx/icon.iconset/icon_512x512.png
13 | cp gfx/icon.png gfx/icon.iconset/icon_512x512@2x.png
14 | iconutil -c icns gfx/icon.iconset
15 | rm -R gfx/icon.iconset
16 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "betwixt",
3 | "version": "1.6.1",
4 | "description": "Web Debugging Proxy based on Chrome DevTools Network panel",
5 | "main": "src/main.js",
6 | "scripts": {
7 | "start": "electron src/main.js",
8 | "test": "jshint src/lib/ src/*.js && jscs src/lib/ src/*.js"
9 | },
10 | "repository": {
11 | "type": "git",
12 | "url": "git+https://github.com/kdzwinel/betwixt.git"
13 | },
14 | "keywords": [
15 | "traffic",
16 | "proxy",
17 | "mitm",
18 | "devtools"
19 | ],
20 | "author": "Konrad Dzwinel",
21 | "license": "MIT",
22 | "bugs": {
23 | "url": "https://github.com/kdzwinel/betwixt/issues"
24 | },
25 | "homepage": "https://github.com/kdzwinel/betwixt",
26 | "dependencies": {
27 | "chalk": "^1.1.1",
28 | "http-mitm-proxy": "^0.5.0",
29 | "istextorbinary": "^2.0.0",
30 | "minimist": "^1.2.0"
31 | },
32 | "devDependencies": {
33 | "electron-packager": "^6.0.0",
34 | "electron-prebuilt": "^0.36.12",
35 | "jscs": "^2.6.0",
36 | "jshint": "^2.8.0"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/dt/.jscsrc:
--------------------------------------------------------------------------------
1 | {
2 | // rules documentation: http://jscs.info/rules.html
3 |
4 | "esnext": true,
5 |
6 | "requireSpaceAfterKeywords": [
7 | "if",
8 | "else",
9 | "for",
10 | "while",
11 | "do",
12 | "switch",
13 | "return"
14 | ],
15 | "disallowKeywords": [
16 | "with"
17 | ],
18 | "disallowKeywordsOnNewLine": [
19 | "else",
20 | "catch"
21 | ],
22 |
23 | "disallowSpaceAfterPrefixUnaryOperators": true,
24 | "disallowSpaceBeforePostfixUnaryOperators": [
25 | "++",
26 | "--"
27 | ],
28 | "requireSpaceBeforeBinaryOperators": true,
29 | "requireSpaceAfterBinaryOperators": true,
30 |
31 | "disallowMultipleVarDecl": true,
32 |
33 | "disallowSpacesInsideParentheses": true,
34 | "disallowEmptyBlocks": true,
35 |
36 | "requireParenthesesAroundIIFE": true,
37 | "requireSpaceBetweenArguments": true,
38 | "requireSpacesInFunctionDeclaration": {
39 | "beforeOpeningCurlyBrace": true
40 | },
41 | "requireSpacesInAnonymousFunctionExpression": {
42 | "beforeOpeningCurlyBrace": true
43 | },
44 | "disallowSpacesInNamedFunctionExpression": {
45 | "beforeOpeningRoundBrace": true
46 | },
47 | "requireSpacesInNamedFunctionExpression": {
48 | "beforeOpeningCurlyBrace": true
49 | },
50 |
51 | "requireSpacesInConditionalExpression": {
52 | "afterTest": true,
53 | "beforeConsequent": true,
54 | "afterConsequent": true,
55 | "beforeAlternate": true
56 | },
57 |
58 | "disallowSpaceBeforeBinaryOperators": [
59 | ","
60 | ],
61 | "requireCommaBeforeLineBreak": true,
62 |
63 | "validateQuoteMarks": "\"",
64 | "disallowMultipleLineStrings": true,
65 |
66 | "disallowImplicitTypeConversion": [
67 | "numeric",
68 | "binary"
69 | ],
70 | "disallowYodaConditions": true,
71 |
72 | "disallowSpacesInsideArrayBrackets": true,
73 |
74 | "disallowSpaceAfterObjectKeys": true,
75 |
76 | "disallowQuotedKeysInObjects": true,
77 |
78 | "requireSpaceAfterLineComment": true,
79 | "requireLineFeedAtFileEnd": true,
80 | "disallowMultipleLineBreaks": true,
81 | "disallowMixedSpacesAndTabs": true,
82 | "disallowTrailingWhitespace": true,
83 | "validateLineBreaks": "LF"
84 | }
85 |
--------------------------------------------------------------------------------
/src/dt/Images/applicationCache.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/applicationCache.png
--------------------------------------------------------------------------------
/src/dt/Images/breakpoint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/breakpoint.png
--------------------------------------------------------------------------------
/src/dt/Images/breakpointConditional.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/breakpointConditional.png
--------------------------------------------------------------------------------
/src/dt/Images/breakpointConditional_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/breakpointConditional_2x.png
--------------------------------------------------------------------------------
/src/dt/Images/breakpoint_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/breakpoint_2x.png
--------------------------------------------------------------------------------
/src/dt/Images/checker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/checker.png
--------------------------------------------------------------------------------
/src/dt/Images/chromeDisabledSelect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/chromeDisabledSelect.png
--------------------------------------------------------------------------------
/src/dt/Images/chromeDisabledSelect_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/chromeDisabledSelect_2x.png
--------------------------------------------------------------------------------
/src/dt/Images/chromeLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/chromeLeft.png
--------------------------------------------------------------------------------
/src/dt/Images/chromeMiddle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/chromeMiddle.png
--------------------------------------------------------------------------------
/src/dt/Images/chromeRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/chromeRight.png
--------------------------------------------------------------------------------
/src/dt/Images/chromeSelect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/chromeSelect.png
--------------------------------------------------------------------------------
/src/dt/Images/chromeSelect_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/chromeSelect_2x.png
--------------------------------------------------------------------------------
/src/dt/Images/cookie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/cookie.png
--------------------------------------------------------------------------------
/src/dt/Images/database.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/database.png
--------------------------------------------------------------------------------
/src/dt/Images/databaseTable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/databaseTable.png
--------------------------------------------------------------------------------
/src/dt/Images/deleteIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/deleteIcon.png
--------------------------------------------------------------------------------
/src/dt/Images/domain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/domain.png
--------------------------------------------------------------------------------
/src/dt/Images/errorWave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/errorWave.png
--------------------------------------------------------------------------------
/src/dt/Images/errorWave_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/errorWave_2x.png
--------------------------------------------------------------------------------
/src/dt/Images/fileSystem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/fileSystem.png
--------------------------------------------------------------------------------
/src/dt/Images/forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/forward.png
--------------------------------------------------------------------------------
/src/dt/Images/frame.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/frame.png
--------------------------------------------------------------------------------
/src/dt/Images/graphLabelCalloutLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/graphLabelCalloutLeft.png
--------------------------------------------------------------------------------
/src/dt/Images/graphLabelCalloutRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/graphLabelCalloutRight.png
--------------------------------------------------------------------------------
/src/dt/Images/indexedDB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/indexedDB.png
--------------------------------------------------------------------------------
/src/dt/Images/indexedDBIndex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/indexedDBIndex.png
--------------------------------------------------------------------------------
/src/dt/Images/indexedDBObjectStore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/indexedDBObjectStore.png
--------------------------------------------------------------------------------
/src/dt/Images/localStorage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/localStorage.png
--------------------------------------------------------------------------------
/src/dt/Images/navigationControls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/navigationControls.png
--------------------------------------------------------------------------------
/src/dt/Images/navigationControls_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/navigationControls_2x.png
--------------------------------------------------------------------------------
/src/dt/Images/notifications.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/paneAddButtons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/paneAddButtons.png
--------------------------------------------------------------------------------
/src/dt/Images/paneFilterButtons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/paneFilterButtons.png
--------------------------------------------------------------------------------
/src/dt/Images/paneRefreshButtons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/paneRefreshButtons.png
--------------------------------------------------------------------------------
/src/dt/Images/popoverArrows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/popoverArrows.png
--------------------------------------------------------------------------------
/src/dt/Images/profileGroupIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/profileGroupIcon.png
--------------------------------------------------------------------------------
/src/dt/Images/profileIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/profileIcon.png
--------------------------------------------------------------------------------
/src/dt/Images/profileSmallIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/profileSmallIcon.png
--------------------------------------------------------------------------------
/src/dt/Images/radioDot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/radioDot.png
--------------------------------------------------------------------------------
/src/dt/Images/resourceCSSIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/resourceCSSIcon.png
--------------------------------------------------------------------------------
/src/dt/Images/resourceDocumentIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/resourceDocumentIcon.png
--------------------------------------------------------------------------------
/src/dt/Images/resourceDocumentIconSmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/resourceDocumentIconSmall.png
--------------------------------------------------------------------------------
/src/dt/Images/resourceJSIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/resourceJSIcon.png
--------------------------------------------------------------------------------
/src/dt/Images/resourcePlainIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/resourcePlainIcon.png
--------------------------------------------------------------------------------
/src/dt/Images/resourcePlainIconSmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/resourcePlainIconSmall.png
--------------------------------------------------------------------------------
/src/dt/Images/resourcesTimeGraphIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/resourcesTimeGraphIcon.png
--------------------------------------------------------------------------------
/src/dt/Images/responsiveDesign.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/responsiveDesign.png
--------------------------------------------------------------------------------
/src/dt/Images/responsiveDesign_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/responsiveDesign_2x.png
--------------------------------------------------------------------------------
/src/dt/Images/searchNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/searchNext.png
--------------------------------------------------------------------------------
/src/dt/Images/searchPrev.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/searchPrev.png
--------------------------------------------------------------------------------
/src/dt/Images/securityPropertyInfo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/securityPropertyInsecure.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/securityPropertySecure.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/securityPropertyWarning.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/securityStateInsecure.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/securityStateNeutral.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/securityStateSecure.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/serviceWorker.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/sessionStorage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/sessionStorage.png
--------------------------------------------------------------------------------
/src/dt/Images/settingsListRemove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/settingsListRemove.png
--------------------------------------------------------------------------------
/src/dt/Images/settingsListRemove_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/settingsListRemove_2x.png
--------------------------------------------------------------------------------
/src/dt/Images/speech.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/speech.png
--------------------------------------------------------------------------------
/src/dt/Images/src/breakpoint.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/src/breakpointConditional.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/src/errorWave.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
75 |
--------------------------------------------------------------------------------
/src/dt/Images/src/optimize_png.hashes:
--------------------------------------------------------------------------------
1 | {
2 | "breakpointConditional.svg": "4cf90210b2af2ed84db2f60b07bcde28",
3 | "errorWave.svg": "e183fa242a22ed4784a92f6becbc2c45",
4 | "settingsListRemove.svg": "ce9e7c5c5cdaef28e6ee51d9478d5485",
5 | "toolbarButtonGlyphs.svg": "26ea602e51d2cab0fad35c6967e99115",
6 | "breakpoint.svg": "69cd92d807259c022791112809b97799",
7 | "responsiveDesign.svg": "1d6e963f88e5e448a7cff85f75a0e6b0"
8 | }
--------------------------------------------------------------------------------
/src/dt/Images/src/responsiveDesign.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/src/settingsListRemove.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/dt/Images/src/svg2png.hashes:
--------------------------------------------------------------------------------
1 | {
2 | "breakpointConditional.svg": "4cf90210b2af2ed84db2f60b07bcde28",
3 | "errorWave.svg": "e183fa242a22ed4784a92f6becbc2c45",
4 | "settingsListRemove.svg": "ce9e7c5c5cdaef28e6ee51d9478d5485",
5 | "toolbarButtonGlyphs.svg": "26ea602e51d2cab0fad35c6967e99115",
6 | "breakpoint.svg": "69cd92d807259c022791112809b97799",
7 | "responsiveDesign.svg": "1d6e963f88e5e448a7cff85f75a0e6b0"
8 | }
--------------------------------------------------------------------------------
/src/dt/Images/thumbActiveHoriz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/thumbActiveHoriz.png
--------------------------------------------------------------------------------
/src/dt/Images/thumbActiveVert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/thumbActiveVert.png
--------------------------------------------------------------------------------
/src/dt/Images/thumbHoriz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/thumbHoriz.png
--------------------------------------------------------------------------------
/src/dt/Images/thumbHoverHoriz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/thumbHoverHoriz.png
--------------------------------------------------------------------------------
/src/dt/Images/thumbHoverVert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/thumbHoverVert.png
--------------------------------------------------------------------------------
/src/dt/Images/thumbVert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/thumbVert.png
--------------------------------------------------------------------------------
/src/dt/Images/toolbarButtonGlyphs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/toolbarButtonGlyphs.png
--------------------------------------------------------------------------------
/src/dt/Images/toolbarButtonGlyphs_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/toolbarButtonGlyphs_2x.png
--------------------------------------------------------------------------------
/src/dt/Images/toolbarItemSelected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/toolbarItemSelected.png
--------------------------------------------------------------------------------
/src/dt/Images/toolbarResizerHorizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/toolbarResizerHorizontal.png
--------------------------------------------------------------------------------
/src/dt/Images/toolbarResizerVertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/toolbarResizerVertical.png
--------------------------------------------------------------------------------
/src/dt/Images/touchCursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/touchCursor.png
--------------------------------------------------------------------------------
/src/dt/Images/touchCursor_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/touchCursor_2x.png
--------------------------------------------------------------------------------
/src/dt/Images/transformControls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/transformControls.png
--------------------------------------------------------------------------------
/src/dt/Images/transformControls_2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/Images/transformControls_2x.png
--------------------------------------------------------------------------------
/src/dt/OWNERS:
--------------------------------------------------------------------------------
1 | alph@chromium.org
2 | caseq@chromium.org
3 | dgozman@chromium.org
4 | lushnikov@chromium.org
5 | pfeldman@chromium.org
6 | sergeyv@chromium.org
7 | yurys@chromium.org
8 |
--------------------------------------------------------------------------------
/src/dt/accessibility/AccessibilityModel.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 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 |
6 | /**
7 | * @constructor
8 | * @extends {WebInspector.SDKModel}
9 | * @param {!WebInspector.Target} target
10 | */
11 | WebInspector.AccessibilityModel = function(target)
12 | {
13 | WebInspector.SDKModel.call(this, WebInspector.AccessibilityModel, target);
14 | this._agent = target.accessibilityAgent();
15 | };
16 |
17 | WebInspector.AccessibilityModel.prototype = {
18 | /**
19 | * @param {!DOMAgent.NodeId} nodeId
20 | * @return {!Promise.}
21 | */
22 | getAXNode: function(nodeId)
23 | {
24 | /**
25 | * @param {?string} error
26 | * @param {!AccessibilityAgent.AXNode=} value
27 | */
28 | function parsePayload(error, value)
29 | {
30 | if (error)
31 | console.error("AccessibilityAgent.getAXNode(): " + error);
32 | return value || null;
33 | }
34 | return this._agent.getAXNode(nodeId, parsePayload);
35 | },
36 |
37 | __proto__: WebInspector.SDKModel.prototype
38 | }
39 |
40 | WebInspector.AccessibilityModel._symbol = Symbol("AccessibilityModel");
41 | /**
42 | * @param {!WebInspector.Target} target
43 | * @return {!WebInspector.AccessibilityModel}
44 | */
45 | WebInspector.AccessibilityModel.fromTarget = function(target)
46 | {
47 | if (!target[WebInspector.AccessibilityModel._symbol])
48 | target[WebInspector.AccessibilityModel._symbol] = new WebInspector.AccessibilityModel(target);
49 |
50 | return target[WebInspector.AccessibilityModel._symbol];
51 | }
52 |
--------------------------------------------------------------------------------
/src/dt/accessibility/accessibilityNode.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-computed-text {
8 | padding: 3px 5px 0;
9 | background-image: url(Images/speech.png);
10 | background-repeat: no-repeat;
11 | background-position: 16px center;
12 | padding: 4px 4px 0 4px;
13 | padding-left: 36px;
14 | min-height: 18px;
15 | }
16 |
17 | .ax-computed-text div {
18 | display: inline-block;
19 | padding: 2px;
20 | width: 100%;
21 | text-overflow: ellipsis;
22 | white-space: nowrap;
23 | overflow: hidden;
24 | width: 100%;
25 | }
26 |
27 | div.ax-text-alternatives {
28 | margin-bottom: 3px;
29 | border-bottom: 1px solid #BFBFBF;
30 | }
31 |
32 | .ax-name {
33 | color: rgb(136, 19, 145);
34 | flex-shrink: 0;
35 | }
36 |
37 | .ax-readable-name {
38 | flex-shrink: 0;
39 | }
40 |
41 | .ax-readable-string {
42 | font-style: italic;
43 | }
44 |
45 | span.ax-role {
46 | font-weight: bold;
47 | }
48 |
49 | span.ax-internal-role {
50 | font-style: italic;
51 | }
52 |
53 | .ax-ignored-info {
54 | padding: 6px;
55 | }
56 |
57 | .ax-ignored-node-pane {
58 | background-color: hsl(0, 0%, 96%);
59 | }
60 |
61 | .tree-outline li {
62 | padding-top: 5px;
63 | }
64 |
65 | .tree-outline li.invalid {
66 | position: relative;
67 | left: -2px;
68 | text-decoration: line-through;
69 | }
70 |
71 | .tree-outline label[is=dt-icon-label] {
72 | position: relative;
73 | left: -11px;
74 | }
75 |
76 | span.ax-value-undefined {
77 | font-style: italic;
78 | }
79 |
80 | .ax-value-source-unused {
81 | opacity: 0.5;
82 | }
83 |
84 | .ax-value-source-superseded,
85 | .ax-value-source-invalid {
86 | text-decoration: line-through;
87 | }
88 |
89 | .tree-outline label[is=dt-icon-label] + .ax-name {
90 | margin-left: -11px;
91 | }
92 |
--------------------------------------------------------------------------------
/src/dt/accessibility/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "title": "Accessibility",
5 | "type": "@WebInspector.Widget",
6 | "location": "elements-panel",
7 | "className": "WebInspector.AccessibilitySidebarView"
8 | }
9 | ],
10 | "dependencies": ["elements"],
11 | "experiment": "accessibilityInspection",
12 | "scripts": [
13 | "AccessibilityModel.js",
14 | "AccessibilitySidebarView.js",
15 | "AccessibilityStrings.js"
16 | ],
17 | "resources": [
18 | "accessibilityNode.css"
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/src/dt/acorn/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (C) 2012-2014 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 |
--------------------------------------------------------------------------------
/src/dt/animation/AnimationGroupPreviewUI.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 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 | * @param {!WebInspector.AnimationModel.AnimationGroup} model
8 | */
9 | WebInspector.AnimationGroupPreviewUI = function(model)
10 | {
11 | this._model = model;
12 | this.element = createElementWithClass("div", "animation-buffer-preview");
13 | this._svg = this.element.createSVGChild("svg");
14 | this._svg.setAttribute("width", "100%");
15 | this._svg.setAttribute("preserveAspectRatio", "none");
16 | this._svg.setAttribute("height", "100%");
17 | this._svg.setAttribute("viewBox", "0 0 100 27");
18 | this._svg.setAttribute("shape-rendering", "crispEdges");
19 | this._render();
20 | }
21 |
22 | WebInspector.AnimationGroupPreviewUI.prototype = {
23 | /**
24 | * @return {number}
25 | */
26 | _groupDuration: function()
27 | {
28 | var duration = 0;
29 | for (var anim of this._model.animations()) {
30 | var animDuration = anim.source().delay() + anim.source().duration();
31 | if (animDuration > duration)
32 | duration = animDuration;
33 | }
34 | return duration;
35 | },
36 |
37 | _render: function()
38 | {
39 | this._svg.removeChildren();
40 | const numberOfAnimations = Math.min(this._model.animations().length, 10);
41 | var timeToPixelRatio = 100 / Math.max(this._groupDuration(), 300);
42 | for (var i = 0; i < numberOfAnimations; i++) {
43 | var effect = this._model.animations()[i].source();
44 | var line = this._svg.createSVGChild("line");
45 | line.setAttribute("x1", effect.delay() * timeToPixelRatio);
46 | line.setAttribute("x2", (effect.delay() + effect.duration()) * timeToPixelRatio);
47 | var y = Math.floor(27 / numberOfAnimations * i) + 1;
48 | line.setAttribute("y1", y);
49 | line.setAttribute("y2", y);
50 | line.style.stroke = WebInspector.AnimationUI.Color(this._model.animations()[i]);
51 | }
52 | }
53 | }
--------------------------------------------------------------------------------
/src/dt/animation/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "@WebInspector.ToolbarItem.Provider",
5 | "className": "WebInspector.AnimationControlPane.ButtonProvider",
6 | "order": 2,
7 | "location": "styles-sidebarpane-toolbar"
8 | }
9 | ],
10 | "dependencies": [
11 | "elements"
12 | ],
13 | "scripts": [
14 | "AnimationModel.js",
15 | "AnimationGroupPreviewUI.js",
16 | "AnimationTimeline.js",
17 | "AnimationUI.js",
18 | "AnimationControlPane.js"
19 | ],
20 | "resources": [
21 | "animationTimeline.css"
22 | ]
23 | }
24 |
--------------------------------------------------------------------------------
/src/dt/audits/AuditCategory.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2014 Google Inc. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above
12 | * copyright notice, this list of conditions and the following disclaimer
13 | * in the documentation and/or other materials provided with the
14 | * distribution.
15 | *
16 | * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. AND ITS CONTRIBUTORS
17 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC.
20 | * OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 | */
28 |
29 | /**
30 | * @interface
31 | */
32 | WebInspector.AuditCategory = function()
33 | {
34 | }
35 |
36 | WebInspector.AuditCategory.prototype = {
37 | /**
38 | * @return {string}
39 | */
40 | get id()
41 | {
42 | },
43 |
44 | /**
45 | * @return {string}
46 | */
47 | get displayName()
48 | {
49 | },
50 |
51 | /**
52 | * @param {!WebInspector.Target} target
53 | * @param {!Array.} requests
54 | * @param {function(!WebInspector.AuditRuleResult)} ruleResultCallback
55 | * @param {!WebInspector.Progress} progress
56 | */
57 | run: function(target, requests, ruleResultCallback, progress)
58 | {
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/dt/audits/auditResultTree.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 | .severity {
8 | background-image: url(Images/toolbarButtonGlyphs.png);
9 | background-size: 352px 168px;
10 | display: inline-block;
11 | width: 10px;
12 | height: 10px;
13 | position: relative;
14 | top: 1px;
15 | margin-right: 4px;
16 | }
17 |
18 | li {
19 | -webkit-user-select: text;
20 | }
21 |
22 | @media (-webkit-min-device-pixel-ratio: 1.5) {
23 | .severity {
24 | background-image: url(Images/toolbarButtonGlyphs_2x.png);
25 | }
26 | } /* media */
27 |
28 | .severity.severe {
29 | background-position: -224px -96px;
30 | }
31 |
32 | .severity.warning {
33 | background-position: -246px -96px;
34 | }
35 |
36 | .severity.info {
37 | background-position: -235px -96px;
38 | }
39 | .audit-result {
40 | font-weight: bold;
41 | }
42 |
--------------------------------------------------------------------------------
/src/dt/audits/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "@WebInspector.PanelFactory",
5 | "name": "audits",
6 | "title": "Audits",
7 | "order": 90,
8 | "className": "WebInspector.AuditsPanelFactory"
9 | }
10 | ],
11 | "dependencies": [
12 | "components",
13 | "extensions"
14 | ],
15 | "scripts": [
16 | "AuditsPanel.js",
17 | "AuditCategory.js",
18 | "AuditCategories.js",
19 | "AuditController.js",
20 | "AuditFormatters.js",
21 | "AuditLauncherView.js",
22 | "AuditResultView.js",
23 | "AuditRules.js",
24 | "AuditExtensionCategory.js"
25 | ],
26 | "resources": [
27 | "auditsPanel.css",
28 | "auditResultTree.css"
29 | ]
30 | }
31 |
--------------------------------------------------------------------------------
/src/dt/bindings/LiveLocation.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 | /**
6 | * @constructor
7 | * @param {function(!WebInspector.UILocation):(boolean|undefined)} updateDelegate
8 | */
9 | WebInspector.LiveLocation = function(updateDelegate)
10 | {
11 | this._updateDelegate = updateDelegate;
12 | }
13 |
14 | WebInspector.LiveLocation.prototype = {
15 | update: function()
16 | {
17 | var uiLocation = this.uiLocation();
18 | if (!uiLocation)
19 | return;
20 | if (this._updateDelegate(uiLocation))
21 | this.dispose();
22 | },
23 |
24 | /**
25 | * @return {?WebInspector.UILocation}
26 | */
27 | uiLocation: function()
28 | {
29 | throw "Not implemented";
30 | },
31 |
32 | dispose: function()
33 | {
34 | // Overridden by subclasses.
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/dt/bindings/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": ["sdk", "platform", "workspace"],
3 | "scripts": [
4 | "LiveLocation.js",
5 | "CompilerScriptMapping.js",
6 | "ResourceScriptMapping.js",
7 | "SASSSourceMapping.js",
8 | "StylesSourceMapping.js",
9 | "CSSWorkspaceBinding.js",
10 | "DebuggerWorkspaceBinding.js",
11 | "BreakpointManager.js",
12 | "ContentProviderBasedProjectDelegate.js",
13 | "DefaultScriptMapping.js",
14 | "FileSystemWorkspaceBinding.js",
15 | "FileUtils.js",
16 | "BlackboxSupport.js",
17 | "NetworkMapping.js",
18 | "NetworkProject.js",
19 | "PresentationConsoleMessageHelper.js",
20 | "ResourceUtils.js",
21 | "TempFile.js",
22 | "WorkspaceController.js",
23 | "ContentScriptProjectDecorator.js"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/src/dt/cm/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (C) 2014 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 |
--------------------------------------------------------------------------------
/src/dt/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.
--------------------------------------------------------------------------------
/src/dt/cm/PRESUBMIT.py:
--------------------------------------------------------------------------------
1 | # Copyright (C) 2014 Google Inc. All rights reserved.
2 | #
3 | # Redistribution and use in source and binary forms, with or without
4 | # modification, are permitted provided that the following conditions are
5 | # met:
6 | #
7 | # * Redistributions of source code must retain the above copyright
8 | # notice, this list of conditions and the following disclaimer.
9 | # * Redistributions in binary form must reproduce the above
10 | # copyright notice, this list of conditions and the following disclaimer
11 | # in the documentation and/or other materials provided with the
12 | # distribution.
13 | # * Neither the name of Google Inc. nor the names of its
14 | # contributors may be used to endorse or promote products derived from
15 | # this software without specific prior written permission.
16 | #
17 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 |
29 |
30 | def _CheckCodeMirrorChanges(input_api, output_api):
31 | errorText = ("ERROR: Attempt to modify CodeMirror. The only allowed changes are "
32 | "rolls from the upstream (http://codemirror.net). If this is a roll, "
33 | "make sure you mention 'roll CodeMirror' (no quotes) in the change description.\n"
34 | "CodeMirror rolling instructions:\n"
35 | " https://sites.google.com/a/chromium.org/devtools-codemirror-rolling")
36 | changeDescription = input_api.change.DescriptionText()
37 | errors = []
38 | if not "roll codemirror" in changeDescription.lower():
39 | errors.append(output_api.PresubmitError(errorText))
40 | return errors
41 |
42 |
43 | def CheckChangeOnUpload(input_api, output_api):
44 | results = []
45 | results.extend(_CheckCodeMirrorChanges(input_api, output_api))
46 | return results
47 |
--------------------------------------------------------------------------------
/src/dt/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 {WebInspector.CodeMirrorMimeMode}
8 | */
9 | WebInspector.DefaultCodeMirrorMimeMode = function()
10 | {
11 | }
12 |
13 | WebInspector.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 |
--------------------------------------------------------------------------------
/src/dt/cm_modes/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (C) 2014 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 |
--------------------------------------------------------------------------------
/src/dt/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 | " https://sites.google.com/a/chromium.org/devtools-codemirror-rolling")
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 |
--------------------------------------------------------------------------------
/src/dt/common/NotificationService.js:
--------------------------------------------------------------------------------
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 | /**
8 | * @constructor
9 | * @extends {WebInspector.Object}
10 | */
11 | WebInspector.NotificationService = function() { }
12 |
13 | WebInspector.NotificationService.prototype = {
14 | __proto__: WebInspector.Object.prototype
15 | }
16 |
17 | WebInspector.NotificationService.Events = {
18 | InspectorAgentEnabledForTests: "InspectorAgentEnabledForTests",
19 | SelectedNodeChanged: "SelectedNodeChanged"
20 | }
21 |
22 | WebInspector.notifications = new WebInspector.NotificationService();
23 |
--------------------------------------------------------------------------------
/src/dt/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 | WebInspector.OutputStream = function()
9 | {
10 | }
11 |
12 | WebInspector.OutputStream.prototype = {
13 | /**
14 | * @param {string} data
15 | * @param {function(!WebInspector.OutputStream)=} callback
16 | */
17 | write: function(data, callback) { },
18 |
19 | close: function() { }
20 | }
21 |
22 | /**
23 | * @constructor
24 | * @implements {WebInspector.OutputStream}
25 | */
26 | WebInspector.StringOutputStream = function()
27 | {
28 | this._data = "";
29 | }
30 |
31 | WebInspector.StringOutputStream.prototype = {
32 | /**
33 | * @override
34 | * @param {string} chunk
35 | * @param {function(!WebInspector.OutputStream)=} callback
36 | */
37 | write: function(chunk, callback)
38 | {
39 | this._data += chunk;
40 | },
41 |
42 | /**
43 | * @override
44 | */
45 | close: function()
46 | {
47 | },
48 |
49 | /**
50 | * @return {string}
51 | */
52 | data: function()
53 | {
54 | return this._data;
55 | }
56 | }
--------------------------------------------------------------------------------
/src/dt/common/StaticContentProvider.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 | /**
6 | * @constructor
7 | * @implements {WebInspector.ContentProvider}
8 | * @param {!WebInspector.ResourceType} contentType
9 | * @param {string} content
10 | * @param {string=} contentURL
11 | */
12 | WebInspector.StaticContentProvider = function(contentType, content, contentURL)
13 | {
14 | this._content = content;
15 | this._contentType = contentType;
16 | this._contentURL = contentURL || "";
17 | }
18 |
19 | /**
20 | * @param {string} content
21 | * @param {string} query
22 | * @param {boolean} caseSensitive
23 | * @param {boolean} isRegex
24 | * @param {function(!Array.)} callback
25 | */
26 | WebInspector.StaticContentProvider.searchInContent = function(content, query, caseSensitive, isRegex, callback)
27 | {
28 | function performSearch()
29 | {
30 | callback(WebInspector.ContentProvider.performSearchInContent(content, query, caseSensitive, isRegex));
31 | }
32 |
33 | // searchInContent should call back later.
34 | setTimeout(performSearch.bind(null), 0);
35 | }
36 |
37 | WebInspector.StaticContentProvider.prototype = {
38 | /**
39 | * @override
40 | * @return {string}
41 | */
42 | contentURL: function()
43 | {
44 | return this._contentURL;
45 | },
46 |
47 | /**
48 | * @override
49 | * @return {!WebInspector.ResourceType}
50 | */
51 | contentType: function()
52 | {
53 | return this._contentType;
54 | },
55 |
56 | /**
57 | * @override
58 | * @param {function(?string)} callback
59 | */
60 | requestContent: function(callback)
61 | {
62 | callback(this._content);
63 | },
64 |
65 | /**
66 | * @override
67 | * @param {string} query
68 | * @param {boolean} caseSensitive
69 | * @param {boolean} isRegex
70 | * @param {function(!Array.)} callback
71 | */
72 | searchInContent: function(query, caseSensitive, isRegex, callback)
73 | {
74 | WebInspector.StaticContentProvider.searchInContent(this._content, query, caseSensitive, isRegex, callback);
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/src/dt/common/WebInspector.js:
--------------------------------------------------------------------------------
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 | self.WebInspector = {}
8 |
--------------------------------------------------------------------------------
/src/dt/common/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": [
3 | "platform"
4 | ],
5 | "scripts": [
6 | "WorkerRuntime.js",
7 | "WebInspector.js",
8 | "TextDictionary.js",
9 | "Object.js",
10 | "NotificationService.js",
11 | "Color.js",
12 | "Geometry.js",
13 | "Console.js",
14 | "ContentProvider.js",
15 | "ParsedURL.js",
16 | "Progress.js",
17 | "ResourceType.js",
18 | "Settings.js",
19 | "StaticContentProvider.js",
20 | "OutputStream.js",
21 | "TestBase.js",
22 | "TextRange.js",
23 | "TextUtils.js",
24 | "Throttler.js",
25 | "UIString.js",
26 | "ModuleExtensionInterfaces.js"
27 | ],
28 | "skip_compilation": [
29 | "TestBase.js"
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/src/dt/components/DataSaverInfobar.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 | * @extends {WebInspector.Infobar}
8 | */
9 | WebInspector.DataSaverInfobar = function()
10 | {
11 | WebInspector.Infobar.call(this, WebInspector.Infobar.Type.Warning, WebInspector.settings.moduleSetting("disableDataSaverInfobar"));
12 | this.element.createTextChild(WebInspector.UIString("Consider disabling "));
13 | this.element.appendChild(WebInspector.linkifyURLAsNode("https://support.google.com/chrome/answer/2392284?hl=en", "Chrome Data Saver", undefined, true));
14 | this.element.createTextChild(WebInspector.UIString(" while debugging."));
15 | }
16 |
17 | WebInspector.DataSaverInfobar._infobars = [];
18 |
19 | /**
20 | * @param {!WebInspector.Panel} panel
21 | */
22 | WebInspector.DataSaverInfobar.maybeShowInPanel = function(panel)
23 | {
24 | if (Runtime.queryParam("remoteFrontend")) {
25 | var infobar = new WebInspector.DataSaverInfobar();
26 | WebInspector.DataSaverInfobar._infobars.push(infobar);
27 | panel.showInfobar(infobar);
28 | }
29 | }
30 |
31 | WebInspector.DataSaverInfobar.prototype = {
32 | /**
33 | * @override
34 | */
35 | close: function()
36 | {
37 | for (var infobar of WebInspector.DataSaverInfobar._infobars)
38 | WebInspector.Infobar.prototype.close.call(infobar);
39 | },
40 |
41 | __proto__: WebInspector.Infobar.prototype
42 | }
43 |
--------------------------------------------------------------------------------
/src/dt/components/DebuggerPresentationUtils.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 | WebInspector.DebuggerPresentationUtils = {}
6 |
7 | /**
8 | * @param {?WebInspector.DebuggerModel} debuggerModel
9 | * @param {!Array.=} stackTrace
10 | * @param {!ConsoleAgent.AsyncStackTrace=} asyncStackTrace
11 | * @param {boolean=} showBlackboxed
12 | * @return {?ConsoleAgent.CallFrame}
13 | */
14 | WebInspector.DebuggerPresentationUtils.callFrameAnchorFromStackTrace = function(debuggerModel, stackTrace, asyncStackTrace, showBlackboxed)
15 | {
16 | /**
17 | * @param {?Array.=} stackTrace
18 | * @return {?ConsoleAgent.CallFrame}
19 | */
20 | function innerCallFrameAnchorFromStackTrace(stackTrace)
21 | {
22 | if (!stackTrace || !stackTrace.length)
23 | return null;
24 | if (showBlackboxed)
25 | return stackTrace[0];
26 | for (var i = 0; i < stackTrace.length; ++i) {
27 | var script = debuggerModel && debuggerModel.scriptForId(stackTrace[i].scriptId);
28 | var blackboxed = script ?
29 | WebInspector.BlackboxSupport.isBlackboxed(script.sourceURL, script.isContentScript()) :
30 | WebInspector.BlackboxSupport.isBlackboxedURL(stackTrace[i].url);
31 | if (!blackboxed)
32 | return stackTrace[i];
33 | }
34 | return null;
35 | }
36 |
37 | var callFrame = innerCallFrameAnchorFromStackTrace(stackTrace);
38 | if (callFrame)
39 | return callFrame;
40 |
41 | while (asyncStackTrace) {
42 | callFrame = innerCallFrameAnchorFromStackTrace(asyncStackTrace.callFrames);
43 | if (callFrame)
44 | return callFrame;
45 | asyncStackTrace = asyncStackTrace.asyncStackTrace;
46 | }
47 |
48 | return stackTrace ? stackTrace[0] : null;
49 | }
50 |
--------------------------------------------------------------------------------
/src/dt/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 |
5 | WebInspector.reload = function()
6 | {
7 | if (WebInspector.dockController.canDock() && WebInspector.dockController.dockSide() === WebInspector.DockController.State.Undocked)
8 | InspectorFrontendHost.setIsDocked(true, function() {});
9 | window.location.reload();
10 | }
11 |
--------------------------------------------------------------------------------
/src/dt/components/customPreviewSection.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-expandable-section-header::before {
13 | -webkit-user-select: none;
14 | background-image: url(Images/toolbarButtonGlyphs.png);
15 | background-size: 352px 168px;
16 | opacity: 0.5;
17 | content: "a";
18 | width: 8px;
19 | margin-right: 4px;
20 | padding-right: 2px;
21 | color: transparent;
22 | text-shadow: none;
23 | }
24 |
25 | @media (-webkit-min-device-pixel-ratio: 1.5) {
26 | .custom-expandable-section-header::before {
27 | background-image: url(Images/toolbarButtonGlyphs_2x.png);
28 | }
29 | } /* media */
30 |
31 |
32 | .custom-expandable-section-header::before {
33 | background-position: -4px -96px;
34 | }
35 |
36 | .custom-expandable-section-header.expanded::before {
37 | background-position: -20px -96px;
38 | }
39 |
40 | .custom-expandable-section-standard-section {
41 | display: inline-flex;
42 | }
--------------------------------------------------------------------------------
/src/dt/components/domUtils.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 | .node-link {
12 | text-decoration: underline;
13 | cursor: pointer;
14 | display: inline;
15 | }
16 |
17 | .stack-preview-async-description {
18 | padding: 3px 0 1px;
19 | font-style: italic;
20 | }
21 |
22 | .stack-preview-container .webkit-html-blackbox-link {
23 | opacity: 0.6;
24 | }
25 |
26 | .stack-preview-container > tr {
27 | height: 17px;
28 | }
29 |
--------------------------------------------------------------------------------
/src/dt/components/eventListenersView.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 | .event-listener-tree li {
8 | padding: 2px 0 0 5px;
9 | }
10 |
11 | .event-listener-tree > li {
12 | border-top: 1px solid #f0f0f0;
13 | }
14 |
15 | .event-listener-tree > li:first-of-type {
16 | border-top: none;
17 | }
18 |
19 | .event-listener-tree {
20 | padding-left: 0 !important;
21 | padding-right: 3px;
22 | }
23 |
24 | .event-listener-tree li.parent::before {
25 | top: 0 !important;
26 | }
27 |
28 | .event-listener-tree .name {
29 | color: rgb(136, 19, 145);
30 | }
31 |
32 | .event-listener-tree-subtitle {
33 | float: right;
34 | }
35 |
36 | .event-listener-delete-button {
37 | padding: 0 3px;
38 | background-color: #f2f2f2;
39 | border-radius: 3px;
40 | border: 1px solid #c3c3c3;
41 | margin-left: 10px;
42 | display: none;
43 | }
44 |
45 | .event-listener-delete-button:hover {
46 | background-color: #e0e0e0;
47 | }
48 |
49 | .event-listener-tree li:hover .event-listener-delete-button {
50 | display: inline;
51 | }
52 |
--------------------------------------------------------------------------------
/src/dt/components/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 {
8 | background-color: #f3f3f3;
9 | flex: 0 0 27px;
10 | overflow: visible;
11 | display: none;
12 | }
13 |
14 | .tabbed-pane-header-tab,
15 | .tabbed-pane-header-tab.selected {
16 | height: 26px;
17 | margin: 0;
18 | background: none;
19 | border: none;
20 | border-left: 2px solid transparent;
21 | border-right: 2px solid transparent;
22 | padding: 0 6px;
23 | }
24 |
25 | .tabbed-pane-header-tab.dragging {
26 | box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);
27 | background: rgb(229, 229, 229);
28 | }
29 |
30 | .tabbed-pane-header-tab:hover {
31 | background: rgb(229, 229, 229);
32 | }
33 |
34 | .tabbed-pane-header-tab {
35 | color: #5a5a5a;
36 | }
37 |
38 | .tabbed-pane-header-tab.selected {
39 | color: #333;
40 | border-width: 0 2px 0 2px;
41 | }
42 |
43 | .tabbed-pane-header-contents {
44 | margin-left: 0;
45 | }
46 |
--------------------------------------------------------------------------------
/src/dt/components/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "setting",
5 | "category": "Console",
6 | "title": "Enable custom formatters",
7 | "settingName": "customFormatters",
8 | "settingType": "boolean",
9 | "defaultValue": false
10 | },
11 | {
12 | "type": "@WebInspector.DOMPresentationUtils.MarkerDecorator",
13 | "className": "WebInspector.DOMPresentationUtils.GenericDecorator",
14 | "marker": "breakpoint-marker",
15 | "title": "DOM Breakpoint",
16 | "color": "rgb(105, 140, 254)"
17 | },
18 | {
19 | "type": "setting",
20 | "settingName": "networkConditionsCustomProfiles",
21 | "settingType": "array",
22 | "defaultValue": []
23 | },
24 | {
25 | "type": "settings-view",
26 | "name": "network-conditions",
27 | "title": "Throttling",
28 | "order": "35",
29 | "className": "WebInspector.NetworkConditionsSettingsTab",
30 | "settings": [
31 | "networkConditionsCustomProfiles"
32 | ]
33 | }
34 | ],
35 | "dependencies": [
36 | "bindings",
37 | "platform",
38 | "ui"
39 | ],
40 | "scripts": [
41 | "BreakpointsSidebarPaneBase.js",
42 | "CustomPreviewSection.js",
43 | "DataSaverInfobar.js",
44 | "DebuggerPresentationUtils.js",
45 | "DOMBreakpointsSidebarPane.js",
46 | "DOMPresentationUtils.js",
47 | "DockController.js",
48 | "Drawer.js",
49 | "ExecutionContextSelector.js",
50 | "ExecutionContextModel.js",
51 | "HandlerRegistry.js",
52 | "InspectorView.js",
53 | "Linkifier.js",
54 | "NetworkConditionsSelector.js",
55 | "ObjectPopoverHelper.js",
56 | "ObjectPropertiesSection.js",
57 | "RemoteObjectPreviewFormatter.js",
58 | "ShortcutsScreen.js",
59 | "EventListenersUtils.js",
60 | "EventListenersView.js",
61 | "Reload.js"
62 | ],
63 | "resources": [
64 | "breakpointsList.css",
65 | "customPreviewSection.css",
66 | "eventListenersView.css",
67 | "domUtils.css",
68 | "inspectorViewTabbedPane.css",
69 | "networkConditionsSettingsTab.css",
70 | "objectPropertiesSection.css",
71 | "objectValue.css"
72 | ]
73 | }
74 |
--------------------------------------------------------------------------------
/src/dt/components/networkConditionsSettingsTab.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 | .network-conditions-settings-tab .settings-tab.help-content {
8 | display: flex;
9 | flex-direction: column;
10 | align-items: stretch;
11 | height: 100%;
12 | margin: 0;
13 | max-width: 500px;
14 | }
15 |
16 | .network-conditions-settings-tab .conditions-title {
17 | font-size: 120%;
18 | color: #222;
19 | flex: none;
20 | }
21 |
22 | .network-conditions-settings-tab .button-row {
23 | flex: none;
24 | display: flex;
25 | margin-bottom: 10px;
26 | }
27 |
28 | .network-conditions-settings-tab .button-row button {
29 | margin-right: 10px;
30 | min-width: 120px;
31 | flex: none;
32 | }
33 |
34 | .conditions-list-item {
35 | padding: 3px 5px 3px 5px;
36 | height: 30px;
37 | display: flex;
38 | align-items: center;
39 | position: relative;
40 | flex: auto 1 1;
41 | }
42 |
43 | .conditions-list-text {
44 | white-space: nowrap;
45 | text-overflow: ellipsis;
46 | flex: 0 0 70px;
47 | -webkit-user-select: none;
48 | color: #222;
49 | text-align: end;
50 | position: relative;
51 | }
52 |
53 | .conditions-list-title {
54 | text-align: start;
55 | flex: auto;
56 | display: flex;
57 | align-items: flex-start;
58 | }
59 |
60 | .conditions-list-title-text {
61 | overflow: hidden;
62 | flex: auto;
63 | white-space: nowrap;
64 | text-overflow: ellipsis;
65 | }
66 |
67 | .conditions-list-separator {
68 | flex: 0 0 1px;
69 | background-color: rgb(231, 231, 231);
70 | height: 30px;
71 | margin: 0 4px;
72 | }
73 |
74 | .conditions-list-separator-invisible {
75 | visibility: hidden;
76 | height: 100% !important;
77 | }
78 |
79 | .conditions-edit-row {
80 | flex: none;
81 | display: flex;
82 | flex-direction: row;
83 | margin: 6px 5px;
84 | }
85 |
86 | .conditions-edit-row input {
87 | width: 100%;
88 | text-align: inherit;
89 | }
90 |
91 | .conditions-edit-optional {
92 | position: absolute;
93 | bottom: -20px;
94 | right: 0;
95 | color: rgb(128, 128, 128);
96 | }
97 |
--------------------------------------------------------------------------------
/src/dt/components/objectPropertiesSection.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 | .object-properties-section .name {
8 | color: rgb(136, 19, 145);
9 | flex-shrink: 0;
10 | }
11 |
12 | .object-properties-section-separator {
13 | flex-shrink: 0;
14 | }
15 |
16 | .object-properties-section-dimmed {
17 | opacity: 0.6;
18 | }
19 |
20 | .object-properties-section {
21 | padding: 0 0 0px 0px;
22 | color: rgb(33,33,33) !important;
23 | }
24 |
25 | .object-properties-section li {
26 | min-height: inherit;
27 | line-height: 12px;
28 | -webkit-user-select: text;
29 | }
30 |
31 | .object-properties-section li::before {
32 | top: -1px;
33 | }
34 |
35 | .object-properties-section li.editing-sub-part {
36 | padding: 3px 6px 8px;
37 | margin: -1px -6px -8px -6px;
38 | text-overflow: clip;
39 | }
40 |
41 | .object-properties-section li.editing {
42 | margin-left: 10px;
43 | text-overflow: clip;
44 | }
45 |
46 | .tree-outline ol.title-less-mode {
47 | padding-left: 0px;
48 | }
49 |
50 | .object-properties-section .synthetic-property {
51 | font-style: italic;
52 | }
53 |
--------------------------------------------------------------------------------
/src/dt/components_lazy/filmStripDialog.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 | flex: none !important;
9 | }
10 |
11 | .filmstrip-dialog {
12 | margin: 12px;
13 | }
14 |
15 | .filmstrip-dialog > img {
16 | border: 1px solid #ddd;
17 | }
18 |
19 | .filmstrip-dialog-footer {
20 | display: flex;
21 | align-items: center;
22 | margin-top: 10px;
23 | }
24 |
25 | .filmstrip-dialog-label {
26 | margin: 8px 8px;
27 | }
28 |
--------------------------------------------------------------------------------
/src/dt/components_lazy/filmStripView.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 | .film-strip-view {
8 | overflow-x: auto;
9 | overflow-y: hidden;
10 | align-content: flex-start;
11 | min-height: 81px;
12 | }
13 |
14 | .film-strip-view.time-based .frame .time {
15 | display: none;
16 | }
17 |
18 | .film-strip-view .label {
19 | margin: auto;
20 | font-size: 18px;
21 | color: #999;
22 | }
23 |
24 | .film-strip-view .frame {
25 | display: flex;
26 | flex-direction: column;
27 | align-items: center;
28 | padding: 4px;
29 | flex: none;
30 | cursor: pointer;
31 | }
32 |
33 | .film-strip-view .frame-limit-reached {
34 | font-size: 24px;
35 | color: #888;
36 | justify-content: center;
37 | display: inline-flex;
38 | flex-direction: column;
39 | flex: none;
40 | }
41 |
42 | .film-strip-view .frame .thumbnail {
43 | min-width: 24px;
44 | display: flex;
45 | flex-direction: row;
46 | align-items: center;
47 | pointer-events: none;
48 | margin: 4px 0 2px;
49 | border: 2px solid transparent;
50 | }
51 |
52 | .film-strip-view .frame:hover .thumbnail {
53 | border-color: #FBCA46;
54 | }
55 |
56 | .film-strip-view .frame .thumbnail img {
57 | height: auto;
58 | width: auto;
59 | max-width: 80px;
60 | max-height: 50px;
61 | pointer-events: none;
62 | box-shadow: 0 0 3px #bbb;
63 | flex: 0 0 auto;
64 | }
65 |
66 | .film-strip-view .frame:hover .thumbnail img {
67 | box-shadow: none;
68 | }
69 |
70 | .film-strip-view .frame .time {
71 | font-size: 10px;
72 | margin-top: 2px;
73 | }
74 |
--------------------------------------------------------------------------------
/src/dt/components_lazy/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": [
3 | "sdk",
4 | "ui",
5 | "ui_lazy"
6 | ],
7 | "scripts": [
8 | "CookiesTable.js",
9 | "FilmStripModel.js",
10 | "FilmStripView.js"
11 | ],
12 | "resources": [
13 | "filmStripDialog.css",
14 | "filmStripView.css"
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/src/dt/devices/DevicesDialog.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 | */
8 | WebInspector.DevicesDialog = function()
9 | {
10 | }
11 |
12 | /**
13 | * @constructor
14 | * @implements {WebInspector.ActionDelegate}
15 | */
16 | WebInspector.DevicesDialog.ActionDelegate = function()
17 | {
18 | /** @type {?WebInspector.DevicesView} */
19 | this._view = null;
20 | }
21 |
22 | WebInspector.DevicesDialog.ActionDelegate.prototype = {
23 | /**
24 | * @override
25 | * @param {!WebInspector.Context} context
26 | * @param {string} actionId
27 | * @return {boolean}
28 | */
29 | handleAction: function(context, actionId)
30 | {
31 | if (actionId === "devices.dialog.show") {
32 | if (!this._view)
33 | this._view = new WebInspector.DevicesView();
34 |
35 | var dialog = new WebInspector.Dialog();
36 | dialog.addCloseButton();
37 | this._view.show(dialog.element);
38 | dialog.setMaxSize(new Size(800, 600));
39 | dialog.show();
40 | return true;
41 | }
42 | return false;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/dt/devices/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "@WebInspector.ActionDelegate",
5 | "actionId": "devices.dialog.show",
6 | "className": "WebInspector.DevicesDialog.ActionDelegate",
7 | "title": "Inspect devices\u2026"
8 | },
9 | {
10 | "type": "context-menu-item",
11 | "location": "mainMenu/tools/open",
12 | "order": 50,
13 | "actionId": "devices.dialog.show"
14 | }
15 | ],
16 | "dependencies": ["platform", "ui", "host", "components"],
17 | "experiment": "inspectDevicesDialog",
18 | "scripts": [
19 | "DevicesView.js",
20 | "DevicesDialog.js"
21 | ],
22 | "resources": [
23 | "devicesView.css"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/src/dt/diff/Diff.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 | WebInspector.Diff = {
6 | /**
7 | * @param {string} text1
8 | * @param {string} text2
9 | * @return {!Array.}
10 | */
11 | charDiff: function(text1, text2)
12 | {
13 | var differ = new diff_match_patch();
14 | return differ.diff_main(text1, text2);
15 | },
16 |
17 | /**
18 | * @param {!Array.} lines1
19 | * @param {!Array.} lines2
20 | * @return {!Array.}
21 | */
22 | lineDiff: function(lines1, lines2)
23 | {
24 | var lineToChar = new Map();
25 | var charCode = 33;
26 | var text1 = encode(lines1);
27 | var text2 = encode(lines2);
28 |
29 | return WebInspector.Diff.charDiff(text1, text2);
30 |
31 | /**
32 | * @param {!Array.} lines
33 | * @return {string}
34 | */
35 | function encode(lines)
36 | {
37 | var text = "";
38 | for (var i = 0; i < lines.length; ++i) {
39 | var line = lines[i];
40 | var character = lineToChar.get(line);
41 | if (!character) {
42 | character = String.fromCharCode(charCode++);
43 | lineToChar.set(line, character);
44 | }
45 | text += character;
46 | }
47 | return text;
48 | }
49 | },
50 | }
51 |
52 | WebInspector.Diff.Operation = {
53 | Equal: 0,
54 | Insert: 1,
55 | Delete: -1
56 | }
57 |
--------------------------------------------------------------------------------
/src/dt/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 |
--------------------------------------------------------------------------------
/src/dt/elements/ElementsSidebarView.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 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 | * @extends {WebInspector.SidebarPane}
8 | * @param {string} title
9 | * @param {!WebInspector.Widget} widget
10 | */
11 | WebInspector.ElementsSidebarViewWrapperPane = function(title, widget)
12 | {
13 | WebInspector.SidebarPane.call(this, title);
14 | widget.show(this.element);
15 | }
16 |
17 | WebInspector.ElementsSidebarViewWrapperPane.prototype = {
18 | __proto__: WebInspector.SidebarPane.prototype
19 | }
20 |
--------------------------------------------------------------------------------
/src/dt/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 | font-size: 11px;
12 | line-height: 17px;
13 | white-space: nowrap;
14 | }
15 |
16 | .crumbs .crumb {
17 | display: inline-block;
18 | padding: 0 7px;
19 | height: 18px;
20 | white-space: nowrap;
21 | }
22 |
23 | .crumbs .crumb.collapsed > * {
24 | display: none;
25 | }
26 |
27 | .crumbs .crumb.collapsed::before {
28 | content: "\2026";
29 | font-weight: bold;
30 | }
31 |
32 | .crumbs .crumb.compact .extra {
33 | display: none;
34 | }
35 |
36 | .crumbs .crumb.selected, .crumbs .crumb.selected:hover {
37 | background-color: rgb(56, 121, 217);
38 | color: white;
39 | text-shadow: rgba(255, 255, 255, 0.5) 0 0 0;
40 | }
41 |
42 | .crumbs .crumb:hover {
43 | background-color: rgb(216, 216, 216);
44 | }
45 |
--------------------------------------------------------------------------------
/src/dt/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 | }
10 |
11 | .computed-style-property {
12 | display: flex;
13 | flex-wrap: wrap;
14 | }
15 |
16 | .computed-style-property .property-name {
17 | width: 16em;
18 | text-overflow: ellipsis;
19 | overflow: hidden;
20 | }
21 |
22 | .computed-style-property .property-value {
23 | min-width: 5em;
24 | }
25 |
26 | .computed-style-property-inherited {
27 | opacity: 0.5;
28 | }
29 |
30 | .trace-link {
31 | float: right;
32 | padding-left: 1em;
33 | position: relative;
34 | z-index: 1;
35 | }
36 |
37 | .trace-link a::before {
38 | content: attr(data-uncopyable);
39 | text-decoration: underline;
40 | }
41 |
42 | .property-trace {
43 | text-overflow: ellipsis;
44 | overflow: hidden;
45 | flex-grow: 1;
46 | }
47 |
48 | .property-trace-selector {
49 | color: gray;
50 | padding-left: 2em;
51 | }
52 |
53 | .property-trace-value {
54 | position: relative;
55 | display: inline-block;
56 | }
57 |
58 | .property-trace-inactive .property-trace-value::before {
59 | position: absolute;
60 | content: ".";
61 | border-bottom: 1px solid rgba(0, 0, 0, 0.35);
62 | top: 0;
63 | bottom: 5px;
64 | left: 0;
65 | right: 0;
66 | }
67 |
68 | .tree-outline li.odd-row {
69 | position: relative;
70 | background-color: #F5F5F5;
71 | }
72 |
73 | .tree-outline, .tree-outline ol {
74 | padding-left: 0;
75 | }
76 |
77 | .tree-outline li:hover {
78 | background-color: rgb(235, 242, 252);
79 | cursor: pointer;
80 | }
81 |
82 | /* FIXME: Patch TreeElement styles to use flex for title layout. */
83 |
84 | .tree-outline li {
85 | display: flex;
86 | align-items: baseline;
87 | }
88 |
89 | .tree-outline li::before {
90 | float: none;
91 | flex: none;
92 | -webkit-mask-position: -3px -97px;
93 | background-color: rgb(110, 110, 110);
94 | margin-left: 4px;
95 | }
96 |
97 | .tree-outline li.parent.expanded::before {
98 | -webkit-mask-position: -19px -97px;
99 | }
100 |
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-horizontal-default-1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-horizontal-default-1x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-horizontal-default-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-horizontal-default-2x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-horizontal-keyboard-1x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-horizontal-keyboard-2x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-horizontal-navigation-1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-horizontal-navigation-1x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-horizontal-navigation-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-horizontal-navigation-2x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-vertical-default-1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-vertical-default-1x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-vertical-default-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-vertical-default-2x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-vertical-keyboard-1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-vertical-keyboard-1x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-vertical-keyboard-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-vertical-keyboard-2x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-vertical-navigation-1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-vertical-navigation-1x.png
--------------------------------------------------------------------------------
/src/dt/emulated_devices/google-nexus-5-vertical-navigation-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdzwinel/betwixt/bdb62fa92be792aae8edc679cbb014871aa614ec/src/dt/emulated_devices/google-nexus-5-vertical-navigation-2x.png
--------------------------------------------------------------------------------
/src/dt/emulation/DeviceModeButton.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 {WebInspector.ToolbarItem.Provider}
8 | */
9 | WebInspector.DeviceModeButtonProvider = function()
10 | {
11 | var button = WebInspector.ToolbarButton.createActionButton("emulation.toggle-device-mode");
12 | WebInspector.overridesSupport.addEventListener(WebInspector.OverridesSupport.Events.EmulationStateChanged, emulationEnabledChanged);
13 | WebInspector.overridesSupport.addEventListener(WebInspector.OverridesSupport.Events.OverridesWarningUpdated, updateWarning);
14 |
15 | emulationEnabledChanged();
16 | updateWarning();
17 |
18 | function emulationEnabledChanged()
19 | {
20 | button.setToggled(WebInspector.overridesSupport.emulationEnabled());
21 | }
22 |
23 | function updateWarning()
24 | {
25 | var message = WebInspector.overridesSupport.warningMessage();
26 | button.setTitle(message || WebInspector.UIString("Toggle device mode"));
27 | button.element.classList.toggle("warning", !!message);
28 | }
29 |
30 | this._button = button;
31 | }
32 |
33 | WebInspector.DeviceModeButtonProvider.prototype = {
34 | /**
35 | * @override
36 | * @return {?WebInspector.ToolbarItem}
37 | */
38 | item: function()
39 | {
40 | return this._button;
41 | }
42 | }
43 |
44 | /**
45 | * @constructor
46 | * @implements {WebInspector.ActionDelegate}
47 | */
48 | WebInspector.ToggleDeviceModeActionDelegate = function()
49 | {
50 | }
51 |
52 | WebInspector.ToggleDeviceModeActionDelegate.prototype = {
53 | /**
54 | * @override
55 | * @param {!WebInspector.Context} context
56 | * @param {string} actionId
57 | * @return {boolean}
58 | */
59 | handleAction: function(context, actionId)
60 | {
61 | WebInspector.overridesSupport.setEmulationEnabled(!WebInspector.overridesSupport.emulationEnabled());
62 | return true;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/dt/emulation/devicesSettingsTab.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 | .devices-settings-tab .settings-tab.help-content {
8 | display: flex;
9 | flex-direction: column;
10 | align-items: flex-start;
11 | height: 100%;
12 | margin: 0;
13 | }
14 |
15 | .devices-settings-tab .devices-title {
16 | font-size: 120%;
17 | color: #222;
18 | flex: none;
19 | }
20 |
21 | .devices-settings-tab .devices-button-row {
22 | flex: none;
23 | display: flex;
24 | }
25 |
26 | .devices-settings-tab .devices-button-row button {
27 | margin-right: 10px;
28 | min-width: 120px;
29 | flex: none;
30 | }
31 |
32 | .devices-settings-tab .devices-list {
33 | width: 350px;
34 | margin-top: 10px;
35 | }
36 |
37 | .devices-list-item {
38 | padding: 3px 5px 3px 5px;
39 | height: 30px;
40 | display: flex;
41 | align-items: center;
42 | flex: auto 1 1;
43 | cursor: pointer;
44 | }
45 |
46 | .devices-list-checkbox {
47 | height: 12px;
48 | width: 12px;
49 | margin: 3px 5px 2px 2px;
50 | flex: none;
51 | pointer-events: none;
52 | }
53 |
54 | .devices-list-title {
55 | overflow: hidden;
56 | white-space: nowrap;
57 | text-overflow: ellipsis;
58 | flex: auto;
59 | -webkit-user-select: none;
60 | color: #aaa;
61 | }
62 |
63 | .device-list-item-show .devices-list-title {
64 | color: #222;
65 | }
66 |
67 | .devices-edit-fields {
68 | flex: auto;
69 | display: flex;
70 | flex-direction: column;
71 | align-items: stretch;
72 | margin-bottom: 5px;
73 | }
74 |
75 | .devices-edit-fields input {
76 | flex: auto;
77 | margin: 8px 5px 0 5px;
78 | height: 22px;
79 | border: 1px solid rgb(213, 213, 213);
80 | border-radius: 2px;
81 | color: #444444;
82 | padding: 3px;
83 | }
84 |
85 | .devices-edit-fields input.device-edit-small {
86 | flex: 0 0 80px;
87 | }
88 |
--------------------------------------------------------------------------------
/src/dt/extensions/ExtensionRegistryStub.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2010 Google Inc. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * * Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | * * Redistributions in binary form must reproduce the above
11 | * copyright notice, this list of conditions and the following disclaimer
12 | * in the documentation and/or other materials provided with the
13 | * distribution.
14 | * * Neither the name of Google Inc. nor the names of its
15 | * contributors may be used to endorse or promote products derived from
16 | * this software without specific prior written permission.
17 | *
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 |
31 | if (!window.InspectorExtensionRegistry) {
32 |
33 | /**
34 | * @constructor
35 | */
36 | WebInspector.InspectorExtensionRegistryStub = function()
37 | {
38 | }
39 |
40 | WebInspector.InspectorExtensionRegistryStub.prototype = {
41 | getExtensionsAsync: function()
42 | {
43 | }
44 | }
45 |
46 | var InspectorExtensionRegistry = new WebInspector.InspectorExtensionRegistryStub();
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/src/dt/extensions/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": [
3 | "components"
4 | ],
5 | "scripts": [
6 | "ExtensionAPI.js",
7 | "ExtensionAuditCategory.js",
8 | "ExtensionRegistryStub.js",
9 | "ExtensionServer.js",
10 | "ExtensionPanel.js",
11 | "ExtensionView.js"
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/src/dt/heap_snapshot_worker/HeapSnapshotWorker.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2011 Google Inc. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * * Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | * * Redistributions in binary form must reproduce the above
11 | * copyright notice, this list of conditions and the following disclaimer
12 | * in the documentation and/or other materials provided with the
13 | * distribution.
14 | * * Neither the name of Google Inc. nor the names of its
15 | * contributors may be used to endorse or promote products derived from
16 | * this software without specific prior written permission.
17 | *
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 |
31 | function postMessageWrapper(message)
32 | {
33 | postMessage(message);
34 | }
35 |
36 | var dispatcher = new WebInspector.HeapSnapshotWorkerDispatcher(this, postMessageWrapper);
37 |
38 | /**
39 | * @param {function(!Event)} listener
40 | * @suppressGlobalPropertiesCheck
41 | */
42 | function installMessageEventListener(listener)
43 | {
44 | self.addEventListener("message", listener, false);
45 | }
46 |
47 | installMessageEventListener(dispatcher.dispatchMessage.bind(dispatcher));
48 |
--------------------------------------------------------------------------------
/src/dt/heap_snapshot_worker/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": [
3 | "../platform/utilities.js",
4 | "../common/WebInspector.js",
5 | "../common/UIString.js",
6 | "../common/TextUtils.js",
7 | "../profiler/HeapSnapshotCommon.js",
8 | "AllocationProfile.js",
9 | "HeapSnapshot.js",
10 | "HeapSnapshotLoader.js",
11 | "HeapSnapshotWorkerDispatcher.js",
12 | "JSHeapSnapshot.js",
13 | "HeapSnapshotWorker.js"
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/src/dt/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 |
--------------------------------------------------------------------------------
/src/dt/inspector.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 | @import url("inspectorStyle.css");
8 | @import url("popover.css");
9 | @import url("sidebarPane.css");
10 |
--------------------------------------------------------------------------------
/src/dt/inspector.html:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/dt/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 |
5 | Runtime.startApplication("inspector");
6 |
--------------------------------------------------------------------------------
/src/dt/inspector.json:
--------------------------------------------------------------------------------
1 | [
2 | { "name": "platform", "type": "autostart" },
3 | { "name": "main", "type": "autostart" },
4 | { "name": "components", "type": "autostart" },
5 | { "name": "ui", "type": "autostart" },
6 | { "name": "sdk", "type": "autostart" },
7 | { "name": "host", "type": "autostart" },
8 | { "name": "common", "type": "autostart" },
9 | { "name": "emulation", "type": "autostart" },
10 | { "name": "workspace", "type": "autostart" },
11 | { "name": "bindings", "type": "autostart" },
12 | { "name": "extensions", "type": "autostart" },
13 | { "name": "ui_lazy" },
14 | { "name": "components_lazy" },
15 | { "name": "network" },
16 | { "name": "source_frame" }
17 | ]
18 |
--------------------------------------------------------------------------------
/src/dt/layers/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "@WebInspector.PanelFactory",
5 | "name": "layers",
6 | "title": "Layers",
7 | "order": 100,
8 | "className": "WebInspector.LayersPanelFactory"
9 | },
10 | {
11 | "type": "@WebInspector.Revealer",
12 | "contextTypes": ["WebInspector.DeferredLayerTree"],
13 | "className": "WebInspector.LayersPanel.LayerTreeRevealer"
14 | }
15 | ],
16 | "dependencies": ["timeline"],
17 | "experiment": "layersPanel",
18 | "scripts": [
19 | "LayerPaintProfilerView.js",
20 | "LayersPanel.js"
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/src/dt/main/OverlayController.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 | */
8 | WebInspector.OverlayController = function()
9 | {
10 | WebInspector.moduleSetting("disablePausedStateOverlay").addChangeListener(this._updateOverlayMessage, this);
11 | WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.DebuggerPaused, this._updateOverlayMessage, this);
12 | WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.DebuggerResumed, this._updateOverlayMessage, this);
13 | WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebInspector.DebuggerModel.Events.GlobalObjectCleared, this._updateOverlayMessage, this);
14 | }
15 |
16 | WebInspector.OverlayController.prototype = {
17 |
18 | /**
19 | * @param {!WebInspector.Event} event
20 | */
21 | _updateOverlayMessage: function(event)
22 | {
23 | var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.target);
24 | var message = debuggerModel.isPaused() && !WebInspector.moduleSetting("disablePausedStateOverlay").get() ? WebInspector.UIString("Paused in debugger") : undefined;
25 | debuggerModel.target().pageAgent().setOverlayMessage(message);
26 | }
27 | }
--------------------------------------------------------------------------------
/src/dt/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 | /**
6 | * @constructor
7 | * @implements {WebInspector.App}
8 | */
9 | WebInspector.SimpleApp = function()
10 | {
11 | };
12 |
13 | WebInspector.SimpleApp.prototype = {
14 | /**
15 | * @override
16 | * @param {!Document} document
17 | * @param {function()} callback
18 | */
19 | presentUI: function(document, callback)
20 | {
21 | var rootView = new WebInspector.RootView();
22 | WebInspector.inspectorView.show(rootView.element);
23 | WebInspector.inspectorView.showInitialPanel();
24 | rootView.attachToDocument(document);
25 | callback();
26 | }
27 | };
28 |
29 | /**
30 | * @constructor
31 | * @implements {WebInspector.AppProvider}
32 | */
33 | WebInspector.SimpleAppProvider = function()
34 | {
35 | };
36 |
37 | WebInspector.SimpleAppProvider.prototype = {
38 | /**
39 | * @override
40 | * @return {!WebInspector.App}
41 | */
42 | createApp: function()
43 | {
44 | return new WebInspector.SimpleApp();
45 | }
46 | };
47 |
--------------------------------------------------------------------------------
/src/dt/main/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: 25px;
9 | }
10 |
11 | .message {
12 | font-size: larger;
13 | white-space: pre;
14 | margin: 5px;
15 | }
16 |
17 | .reason {
18 | color: #8b0000;
19 | }
20 |
--------------------------------------------------------------------------------
/src/dt/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 | label {
8 | margin: 12px 0 0 0;
9 | padding: 0 4px 0 12px;
10 | }
11 |
--------------------------------------------------------------------------------
/src/dt/main/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 |
--------------------------------------------------------------------------------
/src/dt/network/blockedURLsPane.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 | .blocked-urls-pane {
8 | overflow: hidden;
9 | }
10 |
11 | .toolbar {
12 | border-bottom: 1px solid #dadada;
13 | }
14 |
15 | .no-blocked-urls, .blocked-urls-list {
16 | font-size: 11px;
17 | overflow-x: hidden;
18 | overflow-y: auto;
19 | }
20 |
21 | .no-blocked-urls {
22 | display: flex;
23 | justify-content: center;
24 | padding: 3px;
25 | }
26 |
27 | .no-blocked-urls > span {
28 | white-space: pre;
29 | }
30 |
31 | .blocked-url {
32 | flex: none;
33 | display: flex;
34 | align-items: center;
35 | padding: 3px 10px 3px 9px;
36 | position: relative;
37 | }
38 |
39 | .blocked-url:not(.blocked-url-editing):hover {
40 | background-color: #dadada;
41 | }
42 |
43 | .blocked-url .blocked-count {
44 | flex: 30px 0 0;
45 | font-size: smaller !important;
46 | padding-right: 5px;
47 | }
48 |
49 | .blocked-url > input {
50 | position: absolute;
51 | left: 6px;
52 | right: 6px;
53 | top: 0;
54 | bottom: 0;
55 | width: calc(100% - 12px);
56 | }
57 |
58 | .blocked-url-text {
59 | white-space: nowrap;
60 | text-overflow: ellipsis;
61 | overflow: hidden;
62 | flex: auto;
63 | margin-right: 5px;
64 | }
65 |
66 | .blocked-url .remove-button {
67 | width: 13px;
68 | height: 13px;
69 | background-image: url(Images/toolbarButtonGlyphs.png);
70 | background-size: 352px 168px;
71 | background-position: -175px -96px;
72 | visibility: hidden;
73 | flex: none;
74 | opacity: 0.7;
75 | cursor: default;
76 | }
77 |
78 | @media (-webkit-min-device-pixel-ratio: 1.5) {
79 | .blocked-url .remove-button {
80 | background-image: url(Images/toolbarButtonGlyphs_2x.png);
81 | }
82 | } /* media */
83 |
84 | .blocked-url:hover .remove-button {
85 | visibility: visible;
86 | }
87 |
88 | .blocked-url .remove-button:hover {
89 | opacity: 1.0;
90 | }
--------------------------------------------------------------------------------
/src/dt/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 |
--------------------------------------------------------------------------------
/src/dt/network/networkConfigView.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 | .network-config {
8 | padding: 12px;
9 | }
10 |
11 | .network-config-group {
12 | display: flex;
13 | margin-bottom: 12px;
14 | flex-wrap: wrap;
15 | flex: 0 0 auto;
16 | min-height: 30px;
17 | }
18 |
19 | .network-config-title {
20 | flex: 0 0 130px;
21 | margin-right: 17px;
22 | color: hsla(0,0%,40%,1);
23 | }
24 |
25 | .network-config-fields {
26 | flex: 1 0 200px;
27 | }
28 |
29 | /* Disable cache */
30 |
31 | .network-config-disable-cache {
32 | line-height: 28px;
33 | }
34 |
35 | /* Network throttling */
36 |
37 | .network-config-throttling .chrome-select {
38 | width: 100%;
39 | max-width: 250px;
40 | }
41 |
42 | .network-config-throttling > .network-config-title {
43 | line-height: 24px;
44 | }
45 |
46 | /* User agent */
47 |
48 | .network-config-ua > .network-config-title {
49 | line-height: 20px;
50 | }
51 |
52 | .network-config-ua label[is="dt-radio"].checked > * {
53 | display: none
54 | }
55 |
56 | .network-config-ua input:not(.dt-radio-button) {
57 | display: block;
58 | width: calc(100% - 20px);
59 | max-width: 400px;
60 | border: 1px solid #bfbfbf;
61 | border-radius: 2px;
62 | box-sizing: border-box;
63 | color: #444;
64 | font: inherit;
65 | border-width: 1px;
66 | min-height: 2em;
67 | padding: 3px;
68 | }
69 |
70 | .network-config-ua input[readonly] {
71 | background-color: rgb(235, 235, 228);
72 | }
73 |
74 | .network-config-ua input[type=text], .network-config-ua .chrome-select {
75 | margin: 5px 0 5px 20px;
76 | }
77 |
78 | .network-config-ua .chrome-select {
79 | width: calc(100% - 20px);
80 | max-width: 230px;
81 | }
82 |
83 | .network-config-ua label[is="dt-radio"] {
84 | display: block;
85 | }
86 |
87 | .network-config-ua-auto, .network-config-ua-custom {
88 | opacity: 0.5;
89 | }
90 |
91 | .network-config-ua-auto.checked, .network-config-ua-custom.checked {
92 | opacity: 1;
93 | }
94 |
--------------------------------------------------------------------------------
/src/dt/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 | font-size: 11px;
22 | }
23 |
--------------------------------------------------------------------------------
/src/dt/network/webSocketFrameView.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 | .websocket-frame-view {
8 | -webkit-user-select: text;
9 | }
10 |
11 | .websocket-frame-view .data-grid {
12 | flex: auto;
13 | border: none;
14 | }
15 |
16 | .websocket-frame-view .data-grid .data {
17 | background-image: none;
18 | }
19 |
20 | .websocket-frame-view-td {
21 | border-bottom: 1px solid #ccc;
22 | }
23 |
24 | .websocket-frame-view .data-grid tr.selected {
25 | background-color: #def;
26 | }
27 |
28 | .websocket-frame-view .data-grid td,
29 | .websocket-frame-view .data-grid th {
30 | border-left-color: #ccc;
31 | }
32 |
33 | .websocket-frame-view-row-outcoming {
34 | background-color: rgb(226, 247, 218);
35 | }
36 |
37 | .websocket-frame-view-row-opcode {
38 | background-color: rgb(255, 255, 232);
39 | color: rgb(170, 111, 71);
40 | }
41 |
42 | .websocket-frame-view-row-error {
43 | background-color: rgb(255, 237, 237);
44 | color: rgb(182, 0, 0);
45 | }
46 |
--------------------------------------------------------------------------------
/src/dt/network/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 |
13 | .shadow-xml-view ol {
14 | list-style: none;
15 | padding: 0;
16 | margin: 0;
17 | -webkit-padding-start: 16px;/* step width + arrow width */
18 | }
19 |
20 | .shadow-xml-view > ol {
21 | -webkit-padding-start: 0;
22 | }
23 |
24 | .shadow-xml-view ol.children:not(.expanded) {
25 | display: none;
26 | }
27 |
28 | .shadow-xml-view li.parent::before {
29 | -webkit-user-select: none;
30 | -webkit-mask-image: url(Images/toolbarButtonGlyphs.png);
31 | -webkit-mask-size: 352px 168px;
32 | -webkit-mask-position: -4px -97px;
33 | background-color: rgb(110, 110, 110);
34 | content: " ";
35 | width: 10px;/* arrow width */
36 | height: 10px;
37 | display: inline-block;
38 | position: relative;
39 | top: 2px;
40 | }
41 |
42 | .shadow-xml-view li.parent.expanded::before {
43 | -webkit-mask-position: -20px -97px;
44 | }
45 |
46 | @media (-webkit-min-device-pixel-ratio: 1.5) {
47 | .shadow-xml-view li.parent::before {
48 | -webkit-mask-image: url(Images/toolbarButtonGlyphs_2x.png);
49 | }
50 | } /* media */
51 |
52 | .shadow-xml-view li:not(.parent) {
53 | margin-left: 10px; /* arrow width */
54 | }
55 |
56 | .shadow-xml-view li.shadow-xml-view-close-tag {
57 | margin-left: -6px; /* step width */
58 | }
59 |
60 | .shadow-xml-view-tag {
61 | color: rgb(136, 18, 128);
62 | }
63 |
64 | .shadow-xml-view-comment {
65 | color: rgb(35, 110, 37);
66 | }
67 |
68 | .shadow-xml-view-processing-instruction {
69 | color: rgb(35, 110, 37);
70 | }
71 |
72 | .shadow-xml-view-attribute-name {
73 | color: rgb(153, 69, 0);
74 | }
75 |
76 | .shadow-xml-view-attribute-value {
77 | color: rgb(26, 26, 166);
78 | }
79 |
80 | .shadow-xml-view-text {
81 | color: rgb(0, 0, 0);
82 | white-space: pre;
83 | }
84 |
85 | .shadow-xml-view-cdata {
86 | color: rgb(0, 0, 0);
87 | }
88 |
--------------------------------------------------------------------------------
/src/dt/platform/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": [
3 | ],
4 | "scripts": [
5 | "utilities.js",
6 | "DOMExtension.js"
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/src/dt/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 | /**
6 | * @constructor
7 | */
8 | WebInspector.ProfileTypeRegistry = function()
9 | {
10 | this._profileTypes = [];
11 |
12 | this.cpuProfileType = new WebInspector.CPUProfileType();
13 | this._addProfileType(this.cpuProfileType);
14 | this.heapSnapshotProfileType = new WebInspector.HeapSnapshotProfileType();
15 | this._addProfileType(this.heapSnapshotProfileType);
16 | this.trackingHeapSnapshotProfileType = new WebInspector.TrackingHeapSnapshotProfileType();
17 | this._addProfileType(this.trackingHeapSnapshotProfileType);
18 | }
19 |
20 | WebInspector.ProfileTypeRegistry.prototype = {
21 | /**
22 | * @param {!WebInspector.ProfileType} profileType
23 | */
24 | _addProfileType: function(profileType)
25 | {
26 | this._profileTypes.push(profileType);
27 | },
28 |
29 | /**
30 | * @return {!Array.}
31 | */
32 | profileTypes: function()
33 | {
34 | return this._profileTypes;
35 | }
36 | }
37 |
38 | WebInspector.ProfileTypeRegistry.instance = new WebInspector.ProfileTypeRegistry();
39 |
--------------------------------------------------------------------------------
/src/dt/promises/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "drawer-view",
5 | "name": "promises",
6 | "title": "Promises",
7 | "order": 30,
8 | "persistence": "permanent",
9 | "className": "WebInspector.PromisePane"
10 | }
11 | ],
12 | "dependencies": ["components", "ui_lazy"],
13 | "experiment": "promiseTracker",
14 | "scripts": [
15 | "PromisePane.js"
16 | ],
17 | "resources": [
18 | "promisePane.css"
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/src/dt/promises/promisePane.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 | .promises .data-grid {
8 | border: none;
9 | flex: 1 1;
10 | }
11 |
12 | .promises > .toolbar {
13 | border-bottom: 1px solid #dadada;
14 | }
15 |
16 | .promises .promise-gc {
17 | opacity: 0.6;
18 | }
19 |
20 | .promises .data-grid th:hover {
21 | background-color: inherit !important;
22 | }
23 |
24 | .promises .data-grid .odd {
25 | background-color: #eee;
26 | }
27 |
28 | .promises .data-grid .header-container {
29 | height: 30px;
30 | }
31 |
32 | .promises .data-grid .data-container {
33 | top: 29px;
34 | }
35 |
36 | .promises .data-grid table.data {
37 | background: transparent;
38 | }
39 |
40 | .promises .data-grid th {
41 | background-color: white;
42 | }
43 |
44 | .promises .data-grid td {
45 | line-height: 17px;
46 | height: 24px;
47 | vertical-align: middle;
48 | }
49 |
50 | .promises .data-grid th,
51 | .promises .data-grid td {
52 | border-bottom: 1px solid rgb(205, 205, 205);
53 | border-left: 1px solid rgb(205, 205, 205);
54 | }
55 |
56 | .promises .status {
57 | -webkit-mask-image: url(Images/toolbarButtonGlyphs.png);
58 | -webkit-mask-size: 352px 168px;
59 | -webkit-mask-position: -294px -26px;
60 | background-color: #bbb;
61 | height: 20px;
62 | width: 20px;
63 | }
64 |
65 | @media (-webkit-min-device-pixel-ratio: 1.5) {
66 | .promises .status {
67 | -webkit-mask-image: url(Images/toolbarButtonGlyphs_2x.png);
68 | }
69 | } /* media */
70 |
71 | .promises .status.rejected {
72 | background-color: rgb(216, 0, 0);
73 | }
74 |
75 | .promises .status.resolved {
76 | background-color: #696;
77 | }
78 |
79 | .promises-filters-header {
80 | flex: 0 0 23px;
81 | overflow: hidden;
82 | }
83 |
84 | .promises-filter-status {
85 | flex: 0 0 23px;
86 | padding-left: 18px;
87 | color: rgb(128, 128, 128);
88 | font-style: italic;
89 | }
90 | .promises-filter-status .link:hover {
91 | color: rgb(15%, 15%, 15%);
92 | }
93 | .promises-filter-status .link {
94 | color: rgb(33%, 33%, 33%);
95 | }
96 |
--------------------------------------------------------------------------------
/src/dt/resources/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "@WebInspector.PanelFactory",
5 | "name": "resources",
6 | "title": "Resources",
7 | "order": 70,
8 | "className": "WebInspector.ResourcesPanelFactory"
9 | },
10 | {
11 | "type": "@WebInspector.Revealer",
12 | "contextTypes": ["WebInspector.Resource"],
13 | "className": "WebInspector.ResourcesPanel.ResourceRevealer"
14 | }
15 | ],
16 | "dependencies": ["source_frame", "ui_lazy", "components_lazy"],
17 | "scripts": [
18 | "ApplicationCacheItemsView.js",
19 | "CookieItemsView.js",
20 | "DatabaseModel.js",
21 | "DOMStorageModel.js",
22 | "DOMStorageItemsView.js",
23 | "DatabaseQueryView.js",
24 | "DatabaseTableView.js",
25 | "DirectoryContentView.js",
26 | "IndexedDBModel.js",
27 | "IndexedDBViews.js",
28 | "FileContentView.js",
29 | "FileSystemModel.js",
30 | "FileSystemView.js",
31 | "ResourcesPanel.js",
32 | "ServiceWorkerCacheViews.js",
33 | "ServiceWorkersView.js"
34 | ],
35 | "resources": [
36 | "indexedDBViews.css",
37 | "resourcesPanel.css",
38 | "serviceWorkerCacheViews.css",
39 | "serviceWorkersView.css"
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------
/src/dt/resources/serviceWorkerCacheViews.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 | .service-worker-cache-data-view .data-view-toolbar {
8 | position: relative;
9 | background-color: #eee;
10 | border-bottom: 1px solid #ccc;
11 | }
12 |
13 | .service-worker-cache-data-view .data-view-toolbar .key-input {
14 | font-size: 11px;
15 | margin: auto 0;
16 | width: 200px;
17 | }
18 |
19 | .service-worker-cache-data-view .data-grid {
20 | flex: auto;
21 | }
22 |
23 | .service-worker-cache-data-view .data-grid .data-container tr:nth-child(even) {
24 | background-color: white;
25 | }
26 |
27 | .service-worker-cache-data-view .data-grid .data-container tr:nth-child(odd) {
28 | background-color: #EAF3FF;
29 | }
30 |
31 | .service-worker-cache-data-view .data-grid .data-container tr:nth-last-child(1) {
32 | background-color: white;
33 | }
34 |
35 | .service-worker-cache-data-view .data-grid .data-container tr:nth-last-child(1) td {
36 | border: 0;
37 | }
38 |
39 | .service-worker-cache-data-view .data-grid .data-container tr:nth-last-child(2) td {
40 | border-bottom: 1px solid #aaa;
41 | }
42 |
43 | .service-worker-cache-data-view .data-grid .data-container tr.selected {
44 | background-color: rgb(212, 212, 212);
45 | color: inherit;
46 | }
47 |
48 | .service-worker-cache-data-view .data-grid:focus .data-container tr.selected {
49 | background-color: rgb(56, 121, 217);
50 | color: white;
51 | }
52 |
53 | .service-worker-cache-data-view .section,
54 | .service-worker-cache-data-view .section > .header,
55 | .service-worker-cache-data-view .section > .header .title {
56 | margin: 0;
57 | min-height: inherit;
58 | line-height: inherit;
59 | }
60 |
61 | .service-worker-cache-data-view .primitive-value {
62 | padding-top: 1px;
63 | }
64 |
65 | .service-worker-cache-data-view .data-grid .data-container td .section .header .title {
66 | white-space: nowrap;
67 | text-overflow: ellipsis;
68 | overflow: hidden;
69 | }
70 |
--------------------------------------------------------------------------------
/src/dt/screencast/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "@WebInspector.AppProvider",
5 | "className": "WebInspector.ScreencastAppProvider",
6 | "order": 1
7 | },
8 | {
9 | "type": "@WebInspector.ToolbarItem.Provider",
10 | "className": "WebInspector.ScreencastApp.ToolbarButtonProvider",
11 | "order": 1,
12 | "location": "main-toolbar-left"
13 | }
14 | ],
15 | "dependencies": [
16 | "components"
17 | ],
18 | "scripts": [
19 | "ScreencastApp.js",
20 | "ScreencastView.js"
21 | ],
22 | "resources": [
23 | "screencastView.css"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/src/dt/script_formatter_worker/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": [
3 | "../platform/utilities.js",
4 | "../cm/headlesscodemirror.js",
5 | "../cm/css.js",
6 | "../cm/xml.js",
7 | "../cm/htmlmixed.js",
8 | "ScriptFormatterWorker.js",
9 | "../acorn/acorn.js",
10 | "CSSFormatter.js",
11 | "ESTreeWalker.js",
12 | "AcornTokenizer.js",
13 | "JavaScriptFormatter.js"
14 | ],
15 | "skip_compilation": [
16 | "../acorn/acorn.js",
17 | "../cm/headlesscodemirror.js",
18 | "../cm/css.js",
19 | "../cm/xml.js",
20 | "../cm/htmlmixed.js"
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/src/dt/sdk/InspectorBackendHostedMode.js:
--------------------------------------------------------------------------------
1 | // Copyright (c) 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 | //This should be executed immediately after InspectorBackend and InspectorBackendCommands
6 | InspectorBackend.loadFromJSONIfNeeded("./protocol.json");
--------------------------------------------------------------------------------
/src/dt/security/lockIcon.css:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 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 | .lock-icon,
7 | .security-property {
8 | background-size: cover;
9 | height: 16px;
10 | width: 16px;
11 | }
12 |
13 | .lock-icon-unknown {
14 | background-image: url(Images/securityStateNeutral.svg);
15 | }
16 |
17 | .lock-icon-neutral {
18 | background-image: url(Images/securityStateNeutral.svg);
19 | }
20 |
21 | .lock-icon-insecure {
22 | background-image: url(Images/securityStateInsecure.svg);
23 | }
24 |
25 | .lock-icon-secure {
26 | background-image: url(Images/securityStateSecure.svg);
27 | }
28 |
29 | .security-property-insecure {
30 | background-image: url(Images/securityPropertyInsecure.svg);
31 | }
32 |
33 | .security-property-neutral {
34 | background-image: url(Images/securityPropertyWarning.svg);
35 | }
36 |
37 | .security-property-warning {
38 | background-image: url(Images/securityPropertyWarning.svg);
39 | }
40 |
41 | .security-property-secure {
42 | background-image: url(Images/securityPropertySecure.svg);
43 | }
44 |
45 | .security-property-info {
46 | background-image: url(Images/securityPropertyInfo.svg);
47 | }
48 |
--------------------------------------------------------------------------------
/src/dt/security/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "@WebInspector.PanelFactory",
5 | "name": "security",
6 | "title": "Security",
7 | "order": 80,
8 | "className": "WebInspector.SecurityPanelFactory"
9 | }
10 | ],
11 | "dependencies": ["network", "platform", "ui", "sdk"],
12 | "experiment": "securityPanel",
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 |
--------------------------------------------------------------------------------
/src/dt/security/originView.css:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 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 | .security-origin-view {
7 | overflow-x: hidden;
8 | overflow-y: scroll;
9 | display: block;
10 | -webkit-user-select: text;
11 | }
12 |
13 | .security-origin-view .origin-view-section {
14 | padding: 1.5em 1.5em 1.5em;
15 | border-bottom: 1px solid rgb(230, 230, 230);
16 | }
17 |
18 | .security-origin-view .title-section {
19 | padding-bottom: 1.5em;
20 | }
21 |
22 | .security-origin-view .origin-display .security-property {
23 | margin: -1px 2px 0px 0px;
24 | display: inline-block;
25 | vertical-align: middle;
26 | }
27 |
28 | .security-origin-view .origin-view-title {
29 | font-size: 1.25em;
30 | margin-top: 0.5em;
31 | margin-bottom: 0.25em;
32 | }
33 |
34 | .security-origin-view .origin-view-section-title {
35 | font-weight: bold;
36 | font-size: 1em;
37 | margin-bottom: 0.25em;
38 | }
39 |
40 | .security-origin-view .details-table-row {
41 | display: flex;
42 | white-space: nowrap;
43 | overflow: hidden;
44 | margin-top: 6px;
45 | }
46 |
47 | .security-origin-view .details-table-row > div {
48 | align-items: flex-start;
49 | }
50 |
51 | .security-origin-view .details-table-row > div:first-child {
52 | color: rgb(140, 140, 140);
53 | width: 7em;
54 | margin-right: 1em;
55 | flex: none;
56 | display: flex;
57 | justify-content: flex-end;
58 | }
59 | .security-origin-view .details-table-row > div:nth-child(2) {
60 | flex: auto;
61 | white-space: normal;
62 | }
63 |
64 | .security-origin-view .details-table .empty-san {
65 | color: rgb(140, 140, 140);
66 | }
67 |
68 | .security-origin-view .details-table .san-entry {
69 | display: block;
70 | }
71 |
72 | .security-origin-view .truncated-san .truncated-entry {
73 | display: none;
74 | }
75 |
76 | .security-certificate-button {
77 | margin-top: 4px;
78 | }
79 |
--------------------------------------------------------------------------------
/src/dt/security/sidebar.css:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 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 | .tree-outline {
7 | padding: 0;
8 | }
9 |
10 | .tree-outline:focus li.selected .lock-icon-neutral {
11 | background-color: #fff;
12 | }
13 |
14 | .tree-outline .security-main-view-sidebar-tree-item {
15 | border-bottom: 1px solid rgb(230, 230, 230);
16 | padding-top: 0;
17 | }
18 |
19 | .tree-outline .security-main-view-sidebar-tree-item .icon,
20 | .tree-outline .security-main-view-sidebar-tree-item .titles {
21 | margin-top: 1.5em;
22 | margin-bottom: 1.5em;
23 | }
24 |
25 | .tree-outline .security-sidebar-origins {
26 | padding: 1px 8px 6px 8px;
27 | margin-top: 1em;
28 | margin-bottom: 0.5em;
29 | color: rgb(90, 90, 90);
30 | }
31 |
32 | .tree-outline ol {
33 | padding-left: 0;
34 | }
35 |
36 | .tree-outline li::before {
37 | content: none;
38 | }
39 |
40 | .tree-outline .security-main-view-sidebar-tree-item,
41 | .tree-outline .security-sidebar-origins,
42 | .tree-outline .sidebar-tree-section + .children > .sidebar-tree-item {
43 | padding-left: 16px;
44 | }
45 |
46 | .tree-outline .sidebar-tree-item .lock-icon,
47 | .tree-outline .sidebar-tree-item .security-property {
48 | float: left;
49 | margin-right: 2px;
50 | }
51 |
52 | .tree-outline .security-sidebar-tree-item.selected .icon:not(.security-property-unknown) {
53 | background-image: none;
54 | background-color: #fff;
55 | }
56 |
57 | .tree-outline li.selected .lock-icon-neutral {
58 | background-image: none;
59 | background-color: #5a5a5a;
60 | -webkit-mask-image: url(Images/securityStateNeutral.svg);
61 | -webkit-mask-size: cover;
62 | }
63 |
64 | .tree-outline .security-sidebar-tree-item.selected .security-property-insecure {
65 | -webkit-mask-image: url(Images/securityPropertyInsecure.svg);
66 | }
67 |
68 | .security-sidebar-tree-item.selected .security-property-neutral,
69 | .security-sidebar-tree-item.selected .security-property-warning {
70 | -webkit-mask-image: url(Images/securityPropertyWarning.svg);
71 | }
72 |
73 | .security-sidebar-tree-item.selected .security-property-secure {
74 | -webkit-mask-image: url(Images/securityPropertySecure.svg);
75 | }
--------------------------------------------------------------------------------
/src/dt/settings/editFileSystemView.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 | .file-system-header {
8 | display: flex;
9 | flex-direction: row;
10 | align-items: center;
11 | flex: auto;
12 | margin: 10px 0;
13 | }
14 |
15 | .file-system-header-text {
16 | font-size: 14px;
17 | flex: auto;
18 | }
19 |
20 | .add-button {
21 | margin-left: 10px;
22 | align-self: flex-start;
23 | }
24 |
25 | .file-system-list {
26 | max-width: 600px;
27 | flex: auto;
28 | }
29 |
30 | .file-system-list-empty {
31 | flex: auto;
32 | height: 30px;
33 | display: flex;
34 | align-items: center;
35 | justify-content: center;
36 | }
37 |
38 | .file-system-list-item {
39 | padding: 3px 5px 3px 5px;
40 | height: 30px;
41 | display: flex;
42 | align-items: center;
43 | flex: auto 1 1;
44 | }
45 |
46 | .file-system-value {
47 | white-space: nowrap;
48 | text-overflow: ellipsis;
49 | -webkit-user-select: none;
50 | color: #222;
51 | flex: 1 1 0px;
52 | overflow: hidden;
53 | }
54 |
55 | .file-system-separator {
56 | flex: 0 0 1px;
57 | background-color: rgb(231, 231, 231);
58 | height: 30px;
59 | margin: 0 4px;
60 | }
61 |
62 | .file-system-separator-invisible {
63 | visibility: hidden;
64 | height: 100% !important;
65 | }
66 |
67 | .file-system-edit-row {
68 | flex: none;
69 | display: flex;
70 | flex-direction: row;
71 | margin: 6px 5px;
72 | align-items: center;
73 | }
74 |
75 | .file-system-edit-row input {
76 | width: 100%;
77 | text-align: inherit;
78 | }
79 |
80 | .file-system-locked {
81 | flex: none;
82 | visibility: hidden;
83 | }
84 |
85 | .file-system-locked:after {
86 | content: "\1F512";
87 | }
88 |
89 | .file-system-list-item.locked .file-system-locked {
90 | visibility: visible;
91 | }
92 |
--------------------------------------------------------------------------------
/src/dt/settings/frameworkBlackboxSettingsTab.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 {
8 | padding: 0 0 6px;
9 | border-bottom: 1px solid #EEEEEE;
10 | font-size: 18px;
11 | font-weight: normal;
12 | }
13 |
14 | .blackbox-content-scripts {
15 | margin-top: 10px;
16 | }
17 |
18 | .add-button {
19 | margin: 10px 0;
20 | align-self: flex-start;
21 | }
22 |
23 | .blackbox-list {
24 | margin-top: 10px;
25 | max-width: 500px;
26 | flex: 0 1 auto;
27 | }
28 |
29 | .blackbox-list-empty {
30 | flex: auto;
31 | height: 30px;
32 | display: flex;
33 | align-items: center;
34 | justify-content: center;
35 | }
36 |
37 | .blackbox-list-item {
38 | padding: 3px 5px 3px 5px;
39 | height: 30px;
40 | display: flex;
41 | align-items: center;
42 | position: relative;
43 | flex: auto 1 1;
44 | }
45 |
46 | .blackbox-pattern {
47 | white-space: nowrap;
48 | text-overflow: ellipsis;
49 | -webkit-user-select: none;
50 | color: #222;
51 | flex: auto;
52 | overflow: hidden;
53 | }
54 |
55 | .blackbox-list-item.blackbox-disabled .blackbox-pattern {
56 | text-decoration: line-through;
57 | }
58 |
59 | .blackbox-behavior {
60 | flex: 0 0 100px;
61 | padding-left: 10px;
62 | }
63 |
64 | .blackbox-behavior > select {
65 | margin-left: -10px;
66 | }
67 |
68 | .blackbox-separator {
69 | flex: 0 0 1px;
70 | background-color: rgb(231, 231, 231);
71 | height: 30px;
72 | margin: 0 4px;
73 | }
74 |
75 | .blackbox-separator-invisible {
76 | visibility: hidden;
77 | height: 100% !important;
78 | }
79 |
80 | .blackbox-edit-row {
81 | flex: none;
82 | display: flex;
83 | flex-direction: row;
84 | margin: 6px 5px;
85 | align-items: center;
86 | }
87 |
88 | .blackbox-edit-row input,
89 | .blackbox-edit-row select {
90 | width: 100%;
91 | text-align: inherit;
92 | }
93 |
--------------------------------------------------------------------------------
/src/dt/settings/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "@WebInspector.ActionDelegate",
5 | "actionId": "settings.show",
6 | "title": "Settings",
7 | "className": "WebInspector.SettingsController.ActionDelegate",
8 | "bindings": [
9 | {
10 | "shortcut": "F1 Shift+?"
11 | }
12 | ]
13 | },
14 | {
15 | "type": "@WebInspector.ActionDelegate",
16 | "actionId": "settings.help",
17 | "title": "Help",
18 | "className": "WebInspector.SettingsController.ActionDelegate"
19 | },
20 | {
21 | "type": "@WebInspector.ActionDelegate",
22 | "actionId": "settings.shortcuts",
23 | "title": "Shortcuts",
24 | "className": "WebInspector.SettingsController.ActionDelegate"
25 | },
26 | {
27 | "type": "@WebInspector.Revealer",
28 | "contextTypes": ["WebInspector.Setting"],
29 | "className": "WebInspector.SettingsController.Revealer"
30 | },
31 | {
32 | "type": "context-menu-item",
33 | "location": "mainMenu/footer",
34 | "order": 10,
35 | "actionId": "settings.shortcuts"
36 | },
37 | {
38 | "type": "context-menu-item",
39 | "location": "mainMenu/footer",
40 | "order": 20,
41 | "actionId": "settings.show"
42 | },
43 | {
44 | "type": "context-menu-item",
45 | "location": "mainMenu/footer",
46 | "order": 30,
47 | "actionId": "settings.help"
48 | }
49 | ],
50 | "dependencies": [
51 | "components"
52 | ],
53 | "scripts": [
54 | "EditFileSystemView.js",
55 | "SettingsScreen.js",
56 | "FrameworkBlackboxSettingsTab.js"
57 | ],
58 | "resources": [
59 | "editFileSystemView.css",
60 | "frameworkBlackboxSettingsTab.css",
61 | "settingsScreen.css"
62 | ]
63 | }
64 |
--------------------------------------------------------------------------------
/src/dt/snippets/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": ["bindings"],
3 | "scripts": [
4 | "SnippetStorage.js",
5 | "ScriptSnippetModel.js"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/src/dt/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 |
--------------------------------------------------------------------------------
/src/dt/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 > * {
12 | flex: none;
13 | }
14 |
15 | .image-view > .image {
16 | padding: 20px 20px 10px 20px;
17 | text-align: center;
18 | }
19 |
20 | .image-view > .info {
21 | padding-bottom: 10px;
22 | font-size: 11px;
23 | -webkit-user-select: text;
24 | }
25 |
26 | .image-view img.resource-image-view {
27 | max-width: 100%;
28 | max-height: 1000px;
29 | background-image: url(Images/checker.png);
30 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.5);
31 | -webkit-user-select: text;
32 | -webkit-user-drag: auto;
33 | }
34 |
35 | .image-view .title {
36 | text-align: center;
37 | font-size: 13px;
38 | }
39 |
40 | .image-view .infoList {
41 | margin: 0;
42 | }
43 |
44 | .image-view .infoList dt {
45 | font-weight: bold;
46 | display: inline-block;
47 | width: 50%;
48 | text-align: right;
49 | color: rgb(76, 76, 76);
50 | }
51 |
52 | .image-view .infoList dd {
53 | display: inline-block;
54 | padding-left: 8px;
55 | width: 50%;
56 | text-align: left;
57 | margin: 0;
58 | }
59 |
60 | .image-view .infoList dd::after {
61 | white-space: pre;
62 | content: "\A";
63 | }
64 |
--------------------------------------------------------------------------------
/src/dt/source_frame/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "extensions": [
3 | {
4 | "type": "@WebInspector.InplaceEditor",
5 | "className": "WebInspector.CodeMirrorUtils"
6 | },
7 | {
8 | "type": "@WebInspector.TokenizerFactory",
9 | "className": "WebInspector.CodeMirrorUtils.TokenizerFactory"
10 | },
11 | {
12 | "type": "setting",
13 | "category": "Sources",
14 | "title": "Default indentation:",
15 | "settingName": "textEditorIndent",
16 | "settingType": "enum",
17 | "defaultValue": " ",
18 | "options": [
19 | ["2 spaces", " "],
20 | ["4 spaces", " "],
21 | ["8 spaces", " "],
22 | ["Tab character", "\t"]
23 | ]
24 | }
25 | ],
26 | "dependencies": [
27 | "components"
28 | ],
29 | "scripts": [
30 | "../cm/codemirror.js",
31 | "../cm/css.js",
32 | "../cm/javascript.js",
33 | "../cm/simple.js",
34 | "../cm/xml.js",
35 | "../cm/htmlmixed.js",
36 | "../cm/htmlembedded.js",
37 |
38 | "../cm/matchbrackets.js",
39 | "../cm/closebrackets.js",
40 | "../cm/markselection.js",
41 | "../cm/comment.js",
42 | "../cm/overlay.js",
43 | "../cm/activeline.js",
44 |
45 | "CodeMirrorUtils.js",
46 | "CodeMirrorDictionary.js",
47 | "TextEditorAutocompleteController.js",
48 | "CodeMirrorTextEditor.js",
49 | "FontView.js",
50 | "ImageView.js",
51 | "SourceFrame.js",
52 | "ResourceSourceFrame.js"
53 | ],
54 | "skip_compilation": [
55 | "../cm/codemirror.js",
56 | "../cm/css.js",
57 | "../cm/javascript.js",
58 | "../cm/simple.js",
59 | "../cm/xml.js",
60 | "../cm/htmlmixed.js",
61 | "../cm/htmlembedded.js",
62 |
63 | "../cm/matchbrackets.js",
64 | "../cm/closebrackets.js",
65 | "../cm/markselection.js",
66 | "../cm/comment.js",
67 | "../cm/overlay.js",
68 | "../cm/activeline.js"
69 | ],
70 | "resources": [
71 | "../cm/codemirror.css",
72 | "cmdevtools.css",
73 | "fontView.css",
74 | "imageView.css"
75 | ]
76 | }
77 |
--------------------------------------------------------------------------------
/src/dt/sources/AddSourceMapURLDialog.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 | /**
6 | * @constructor
7 | * @extends {WebInspector.HBox}
8 | * @param {function(string)} callback
9 | */
10 | WebInspector.AddSourceMapURLDialog = function(callback)
11 | {
12 | WebInspector.HBox.call(this, true);
13 | this.registerRequiredCSS("sources/addSourceMapURLDialog.css");
14 | this.contentElement.createChild("label").textContent = WebInspector.UIString("Source map URL: ");
15 |
16 | this._input = this.contentElement.createChild("input");
17 | this._input.setAttribute("type", "text");
18 | this._input.addEventListener("keydown", this._onKeyDown.bind(this), false);
19 |
20 | var addButton = this.contentElement.createChild("button");
21 | addButton.textContent = WebInspector.UIString("Add");
22 | addButton.addEventListener("click", this._apply.bind(this), false);
23 |
24 | this.setDefaultFocusedElement(this._input);
25 | this._callback = callback;
26 | }
27 |
28 | /**
29 | * @param {function(string)} callback
30 | */
31 | WebInspector.AddSourceMapURLDialog.show = function(callback)
32 | {
33 | var dialog = new WebInspector.Dialog();
34 | var addSourceMapURLDialog = new WebInspector.AddSourceMapURLDialog(done);
35 | addSourceMapURLDialog.show(dialog.element);
36 | dialog.setWrapsContent(true);
37 | dialog.show();
38 |
39 | /**
40 | * @param {string} value
41 | */
42 | function done(value)
43 | {
44 | dialog.detach();
45 | callback(value);
46 | }
47 | }
48 |
49 | WebInspector.AddSourceMapURLDialog.prototype = {
50 | _apply: function()
51 | {
52 | this._callback(this._input.value);
53 | },
54 |
55 | /**
56 | * @param {!Event} event
57 | */
58 | _onKeyDown: function(event)
59 | {
60 | if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Enter.code) {
61 | event.preventDefault();
62 | this._apply();
63 | }
64 | },
65 |
66 | __proto__: WebInspector.HBox.prototype
67 | }
68 |
--------------------------------------------------------------------------------
/src/dt/sources/addSourceMapURLDialog.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 | font-family: 'Lucida Grande', sans-serif;
9 | font-size: inherit;
10 | padding: 10px;
11 | }
12 |
13 | .widget {
14 | align-items: center;
15 | }
16 |
17 | label {
18 | white-space: nowrap;
19 | }
20 |
21 | input[type=text] {
22 | font-size: inherit;
23 | height: 24px;
24 | padding-left: 2px;
25 | margin: 0 5px;
26 | }
27 |
28 | input[type="search"]:focus,
29 | input[type="text"]:focus {
30 | outline: none;
31 | }
32 |
33 | button {
34 | background-image: linear-gradient(hsl(0, 0%, 93%), hsl(0, 0%, 93%) 38%, hsl(0, 0%, 87%));
35 | border: 1px solid hsla(0, 0%, 0%, 0.25);
36 | border-radius: 2px;
37 | box-shadow: 0 1px 0 hsla(0, 0%, 0%, 0.08), inset 0 1px 2px hsla(0, 100%, 100%, 0.75);
38 | color: hsl(0, 0%, 27%);
39 | font-size: 12px;
40 | margin: 0 6px 0 6px;
41 | text-shadow: 0 1px 0 hsl(0, 0%, 94%);
42 | min-height: 2em;
43 | padding-left: 10px;
44 | padding-right: 10px;
45 | }
46 |
47 | button:active {
48 | background-color: rgb(215, 215, 215);
49 | background-image: linear-gradient(to bottom, rgb(194, 194, 194), rgb(239, 239, 239));
50 | }
51 |
--------------------------------------------------------------------------------
/src/dt/sources/filteredItemSelectionDialog.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 | .filtered-item-list-dialog {
8 | display: flex;
9 | flex-direction: column;
10 | flex: auto;
11 | }
12 |
13 | .filtered-item-list-dialog > input[type=text] {
14 | flex: 0 0 36px;
15 | border: 0;
16 | box-shadow: rgba(140, 140, 140, 0.5) 0 4px 16px;
17 | margin: 0;
18 | padding-left: 6px;
19 | z-index: 1;
20 | font-size: inherit;
21 | }
22 |
23 | .filtered-item-list-dialog > input[type=text]:focus {
24 | outline: none;
25 | }
26 |
27 | .filtered-item-list-dialog > div.container {
28 | flex: auto;
29 | overflow-y: auto;
30 | background: white;
31 | }
32 |
33 | .filtered-item-list-dialog-item {
34 | padding: 6px;
35 | white-space: nowrap;
36 | text-overflow: ellipsis;
37 | overflow: hidden;
38 | color: rgb(95, 95, 95);
39 | }
40 |
41 | .filtered-item-list-dialog-item.selected {
42 | background-color: #eee;
43 | }
44 |
45 | .filtered-item-list-dialog-item span.highlight {
46 | color: #222;
47 | font-weight: bold;
48 | }
49 |
50 | .filtered-item-list-dialog-item .filtered-item-list-dialog-title {
51 | flex: auto;
52 | overflow: hidden;
53 | text-overflow: ellipsis;
54 | }
55 |
56 | .filtered-item-list-dialog-item .filtered-item-list-dialog-subtitle {
57 | flex: none;
58 | overflow: hidden;
59 | text-overflow: ellipsis;
60 | color: rgb(155, 155, 155);
61 | }
62 |
63 | .filtered-item-list-dialog-item.one-row {
64 | display: flex;
65 | }
66 |
67 | .filtered-item-list-dialog-item.two-rows {
68 | border-bottom: 1px solid rgb(235, 235, 235);
69 | }
70 |
--------------------------------------------------------------------------------
/src/dt/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 |
--------------------------------------------------------------------------------
/src/dt/sources/uiList.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 | .list-item {
8 | padding: 2px 8px 3px 8px;
9 | position: relative;
10 | min-height: 18px;
11 | white-space: nowrap;
12 | }
13 |
14 | .list-item:nth-of-type(2n) {
15 | background-color: #f8f8f8;
16 | }
17 |
18 | .list-item.selected {
19 | background-color: #dadada;
20 | }
21 |
22 | .list-item.selected > .title {
23 | font-weight: bold;
24 | }
25 |
26 | .list-item:hover {
27 | background-color: #eee;
28 | }
29 |
30 | .list-item > .title {
31 | font-weight: normal;
32 | word-wrap: break-word;
33 | white-space: normal;
34 | }
35 |
36 | .list-item > .subtitle {
37 | margin-left: 5px;
38 | color: rgba(0, 0, 0, 0.7);
39 | text-overflow: ellipsis;
40 | overflow: hidden;
41 | float: right;
42 | }
43 |
44 | .list-item > .subtitle a {
45 | color: inherit;
46 | }
47 |
48 | .list-item.label {
49 | text-align: center;
50 | }
51 |
52 | .list-item.label .title,
53 | .list-item.label .subtitle {
54 | font-style: italic;
55 | font-weight: bold;
56 | color: #999;
57 | }
58 |
59 | .list-item.dimmed {
60 | opacity: 0.6;
61 | font-style: italic;
62 | }
63 |
--------------------------------------------------------------------------------
/src/dt/temp_storage_shared_worker/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": ["TempStorageSharedWorker.js"]
3 | }
4 |
--------------------------------------------------------------------------------
/src/dt/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 |
--------------------------------------------------------------------------------
/src/dt/timeline/timelineStatusDialog.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-status-dialog {
8 | display: flex;
9 | flex-direction: column;
10 | padding: 12px 16px;
11 | align-self: center;
12 | background-color: white;
13 | border: 1px solid lightgrey;
14 | box-shadow: grey 0 0 14px;
15 | margin-top: -1px;
16 | }
17 |
18 | .timeline-status-dialog div {
19 | margin: 2px;
20 | height: 14px;
21 | }
22 |
23 | .timeline-status-dialog ::before {
24 | display: inline-block;
25 | width: 80px;
26 | text-align: right;
27 | color: #aaa;
28 | margin-right: 10px;
29 | }
30 |
31 | .timeline-status-dialog .status::before {
32 | content: "Status";
33 | }
34 |
35 | .timeline-status-dialog .time::before {
36 | content: "Time";
37 | }
38 |
39 | .timeline-status-dialog .buffer-usage::before {
40 | content: "Buffer Usage";
41 | }
42 |
43 | .timeline-status-dialog .buffer-usage .indicator-container {
44 | display: inline-block;
45 | width: 200px;
46 | height: 8px;
47 | background-color: #f4f4f4;
48 | display: inline-block;
49 | margin: 0 10px 0 0;
50 | }
51 |
52 | .timeline-status-dialog .buffer-usage .indicator {
53 | background-color: rgb(112, 166, 255);
54 | height: 100%;
55 | width: 0;
56 | margin: 0;
57 | }
58 |
59 | .timeline-status-dialog .stop-button {
60 | text-align: center;
61 | margin-top: 8px;
62 | height: 100%;
63 | }
64 |
--------------------------------------------------------------------------------
/src/dt/toolbox.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 | @import url("inspectorStyle.css");
8 | @import url("ui/inspectorCommon.css");
9 |
--------------------------------------------------------------------------------
/src/dt/toolbox.html:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/dt/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 |
5 | Runtime.startApplication("toolbox");
6 |
--------------------------------------------------------------------------------
/src/dt/toolbox.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "platform",
4 | "type": "autostart"
5 | },
6 | {
7 | "name": "toolbox_bootstrap",
8 | "type": "autostart"
9 | }
10 | ]
11 |
12 |
--------------------------------------------------------------------------------
/src/dt/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 |
5 | (function()
6 | {
7 |
8 | /**
9 | * @suppressGlobalPropertiesCheck
10 | */
11 | function toolboxLoaded()
12 | {
13 | if (!window.opener)
14 | return;
15 | var app = window.opener.WebInspector["AdvancedApp"]["_instance"]();
16 | app["toolboxLoaded"](document);
17 | }
18 |
19 | runOnWindowLoad(toolboxLoaded);
20 |
21 | })();
--------------------------------------------------------------------------------
/src/dt/toolbox_bootstrap/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": [
3 | "platform"
4 | ],
5 | "scripts": [
6 | "Toolbox.js"
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/src/dt/ui/DropDownMenu.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 | /**
6 | * @constructor
7 | * @extends {WebInspector.Object}
8 | * @param {!Element} element
9 | */
10 | WebInspector.DropDownMenu = function(element)
11 | {
12 | /** @type {!Array.} */
13 | this._items = [];
14 |
15 | element.addEventListener("mousedown", this._onMouseDown.bind(this));
16 | }
17 |
18 | /** @typedef {{id: string, title: string}} */
19 | WebInspector.DropDownMenu.Item;
20 |
21 | /** @enum {string} */
22 | WebInspector.DropDownMenu.Events = {
23 | ItemSelected: "ItemSelected"
24 | }
25 |
26 | WebInspector.DropDownMenu.prototype = {
27 | /**
28 | * @param {!Event} event
29 | */
30 | _onMouseDown: function(event)
31 | {
32 | if (event.which !== 1)
33 | return;
34 | var menu = new WebInspector.ContextMenu(event);
35 | for (var item of this._items)
36 | menu.appendCheckboxItem(item.title, this._itemHandler.bind(this, item.id), item.id === this._selectedItemId);
37 | menu.show();
38 | },
39 |
40 | /**
41 | * @param {string} id
42 | */
43 | _itemHandler: function(id)
44 | {
45 | this.dispatchEventToListeners(WebInspector.DropDownMenu.Events.ItemSelected, id);
46 | },
47 |
48 | /**
49 | * @param {string} id
50 | * @param {string} title
51 | */
52 | addItem: function(id, title)
53 | {
54 | this._items.push({id: id, title: title});
55 | },
56 |
57 | /**
58 | * @param {string} id
59 | */
60 | selectItem: function(id)
61 | {
62 | this._selectedItemId = id;
63 | },
64 |
65 | clear: function()
66 | {
67 | this._items = [];
68 | delete this._selectedItemId;
69 | },
70 |
71 | __proto__: WebInspector.Object.prototype
72 | }
73 |
--------------------------------------------------------------------------------
/src/dt/ui/EmptyWidget.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2011 Google Inc. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * * Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | * * Redistributions in binary form must reproduce the above
11 | * copyright notice, this list of conditions and the following disclaimer
12 | * in the documentation and/or other materials provided with the
13 | * distribution.
14 | * * Neither the name of Google Inc. nor the names of its
15 | * contributors may be used to endorse or promote products derived from
16 | * this software without specific prior written permission.
17 | *
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 | */
30 |
31 | /**
32 | * @constructor
33 | * @extends {WebInspector.VBox}
34 | */
35 | WebInspector.EmptyWidget = function(text)
36 | {
37 | WebInspector.VBox.call(this);
38 | this.registerRequiredCSS("ui/emptyWidget.css");
39 | this.element.classList.add("empty-view");
40 | this.textElement = this.element.createChild("span");
41 | this._text = text;
42 | }
43 |
44 | WebInspector.EmptyWidget.prototype = {
45 | wasShown: function()
46 | {
47 | this.textElement.textContent = this._text;
48 | },
49 |
50 | set text(text)
51 | {
52 | this._text = text;
53 | if (this.isShowing())
54 | this.textElement.textContent = this._text;
55 | },
56 |
57 | __proto__: WebInspector.VBox.prototype
58 | }
59 |
60 |
--------------------------------------------------------------------------------
/src/dt/ui/ForwardedInputEventHandler.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 | /**
6 | * @constructor
7 | */
8 | WebInspector.ForwardedInputEventHandler = function()
9 | {
10 | InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.KeyEventUnhandled, this._onKeyEventUnhandled, this);
11 | }
12 |
13 | WebInspector.ForwardedInputEventHandler.prototype = {
14 | /**
15 | * @param {!WebInspector.Event} event
16 | */
17 | _onKeyEventUnhandled: function(event)
18 | {
19 | var data = event.data;
20 | var type = /** @type {string} */ (data.type);
21 | var keyIdentifier = /** @type {string} */ (data.keyIdentifier);
22 | var keyCode = /** @type {number} */ (data.keyCode);
23 | var modifiers =/** @type {number} */ (data.modifiers);
24 |
25 | if (type !== "keydown")
26 | return;
27 |
28 | WebInspector.context.setFlavor(WebInspector.ShortcutRegistry.ForwardedShortcut, WebInspector.ShortcutRegistry.ForwardedShortcut.instance);
29 | WebInspector.shortcutRegistry.handleKey(WebInspector.KeyboardShortcut.makeKey(keyCode, modifiers), keyIdentifier);
30 | WebInspector.context.setFlavor(WebInspector.ShortcutRegistry.ForwardedShortcut, null);
31 | }
32 | }
33 |
34 | /** @type {!WebInspector.ForwardedInputEventHandler} */
35 | WebInspector.forwardedEventHandler = new WebInspector.ForwardedInputEventHandler();
36 |
--------------------------------------------------------------------------------
/src/dt/ui/RootView.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 | /**
6 | * @constructor
7 | * @extends {WebInspector.VBox}
8 | */
9 | WebInspector.RootView = function()
10 | {
11 | WebInspector.VBox.call(this);
12 | this.markAsRoot();
13 | this.element.classList.add("root-view");
14 | this.element.setAttribute("spellcheck", false);
15 | }
16 |
17 | WebInspector.RootView.prototype = {
18 | /**
19 | * @param {!Document} document
20 | */
21 | attachToDocument: function(document)
22 | {
23 | document.defaultView.addEventListener("resize", this.doResize.bind(this), false);
24 | this._window = document.defaultView;
25 | this.doResize();
26 | this.show(document.body);
27 | },
28 |
29 | doResize: function()
30 | {
31 | if (this._window) {
32 | var size = this.constraints().minimum;
33 | var zoom = WebInspector.zoomManager.zoomFactor();
34 | var right = Math.min(0, this._window.innerWidth - size.width / zoom);
35 | this.element.style.marginRight = right + "px";
36 | var bottom = Math.min(0, this._window.innerHeight - size.height / zoom);
37 | this.element.style.marginBottom = bottom + "px";
38 | }
39 | WebInspector.VBox.prototype.doResize.call(this);
40 | },
41 |
42 | __proto__: WebInspector.VBox.prototype
43 | }
44 |
--------------------------------------------------------------------------------
/src/dt/ui/ThrottledWidget.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 | /**
6 | * @constructor
7 | * @extends {WebInspector.Widget}
8 | */
9 | WebInspector.ThrottledWidget = function()
10 | {
11 | WebInspector.Widget.call(this);
12 | this._updateThrottler = new WebInspector.Throttler(100);
13 | this._updateWhenVisible = false;
14 | }
15 |
16 | WebInspector.ThrottledWidget.prototype = {
17 | /**
18 | * @protected
19 | * @return {!Promise.>}
20 | */
21 | doUpdate: function()
22 | {
23 | return Promise.resolve();
24 | },
25 |
26 | update: function()
27 | {
28 | this._updateWhenVisible = !this.isShowing();
29 | if (this._updateWhenVisible)
30 | return;
31 | this._updateThrottler.schedule(innerUpdate.bind(this));
32 |
33 | /**
34 | * @this {WebInspector.ThrottledWidget}
35 | * @return {!Promise.>}
36 | */
37 | function innerUpdate()
38 | {
39 | if (this.isShowing()) {
40 | return this.doUpdate();
41 | } else {
42 | this._updateWhenVisible = true;
43 | return Promise.resolve();
44 | }
45 | }
46 | },
47 |
48 | /**
49 | * @override
50 | */
51 | wasShown: function()
52 | {
53 | WebInspector.Widget.prototype.wasShown.call(this);
54 | if (this._updateWhenVisible)
55 | this.update();
56 | },
57 |
58 | __proto__: WebInspector.Widget.prototype
59 | }
60 |
--------------------------------------------------------------------------------
/src/dt/ui/ZoomManager.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 | /**
6 | * @constructor
7 | * @extends {WebInspector.Object}
8 | * @param {!Window} window
9 | * @param {!InspectorFrontendHostAPI} frontendHost
10 | */
11 | WebInspector.ZoomManager = function(window, frontendHost)
12 | {
13 | this._frontendHost = frontendHost;
14 | this._zoomFactor = this._frontendHost.zoomFactor();
15 | window.addEventListener("resize", this._onWindowResize.bind(this), true);
16 | };
17 |
18 | WebInspector.ZoomManager.Events = {
19 | ZoomChanged: "ZoomChanged"
20 | };
21 |
22 | WebInspector.ZoomManager.prototype = {
23 | /**
24 | * @return {number}
25 | */
26 | zoomFactor: function()
27 | {
28 | return this._zoomFactor;
29 | },
30 |
31 | /**
32 | * @param {number} value
33 | * @return {number}
34 | */
35 | cssToDIP: function(value)
36 | {
37 | return value * this._zoomFactor;
38 | },
39 |
40 | /**
41 | * @param {number} valueDIP
42 | * @return {number}
43 | */
44 | dipToCSS: function(valueDIP)
45 | {
46 | return valueDIP / this._zoomFactor;
47 | },
48 |
49 | _onWindowResize: function()
50 | {
51 | var oldZoomFactor = this._zoomFactor;
52 | this._zoomFactor = this._frontendHost.zoomFactor();
53 | if (oldZoomFactor !== this._zoomFactor)
54 | this.dispatchEventToListeners(WebInspector.ZoomManager.Events.ZoomChanged, {from: oldZoomFactor, to: this._zoomFactor});
55 | },
56 |
57 | __proto__: WebInspector.Object.prototype
58 | };
59 |
60 | /**
61 | * @type {!WebInspector.ZoomManager}
62 | */
63 | WebInspector.zoomManager;
64 |
--------------------------------------------------------------------------------
/src/dt/ui/checkboxTextLabel.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 | :host {
8 | padding: 0;
9 | margin: 0;
10 | display: inline-flex;
11 | flex-shrink: 0;
12 | align-items: center !important;
13 | }
14 |
15 | input {
16 | height: 12px;
17 | width: 12px;
18 | flex-shrink: 0;
19 | }
20 |
21 | input.dt-checkbox-themed {
22 | -webkit-appearance: none;
23 | margin: 0 5px auto 2px;
24 | border: 1px solid rgb(45, 45, 45);
25 | border-radius: 3px;
26 | background-color: rgb(102, 102, 102);
27 | position: relative;
28 | top: 1px;
29 | }
30 |
31 | input.dt-checkbox-themed:after {
32 | content: '';
33 | line-height: 10px;
34 | position: absolute;
35 | cursor: pointer;
36 | width: 12px;
37 | height: 12px;
38 | background: none;
39 | }
40 |
41 | input.dt-checkbox-themed:checked:after {
42 | background-color: #333;
43 | }
44 |
45 | input.dt-checkbox-themed:after {
46 | -webkit-mask-image: url(Images/toolbarButtonGlyphs.png);
47 | -webkit-mask-size: 352px 168px;
48 | -webkit-mask-position: -128px -110px;
49 | }
50 |
51 | @media (-webkit-min-device-pixel-ratio: 1.5) {
52 | input.dt-checkbox-themed:after {
53 | -webkit-mask-image: url(Images/toolbarButtonGlyphs_2x.png);
54 | }
55 |
56 | } /* media */
57 |
--------------------------------------------------------------------------------
/src/dt/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 | div {
8 | background-image: url(Images/toolbarButtonGlyphs.png);
9 | background-size: 352px 168px;
10 | }
11 |
12 | @media (-webkit-min-device-pixel-ratio: 1.5) {
13 | div {
14 | background-image: url(Images/toolbarButtonGlyphs_2x.png);
15 | }
16 | } /* media */
17 |
18 | .close-button {
19 | width: 14px;
20 | height: 14px;
21 | background-position: -128px -96px;
22 | cursor: default;
23 | }
24 |
25 | .close-button:hover {
26 | background-position: -96px -96px;
27 | }
28 |
29 | .close-button:active {
30 | background-position: -111px -96px;
31 | }
32 |
33 | .close-button-gray {
34 | width: 13px;
35 | height: 13px;
36 | background-position: -175px -96px;
37 | }
38 |
39 | .close-button-gray:hover {
40 | background-position: -143px -96px;
41 | }
42 |
43 | .close-button-gray:active {
44 | background-position: -160px -96px;
45 | }
46 |
--------------------------------------------------------------------------------
/src/dt/ui/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 | }
30 |
31 | .color-swatch-inner:hover {
32 | border: 1px solid rgba(64, 64, 64, 0.8);
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/src/dt/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 | :host {
8 | position: absolute;
9 | border: 1px solid rgb(204, 204, 204);
10 | box-shadow: rgb(140, 140, 140) 0 3px 14px;
11 | background: white;
12 | justify-content: flex-start;
13 | align-items: stretch;
14 | }
15 |
16 | .widget {
17 | display: flex;
18 | flex: auto;
19 | justify-content: flex-start;
20 | align-items: stretch;
21 | }
22 |
23 | :host-context(.wraps-content) {
24 | justify-content: center;
25 | align-items: flex-start;
26 | overflow: hidden;
27 | }
28 |
29 | :host-context(.wraps-content) .widget {
30 | flex: none !important;
31 | justify-content: center;
32 | align-items: center;
33 | }
34 |
35 | .dialog-close-button {
36 | position: absolute;
37 | right: 9px;
38 | top: 9px;
39 | }
--------------------------------------------------------------------------------
/src/dt/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 |
--------------------------------------------------------------------------------
/src/dt/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 | font-size: 24px;
9 | color: rgb(75%, 75%, 75%);
10 | font-weight: bold;
11 | padding: 10px;
12 | display: flex;
13 | align-items: center;
14 | justify-content: center;
15 | }
16 |
--------------------------------------------------------------------------------
/src/dt/ui/infobar.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 | .infobar {
8 | color: rgb(34, 34, 34);
9 | padding: 4px 6px;
10 | white-space: nowrap;
11 | display: flex;
12 | align-items: flex-start;
13 | flex: auto;
14 | border-bottom: 1px solid rgb(171, 171, 171);
15 | }
16 |
17 | .infobar-warning {
18 | background-color: rgb(253, 242, 192);
19 | }
20 |
21 | .infobar-info {
22 | background-color: rgb(255, 255, 255);
23 | }
24 |
25 | .infobar .icon {
26 | flex: none;
27 | }
28 |
29 | .infobar .content {
30 | flex: auto;
31 | padding-left: 3px;
32 | overflow: hidden;
33 | text-overflow: ellipsis;
34 | }
35 |
36 | .infobar .close-button {
37 | flex: none;
38 | }
39 |
40 | .infobar .disable-button {
41 | flex: none;
42 | margin-right: 5px;
43 | text-decoration: underline;
44 | cursor: pointer;
45 | }
46 |
--------------------------------------------------------------------------------
/src/dt/ui/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": [
3 | "platform",
4 | "common",
5 | "host"
6 | ],
7 | "scripts": [
8 | "Widget.js",
9 | "treeoutline.js",
10 | "ActionRegistry.js",
11 | "ShortcutRegistry.js",
12 | "ColorSwatch.js",
13 | "Context.js",
14 | "ContextMenu.js",
15 | "Dialog.js",
16 | "DOMSyntaxHighlighter.js",
17 | "DropDownMenu.js",
18 | "DropTarget.js",
19 | "EmptyWidget.js",
20 | "FilterBar.js",
21 | "ForwardedInputEventHandler.js",
22 | "HistoryInput.js",
23 | "Infobar.js",
24 | "InplaceEditor.js",
25 | "KeyboardShortcut.js",
26 | "ListWidget.js",
27 | "Panel.js",
28 | "Popover.js",
29 | "ProgressIndicator.js",
30 | "ResizerWidget.js",
31 | "RootView.js",
32 | "SearchableView.js",
33 | "Section.js",
34 | "SettingsUI.js",
35 | "SidebarTreeElement.js",
36 | "SoftContextMenu.js",
37 | "SplitWidget.js",
38 | "StackView.js",
39 | "Toolbar.js",
40 | "Tooltip.js",
41 | "SuggestBox.js",
42 | "TabbedPane.js",
43 | "SidebarPane.js",
44 | "TextPrompt.js",
45 | "UIUtils.js",
46 | "ViewportControl.js",
47 | "ZoomManager.js",
48 | "ThrottledWidget.js"
49 | ],
50 | "resources": [
51 | "checkboxTextLabel.css",
52 | "closeButton.css",
53 | "colorSwatch.css",
54 | "dialog.css",
55 | "dropTarget.css",
56 | "emptyWidget.css",
57 | "filter.css",
58 | "infobar.css",
59 | "inspectorCommon.css",
60 | "inspectorSyntaxHighlight.css",
61 | "listWidget.css",
62 | "panelEnablerView.css",
63 | "progressIndicator.css",
64 | "propertiesSection.css",
65 | "radioButton.css",
66 | "searchableView.css",
67 | "section.css",
68 | "smallIcon.css",
69 | "softContextMenu.css",
70 | "splitWidget.css",
71 | "toolbar.css",
72 | "suggestBox.css",
73 | "tabbedPane.css",
74 | "textButton.css",
75 | "textPrompt.css",
76 | "tooltip.css",
77 | "treeoutline.css"
78 | ]
79 | }
80 |
--------------------------------------------------------------------------------
/src/dt/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 |
--------------------------------------------------------------------------------
/src/dt/ui/propertiesSection.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 | .properties-tree {
8 | margin: 0;
9 | padding: 0 6px 2px;
10 | list-style: none;
11 | min-height: 18px;
12 | }
13 |
14 | .properties-tree ol {
15 | display: none;
16 | margin: 0;
17 | -webkit-padding-start: 12px;
18 | list-style: none;
19 | }
20 |
21 | .properties-tree ol.expanded {
22 | display: block;
23 | }
24 |
25 | .properties-tree li {
26 | margin-left: 12px;
27 | white-space: nowrap;
28 | text-overflow: ellipsis;
29 | overflow: hidden;
30 | -webkit-user-select: text;
31 | cursor: default;
32 | padding-top: 2px;
33 | line-height: 12px;
34 | }
35 |
36 | .properties-tree li.parent {
37 | margin-left: 1px;
38 | }
39 |
40 | .properties-tree li.parent::before {
41 | -webkit-user-select: none;
42 | background-image: url(Images/toolbarButtonGlyphs.png);
43 | background-size: 352px 168px;
44 | opacity: 0.5;
45 | content: "a";
46 | width: 8px;
47 | float: left;
48 | margin-right: 4px;
49 | color: transparent;
50 | text-shadow: none;
51 | }
52 |
53 | @media (-webkit-min-device-pixel-ratio: 1.5) {
54 | .properties-tree li.parent::before {
55 | background-image: url(Images/toolbarButtonGlyphs_2x.png);
56 | }
57 | } /* media */
58 |
59 | .properties-tree li.parent::before {
60 | background-position: -4px -96px;
61 | }
62 |
63 | .properties-tree li.parent.expanded::before {
64 | background-position: -20px -96px;
65 | }
66 |
67 | .properties-tree li .info {
68 | padding-top: 4px;
69 | padding-bottom: 3px;
70 | }
71 |
72 | .properties-tree li.editing {
73 | margin-left: 10px;
74 | text-overflow: clip;
75 | }
76 |
77 | .properties-tree li.editing-sub-part {
78 | padding: 3px 6px 8px 18px;
79 | margin: -1px -6px -8px -6px;
80 | text-overflow: clip;
81 | }
82 |
83 | .properties-tree .name {
84 | color: rgb(136, 19, 145);
85 | flex-shrink: 0;
86 | }
87 |
88 | .properties-tree .separator {
89 | flex-shrink: 0;
90 | }
91 |
92 | .properties-tree .dimmed {
93 | opacity: 0.6;
94 | }
95 |
96 | .properties-tree .value.error {
97 | color: red;
98 | }
99 |
100 | .properties-tree .number {
101 | color: blue;
102 | }
103 |
104 | .properties-tree .keyword {
105 | color: rgb(136, 19, 79);
106 | }
107 |
108 | .properties-tree .color {
109 | color: rgb(118, 15, 21);
110 | }
111 |
--------------------------------------------------------------------------------
/src/dt/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 |
--------------------------------------------------------------------------------
/src/dt/ui/section.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 | .section {
8 | position: relative;
9 | margin-top: 1px;
10 | }
11 |
12 | .section > .header {
13 | padding: 0 8px 0 5px;
14 | min-height: 18px;
15 | white-space: nowrap;
16 | background-origin: padding-box;
17 | background-clip: padding-box;
18 | }
19 |
20 | .section > .header::before {
21 | -webkit-user-select: none;
22 | background-image: url(Images/toolbarButtonGlyphs.png);
23 | background-size: 352px 168px;
24 | opacity: 0.5;
25 | content: "a";
26 | color: transparent;
27 | text-shadow: none;
28 | float: left;
29 | width: 8px;
30 | margin-right: 4px;
31 | margin-top: 2px;
32 | }
33 |
34 | @media (-webkit-min-device-pixel-ratio: 1.5) {
35 | .section > .header::before {
36 | background-image: url(Images/toolbarButtonGlyphs_2x.png);
37 | }
38 | } /* media */
39 |
40 | .section > .header::before {
41 | background-position: -4px -96px;
42 | }
43 |
44 | .section.expanded > .header::before {
45 | background-position: -20px -96px;
46 | }
47 |
48 | .section > .header .title {
49 | font-weight: normal;
50 | word-wrap: break-word;
51 | white-space: normal;
52 | line-height: 18px;
53 | }
54 |
55 | .section > .header label {
56 | display: none;
57 | }
58 |
59 | .section.expanded .header label {
60 | display: inline;
61 | }
62 |
63 | .section > .header .subtitle {
64 | float: right;
65 | margin-left: 5px;
66 | max-width: 55%;
67 | text-overflow: ellipsis;
68 | overflow: hidden;
69 | }
70 |
71 | .section > .header .subtitle a {
72 | color: inherit;
73 | }
74 |
75 | .section > .properties {
76 | display: none;
77 | }
78 |
79 | .section.expanded > .properties {
80 | display: block;
81 | }
82 |
--------------------------------------------------------------------------------
/src/dt/ui/smallIcon.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 | div {
8 | width: 10px;
9 | height: 10px;
10 | margin-right: 2px;
11 | display: inline-block;
12 | }
13 |
14 | div.error-icon,
15 | div.revokedError-icon,
16 | div.warning-icon,
17 | div.info-icon,
18 | div.device-icon,
19 | div.red-ball,
20 | div.green-ball,
21 | div.orange-ball {
22 | background-image: url(Images/toolbarButtonGlyphs.png);
23 | background-size: 352px 168px;
24 | }
25 |
26 | @media (-webkit-min-device-pixel-ratio: 1.5) {
27 | div.error-icon,
28 | div.revokedError-icon,
29 | div.warning-icon,
30 | div.info-icon,
31 | div.device-icon,
32 | div.red-ball,
33 | div.green-ball,
34 | div.orange-ball {
35 | background-image: url(Images/toolbarButtonGlyphs_2x.png);
36 | }
37 | } /* media */
38 |
39 | div.error-icon {
40 | background-position: -213px -96px;
41 | }
42 |
43 | div.revokedError-icon {
44 | background-position: -245px -107px;
45 | }
46 |
47 | div.warning-icon {
48 | background-position: -202px -107px;
49 | }
50 |
51 | div.info-icon {
52 | background-position: -213px -107px;
53 | }
54 |
55 | div.device-icon {
56 | background-position: -224px -107px;
57 | }
58 |
59 | div.red-ball {
60 | background-position: -224px -96px;
61 | }
62 |
63 | div.green-ball {
64 | background-position: -235px -96px;
65 | }
66 |
67 | div.orange-ball {
68 | background-position: -246px -96px;
69 | }
70 |
--------------------------------------------------------------------------------
/src/dt/ui/textButton.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 | :host {
8 | background-image: linear-gradient(hsl(0, 0%, 93%), hsl(0, 0%, 93%) 38%, hsl(0, 0%, 87%));
9 | border: 1px solid hsla(0, 0%, 0%, 0.25);
10 | border-radius: 2px;
11 | box-shadow: 0 1px 0 hsla(0, 0%, 0%, 0.08), inset 0 1px 2px hsla(0, 100%, 100%, 0.75);
12 | color: hsl(0, 0%, 27%);
13 | font-size: 12px;
14 | margin: 0 1px 0 0;
15 | text-shadow: 0 1px 0 hsl(0, 0%, 94%);
16 | min-height: 2em !important;
17 | padding-left: 10px;
18 | padding-right: 10px;
19 | -webkit-user-select: none;
20 | flex: none;
21 | }
22 |
23 | :host-context(body.inactive),
24 | :host(:disabled) {
25 | background-image: linear-gradient(#f1f1f1, #f1f1f1 38%, #e6e6e6);
26 | border-color: rgba(80, 80, 80, 0.2);
27 | box-shadow: 0 1px 0 rgba(80, 80, 80, 0.08), inset 0 1px 2px rgba(255, 255, 255, 0.75);
28 | color: #aaa;
29 | }
30 |
31 | :host(:not(:disabled):hover) {
32 | background-image: linear-gradient(hsl(0, 0%, 94%), hsl(0, 0%, 94%) 38%, hsl(0, 0%, 88%));
33 | border-color: hsla(0, 0%, 0%, 0.3);
34 | box-shadow: 0 1px 0 hsla(0, 0%, 0%, 0.12), inset 0 1px 2px hsla(0, 100%, 100%, 0.95);
35 | color: hsl(0, 0%, 0%);
36 | }
37 |
38 | :host(:not(:disabled):active) {
39 | background-image: linear-gradient(hsl(0, 0%, 91%), hsl(0, 0%, 91%) 38%, hsl(0, 0%, 84%));
40 | box-shadow: none;
41 | text-shadow: none;
42 | }
43 |
44 | :host(:not(:disabled):focus) {
45 | -webkit-transition: border-color 200ms;
46 | border-color: rgb(77, 144, 254);
47 | outline: none;
48 | }
49 |
--------------------------------------------------------------------------------
/src/dt/ui/textPrompt.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 | .text-prompt-editing {
8 | -webkit-user-select: text;
9 | box-shadow: rgba(0, 0, 0, .5) 3px 3px 4px;
10 | outline: 1px solid rgb(66%, 66%, 66%) !important;
11 | background-color: white;
12 | -webkit-user-modify: read-write-plaintext-only;
13 | text-overflow: clip !important;
14 | padding-left: 2px;
15 | margin-left: -2px;
16 | padding-right: 2px;
17 | margin-right: -2px;
18 | margin-bottom: -1px;
19 | padding-bottom: 1px;
20 | opacity: 1.0 !important;
21 | }
22 |
23 | .text-prompt-editing,
24 | .text-prompt-editing ::content * {
25 | color: #222 !important;
26 | text-decoration: none !important;
27 | -webkit-user-modify: read-write-plaintext-only;
28 | }
29 |
30 | ::content .auto-complete-text,
31 | .text-prompt-editing ::content .auto-complete-text {
32 | color: rgb(128, 128, 128) !important;
33 | -webkit-user-select: none;
34 | -webkit-user-modify: read-only;
35 | }
36 |
37 | .text-prompt-editing ::content br {
38 | display: none;
39 | }
40 |
--------------------------------------------------------------------------------
/src/dt/ui/tooltip.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 | .tooltip {
8 | background: hsl(0, 0%, 95%);
9 | border-radius: 2px;
10 | color: hsl(0, 0%, 20%);
11 | padding: 5px 8px;
12 | font-size: 11px;
13 | line-height: 14px;
14 | display: flex;
15 | align-items: center;
16 | -webkit-filter: drop-shadow(0 1px 2px hsla(0, 0%, 0%, 0.3));
17 | border: 1px solid hsla(0, 0%, 0%, 0.1);
18 | background-clip: padding-box;
19 | box-sizing: border-box;
20 | position: absolute;
21 | visibility: hidden;
22 | transition: visibility 0s 100ms, opacity 150ms cubic-bezier(0, 0, .2, 1);
23 | z-index: 20001;
24 | top: 0;
25 | left: 0;
26 | opacity: 0;
27 | text-overflow: ellipsis;
28 | overflow: hidden;
29 | }
30 |
31 | .tooltip.shown {
32 | visibility: visible;
33 | transition-delay: 600ms;
34 | opacity: 1;
35 | }
36 |
37 | .tooltip.shown.instant {
38 | transition-delay: 0s;
39 | }
40 |
41 | .tooltip-shortcut {
42 | color: hsl(0, 0%, 45%);
43 | display: inline-block;
44 | margin-left: 8px;
45 | flex: 0 0 auto;
46 | }
47 |
--------------------------------------------------------------------------------
/src/dt/ui_lazy/flameChart.css:
--------------------------------------------------------------------------------
1 | .flame-chart-main-pane {
2 | overflow: hidden;
3 | }
4 |
5 | .flame-chart-marker-highlight-element {
6 | position: absolute;
7 | top: 0;
8 | height: 20px;
9 | width: 4px;
10 | margin: 0 -2px;
11 | content: "";
12 | display: block;
13 | }
14 |
15 | .flame-chart-highlight-element {
16 | background-color: black;
17 | position: absolute;
18 | opacity: 0.2;
19 | pointer-events: none;
20 | }
21 |
22 | .flame-chart-selected-element {
23 | position: absolute;
24 | pointer-events: none;
25 | border-color: rgb(56, 121, 217);
26 | border-width: 1px;
27 | border-style: solid;
28 | background-color: rgba(56, 121, 217, 0.2);
29 | }
30 |
31 | .flame-chart-v-scroll {
32 | position: absolute;
33 | width: 14px;
34 | top: 0;
35 | right: 0;
36 | bottom: 0;
37 | overflow-x: hidden;
38 | z-index: 200;
39 | }
40 |
41 | .flame-chart-selection-overlay {
42 | position: absolute;
43 | z-index: 100;
44 | background-color: rgba(56, 121, 217, 0.3);
45 | border-color: rgb(16, 81, 177);
46 | border-width: 0 1px;
47 | border-style: solid;
48 | pointer-events: none;
49 | top: 0;
50 | bottom: 0;
51 | text-align: center;
52 | }
53 |
54 | .flame-chart-selection-overlay .time-span {
55 | white-space: nowrap;
56 | position: absolute;
57 | left: 0;
58 | right: 0;
59 | bottom: 0;
60 | }
61 |
62 | .flame-chart-entry-info {
63 | position: absolute;
64 | bottom: 6px;
65 | left: 12px;
66 | background-color: rgba(255, 255, 255, 0.7);
67 | pointer-events: none;
68 | }
69 |
70 | .flame-chart-entry-info table tr td:first-child {
71 | font-weight: bold;
72 | padding-right: 8px;
73 | }
74 |
--------------------------------------------------------------------------------
/src/dt/ui_lazy/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": [
3 | "platform",
4 | "common",
5 | "host",
6 | "ui"
7 | ],
8 | "scripts": [
9 | "DataGrid.js",
10 | "ViewportDataGrid.js",
11 | "SortableDataGrid.js",
12 | "ShowMoreDataGridNode.js",
13 | "FlameChart.js",
14 | "OverviewGrid.js",
15 | "PieChart.js",
16 | "TimelineGrid.js",
17 | "TimelineOverviewPane.js"
18 | ],
19 | "resources": [
20 | "dataGrid.css",
21 | "flameChart.css",
22 | "overviewGrid.css",
23 | "pieChart.css",
24 | "timelineGrid.css"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/src/dt/ui_lazy/overviewGrid.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 | .overview-grid-window-selector {
8 | position: absolute;
9 | top: 0;
10 | bottom: 0;
11 | background-color: rgba(125, 173, 217, 0.5);
12 | z-index: 250;
13 | pointer-events: none;
14 | }
15 |
16 | .overview-grid-window {
17 | background-color: white;
18 | position: absolute;
19 | left: 0;
20 | right: 0;
21 | top: 0;
22 | height: 20px;
23 | z-index: 150;
24 | }
25 |
26 | .overview-grid-dividers-background {
27 | left: 0;
28 | right: 0;
29 | top: 0;
30 | height: 20px;
31 | background-color: black;
32 | position: absolute;
33 | }
34 |
35 | .overview-grid-window-rulers {
36 | top: 0;
37 | bottom: 0;
38 | position: absolute;
39 | opacity: 0.2;
40 | border-right: 1px solid black;
41 | border-left: 1px solid black;
42 | z-index: 250;
43 | pointer-events: none;
44 | }
45 |
46 | .overview-grid-window-resizer {
47 | position: absolute;
48 | top: 0;
49 | height: 20px;
50 | width: 5px;
51 | margin-left: -2px;
52 | margin-right: -3px;
53 | background-color: rgb(153, 153, 153);
54 | z-index: 500;
55 | border-radius: 2px;
56 | box-shadow: white 1px 0 0, white -1px 0 0, white 0 1px 0, white 0 -1px 0;
57 | }
58 |
59 | .overview-grid-window-resizer-right {
60 | margin-left: -3px;
61 | margin-right: -2px;
62 | }
63 |
64 | .overview-grid-cursor-area {
65 | position: absolute;
66 | left: 0;
67 | right: 0;
68 | top: 20px;
69 | bottom: 0;
70 | z-index: 500;
71 | cursor: text;
72 | }
73 |
74 | .overview-grid-cursor-position {
75 | position: absolute;
76 | top: 0;
77 | bottom: 0;
78 | width: 2px;
79 | background-color: hsla(220, 95%, 50%, 0.7);
80 | z-index: 500;
81 | pointer-events: none;
82 | visibility: hidden;
83 | overflow: hidden;
84 | }
85 |
--------------------------------------------------------------------------------
/src/dt/ui_lazy/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 |
--------------------------------------------------------------------------------
/src/dt/ui_lazy/timelineGrid.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 | .resources-dividers {
8 | position: absolute;
9 | left: 0;
10 | right: 0;
11 | top: 0;
12 | z-index: -100;
13 | bottom: 0;
14 | }
15 |
16 | .resources-event-dividers {
17 | position: absolute;
18 | left: 0;
19 | right: 0;
20 | height: 100%;
21 | top: 0;
22 | z-index: 300;
23 | pointer-events: none;
24 | }
25 |
26 | .resources-dividers-label-bar {
27 | position: absolute;
28 | top: 0;
29 | left: 0;
30 | right: 0;
31 | background-color: rgba(255, 255, 255, 0.85);
32 | background-clip: padding-box;
33 | height: 20px;
34 | z-index: 200;
35 | pointer-events: none;
36 | overflow: hidden;
37 | }
38 |
39 | .resources-divider {
40 | position: absolute;
41 | width: 1px;
42 | top: 0;
43 | bottom: 0;
44 | background-color: rgba(0, 0, 0, 0.1);
45 | }
46 |
47 | .resources-event-divider {
48 | position: absolute;
49 | width: 2px;
50 | top: 0;
51 | bottom: 0;
52 | z-index: 300;
53 | }
54 |
55 | .resources-divider-label {
56 | position: absolute;
57 | top: 4px;
58 | right: 3px;
59 | font-size: 80%;
60 | white-space: nowrap;
61 | pointer-events: none;
62 | }
63 |
64 | .timeline-grid-header {
65 | height: 20px;
66 | pointer-events: none;
67 | }
68 |
--------------------------------------------------------------------------------
/src/dt/workspace/module.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": ["common", "host", "platform"],
3 | "scripts": [
4 | "FileManager.js",
5 | "FileSystemMapping.js",
6 | "IsolatedFileSystem.js",
7 | "IsolatedFileSystemManager.js",
8 | "SearchConfig.js",
9 | "UISourceCode.js",
10 | "Workspace.js"
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/src/lib/front-end-connection.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const ipc = require('electron').ipcMain;
4 | const EventEmitter = require('events');
5 |
6 | /**
7 | * Responsible for creating and maintaining ipc connection with the frontend.
8 | */
9 | class FrontEndConnection extends EventEmitter {
10 |
11 | constructor(receiver) {
12 | super();
13 |
14 | this._receiver = receiver;
15 |
16 | ipc.on('frontend-message', handleFrontEndMessage.bind(this));
17 | }
18 |
19 | respond(id, result) {
20 | sendMessage.call(this, {
21 | id,
22 | result
23 | });
24 | }
25 |
26 | send(method, params) {
27 | sendMessage.call(this, {
28 | method,
29 | params
30 | });
31 | }
32 | }
33 |
34 | function sendMessage(data) {
35 | this._receiver.send('backend-message', {
36 | data
37 | });
38 | this.emit('log', 'Sent Message: ' + JSON.stringify(data));
39 | }
40 |
41 | function handleFrontEndMessage(event, message) {
42 | this.emit('message', message);
43 | this.emit('log', 'Received Message: ' + JSON.stringify(message));
44 | }
45 |
46 | module.exports = FrontEndConnection;
47 |
--------------------------------------------------------------------------------
/src/lib/init-time.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const initTime = process.hrtime();
4 |
5 | // DT requires us to use relative time in a strange format (xxx.xxx)
6 | module.exports = () => {
7 | let diff = process.hrtime(initTime);
8 |
9 | return diff[0] + diff[1] / 1e9;
10 | };
11 |
--------------------------------------------------------------------------------
/src/menu.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const shell = require('electron').shell;
4 | const path = require('path');
5 |
6 | function buildMenu(app, options) {
7 | const template = [
8 | {
9 | label: 'Edit',
10 | submenu: [
11 | {
12 | label: 'Undo',
13 | accelerator: 'CmdOrCtrl+Z',
14 | role: 'undo'
15 | },
16 | {
17 | label: 'Redo',
18 | accelerator: 'Shift+CmdOrCtrl+Z',
19 | role: 'redo'
20 | },
21 | {
22 | type: 'separator'
23 | },
24 | {
25 | label: 'Cut',
26 | accelerator: 'CmdOrCtrl+X',
27 | role: 'cut'
28 | },
29 | {
30 | label: 'Copy',
31 | accelerator: 'CmdOrCtrl+C',
32 | role: 'copy'
33 | },
34 | {
35 | label: 'Paste',
36 | accelerator: 'CmdOrCtrl+V',
37 | role: 'paste'
38 | },
39 | {
40 | label: 'Select All',
41 | accelerator: 'CmdOrCtrl+A',
42 | role: 'selectall'
43 | }
44 | ]
45 | },
46 | {
47 | label: 'Tools',
48 | submenu: [
49 | {
50 | label: 'Root Certificate',
51 | click: () => {
52 | shell.showItemInFolder(path.resolve(options.sslCaDir, 'certs', 'ca.pem'));
53 | }
54 | }
55 | ]
56 | }
57 | ];
58 |
59 | if (process.platform === 'darwin') {
60 | template.unshift({
61 | label: app.getName(),
62 | submenu: [
63 | {
64 | label: 'Quit',
65 | accelerator: 'Command+Q',
66 | click: () => app.quit()
67 | }
68 | ]
69 | });
70 | }
71 |
72 | return template;
73 | }
74 |
75 | module.exports = buildMenu;
76 |
--------------------------------------------------------------------------------