The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .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 | ![Betwixt](http://i.imgur.com/TKNRxnx.png)
 2 | 
 3 | [![Build Status](https://travis-ci.org/kdzwinel/betwixt.svg?branch=master)](https://travis-ci.org/kdzwinel/betwixt)
 4 | [![Dependency Status](https://david-dm.org/kdzwinel/betwixt.svg)](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 | <p align="center"><img src="http://i.imgur.com/8uWwYoc.gif" alt="Betwixt in action" /></p>
 9 | <img src="http://i.imgur.com/9mvhdPq.png" alt="Even more Betwixt action!" />
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 | ![Setting up proxy on Windows 10 and macOS](https://i.imgur.com/irjeELo.png)
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 | ![Finding certificate file](http://i.imgur.com/xFMBStj.png)
 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 | ![Installing certificate on OS X](http://i.imgur.com/lm2TIw4.png)
15 | 
16 | After certificate is installed, expand the `Trust` section and toggle the first dropdown to `Always Trust`:
17 | 
18 | ![Always trust](https://i.imgur.com/rQyHMUG.png)
19 | 
20 | On Windows use certmgr.
21 | 
22 | ![Installing certificate on Windows 10](http://i.imgur.com/8IWpKR0.png)
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 | ![Setting up proxy on OS X](http://i.imgur.com/JslKSz8.png)
34 | 
35 | ![Setting up proxy on Windows 10](http://i.imgur.com/ihSZEVb.png)
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 | <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"><path d="M23 44c2.21 0 4-1.79 4-4h-8c0 2.21 1.79 4 4 4zm13-12V21c0-6.15-4.27-11.28-10-12.64V7c0-1.66-1.34-3-3-3s-3 1.34-3 3v1.36C14.27 9.72 10 14.85 10 21v11l-4 4v2h34v-2l-4-4z"/></svg>


--------------------------------------------------------------------------------
/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 | <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
2 |   <g fill="none" fill-rule="evenodd">
3 |     <rect fill="#7f7f7f" x="1" y="1" width="14" height="14" rx="2"/>
4 |     <path d="m8.75 12.481l-1.5.019v-6.188h1.5v6.169m-.75-7.481c-.414 0-.75-.336-.75-.75 0-.414.336-.75.75-.75.415 0 .75.336.75.75 0 .414-.335.75-.75.75" fill="#fff"/>
5 |   </g>
6 | </svg>


--------------------------------------------------------------------------------
/src/dt/Images/securityPropertyInsecure.svg:
--------------------------------------------------------------------------------
1 | <svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
2 |   <path d="m 10 33 9 -9 -9 -9 5 -5 9 9 9 -9 5 5 -9 9 9 9 -5 5 -9 -9 -9 9 z" fill="#d8463c" fill-rule="evenodd"/>
3 | </svg>


--------------------------------------------------------------------------------
/src/dt/Images/securityPropertySecure.svg:
--------------------------------------------------------------------------------
1 | <svg fill="#000000" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2 |   <circle cx="12" cy="12" fill="#1ac222" r="7"/>
3 | </svg>


--------------------------------------------------------------------------------
/src/dt/Images/securityPropertyWarning.svg:
--------------------------------------------------------------------------------
1 | <svg viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
2 |   <g fill="none" fill-rule="evenodd">
3 |     <path d="m 24 11.819 -15.227 24.363 30.453 0 L 24 11.819" fill="#ffb003"/>
4 |   </g>
5 | </svg>


--------------------------------------------------------------------------------
/src/dt/Images/securityStateInsecure.svg:
--------------------------------------------------------------------------------
 1 | <svg viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg">
 2 |   <g fill="none" fill-rule="evenodd" transform="translate(8 8)">
 3 |     <path d="M 10,4 H70 V74 H10 z" fill="#fff"/>
 4 |     <g fill="#db4437">
 5 |       <path d="M 45.5 42.02 L 40.1 47.42 L 34.688 42 L 32.18 44.504 L 37.6 49.92 L 32.12 55.4 L 34.62 57.9 L 40.1 52.42 L 45.49 57.808 L 47.992 55.3 L 42.604 49.92 L 48 44.516 L 45.5 42.02"/>
 6 |       <path d="M 30 28 L 30 32 L 50 32 L 50 28 C 50 22.423 45.716 20 40 20 C 34.28 20 30 22.423 30 28"/>
 7 |       <path d="M 73.33 0 L 6.667 0 C 2.983 0 0 2.983 0 6.667 L 0 73.33 C 0 77.02 2.983 80 6.667 80 L 73.33 80 C 77.02 80 80 77.02 80 73.33 L 80 6.667 C 80 2.983 77.02 0 73.33 0 M 54.28 66 L 25.716 66 C 22.856 66 20 63.14 20 60.28 L 20 37.428 C 20 34.572 23.14 32 26 32 L 26 28 C 26 19.428 31.428 16 40 16 C 48.572 16 54 19.428 54 28 L 54 32 C 56.86 32 60 34.572 60 37.428 L 60 60.28 C 60 63.14 57.14 66 54.28 66"/>
 8 |     </g>
 9 |   </g>
10 | </svg>


--------------------------------------------------------------------------------
/src/dt/Images/securityStateNeutral.svg:
--------------------------------------------------------------------------------
1 | <svg viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg">
2 |   <g fill="none" fill-rule="evenodd">
3 |     <path d="M 52 20 L 28 20 L 28 76 L 68 76 L 68 36 L 52 20 M 62 36 L 52 36 L 52 26 L 62 36 M 64 72 L 32 72 L 32 24 L 48 24 L 48 40 L 64 40 L 64 72" fill="#5a5a5a"/>
4 |   </g>
5 | </svg>


--------------------------------------------------------------------------------
/src/dt/Images/securityStateSecure.svg:
--------------------------------------------------------------------------------
 1 | <svg viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg">
 2 |   <g fill="none" fill-rule="evenodd" transform="translate(8 8)">
 3 |     <path d="M 10,6 H70 V76 H10 z" fill="#fff"/>
 4 |     <g fill="#1ac222">
 5 |       <path d="M 30 28 L 30 32 L 50 32 C 50 32 50 28.13 50 28 C 49.872 22.534 45.585 20 40 20 C 34.28 20 30 22.288 30 28"/>
 6 |       <path d="M 40 40.28 C 36.844 40.28 34.28 42.929 34.28 46.19 C 34.28 48.37 35.44 50.25 37.14 51.27 L 37.14 58 L 42.856 58 L 42.856 51.27 C 44.56 50.25 45.716 48.37 45.716 46.19 C 45.716 42.929 43.16 40.28 40 40.28"/>
 7 |       <path d="M 73.33 0 L 6.667 0 C 2.983 0 0 2.983 0 6.667 L 0 73.33 C 0 77.02 2.983 80 6.667 80 L 73.33 80 C 77.02 80 80 77.02 80 73.33 L 80 6.667 C 80 2.983 77.02 0 73.33 0 M 54.28 66 L 25.716 66 C 22.856 66 20 63.14 20 60.28 L 20 37.428 C 20 34.572 23.14 32 26 32 L 26 28 C 26 19.428 31.428 16 40 16 C 48.572 16 54 19.428 54 28 L 54 32 C 56.86 32 60 34.572 60 37.428 L 60 60.28 C 60 63.14 57.14 66 54.28 66"/>
 8 |     </g>
 9 |   </g>
10 | </svg>


--------------------------------------------------------------------------------
/src/dt/Images/serviceWorker.svg:
--------------------------------------------------------------------------------
1 | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g stroke="#000"><path d="M 7.854 6.963 6.877 7.279 6.857 8.617 6.889 8.705 7.398 9.699 6.188 10.578 5.398 9.787 5.326 9.73 4.047 9.336 3.443 10.166 l 0.77 1.094 0.078 0.053 0.996 0.504 -0.463 1.424 -1.104 -0.176 -0.092 -0.004 -1.266 0.432 0 1.027 1.266 0.434 0.092 -0.004 1.104 -0.178 0.463 1.424 -0.996 0.506 -0.078 0.051 -0.77 1.094 0.604 0.83 1.279 -0.393 0.072 -0.059 0.789 -0.791 1.211 0.879 -0.51 0.996 -0.031 0.086 0.02 1.338 0.977 0.316 0.803 -1.068 0.025 -0.09 0.172 -1.104 1.498 0 0.172 1.104 0.025 0.09 0.803 1.068 0.977 -0.316 0.02 -1.338 -0.031 -0.086 -0.51 -0.996 1.211 -0.879 0.789 0.791 0.072 0.059 1.279 0.393 0.604 -0.83 -0.771 -1.094 -0.076 -0.051 -0.996 -0.506 0.461 -1.424 1.105 0.178 0.092 0.004 1.266 -0.434 0 -1.027 -1.266 -0.432 -0.092 0.004 -1.105 0.176 -0.461 -1.424 0.996 -0.504 0.076 -0.053 0.771 -1.094 -0.604 -0.83 -1.279 0.395 -0.072 0.057 -0.789 0.791 -1.211 -0.879 0.51 -0.994 0.031 -0.088 -0.02 -1.338 -0.977 -0.316 -0.803 1.07 -0.025 0.088 -0.172 1.105 -1.498 0 L 8.682 8.121 8.656 8.03 7.854 6.963 m 1.748 3.398 a 3.621 3.645 0 0 1 3.621 3.645 3.621 3.645 0 0 1 -3.621 3.646 3.621 3.645 0 0 1 -3.619 -3.646 3.621 3.645 0 0 1 3.619 -3.645 z" transform="translate(0.535 1.346)"/><path d="M 14.885 1.563 L 14.178 1.957 L 14.365 3.24 L 14.396 3.279 L 15.14 4.04 L 14.553 5.03 L 13.529 4.736 L 13.479 4.729 L 12.262 5.172 L 12.25 5.98 L 13.455 6.459 L 13.506 6.453 L 14.537 6.189 L 15.1 7.191 L 14.332 7.932 L 14.301 7.971 L 14.08 9.248 L 14.771 9.662 L 15.787 8.859 L 15.807 8.811 L 16.1 7.787 L 17.242 7.803 L 17.502 8.834 L 17.52 8.883 L 18.514 9.715 L 19.219 9.32 L 19.03 8.04 L 19 7.998 L 18.258 7.234 L 18.844 6.25 L 19.869 6.541 L 19.92 6.551 L 21.14 6.105 L 21.15 5.297 L 19.943 4.818 L 19.893 4.824 L 18.861 5.088 L 18.301 4.086 L 19.07 3.346 L 19.1 3.307 L 19.322 2.029 L 18.627 1.615 L 17.609 2.418 L 17.59 2.467 L 17.303 3.49 L 16.16 3.475 L 15.896 2.443 L 15.879 2.395 L 14.885 1.563 z M 16.699 3.701 A 1.938 1.938 0 0 1 18.637 5.639 A 1.938 1.938 0 0 1 16.699 7.576 A 1.938 1.938 0 0 1 14.762 5.639 A 1.938 1.938 0 0 1 16.699 3.701 z" stroke-width="0.899"/></g></svg>


--------------------------------------------------------------------------------
/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 | <?xml version="1.0" encoding="utf-8"?><svg height="11" version="1.1" width="26" xmlns="http://www.w3.org/2000/svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
2 | ><defs
3 | /><sodipodi:namedview showgrid="true"
4 | ><inkscape:grid empspacing="5" enabled="true" id="grid2985" snapvisiblegridlinesonly="true" type="xygrid" visible="true"/></sodipodi:namedview
5 | ><path d="m22.8 0.5 2.7 5-2.7 5-22.3 0 0-10z" fill="#698cfe" stroke="#4073f4"/></svg
6 | >


--------------------------------------------------------------------------------
/src/dt/Images/src/breakpointConditional.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?><svg height="11" version="1.1" width="26" xmlns="http://www.w3.org/2000/svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
2 | ><defs
3 | /><sodipodi:namedview showgrid="true"
4 | ><inkscape:grid empspacing="5" enabled="true" id="grid2985" snapvisiblegridlinesonly="true" type="xygrid" visible="true"/></sodipodi:namedview
5 | ><path d="m22.8 0.5 2.7 5-2.7 5-22.3 0 0-10z" fill="#ef9d0d" stroke="#a36c01"/></svg
6 | >


--------------------------------------------------------------------------------
/src/dt/Images/src/errorWave.svg:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 2 | <!-- Created with Inkscape (http://www.inkscape.org/) -->
 3 | 
 4 | <svg
 5 |    xmlns:dc="http://purl.org/dc/elements/1.1/"
 6 |    xmlns:cc="http://creativecommons.org/ns#"
 7 |    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 8 |    xmlns:svg="http://www.w3.org/2000/svg"
 9 |    xmlns="http://www.w3.org/2000/svg"
10 |    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11 |    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12 |    width="6"
13 |    height="4"
14 |    id="svg2"
15 |    version="1.1"
16 |    inkscape:version="0.48.3.1 r9886"
17 |    inkscape:export-xdpi="97.627121"
18 |    inkscape:export-ydpi="97.627121"
19 |    sodipodi:docname="errorWave.svg">
20 |   <defs
21 |      id="defs4" />
22 |   <sodipodi:namedview
23 |      id="base"
24 |      pagecolor="#ffffff"
25 |      bordercolor="#666666"
26 |      borderopacity="1.0"
27 |      inkscape:pageopacity="0.0"
28 |      inkscape:pageshadow="2"
29 |      inkscape:zoom="90.509668"
30 |      inkscape:cx="3.4293179"
31 |      inkscape:cy="3.1283329"
32 |      inkscape:document-units="px"
33 |      inkscape:current-layer="layer1"
34 |      showgrid="true"
35 |      showguides="true"
36 |      inkscape:guide-bbox="true"
37 |      inkscape:window-width="2154"
38 |      inkscape:window-height="1195"
39 |      inkscape:window-x="399"
40 |      inkscape:window-y="129"
41 |      inkscape:window-maximized="0">
42 |     <inkscape:grid
43 |        type="xygrid"
44 |        id="grid2985"
45 |        empspacing="5"
46 |        visible="true"
47 |        enabled="true"
48 |        snapvisiblegridlinesonly="true" />
49 |   </sodipodi:namedview>
50 |   <metadata
51 |      id="metadata7">
52 |     <rdf:RDF>
53 |       <cc:Work
54 |          rdf:about="">
55 |         <dc:format>image/svg+xml</dc:format>
56 |         <dc:type
57 |            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
58 |         <dc:title />
59 |       </cc:Work>
60 |     </rdf:RDF>
61 |   </metadata>
62 |   <g
63 |      inkscape:label="Layer 1"
64 |      inkscape:groupmode="layer"
65 |      id="layer1"
66 |      transform="translate(0,-1048.3622)">
67 |     <path
68 |        style="fill:none;stroke:#ff0000;stroke-width:0.656;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
69 |        d="m -0.24596307,1048.8938 3.25701167,2.7917 3.2570116,-2.7917"
70 |        id="path3850"
71 |        inkscape:connector-curvature="0"
72 |        sodipodi:nodetypes="ccc" />
73 |   </g>
74 | </svg>
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 | <?xml version="1.0" encoding="utf-8"?><svg height="16" version="1.1" width="112" xmlns="http://www.w3.org/2000/svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 2 | ><defs
 3 | /><sodipodi:namedview showgrid="true"
 4 | ><inkscape:grid empspacing="5" enabled="true" id="grid3005" snapvisiblegridlinesonly="true" type="xygrid" visible="true"/></sodipodi:namedview
 5 | ><path d="M4.5 2.97 1.66 5.78 2.38 6.5 4 4.84 4 13 11.59 13 10 14.59 10.72 15.31 13.53 12.5 10.72 9.66 10 10.38 11.66 12 5 12 5 4.88 6.59 6.5 7.31 5.78z"
 6 | /><path d="m21 3 0 10 10 0 0-10zm1 1 8 0 0 8-8 0z"
 7 | /><path d="M23 5 23 8 24 8 24 6.72 27.28 10 26 10l0 1 3 0 0-3-1 0 0 1.31L24.69 6 26 6 26 5z"
 8 | /><path d="m40 2.25c-2.4 0-4.49 1.5-5.34 3.63L34.34 4.94 33.38 5.28 34.41 8.13 37.25 7.09 36.91 6.16 36.06 6.47C36.68 4.91 38.19 3.78 40 3.78c2.02 0 3.67 1.37 4.13 3.22l1.53 0C45.18 4.3 42.81 2.25 40 2.25zM45.41 7.81 42.69 9.09 43.09 10 43.91 9.63C43.26 11.15 41.78 12.25 40 12.25 37.98 12.25 36.32 10.85 35.88 9l-1.53 0c0.47 2.71 2.85 4.78 5.66 4.78 2.41 0 4.5-1.54 5.34-3.69l0.41 0.88 0.91-0.44z"
 9 | /><path d="m50 4 5 4 5-4" fill="none" stroke="#000"
10 | /><path d="m50 8 5 4 5-4" fill="none" stroke="#000"
11 | /><path d="M 71.5,2.5 C 69.02,2.5 67,4.52 67,7 c 0,2.48 2.02,4.5 4.5,4.5 1.07,0 2.04,-0.38 2.81,-1 l 2.84,2.84 0.69,-0.69 L 75,9.81 C 75.62,9.04 76,8.07 76,7 76,4.52 73.98,2.5 71.5,2.5 z m 0,1 C 73.44,3.5 75,5.06 75,7 75,8.94 73.44,10.5 71.5,10.5 69.56,10.5 68,8.94 68,7 68,5.06 69.56,3.5 71.5,3.5 z m 0,1.5 c -1.10,0 -2,0.90 -2,2 0,1.10 0.90,2 2,2 1.10,0 2,-0.90 2,-2 0,-1.10 -0.90,-2 -2,-2 z" fill="#000" stroke="none"
12 | /><path d="m 83,7 5,0 0,-5 2,0 0,5 5,0 0,2 -5,0 0,5 -2,0 0,-5 -5,0 z" fill="#000" stroke="none"
13 | /><path d="m 110,7 0,2 -11,0 0,-2 z"  fill="#000" stroke="none"/></svg
14 | >


--------------------------------------------------------------------------------
/src/dt/Images/src/settingsListRemove.svg:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?><svg height="16" version="1.1" width="48" xmlns="http://www.w3.org/2000/svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 2 | ><defs
 3 | /><sodipodi:namedview showgrid="false"
 4 | /><path d="M3 4.43 4.43 3 13 11.57 11.57 13z" fill="#8d8d8d"
 5 | /><path d="M4.43 13 3 11.57 11.57 3 13 4.43z" fill="#8d8d8d"
 6 | /><path d="M4.4 12.97 3.41 11.98 11.6 3.79 12.59 4.79z" fill="#ccc"
 7 | /><path d="M12.59 11.98 11.6 12.97 3.41 4.79 4.4 3.79z" fill="#ccc"
 8 | /><path d="m19 4.43 1.43-1.43 8.57 8.57-1.43 1.43z" fill="#121212"
 9 | /><path d="m20.43 13-1.43-1.43 8.57-8.57 1.43 1.43z" fill="#121212"
10 | /><path d="m20.4 12.97-0.99-0.99 8.19-8.19 0.99 0.99z" fill="#26262f" fill-opacity="0.94"
11 | /><path d="m28.59 11.98-0.99 0.99-8.19-8.19 0.99-0.99z" fill="#26262f" fill-opacity="0.94"
12 | /><path d="m35 4.43 1.43-1.43 8.57 8.57-1.43 1.43z" fill="#2e2e2e"
13 | /><path d="m36.43 13-1.43-1.43 8.57-8.57 1.43 1.43z" fill="#2e2e2e"
14 | /><path d="m36.4 12.97-0.99-0.99 8.19-8.19 0.99 0.99z" fill="#787878"
15 | /><path d="m44.59 11.98-0.99 0.99-8.19-8.19 0.99-0.99z" fill="#787878"/></svg
16 | >


--------------------------------------------------------------------------------
/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.<?AccessibilityAgent.AXNode>}
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.<!WebInspector.NetworkRequest>} 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 <marijnh@gmail.com> 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 <marijnh@gmail.com> 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.<!WebInspector.ContentProvider.SearchMatch>)} 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.<!WebInspector.ContentProvider.SearchMatch>)} 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.<!ConsoleAgent.CallFrame>=} 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.<!ConsoleAgent.CallFrame>=} 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.<!{0: number, 1: string}>}
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.<string>} lines1
19 |      * @param {!Array.<string>} lines2
20 |      * @return {!Array.<!{0: number, 1: string}>}
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.<string>} 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 | <!--
 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 | <!doctype html>
 7 | <html>
 8 | <head>
 9 |     <meta http-equiv="content-type" content="text/html; charset=utf-8">
10 |     <meta http-equiv="Content-Security-Policy" content="object-src 'none'; script-src 'self' 'unsafe-eval' https://chrome-devtools-frontend.appspot.com">
11 |     <link rel="stylesheet" type="text/css" href="inspector.css">
12 |     <script type="text/javascript" src="Runtime.js"></script>
13 |     <script type="text/javascript" src="inspector.js"></script>
14 | </head>
15 | <body class="undocked" id="-blink-dev-tools"></body>
16 | </html>
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.<!WebInspector.ProfileType>}
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 | <!--
 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 | <!doctype html>
 7 | <html>
 8 | <head>
 9 |     <meta http-equiv="content-type" content="text/html; charset=utf-8">
10 |     <meta http-equiv="Content-Security-Policy" content="object-src 'none'; script-src 'self' 'unsafe-eval'">
11 |     <link rel="stylesheet" type="text/css" href="toolbox.css">
12 |     <script type="text/javascript" src="Runtime.js"></script>
13 |     <script type="text/javascript" src="toolbox.js"></script>
14 | </head>
15 | <body class="undocked" id="-blink-dev-tools"></body>
16 | </html>
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.<!WebInspector.DropDownMenu.Item>} */
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 | 


--------------------------------------------------------------------------------