├── .babelrc ├── .github └── FUNDING.yml ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── README_EN.md ├── buildin_modules └── weinre │ ├── .npmignore │ ├── LICENSE │ ├── NOTICE │ ├── README.md │ ├── build-info.txt │ ├── interfaces │ ├── WeinreClientCommands.idl │ ├── WeinreClientEvents.idl │ ├── WeinreExtraClientCommands.idl │ ├── WeinreExtraTargetEvents.idl │ ├── WeinreTargetCommands.idl │ └── WeinreTargetEvents.idl │ ├── lib │ ├── Channel.js │ ├── HttpChannelHandler.js │ ├── MessageQueue.js │ ├── channelManager.js │ ├── cli.js │ ├── dumpingHandler.js │ ├── extensionManager.js │ ├── jsonBodyParser.js │ ├── messageHandler.js │ ├── service │ │ ├── WeinreClientCommands.js │ │ └── WeinreTargetCommands.js │ ├── serviceManager.js │ ├── utils.js │ └── weinre.js │ ├── package.json │ ├── web │ ├── client │ │ ├── ApplicationCacheItemsView.js │ │ ├── AuditCategories.js │ │ ├── AuditFormatters.js │ │ ├── AuditLauncherView.js │ │ ├── AuditResultView.js │ │ ├── AuditRules.js │ │ ├── AuditsPanel.js │ │ ├── BottomUpProfileDataGridTree.js │ │ ├── Breakpoint.js │ │ ├── BreakpointManager.js │ │ ├── BreakpointsSidebarPane.js │ │ ├── CSSCompletions.js │ │ ├── CSSKeywordCompletions.js │ │ ├── CSSStyleModel.js │ │ ├── CallStackSidebarPane.js │ │ ├── Checkbox.js │ │ ├── Color.js │ │ ├── ConsolePanel.js │ │ ├── ConsoleView.js │ │ ├── ContextMenu.js │ │ ├── CookieItemsView.js │ │ ├── CookieParser.js │ │ ├── CookiesTable.js │ │ ├── DOMAgent.js │ │ ├── DOMStorage.js │ │ ├── DOMStorageItemsView.js │ │ ├── DOMSyntaxHighlighter.js │ │ ├── DataGrid.js │ │ ├── Database.js │ │ ├── DatabaseQueryView.js │ │ ├── DatabaseTableView.js │ │ ├── DebuggerModel.js │ │ ├── DetailedHeapshotView.js │ │ ├── Drawer.js │ │ ├── ElementsPanel.js │ │ ├── ElementsTreeOutline.js │ │ ├── EventListenersSidebarPane.js │ │ ├── ExtensionAPI.js │ │ ├── ExtensionAPISchema.json │ │ ├── ExtensionAuditCategory.js │ │ ├── ExtensionCommon.js │ │ ├── ExtensionPanel.js │ │ ├── ExtensionRegistryStub.js │ │ ├── ExtensionServer.js │ │ ├── FontView.js │ │ ├── GoToLineDialog.js │ │ ├── HAREntry.js │ │ ├── HeapSnapshot.js │ │ ├── HeapSnapshotView.js │ │ ├── HelpScreen.js │ │ ├── ImageView.js │ │ ├── Images │ │ │ ├── applicationCache.png │ │ │ ├── auditsIcon.png │ │ │ ├── back.png │ │ │ ├── breakpointBorder.png │ │ │ ├── breakpointConditionalBorder.png │ │ │ ├── breakpointConditionalCounterBorder.png │ │ │ ├── breakpointCounterBorder.png │ │ │ ├── breakpointsActivateButtonGlyph.png │ │ │ ├── breakpointsDeactivateButtonGlyph.png │ │ │ ├── checker.png │ │ │ ├── clearConsoleButtonGlyph.png │ │ │ ├── closeButtons.png │ │ │ ├── consoleButtonGlyph.png │ │ │ ├── consoleIcon.png │ │ │ ├── cookie.png │ │ │ ├── database.png │ │ │ ├── databaseTable.png │ │ │ ├── debuggerContinue.png │ │ │ ├── debuggerPause.png │ │ │ ├── debuggerStepInto.png │ │ │ ├── debuggerStepOut.png │ │ │ ├── debuggerStepOver.png │ │ │ ├── disclosureTriangleSmallDown.png │ │ │ ├── disclosureTriangleSmallDownBlack.png │ │ │ ├── disclosureTriangleSmallDownWhite.png │ │ │ ├── disclosureTriangleSmallRight.png │ │ │ ├── disclosureTriangleSmallRightBlack.png │ │ │ ├── disclosureTriangleSmallRightDown.png │ │ │ ├── disclosureTriangleSmallRightDownBlack.png │ │ │ ├── disclosureTriangleSmallRightDownWhite.png │ │ │ ├── disclosureTriangleSmallRightWhite.png │ │ │ ├── dockButtonGlyph.png │ │ │ ├── elementsIcon.png │ │ │ ├── enableOutlineButtonGlyph.png │ │ │ ├── enableSolidButtonGlyph.png │ │ │ ├── errorIcon.png │ │ │ ├── errorMediumIcon.png │ │ │ ├── errorRedDot.png │ │ │ ├── excludeButtonGlyph.png │ │ │ ├── focusButtonGlyph.png │ │ │ ├── forward.png │ │ │ ├── frame.png │ │ │ ├── gearButtonGlyph.png │ │ │ ├── glossyHeader.png │ │ │ ├── glossyHeaderPressed.png │ │ │ ├── glossyHeaderSelected.png │ │ │ ├── glossyHeaderSelectedPressed.png │ │ │ ├── goArrow.png │ │ │ ├── graphLabelCalloutLeft.png │ │ │ ├── graphLabelCalloutRight.png │ │ │ ├── largerResourcesButtonGlyph.png │ │ │ ├── localStorage.png │ │ │ ├── networkIcon.png │ │ │ ├── nodeSearchButtonGlyph.png │ │ │ ├── paneAddButtons.png │ │ │ ├── paneBottomGrow.png │ │ │ ├── paneBottomGrowActive.png │ │ │ ├── paneGrowHandleLine.png │ │ │ ├── paneSettingsButtons.png │ │ │ ├── pauseOnExceptionButtonGlyph.png │ │ │ ├── percentButtonGlyph.png │ │ │ ├── popoverArrows.png │ │ │ ├── popoverBackground.png │ │ │ ├── profileGroupIcon.png │ │ │ ├── profileIcon.png │ │ │ ├── profileSmallIcon.png │ │ │ ├── profilesIcon.png │ │ │ ├── profilesSilhouette.png │ │ │ ├── programCounterBorder.png │ │ │ ├── radioDot.png │ │ │ ├── recordButtonGlyph.png │ │ │ ├── recordToggledButtonGlyph.png │ │ │ ├── reloadButtonGlyph.png │ │ │ ├── resourceCSSIcon.png │ │ │ ├── resourceDocumentIcon.png │ │ │ ├── resourceDocumentIconSmall.png │ │ │ ├── resourceJSIcon.png │ │ │ ├── resourcePlainIcon.png │ │ │ ├── resourcePlainIconSmall.png │ │ │ ├── resourcesIcon.png │ │ │ ├── resourcesSizeGraphIcon.png │ │ │ ├── resourcesTimeGraphIcon.png │ │ │ ├── scriptsIcon.png │ │ │ ├── scriptsSilhouette.png │ │ │ ├── searchSmallBlue.png │ │ │ ├── searchSmallBrightBlue.png │ │ │ ├── searchSmallGray.png │ │ │ ├── searchSmallWhite.png │ │ │ ├── segment.png │ │ │ ├── segmentEnd.png │ │ │ ├── segmentHover.png │ │ │ ├── segmentHoverEnd.png │ │ │ ├── segmentSelected.png │ │ │ ├── segmentSelectedEnd.png │ │ │ ├── sessionStorage.png │ │ │ ├── spinner.gif │ │ │ ├── splitviewDimple.png │ │ │ ├── splitviewDividerBackground.png │ │ │ ├── statusbarBackground.png │ │ │ ├── statusbarBottomBackground.png │ │ │ ├── statusbarButtons.png │ │ │ ├── statusbarMenuButton.png │ │ │ ├── statusbarMenuButtonSelected.png │ │ │ ├── statusbarResizerHorizontal.png │ │ │ ├── statusbarResizerVertical.png │ │ │ ├── successGreenDot.png │ │ │ ├── thumbActiveHoriz.png │ │ │ ├── thumbActiveVert.png │ │ │ ├── thumbHoriz.png │ │ │ ├── thumbHoverHoriz.png │ │ │ ├── thumbHoverVert.png │ │ │ ├── thumbVert.png │ │ │ ├── timelineBarBlue.png │ │ │ ├── timelineBarGray.png │ │ │ ├── timelineBarGreen.png │ │ │ ├── timelineBarOrange.png │ │ │ ├── timelineBarPurple.png │ │ │ ├── timelineBarRed.png │ │ │ ├── timelineBarYellow.png │ │ │ ├── timelineCheckmarks.png │ │ │ ├── timelineDots.png │ │ │ ├── timelineHollowPillBlue.png │ │ │ ├── timelineHollowPillGray.png │ │ │ ├── timelineHollowPillGreen.png │ │ │ ├── timelineHollowPillOrange.png │ │ │ ├── timelineHollowPillPurple.png │ │ │ ├── timelineHollowPillRed.png │ │ │ ├── timelineHollowPillYellow.png │ │ │ ├── timelineIcon.png │ │ │ ├── timelinePillBlue.png │ │ │ ├── timelinePillGray.png │ │ │ ├── timelinePillGreen.png │ │ │ ├── timelinePillOrange.png │ │ │ ├── timelinePillPurple.png │ │ │ ├── timelinePillRed.png │ │ │ ├── timelinePillYellow.png │ │ │ ├── toolbarItemSelected.png │ │ │ ├── trackHoriz.png │ │ │ ├── trackVert.png │ │ │ ├── treeDownTriangleBlack.png │ │ │ ├── treeDownTriangleWhite.png │ │ │ ├── treeRightTriangleBlack.png │ │ │ ├── treeRightTriangleWhite.png │ │ │ ├── treeUpTriangleBlack.png │ │ │ ├── treeUpTriangleWhite.png │ │ │ ├── undockButtonGlyph.png │ │ │ ├── userInputIcon.png │ │ │ ├── userInputPreviousIcon.png │ │ │ ├── userInputResultIcon.png │ │ │ ├── warningIcon.png │ │ │ ├── warningMediumIcon.png │ │ │ ├── warningOrangeDot.png │ │ │ └── warningsErrors.png │ │ ├── InjectedFakeWorker.js │ │ ├── InspectorBackendStub.js │ │ ├── InspectorBackendStub.qrc │ │ ├── InspectorFrontendHostStub.js │ │ ├── KeyboardShortcut.js │ │ ├── MetricsSidebarPane.js │ │ ├── NetworkItemView.js │ │ ├── NetworkManager.js │ │ ├── NetworkPanel.js │ │ ├── Object.js │ │ ├── ObjectPropertiesSection.js │ │ ├── Panel.js │ │ ├── PanelEnablerView.js │ │ ├── Placard.js │ │ ├── PleaseWaitMessage.js │ │ ├── Popover.js │ │ ├── ProfileDataGridTree.js │ │ ├── ProfileView.js │ │ ├── ProfilesPanel.js │ │ ├── PropertiesSection.js │ │ ├── PropertiesSidebarPane.js │ │ ├── RemoteObject.js │ │ ├── Resource.js │ │ ├── ResourceCategory.js │ │ ├── ResourceCookiesView.js │ │ ├── ResourceHeadersView.js │ │ ├── ResourceTimingView.js │ │ ├── ResourceTreeModel.js │ │ ├── ResourceView.js │ │ ├── ResourcesPanel.js │ │ ├── ScopeChainSidebarPane.js │ │ ├── Script.js │ │ ├── ScriptFormatter.js │ │ ├── ScriptFormatterWorker.js │ │ ├── ScriptsPanel.js │ │ ├── Section.js │ │ ├── Settings.js │ │ ├── ShortcutsHelp.js │ │ ├── ShowMoreDataGridNode.js │ │ ├── SidebarPane.js │ │ ├── SidebarTreeElement.js │ │ ├── SourceCSSTokenizer.js │ │ ├── SourceCSSTokenizer.re2js │ │ ├── SourceFrame.js │ │ ├── SourceFrameContent.js │ │ ├── SourceHTMLTokenizer.js │ │ ├── SourceHTMLTokenizer.re2js │ │ ├── SourceJavaScriptTokenizer.js │ │ ├── SourceJavaScriptTokenizer.re2js │ │ ├── SourceTokenizer.js │ │ ├── StatusBarButton.js │ │ ├── StylesSidebarPane.js │ │ ├── SummaryBar.js │ │ ├── TabbedPane.js │ │ ├── TestController.js │ │ ├── TextEditorHighlighter.js │ │ ├── TextEditorModel.js │ │ ├── TextPrompt.js │ │ ├── TextViewer.js │ │ ├── TimelineAgent.js │ │ ├── TimelineGrid.js │ │ ├── TimelineOverviewPane.js │ │ ├── TimelinePanel.js │ │ ├── TopDownProfileDataGridTree.js │ │ ├── UglifyJS │ │ │ ├── parse-js.js │ │ │ └── process.js │ │ ├── View.js │ │ ├── WatchExpressionsSidebarPane.js │ │ ├── WebKit.qrc │ │ ├── WelcomeView.js │ │ ├── WorkersSidebarPane.js │ │ ├── audits.css │ │ ├── goToLineDialog.css │ │ ├── heapProfiler.css │ │ ├── helpScreen.css │ │ ├── index.html │ │ ├── inspector.css │ │ ├── inspector.html │ │ ├── inspector.js │ │ ├── inspectorSyntaxHighlight.css │ │ ├── networkPanel.css │ │ ├── nls │ │ │ └── English.lproj │ │ │ │ └── localizedStrings.js │ │ ├── popover.css │ │ ├── textViewer.css │ │ ├── treeoutline.js │ │ ├── utilities.js │ │ ├── web-inspector-API.js │ │ └── weinre │ │ │ ├── Images │ │ │ └── remoteIcon.png │ │ │ ├── browser-support-check.js │ │ │ ├── client.css │ │ │ └── hacks.js │ ├── demo │ │ ├── split.html │ │ ├── weinre-demo-min.html │ │ ├── weinre-demo-strict.html │ │ ├── weinre-demo-strict.js │ │ ├── weinre-demo.css │ │ ├── weinre-demo.html │ │ └── weinre-demo.js │ ├── doc │ │ ├── Building.html │ │ ├── ChangeLog.html │ │ ├── Home.html │ │ ├── Installing.html │ │ ├── License.html │ │ ├── MultiUser.html │ │ ├── Running.html │ │ ├── Security.html │ │ ├── UserInterface.html │ │ ├── build-info.txt │ │ ├── css │ │ │ └── main.css │ │ ├── images │ │ │ ├── circled-a.png │ │ │ ├── circled-b.png │ │ │ ├── circled-c.png │ │ │ ├── circled-d.png │ │ │ ├── circled-e.png │ │ │ ├── circled-f.png │ │ │ ├── circled-g.png │ │ │ ├── circled-h.png │ │ │ ├── circled-i.png │ │ │ ├── circled-j.png │ │ │ ├── panel-console.png │ │ │ ├── panel-elements.png │ │ │ ├── panel-network.png │ │ │ ├── panel-remote-console.png │ │ │ ├── panel-remote.png │ │ │ ├── panel-resources.png │ │ │ ├── panel-timeline.png │ │ │ ├── server-home.png │ │ │ ├── weinre-demo.jpg │ │ │ ├── weinre-icon-128x128.png │ │ │ ├── weinre-icon-512x512.png │ │ │ └── weinre-icon-64x64.png │ │ ├── index.html │ │ └── scripts │ │ │ └── main.js │ ├── images │ │ ├── weinre-icon-128x128.png │ │ ├── weinre-icon-32x32.png │ │ └── weinre-icon-64x64.png │ ├── index.html │ ├── index.js │ ├── interfaces │ │ ├── InjectedScriptHost.json │ │ ├── Inspector.json │ │ ├── InspectorFrontendHost.json │ │ ├── WeinreClientCommands.json │ │ ├── WeinreClientEvents.json │ │ ├── WeinreExtraClientCommands.json │ │ ├── WeinreExtraTargetEvents.json │ │ ├── WeinreTargetCommands.json │ │ ├── WeinreTargetEvents.json │ │ ├── all-json-idls-min.js │ │ ├── all-json-idls.js │ │ ├── interfaces.css │ │ ├── interfaces.html │ │ └── interfaces.js │ ├── modjewel.js │ ├── target │ │ ├── target-script-min.js │ │ └── target-script.js │ ├── tests │ │ ├── element-highlighter.html │ │ └── index.html │ ├── versions.js │ └── weinre │ │ ├── client │ │ ├── Client.amd.js │ │ ├── ConnectorList.amd.js │ │ ├── DOMTemplates.amd.js │ │ ├── ExtensionRegistryImpl.amd.js │ │ ├── InspectorBackendImpl.amd.js │ │ ├── InspectorFrontendHostImpl.amd.js │ │ ├── RemotePanel.amd.js │ │ ├── WeinreClientEventsImpl.amd.js │ │ └── WeinreExtraTargetEventsImpl.amd.js │ │ ├── common │ │ ├── Binding.amd.js │ │ ├── Callback.amd.js │ │ ├── Debug.amd.js │ │ ├── EventListeners.amd.js │ │ ├── Ex.amd.js │ │ ├── HookLib.amd.js │ │ ├── IDGenerator.amd.js │ │ ├── IDLTools.amd.js │ │ ├── MessageDispatcher.amd.js │ │ ├── MethodNamer.amd.js │ │ ├── StackTrace.amd.js │ │ ├── WebSocketXhr.amd.js │ │ └── Weinre.amd.js │ │ └── target │ │ ├── BrowserHacks.amd.js │ │ ├── CSSStore.amd.js │ │ ├── CheckForProblems.amd.js │ │ ├── Console.amd.js │ │ ├── ElementHighlighter.amd.js │ │ ├── ElementHighlighterDivs2.amd.js │ │ ├── HookSites.amd.js │ │ ├── InjectedScript.js │ │ ├── InjectedScriptHostImpl.amd.js │ │ ├── NetworkRequest.amd.js │ │ ├── NodeStore.amd.js │ │ ├── SqlStepper.amd.js │ │ ├── Target.amd.js │ │ ├── Timeline.amd.js │ │ ├── WeinreExtraClientCommandsImpl.amd.js │ │ ├── WeinreTargetEventsImpl.amd.js │ │ ├── WiCSSImpl.amd.js │ │ ├── WiConsoleImpl.amd.js │ │ ├── WiDOMImpl.amd.js │ │ ├── WiDOMStorageImpl.amd.js │ │ ├── WiDatabaseImpl.amd.js │ │ ├── WiInspectorImpl.amd.js │ │ └── WiRuntimeImpl.amd.js │ └── weinre ├── demo └── img │ ├── AnyProxy.png │ ├── QRCodeForCert.png │ ├── demo.png │ ├── externalProxy.jpg │ └── spy-debugger-w.gif ├── design └── spy-debugger framework.png ├── lib ├── config │ └── config.js ├── index.js ├── proxy │ ├── externalChildProcess.js │ └── spyProxy.js ├── scripts │ └── postinstall.js ├── util │ ├── htmlUtil.js │ └── httpUtil.js └── weinre │ └── weinreDelegate.js ├── package.json ├── src ├── config │ └── config.js ├── index.js ├── proxy │ ├── externalChildProcess.js │ └── spyProxy.js ├── util │ ├── htmlUtil.js │ └── httpUtil.js └── weinre │ └── weinreDelegate.js ├── template ├── anyproxy_index.html ├── inject.js.template.html └── wrap.html ├── test └── index.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015"], 3 | "plugins": ["transform-async-to-generator"] 4 | } 5 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: spy-debugger 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 17 | .grunt 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (http://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directory 26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 27 | node_modules 28 | 29 | #Dev 30 | dev 31 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | before_install: 2 | - npm install babel-cli babel-preset-es2015 mocha 3 | language: node_js 4 | node_js: 5 | - "6" 6 | - "8" 7 | - "10" 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 wuchangming 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /buildin_modules/weinre/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .git* 3 | Makefile 4 | test/ -------------------------------------------------------------------------------- /buildin_modules/weinre/NOTICE: -------------------------------------------------------------------------------- 1 | Apache Cordova weinre 2 | Copyright 2012 The Apache Software Foundation 3 | 4 | This product includes software developed at 5 | The Apache Software Foundation (http://www.apache.org/). 6 | -------------------------------------------------------------------------------- /buildin_modules/weinre/README.md: -------------------------------------------------------------------------------- 1 | 19 | 20 | weinre is WEb INspector REmote. 21 | Pronounced like the word "winery". 22 | Or maybe like the word "weiner". 23 | Who knows, really. 24 | 25 | weinre is a debugger for web pages, 26 | like FireBug (for FireFox) and Web Inspector (for WebKit-based browsers), 27 | except it's designed to work remotely, and in particular, 28 | to allow you debug web pages on a mobile device such as a phone. 29 | 30 | For more information on weinre: 31 | [http://people.apache.org/~pmuellr/weinre/](http://people.apache.org/~pmuellr/weinre/) 32 | 33 | running 34 | ------- 35 | 36 | For more information about running weinre, you can start the server 37 | and browse the documentation online. 38 | 39 | Start the server with the following command 40 | 41 | node weinre 42 | 43 | This will start the server, and display a message with the URL to the 44 | server. Browse to that URL in your web browser, and then click on 45 | 'documentation' link, which will display weinre's online documentation. 46 | From there click on the 'Running' page to get more information about 47 | running weinre. 48 | 49 | source 50 | ------ 51 | 52 | Follow the link for more information at the top of this file 53 | for instructions on obtaining source. 54 | 55 | If you're reading this file as part of the source distribution of weinre, 56 | you will need to run a 'build' before being able to run weinre. See the 57 | `README.md` file in the root directory of the weinre source distribution 58 | for more information. 59 | 60 | -------------------------------------------------------------------------------- /buildin_modules/weinre/build-info.txt: -------------------------------------------------------------------------------- 1 | weinre build 2.0.0-pre-IXE4AG4O by wuchangming 2 | git: 746a5817d014acdda673115e2ee458ec6c9b7673 fix(console): fixed chrome bug, add ArrowUp, ArrowDown, ArrowRight 3 | -------------------------------------------------------------------------------- /buildin_modules/weinre/interfaces/WeinreClientCommands.idl: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // messages from the client to the server 21 | 22 | module weinre { 23 | interface WeinreClientCommands { 24 | 25 | void registerClient(out string clientId); 26 | 27 | void getTargets(out Object[] targets); 28 | void getClients(out Object[] clients); 29 | 30 | void connectTarget(in string clientId, in string targetId); 31 | void disconnectTarget(in string clientId); 32 | 33 | void getExtensions(out string[] extensions) 34 | 35 | void logDebug( in string message ); 36 | void logInfo( in string message ); 37 | void logWarning( in string message ); 38 | void logError( in string message ); 39 | }; 40 | } 41 | 42 | -------------------------------------------------------------------------------- /buildin_modules/weinre/interfaces/WeinreClientEvents.idl: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // messages from the server to the client 21 | 22 | module weinre { 23 | interface WeinreClientEvents { 24 | 25 | void clientRegistered(Object client); 26 | void targetRegistered(Object target); 27 | 28 | void clientUnregistered(string clientId); 29 | void targetUnregistered(string targetId); 30 | 31 | void connectionCreated(string clientId, string targetId); 32 | void connectionDestroyed(string clientId, string targetId); 33 | 34 | void sendCallback(string callbackId, Object result); 35 | 36 | void serverProperties(Object properties); 37 | }; 38 | } 39 | 40 | -------------------------------------------------------------------------------- /buildin_modules/weinre/interfaces/WeinreExtraClientCommands.idl: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // extra messages from the client to the target 21 | 22 | module weinre { 23 | interface WeinreExtraClientCommands { 24 | 25 | void getDatabases(out Object[] databaseRecords); 26 | 27 | }; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /buildin_modules/weinre/interfaces/WeinreExtraTargetEvents.idl: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // extra messages from the target to the client 21 | 22 | module weinre { 23 | interface WeinreExtraTargetEvents { 24 | 25 | void databaseOpened(in Object databaseRecord); 26 | 27 | }; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /buildin_modules/weinre/interfaces/WeinreTargetCommands.idl: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // messages from the target to the server 21 | 22 | module weinre { 23 | interface WeinreTargetCommands { 24 | 25 | void registerTarget(int url, out string targetId); 26 | 27 | void sendClientCallback(string callbackId, Object args); 28 | 29 | void logDebug( in string message ); 30 | void logInfo( in string message ); 31 | void logWarning( in string message ); 32 | void logError( in string message ); 33 | }; 34 | } 35 | 36 | -------------------------------------------------------------------------------- /buildin_modules/weinre/interfaces/WeinreTargetEvents.idl: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // messages from the server to the target 21 | 22 | module weinre { 23 | interface WeinreTargetEvents { 24 | 25 | void connectionCreated(string clientId, string targetId); 26 | void connectionDestroyed(string clientId, string targetId); 27 | 28 | void sendCallback(string callbackId, Object result); 29 | 30 | }; 31 | } 32 | 33 | -------------------------------------------------------------------------------- /buildin_modules/weinre/lib/MessageQueue.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.8.0 2 | var MessageQueue, utils, _; 3 | 4 | _ = require('underscore'); 5 | 6 | utils = require('./utils'); 7 | 8 | module.exports = utils.registerClass(MessageQueue = (function() { 9 | function MessageQueue() { 10 | this.messages = []; 11 | this.closed = false; 12 | this.callback = null; 13 | this.timer = null; 14 | _.bindAll(this, '_timerExpired', '_updated'); 15 | } 16 | 17 | MessageQueue.prototype.shutdown = function() { 18 | if (this.closed) { 19 | return; 20 | } 21 | this.closed = true; 22 | if (this.timer) { 23 | clearTimeout(this.timer); 24 | } 25 | if (this.callback) { 26 | this.callback.call(null, this.messages); 27 | } 28 | this.callback = null; 29 | this.messages = null; 30 | return this.timer = null; 31 | }; 32 | 33 | MessageQueue.prototype.push = function(message) { 34 | if (this.closed) { 35 | return; 36 | } 37 | this.messages.push(message); 38 | return process.nextTick(this._updated); 39 | }; 40 | 41 | MessageQueue.prototype.pullAll = function(timeout, callback) { 42 | if (this.closed) { 43 | return callback.call(null, null); 44 | } 45 | if (this.callback) { 46 | return callback.call(null, []); 47 | } 48 | if (this.messages.length) { 49 | callback.call(null, this.messages); 50 | this.messages = []; 51 | return; 52 | } 53 | this.callback = callback; 54 | return this.timer = setTimeout(this._timerExpired, timeout); 55 | }; 56 | 57 | MessageQueue.prototype._timerExpired = function() { 58 | return this._updated(); 59 | }; 60 | 61 | MessageQueue.prototype._updated = function() { 62 | var callback, messages; 63 | if (this.closed) { 64 | return; 65 | } 66 | if (!this.callback) { 67 | return; 68 | } 69 | callback = this.callback; 70 | messages = this.messages; 71 | if (this.timer) { 72 | clearTimeout(this.timer); 73 | } 74 | this.callback = null; 75 | this.messages = []; 76 | this.timer = null; 77 | return callback.call(null, messages); 78 | }; 79 | 80 | return MessageQueue; 81 | 82 | })()); 83 | -------------------------------------------------------------------------------- /buildin_modules/weinre/lib/dumpingHandler.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.8.0 2 | var dumpResponse, dumpingHandler, enhance, utils, _; 3 | 4 | _ = require('underscore'); 5 | 6 | utils = require('./utils'); 7 | 8 | dumpingHandler = function(request, response, uri) { 9 | var element, originalSend, _i, _len, _ref, _results; 10 | originalSend = response.send; 11 | response.send = function(body) { 12 | return dumpResponse(originalSend, body, request, response, uri); 13 | }; 14 | if (request.method !== 'POST') { 15 | return; 16 | } 17 | utils.logVerbose('--------------------------------------------------'); 18 | utils.logVerbose("" + request.method + " " + uri + " [request]"); 19 | if (_.isArray(request.body)) { 20 | _ref = request.body; 21 | _results = []; 22 | for (_i = 0, _len = _ref.length; _i < _len; _i++) { 23 | element = _ref[_i]; 24 | _results.push(utils.logVerbose(" " + (enhance(JSON.parse(element))))); 25 | } 26 | return _results; 27 | } else { 28 | return utils.logVerbose(" " + (enhance(request.body))); 29 | } 30 | }; 31 | 32 | dumpResponse = function(originalSend, body, request, response, uri) { 33 | var e, element, _i, _len, _ref, _results; 34 | originalSend.call(response, body); 35 | if ((_ref = request.method) !== 'GET' && _ref !== 'POST') { 36 | return; 37 | } 38 | try { 39 | body = JSON.parse(body); 40 | } catch (_error) { 41 | e = _error; 42 | return; 43 | } 44 | if (_.isArray(body) && (body.length === 0)) { 45 | return; 46 | } 47 | utils.logVerbose('--------------------------------------------------'); 48 | utils.logVerbose("" + request.method + " " + uri + " " + response.statusCode + " [response]"); 49 | if (_.isArray(body)) { 50 | _results = []; 51 | for (_i = 0, _len = body.length; _i < _len; _i++) { 52 | element = body[_i]; 53 | _results.push(utils.logVerbose(" " + (enhance(JSON.parse(element))))); 54 | } 55 | return _results; 56 | } else { 57 | return utils.logVerbose(" " + (enhance(body))); 58 | } 59 | }; 60 | 61 | enhance = function(object) { 62 | var args, signature; 63 | if (!object["interface"] || !object.method || !object.args) { 64 | return JSON.stringify(object); 65 | } 66 | signature = "" + object["interface"] + "." + object.method; 67 | args = JSON.stringify(object.args); 68 | if (args.length > 500) { 69 | args = "" + (args.substr(0, 50)) + "..."; 70 | } 71 | return "" + signature + "(" + args + ")"; 72 | }; 73 | 74 | module.exports = dumpingHandler; 75 | -------------------------------------------------------------------------------- /buildin_modules/weinre/lib/extensionManager.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.8.0 2 | var ExtensionManager, utils; 3 | 4 | utils = require('./utils'); 5 | 6 | utils.registerClass(ExtensionManager = (function() { 7 | function ExtensionManager() { 8 | this.extensions = []; 9 | } 10 | 11 | return ExtensionManager; 12 | 13 | })()); 14 | 15 | module.exports = new ExtensionManager; 16 | -------------------------------------------------------------------------------- /buildin_modules/weinre/lib/jsonBodyParser.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.8.0 2 | var jsonBodyParser, parseBodyAsJSON; 3 | 4 | jsonBodyParser = function() { 5 | return function(request, response, next) { 6 | return parseBodyAsJSON(request, response, next); 7 | }; 8 | }; 9 | 10 | parseBodyAsJSON = function(request, response, next) { 11 | var buffer; 12 | if (request.body) { 13 | return next(); 14 | } 15 | request.body = {}; 16 | if (request.method !== 'POST') { 17 | return next(); 18 | } 19 | request.setEncoding('utf8'); 20 | buffer = ''; 21 | request.on('data', function(chunk) { 22 | return buffer += chunk; 23 | }); 24 | return request.on('end', function() { 25 | var e; 26 | if ('' === buffer) { 27 | return next(); 28 | } 29 | try { 30 | request.body = JSON.parse(buffer); 31 | return next(); 32 | } catch (_error) { 33 | e = _error; 34 | return next(e); 35 | } 36 | }); 37 | }; 38 | 39 | module.exports = jsonBodyParser; 40 | -------------------------------------------------------------------------------- /buildin_modules/weinre/lib/messageHandler.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.8.0 2 | var MessageHandler, channelManager, serviceManager, utils, 3 | __slice = [].slice; 4 | 5 | utils = require('./utils'); 6 | 7 | channelManager = require('./channelManager'); 8 | 9 | serviceManager = require('./serviceManager'); 10 | 11 | utils.registerClass(MessageHandler = (function() { 12 | function MessageHandler() {} 13 | 14 | MessageHandler.prototype.handleMessage = function(channel, message) { 15 | return this._serviceMethodInvoker(channel, message["interface"], message.method, message.args); 16 | }; 17 | 18 | MessageHandler.prototype._serviceMethodInvoker = function(channel, intfName, method, args) { 19 | var e, methodSignature, service; 20 | methodSignature = "" + intfName + "." + method + "()"; 21 | service = serviceManager.get(intfName); 22 | if (!service) { 23 | return this._redirectToConnections(channel, intfName, method, args); 24 | } 25 | args = args.slice(); 26 | args.unshift(channel); 27 | try { 28 | return service[method].apply(service, args); 29 | } catch (_error) { 30 | e = _error; 31 | utils.log("error running service method " + methodSignature + ": " + e); 32 | return utils.log("stack:\n" + e.stack); 33 | } 34 | }; 35 | 36 | MessageHandler.prototype._redirectToConnections = function(channel, intfName, method, args) { 37 | var connection, _i, _len, _ref, _results; 38 | _ref = channel.connections; 39 | _results = []; 40 | for (_i = 0, _len = _ref.length; _i < _len; _i++) { 41 | connection = _ref[_i]; 42 | _results.push(connection.sendMessage.apply(connection, [intfName, method].concat(__slice.call(args)))); 43 | } 44 | return _results; 45 | }; 46 | 47 | return MessageHandler; 48 | 49 | })()); 50 | 51 | module.exports = new MessageHandler; 52 | -------------------------------------------------------------------------------- /buildin_modules/weinre/lib/service/WeinreTargetCommands.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.8.0 2 | var WeinreClientEvents, WeinreTargetCommands, WeinreTargetEvents, channelManager, getCallbackChannel, serviceManager, utils; 3 | 4 | utils = require('../utils'); 5 | 6 | channelManager = require('../channelManager'); 7 | 8 | serviceManager = require('../serviceManager'); 9 | 10 | WeinreClientEvents = serviceManager.get('WeinreClientEvents'); 11 | 12 | WeinreTargetEvents = serviceManager.get('WeinreTargetEvents'); 13 | 14 | module.exports = utils.registerClass(WeinreTargetCommands = (function() { 15 | function WeinreTargetCommands() {} 16 | 17 | WeinreTargetCommands.prototype.registerTarget = function(channel, url, callbackId) { 18 | var clients; 19 | channel.description.url = url; 20 | clients = channelManager.getClientChannels(channel.id); 21 | WeinreClientEvents.targetRegistered(clients, channel.description); 22 | if (callbackId) { 23 | return WeinreTargetEvents.sendCallback(channel, callbackId, channel.description); 24 | } 25 | }; 26 | 27 | WeinreTargetCommands.prototype.sendClientCallback = function(channel, clientCallbackId, args, callbackId) { 28 | var callbackChannel; 29 | callbackChannel = getCallbackChannel(clientCallbackId); 30 | if (!callbackChannel) { 31 | return main.warn("" + this.constructor.name + ".sendClientCallback() sent with invalid callbackId: " + clientCallbackId); 32 | } 33 | callbackChannel = channelManager.getChannel(callbackChannel); 34 | if (!callbackChannel) { 35 | return main.warn("" + this.constructor.name + ".sendClientCallback() unable to find channel : " + clientCallbackId); 36 | } 37 | WeinreClientEvents.sendCallback(callbackChannel, clientCallbackId, args); 38 | if (callbackId) { 39 | return WeinreTargetEvents.sendCallback(channel, callbackId, description); 40 | } 41 | }; 42 | 43 | WeinreTargetCommands.prototype.logDebug = function(channel, message, callbackId) { 44 | utils.logVerbose("target " + channel.name + ": " + message); 45 | if (callbackId) { 46 | return WeinreTargetEvents.sendCallback(channel, callbackId, description); 47 | } 48 | }; 49 | 50 | WeinreTargetCommands.prototype.logInfo = function(channel, message, callbackId) { 51 | utils.log("target " + channel.name + ": " + message); 52 | if (callbackId) { 53 | return WeinreTargetEvents.sendCallback(channel, callbackId, description); 54 | } 55 | }; 56 | 57 | WeinreTargetCommands.prototype.logWarning = function(channel, message, callbackId) { 58 | utils.log("target " + channel.name + ": " + message); 59 | if (callbackId) { 60 | return WeinreTargetEvents.sendCallback(channel, callbackId, description); 61 | } 62 | }; 63 | 64 | WeinreTargetCommands.prototype.logError = function(channel, message, callbackId) { 65 | utils.log("target " + channel.name + ": " + message); 66 | if (callbackId) { 67 | return WeinreTargetEvents.sendCallback(channel, callbackId, description); 68 | } 69 | }; 70 | 71 | return WeinreTargetCommands; 72 | 73 | })()); 74 | 75 | getCallbackChannel = function(callbackId) { 76 | callbackId = callbackId.toString(); 77 | return callbackId.split('::')[0]; 78 | }; 79 | -------------------------------------------------------------------------------- /buildin_modules/weinre/lib/serviceManager.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.8.0 2 | var ServiceManager, Services, fs, getMethodProxy, getServiceInterface, path, utils, _, 3 | __slice = [].slice; 4 | 5 | path = require('path'); 6 | 7 | fs = require('fs'); 8 | 9 | _ = require('underscore'); 10 | 11 | utils = require('./utils'); 12 | 13 | Services = {}; 14 | 15 | utils.registerClass(ServiceManager = (function() { 16 | function ServiceManager() { 17 | this.services = {}; 18 | } 19 | 20 | ServiceManager.prototype.get = function(name) { 21 | if (_.has(this.services, name)) { 22 | return this.services[name]; 23 | } 24 | return null; 25 | }; 26 | 27 | ServiceManager.prototype.registerLocalClass = function(name) { 28 | var e, serviceClass; 29 | serviceClass = null; 30 | try { 31 | serviceClass = require("./service/" + name); 32 | } catch (_error) { 33 | e = _error; 34 | utils.log("local service class not found: " + name); 35 | throw e; 36 | } 37 | return this.services[name] = new serviceClass; 38 | }; 39 | 40 | ServiceManager.prototype.registerProxyClass = function(name) { 41 | var intf, method, service, _i, _len, _ref; 42 | intf = getServiceInterface(name); 43 | if (!intf) { 44 | utils.exit("proxy service class not found: " + name); 45 | } 46 | if (intf.name !== name) { 47 | utils.exit("proxy interface '" + intf.name + "' loaded when '" + name + "' requested"); 48 | } 49 | service = {}; 50 | _ref = intf.methods; 51 | for (_i = 0, _len = _ref.length; _i < _len; _i++) { 52 | method = _ref[_i]; 53 | service[method.name] = getMethodProxy(name, method.name); 54 | } 55 | return this.services[name] = service; 56 | }; 57 | 58 | return ServiceManager; 59 | 60 | })()); 61 | 62 | getMethodProxy = function(intfName, methodName) { 63 | return function() { 64 | var args, channel, channels, _i, _len, _results; 65 | channels = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; 66 | if (!_.isArray(channels)) { 67 | channels = [channels]; 68 | } 69 | _results = []; 70 | for (_i = 0, _len = channels.length; _i < _len; _i++) { 71 | channel = channels[_i]; 72 | _results.push(channel.sendMessage.apply(channel, [intfName, methodName].concat(__slice.call(args)))); 73 | } 74 | return _results; 75 | }; 76 | }; 77 | 78 | getServiceInterface = function(name) { 79 | var contents, fileName, jsonName, serviceInterface; 80 | jsonName = "" + name + ".json"; 81 | fileName = path.join(utils.options.staticWebDir, 'interfaces', jsonName); 82 | if (!utils.fileExistsSync(fileName)) { 83 | return null; 84 | } 85 | contents = fs.readFileSync(fileName, 'utf8'); 86 | serviceInterface = JSON.parse(contents); 87 | return serviceInterface.interfaces[0]; 88 | }; 89 | 90 | module.exports = new ServiceManager; 91 | -------------------------------------------------------------------------------- /buildin_modules/weinre/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "weinre", 3 | "description": "WEb INspector REmote", 4 | "author": "apache.org", 5 | "version": "2.0.0-pre-IXE4AG4O", 6 | "tags": [ "debug"], 7 | "licenses": 8 | [ 9 | { 10 | "type": "Apache 2.0", 11 | "url": "http://www.apache.org/licenses/LICENSE-2.0" 12 | } 13 | ], 14 | "engines": 15 | { 16 | "node": ">=0.6.0" 17 | }, 18 | "directories": 19 | { 20 | "lib" : "./lib" 21 | }, 22 | "dependencies": 23 | { 24 | "express": "2.5.x", 25 | "nopt": "3.0.x", 26 | "underscore": "1.7.x" 27 | }, 28 | "devDependencies": 29 | { 30 | "coffee-script": "1.8.x" 31 | }, 32 | "main" : "./lib/weinre", 33 | "bin": 34 | { 35 | "weinre": "./weinre" 36 | }, 37 | "homepage": "http://people.apache.org/~pmuellr/weinre/", 38 | "bugs": "https://issues.apache.org/jira/secure/IssueNavigator!executeAdvanced.jspa?jqlQuery=project%3DCB+and+component%3Dweinre&runQuery=true&clear=true", 39 | "repository": 40 | { 41 | "type": "git", 42 | "url": "https://git-wip-us.apache.org/repos/asf/cordova-weinre.git" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Breakpoint.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 Apple Inc. All Rights Reserved. 3 | * Copyright (C) 2010 Google Inc. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are 7 | * met: 8 | * 9 | * * Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * * 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 | * * Neither the name of Google Inc. nor the names of its 16 | * contributors may be used to endorse or promote products derived from 17 | * this software without specific prior written permission. 18 | * 19 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | */ 31 | 32 | WebInspector.Breakpoint = function(id, url, sourceID, lineNumber, columnNumber, condition, enabled) 33 | { 34 | this.id = id; 35 | this.url = url; 36 | this.sourceID = sourceID; 37 | this.lineNumber = lineNumber; 38 | this.columnNumber = columnNumber; 39 | this.condition = condition; 40 | this.enabled = enabled; 41 | this.locations = []; 42 | } 43 | 44 | WebInspector.Breakpoint.prototype = { 45 | addLocation: function(sourceID, lineNumber, columnNumber) 46 | { 47 | this.locations.push({ sourceID: sourceID, lineNumber: lineNumber, columnNumber: columnNumber }); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Checkbox.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 6 | * are met: 7 | * 1. Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 13 | * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 14 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 17 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 | * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | 26 | WebInspector.Checkbox = function(label, className, tooltip) 27 | { 28 | this.element = document.createElement('label'); 29 | this._inputElement = document.createElement('input'); 30 | this._inputElement.type = "checkbox"; 31 | 32 | this.element.className = className; 33 | this.element.appendChild(this._inputElement); 34 | this.element.appendChild(document.createTextNode(label)); 35 | if (tooltip) 36 | this.element.title = tooltip; 37 | } 38 | 39 | WebInspector.Checkbox.prototype = { 40 | set checked(checked) 41 | { 42 | this._inputElement.checked = checked; 43 | }, 44 | 45 | get checked() 46 | { 47 | return this._inputElement.checked; 48 | }, 49 | 50 | addEventListener: function(listener) 51 | { 52 | function listenerWrapper(event) 53 | { 54 | if (listener) 55 | listener(event); 56 | event.stopPropagation(); 57 | return true; 58 | } 59 | 60 | this._inputElement.addEventListener("click", listenerWrapper, false); 61 | this.element.addEventListener("click", listenerWrapper, false); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/DOMStorage.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 Nokia 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 6 | * are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 14 | * its contributors may be used to endorse or promote products derived 15 | * from this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY 18 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | WebInspector.DOMStorage = function(id, domain, isLocalStorage) 30 | { 31 | this._id = id; 32 | this._domain = domain; 33 | this._isLocalStorage = isLocalStorage; 34 | } 35 | 36 | WebInspector.DOMStorage.prototype = { 37 | get id() 38 | { 39 | return this._id; 40 | }, 41 | 42 | get domain() 43 | { 44 | return this._domain; 45 | }, 46 | 47 | get isLocalStorage() 48 | { 49 | return this._isLocalStorage; 50 | }, 51 | 52 | getEntries: function(callback) 53 | { 54 | InspectorBackend.getDOMStorageEntries(this._id, callback); 55 | }, 56 | 57 | setItem: function(key, value, callback) 58 | { 59 | InspectorBackend.setDOMStorageItem(this._id, key, value, callback); 60 | }, 61 | 62 | removeItem: function(key, callback) 63 | { 64 | InspectorBackend.removeDOMStorageItem(this._id, key, callback); 65 | } 66 | } 67 | 68 | 69 | WebInspector.DOMStorageDispatcher = function() 70 | { 71 | } 72 | 73 | WebInspector.DOMStorageDispatcher.prototype = { 74 | addDOMStorage: function(payload) 75 | { 76 | if (!WebInspector.panels.resources) 77 | return; 78 | var domStorage = new WebInspector.DOMStorage( 79 | payload.id, 80 | payload.host, 81 | payload.isLocalStorage); 82 | WebInspector.panels.resources.addDOMStorage(domStorage); 83 | }, 84 | 85 | selectDOMStorage: function(o) 86 | { 87 | WebInspector.showPanel("resources"); 88 | WebInspector.panels.resources.selectDOMStorage(o); 89 | }, 90 | 91 | updateDOMStorage: function(storageId) 92 | { 93 | WebInspector.panels.resources.updateDOMStorage(storageId); 94 | } 95 | } 96 | 97 | InspectorBackend.registerDomainDispatcher("DOMStorage", new WebInspector.DOMStorageDispatcher()); 98 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/ExtensionCommon.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 | WebInspector.commonExtensionSymbols = function(apiPrivate) 32 | { 33 | 34 | if (!apiPrivate.audits) 35 | apiPrivate.audits = {}; 36 | 37 | apiPrivate.audits.Severity = { 38 | Info: "info", 39 | Warning: "warning", 40 | Severe: "severe" 41 | }; 42 | } 43 | 44 | WebInspector.extensionAPI = {}; 45 | 46 | WebInspector.commonExtensionSymbols(WebInspector.extensionAPI); 47 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/ExtensionRegistryStub.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | (function() { 21 | var ExtensionRegistryImpl = modjewel.require("weinre/client/ExtensionRegistryImpl") 22 | window.InspectorExtensionRegistry = new ExtensionRegistryImpl() 23 | })() 24 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/applicationCache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/applicationCache.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/auditsIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/auditsIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/back.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/breakpointBorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/breakpointBorder.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/breakpointConditionalBorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/breakpointConditionalBorder.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/breakpointConditionalCounterBorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/breakpointConditionalCounterBorder.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/breakpointCounterBorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/breakpointCounterBorder.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/breakpointsActivateButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/breakpointsActivateButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/breakpointsDeactivateButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/breakpointsDeactivateButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/checker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/checker.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/clearConsoleButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/clearConsoleButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/closeButtons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/closeButtons.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/consoleButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/consoleButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/consoleIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/consoleIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/cookie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/cookie.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/database.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/databaseTable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/databaseTable.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/debuggerContinue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/debuggerContinue.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/debuggerPause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/debuggerPause.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/debuggerStepInto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/debuggerStepInto.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/debuggerStepOut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/debuggerStepOut.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/debuggerStepOver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/debuggerStepOver.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/disclosureTriangleSmallDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/disclosureTriangleSmallDown.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/disclosureTriangleSmallDownBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/disclosureTriangleSmallDownBlack.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/disclosureTriangleSmallDownWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/disclosureTriangleSmallDownWhite.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRight.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRightBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRightBlack.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRightDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRightDown.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRightDownBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRightDownBlack.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRightDownWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRightDownWhite.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRightWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/disclosureTriangleSmallRightWhite.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/dockButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/dockButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/elementsIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/elementsIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/enableOutlineButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/enableOutlineButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/enableSolidButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/enableSolidButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/errorIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/errorIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/errorMediumIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/errorMediumIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/errorRedDot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/errorRedDot.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/excludeButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/excludeButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/focusButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/focusButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/forward.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/frame.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/gearButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/gearButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/glossyHeader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/glossyHeader.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/glossyHeaderPressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/glossyHeaderPressed.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/glossyHeaderSelected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/glossyHeaderSelected.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/glossyHeaderSelectedPressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/glossyHeaderSelectedPressed.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/goArrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/goArrow.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/graphLabelCalloutLeft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/graphLabelCalloutLeft.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/graphLabelCalloutRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/graphLabelCalloutRight.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/largerResourcesButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/largerResourcesButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/localStorage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/localStorage.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/networkIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/networkIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/nodeSearchButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/nodeSearchButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/paneAddButtons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/paneAddButtons.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/paneBottomGrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/paneBottomGrow.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/paneBottomGrowActive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/paneBottomGrowActive.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/paneGrowHandleLine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/paneGrowHandleLine.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/paneSettingsButtons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/paneSettingsButtons.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/pauseOnExceptionButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/pauseOnExceptionButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/percentButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/percentButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/popoverArrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/popoverArrows.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/popoverBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/popoverBackground.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/profileGroupIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/profileGroupIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/profileIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/profileIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/profileSmallIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/profileSmallIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/profilesIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/profilesIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/profilesSilhouette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/profilesSilhouette.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/programCounterBorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/programCounterBorder.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/radioDot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/radioDot.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/recordButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/recordButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/recordToggledButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/recordToggledButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/reloadButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/reloadButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/resourceCSSIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/resourceCSSIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/resourceDocumentIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/resourceDocumentIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/resourceDocumentIconSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/resourceDocumentIconSmall.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/resourceJSIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/resourceJSIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/resourcePlainIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/resourcePlainIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/resourcePlainIconSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/resourcePlainIconSmall.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/resourcesIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/resourcesIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/resourcesSizeGraphIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/resourcesSizeGraphIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/resourcesTimeGraphIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/resourcesTimeGraphIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/scriptsIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/scriptsIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/scriptsSilhouette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/scriptsSilhouette.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/searchSmallBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/searchSmallBlue.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/searchSmallBrightBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/searchSmallBrightBlue.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/searchSmallGray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/searchSmallGray.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/searchSmallWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/searchSmallWhite.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/segment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/segment.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/segmentEnd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/segmentEnd.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/segmentHover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/segmentHover.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/segmentHoverEnd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/segmentHoverEnd.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/segmentSelected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/segmentSelected.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/segmentSelectedEnd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/segmentSelectedEnd.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/sessionStorage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/sessionStorage.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/spinner.gif -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/splitviewDimple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/splitviewDimple.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/splitviewDividerBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/splitviewDividerBackground.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/statusbarBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/statusbarBackground.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/statusbarBottomBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/statusbarBottomBackground.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/statusbarButtons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/statusbarButtons.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/statusbarMenuButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/statusbarMenuButton.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/statusbarMenuButtonSelected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/statusbarMenuButtonSelected.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/statusbarResizerHorizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/statusbarResizerHorizontal.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/statusbarResizerVertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/statusbarResizerVertical.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/successGreenDot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/successGreenDot.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/thumbActiveHoriz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/thumbActiveHoriz.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/thumbActiveVert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/thumbActiveVert.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/thumbHoriz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/thumbHoriz.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/thumbHoverHoriz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/thumbHoverHoriz.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/thumbHoverVert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/thumbHoverVert.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/thumbVert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/thumbVert.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineBarBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineBarBlue.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineBarGray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineBarGray.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineBarGreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineBarGreen.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineBarOrange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineBarOrange.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineBarPurple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineBarPurple.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineBarRed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineBarRed.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineBarYellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineBarYellow.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineCheckmarks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineCheckmarks.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineDots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineDots.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineHollowPillBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineHollowPillBlue.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineHollowPillGray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineHollowPillGray.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineHollowPillGreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineHollowPillGreen.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineHollowPillOrange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineHollowPillOrange.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineHollowPillPurple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineHollowPillPurple.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineHollowPillRed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineHollowPillRed.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineHollowPillYellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineHollowPillYellow.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelineIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelineIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelinePillBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelinePillBlue.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelinePillGray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelinePillGray.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelinePillGreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelinePillGreen.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelinePillOrange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelinePillOrange.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelinePillPurple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelinePillPurple.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelinePillRed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelinePillRed.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/timelinePillYellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/timelinePillYellow.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/toolbarItemSelected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/toolbarItemSelected.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/trackHoriz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/trackHoriz.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/trackVert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/trackVert.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/treeDownTriangleBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/treeDownTriangleBlack.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/treeDownTriangleWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/treeDownTriangleWhite.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/treeRightTriangleBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/treeRightTriangleBlack.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/treeRightTriangleWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/treeRightTriangleWhite.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/treeUpTriangleBlack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/treeUpTriangleBlack.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/treeUpTriangleWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/treeUpTriangleWhite.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/undockButtonGlyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/undockButtonGlyph.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/userInputIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/userInputIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/userInputPreviousIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/userInputPreviousIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/userInputResultIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/userInputResultIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/warningIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/warningIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/warningMediumIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/warningMediumIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/warningOrangeDot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/warningOrangeDot.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/Images/warningsErrors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/Images/warningsErrors.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/InspectorBackendStub.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | (function() { 21 | var InspectorBackendImpl = modjewel.require("weinre/client/InspectorBackendImpl") 22 | window.InspectorBackend = new InspectorBackendImpl() 23 | })() 24 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/InspectorBackendStub.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | InspectorBackendStub.js 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/InspectorFrontendHostStub.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | (function() { 21 | var InspectorFrontEndHostImpl = modjewel.require("weinre/client/InspectorFrontendHostImpl") 22 | window.InspectorFrontendHost = new InspectorFrontEndHostImpl() 23 | })() 24 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/PropertiesSection.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Apple Inc. All rights reserved. 3 | * Copyright (C) 2009 Google Inc. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 15 | * its contributors may be used to endorse or promote products derived 16 | * from this software without specific prior written permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | WebInspector.PropertiesSection = function(title, subtitle) 31 | { 32 | WebInspector.Section.call(this, title, subtitle); 33 | 34 | this.headerElement.addStyleClass("monospace"); 35 | this.propertiesElement = document.createElement("ol"); 36 | this.propertiesElement.className = "properties properties-tree monospace"; 37 | this.propertiesElement.tabIndex = 0; 38 | this.propertiesTreeOutline = new TreeOutline(this.propertiesElement); 39 | this.propertiesTreeOutline.section = this; 40 | 41 | this.element.appendChild(this.propertiesElement); 42 | } 43 | 44 | WebInspector.PropertiesSection.prototype.__proto__ = WebInspector.Section.prototype; 45 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/PropertiesSidebarPane.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Apple 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 6 | * are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 14 | * its contributors may be used to endorse or promote products derived 15 | * from this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 18 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | WebInspector.PropertiesSidebarPane = function() 30 | { 31 | WebInspector.SidebarPane.call(this, WebInspector.UIString("Properties")); 32 | } 33 | 34 | WebInspector.PropertiesSidebarPane.prototype = { 35 | update: function(node) 36 | { 37 | var body = this.bodyElement; 38 | 39 | if (!node) { 40 | body.removeChildren(); 41 | this.sections = []; 42 | return; 43 | } 44 | 45 | function callback(prototypes) 46 | { 47 | var body = this.bodyElement; 48 | body.removeChildren(); 49 | this.sections = []; 50 | 51 | // Get array of prototype user-friendly names. 52 | for (var i = 0; i < prototypes.length; ++i) { 53 | var prototype = WebInspector.RemoteObject.fromPayload(prototypes[i]); 54 | var title = prototype.description; 55 | if (title.match(/Prototype$/)) 56 | title = title.replace(/Prototype$/, ""); 57 | var section = new WebInspector.ObjectPropertiesSection(prototype, title); 58 | this.sections.push(section); 59 | body.appendChild(section.element); 60 | } 61 | } 62 | InspectorBackend.getNodePrototypes(node.id, callback.bind(this)); 63 | } 64 | } 65 | 66 | WebInspector.PropertiesSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype; 67 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/ResourceCategory.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007, 2008 Apple 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 6 | * are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 14 | * its contributors may be used to endorse or promote products derived 15 | * from this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 18 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | WebInspector.ResourceCategory = function(name, title, color) 30 | { 31 | this.name = name; 32 | this.title = title; 33 | this.color = color; 34 | } 35 | 36 | WebInspector.ResourceCategory.prototype = { 37 | toString: function() 38 | { 39 | return this.title; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/ScriptFormatterWorker.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 | var parse = loadModule("parse-js.js"); 32 | var process = loadModule("process.js"); 33 | 34 | onmessage = function(event) { 35 | var source = event.data; 36 | var formattedSource = beautify(source); 37 | var mapping = buildMapping(source, formattedSource); 38 | postMessage({ formattedSource: formattedSource, mapping: mapping }); 39 | }; 40 | 41 | function beautify(source) 42 | { 43 | var ast = parse.parse(source); 44 | var beautifyOptions = { 45 | indent_level: 4, 46 | indent_start: 0, 47 | quote_keys: false, 48 | space_colon: false 49 | }; 50 | return process.gen_code(ast, beautifyOptions); 51 | } 52 | 53 | function buildMapping(source, formattedSource) 54 | { 55 | var mapping = { original: [], formatted: [] }; 56 | var lastCodePosition = 0; 57 | var regexp = /[\$\.\w]+|{|}/g; 58 | while (true) { 59 | var match = regexp.exec(formattedSource); 60 | if (!match) 61 | break; 62 | var position = source.indexOf(match[0], lastCodePosition); 63 | if (position === -1) 64 | continue; 65 | mapping.original.push(position); 66 | mapping.formatted.push(match.index); 67 | lastCodePosition = position + match[0].length; 68 | } 69 | return mapping; 70 | } 71 | 72 | function loadModule(src) 73 | { 74 | var request = new XMLHttpRequest(); 75 | request.open("GET", src, false); 76 | request.send(); 77 | 78 | var exports = {}; 79 | eval(request.responseText); 80 | return exports; 81 | } 82 | 83 | function require() 84 | { 85 | return parse; 86 | } 87 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/TestController.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 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 | WebInspector.TestController = function(callId) 32 | { 33 | this._callId = callId; 34 | this._waitUntilDone = false; 35 | this.results = []; 36 | } 37 | 38 | WebInspector.TestController.prototype = { 39 | waitUntilDone: function() 40 | { 41 | this._waitUntilDone = true; 42 | }, 43 | 44 | notifyDone: function(result) 45 | { 46 | if (typeof result === "undefined" && this.results.length) 47 | result = this.results; 48 | var message = typeof result === "undefined" ? "\"\"" : JSON.stringify(result); 49 | InspectorBackend.didEvaluateForTestInFrontend(this._callId, message); 50 | }, 51 | 52 | runAfterPendingDispatches: function(callback) 53 | { 54 | if (WebInspector.pendingDispatches === 0) { 55 | callback(); 56 | return; 57 | } 58 | setTimeout(this.runAfterPendingDispatches.bind(this), 0, callback); 59 | } 60 | } 61 | 62 | WebInspector.evaluateForTestInFrontend = function(callId, script) 63 | { 64 | var controller = new WebInspector.TestController(callId); 65 | function invokeMethod() 66 | { 67 | try { 68 | var result; 69 | if (window[script] && typeof window[script] === "function") 70 | result = window[script].call(WebInspector, controller); 71 | else 72 | result = window.eval(script); 73 | 74 | if (!controller._waitUntilDone) 75 | controller.notifyDone(result); 76 | } catch (e) { 77 | controller.notifyDone(e.toString()); 78 | } 79 | } 80 | controller.runAfterPendingDispatches(invokeMethod); 81 | } 82 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/TimelineAgent.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 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 | WebInspector.TimelineAgent = function() { 32 | // Not implemented. 33 | } 34 | 35 | // Must be kept in sync with TimelineItem.h 36 | WebInspector.TimelineAgent.RecordType = { 37 | EventDispatch : 0, 38 | Layout : 1, 39 | RecalculateStyles : 2, 40 | Paint : 3, 41 | ParseHTML : 4, 42 | TimerInstall : 5, 43 | TimerRemove : 6, 44 | TimerFire : 7, 45 | XHRReadyStateChange : 8, 46 | XHRLoad : 9, 47 | EvaluateScript : 10, 48 | MarkTimeline : 11, 49 | ResourceSendRequest : 12, 50 | ResourceReceiveResponse : 13, 51 | ResourceFinish : 14, 52 | FunctionCall : 15, 53 | ResourceReceiveData: 16, 54 | GCEvent : 17, 55 | MarkDOMContentEventType : 18, 56 | MarkLoadEventType : 19, 57 | ScheduleResourceRequest : 20 58 | }; 59 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/View.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 Apple 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 6 | * are met: 7 | * 1. Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * 2. Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * 13 | * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 14 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 17 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 | * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | */ 25 | 26 | WebInspector.View = function(element) 27 | { 28 | this.element = element || document.createElement("div"); 29 | this._visible = false; 30 | } 31 | 32 | WebInspector.View.prototype = { 33 | get visible() 34 | { 35 | return this._visible; 36 | }, 37 | 38 | set visible(x) 39 | { 40 | if (this._visible === x) 41 | return; 42 | 43 | if (x) 44 | this.show(); 45 | else 46 | this.hide(); 47 | }, 48 | 49 | show: function(parentElement) 50 | { 51 | this._visible = true; 52 | if (parentElement && parentElement !== this.element.parentNode) { 53 | this.detach(); 54 | parentElement.appendChild(this.element); 55 | } 56 | if (!this.element.parentNode && this.attach) 57 | this.attach(); 58 | this.element.addStyleClass("visible"); 59 | }, 60 | 61 | hide: function() 62 | { 63 | this.element.removeStyleClass("visible"); 64 | this._visible = false; 65 | }, 66 | 67 | detach: function() 68 | { 69 | if (this.element.parentNode) 70 | this.element.parentNode.removeChild(this.element); 71 | } 72 | } 73 | 74 | WebInspector.View.prototype.__proto__ = WebInspector.Object.prototype; 75 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/goToLineDialog.css: -------------------------------------------------------------------------------- 1 | .go-to-line-dialog { 2 | position: absolute; 3 | top: 40%; 4 | left: 40%; 5 | z-index: 1900; 6 | 7 | background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#E9E9E9), to(#CFCFCF)); 8 | display: -webkit-box; 9 | -webkit-box-orient: vertical; 10 | padding: 10px; 11 | border-radius: 10px; 12 | border: 1px solid gray; 13 | -webkit-box-shadow: rgb(40,40,40) 0px 0px 50px; 14 | 15 | font-size: 11px; 16 | font-family: 'Lucida Grande', sans-serif; 17 | } 18 | 19 | .go-to-line-dialog input { 20 | font-size: 11px; 21 | } 22 | 23 | .go-to-line-dialog button { 24 | font-size: 11px; 25 | color: rgb(6, 6, 6); 26 | border: 1px solid rgb(165, 165, 165); 27 | background-color: rgb(237, 237, 237); 28 | background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(252, 252, 252)), to(rgb(223, 223, 223))); 29 | -webkit-border-radius: 12px; 30 | -webkit-appearance: none; 31 | 32 | padding: 3px 20px; 33 | margin: 0 0 0 10px; 34 | } 35 | 36 | .go-to-line-dialog button:active { 37 | background-color: rgb(215, 215, 215); 38 | background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(194, 194, 194)), to(rgb(239, 239, 239))); 39 | } 40 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/nls/English.lproj/localizedStrings.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/nls/English.lproj/localizedStrings.js -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/web-inspector-API.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | eval(window.top.installWebInspectorAPIsource()) 21 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/weinre/Images/remoteIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/client/weinre/Images/remoteIcon.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/weinre/browser-support-check.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | var iSupported = false; 20 | 21 | if (navigator.userAgent.match(/webkit/i)) { 22 | iSupported = true; 23 | } else if (navigator.userAgent.match(/MSIE/i)) { 24 | var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 25 | iSupported = re.exec(navigator.userAgent) !== null && parseFloat(RegExp.$1) >= 10; 26 | } else if (navigator.userAgent.match(/Firefox/i)) { 27 | var re = new RegExp("Firefox/([0-9]{1,}[\.0-9]{0,})"); 28 | iSupported = re.exec(navigator.userAgent) !== null && parseFloat(RegExp.$1) >= 18; 29 | } 30 | 31 | if (!iSupported) { 32 | alert("It seems your browser or its version is not supported. This web page is designed to work in webkit-based browsers, latest InternetExplorer and Firefox") 33 | } 34 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/client/weinre/client.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | .toolbar-item.remote .toolbar-icon { 21 | background-image: url(../../images/weinre-icon-32x32.png); 22 | } 23 | 24 | .monospace { 25 | font-size: 12px !important; 26 | font-family: Monaco, Consolas, Lucida Console, dejavu sans mono, monospace; 27 | } 28 | 29 | .source-code { 30 | font-size: 12px !important; 31 | font-family: Monaco, Consolas, Lucida Console, dejavu sans mono, monospace; 32 | } 33 | 34 | .panel.resources .cookie-storage-tree-item { 35 | display: none; 36 | } 37 | 38 | .panel.resources .frame-storage-tree-item { 39 | display: none; 40 | } 41 | 42 | .panel.resources .application-cache-storage-tree-item { 43 | display: none; 44 | } 45 | 46 | .panel.timeline .resources-size-graph-sidebar-item { 47 | display: none; 48 | } 49 | 50 | #main-status-bar .timeline-category-rendering { 51 | display: none; 52 | } 53 | 54 | #search { 55 | display: none; 56 | } 57 | 58 | #search-toolbar-label { 59 | display: none; 60 | } 61 | 62 | .weinre-connector-item { 63 | font-size: 140%; 64 | } 65 | 66 | .weinre-connector-item.target { 67 | text-decoration: underline; 68 | color: blue; 69 | } 70 | 71 | .weinre-connector-item.target.connected { 72 | color: #0D0; 73 | } 74 | 75 | .weinre-connector-item.closed { 76 | color: #B00; 77 | } 78 | 79 | .weinre-connector-item.current { 80 | font-weight: bold; 81 | } 82 | 83 | .weinre-connector-item.connected { 84 | color: #0D0; 85 | } 86 | 87 | .weinre-connector-item.error { 88 | color: #A00; 89 | font-weight: bold; 90 | font-size: 200% 91 | } 92 | 93 | .weinreServerProperties { 94 | margin-left: 2em; 95 | } 96 | 97 | .weinre-normal-text-size { 98 | font-size: 140%; 99 | } 100 | 101 | .weinre-fadeable { 102 | opacity: 1; 103 | -webkit-transition: opacity 5s linear; 104 | } 105 | 106 | .weinre-fade { 107 | opacity: 0; 108 | } 109 | 110 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/demo/split.html: -------------------------------------------------------------------------------- 1 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/demo/weinre-demo-min.html: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | weinre minified demo 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

this is a green h1

35 |

this is a blue h1

36 |

this is a red h1

37 |

Some text, some italic text, and some bold text. 38 | 39 |


40 |

41 |

42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/demo/weinre-demo-strict.html: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | 25 | weinre non-minified strict demo 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |

this is a green h1

36 |

this is a blue h1

37 |

this is a red h1

38 |

Some text, some italic text, and some bold text. 39 | 40 |


41 |

42 |

43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/demo/weinre-demo.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | h1 { 21 | color: green; 22 | margin: 0.5em; 23 | margin-left: 1.0em; 24 | padding: 0.4em; 25 | padding-left : 0.8em; 26 | } 27 | 28 | .blue { 29 | color: blue; 30 | } 31 | 32 | #metrics { 33 | margin: 1em; 34 | border: 0.2em solid; 35 | padding: 3em; 36 | } 37 | 38 | #button { 39 | font-size: 150%; 40 | } -------------------------------------------------------------------------------- /buildin_modules/weinre/web/demo/weinre-demo.html: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 24 | weinre non-minified demo 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |

this is a green h1

35 |

this is a blue h1

36 |

this is a red h1

37 |

Some text, some italic text, and some bold text. 38 | 39 |


40 |

41 |

42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/build-info.txt: -------------------------------------------------------------------------------- 1 | weinre build 2.0.0-pre-IXE4AG4O by wuchangming 2 | git: 746a5817d014acdda673115e2ee458ec6c9b7673 fix(console): fixed chrome bug, add ArrowUp, ArrowDown, ArrowRight 3 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/circled-a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/circled-a.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/circled-b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/circled-b.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/circled-c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/circled-c.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/circled-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/circled-d.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/circled-e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/circled-e.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/circled-f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/circled-f.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/circled-g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/circled-g.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/circled-h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/circled-h.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/circled-i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/circled-i.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/circled-j.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/circled-j.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/panel-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/panel-console.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/panel-elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/panel-elements.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/panel-network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/panel-network.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/panel-remote-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/panel-remote-console.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/panel-remote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/panel-remote.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/panel-resources.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/panel-resources.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/panel-timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/panel-timeline.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/server-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/server-home.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/weinre-demo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/weinre-demo.jpg -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/weinre-icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/weinre-icon-128x128.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/weinre-icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/weinre-icon-512x512.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/images/weinre-icon-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/buildin_modules/weinre/web/doc/images/weinre-icon-64x64.png -------------------------------------------------------------------------------- /buildin_modules/weinre/web/doc/scripts/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | //----------------------------------------------------------------------------- 21 | function main() { 22 | // window.addEventListener("load", addClickToExpandImageHandlers, false); 23 | } 24 | 25 | //----------------------------------------------------------------------------- 26 | function addClickToExpandImageHandlers() { 27 | var elements = document.getElementsByTagName("img") 28 | for (var i=0; i 2 | 3 | 21 | 22 | 23 | 24 | 25 | weinre interfaces 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |

weinre interfaces

43 | 44 |
45 | show: 46 | / 47 | / 48 | 49 |
50 | 51 |
52 |
53 |

Interfaces

54 |
    55 |
  • interface 1 56 |
  • interface 2 57 |
  • interface 3 58 |
59 |
60 | 61 |
62 |

[ nothing selected ]

63 |
64 | [ nothing selected ] 65 |
66 |
67 |
68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/tests/index.html: -------------------------------------------------------------------------------- 1 | 19 | 20 | 21 | 22 | weinre.web/tests 23 | 24 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/versions.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | if (typeof Weinre == "undefined") Weinre = {}; 21 | 22 | Weinre.Versions = { 23 | weinre: "2.0.0-pre-IXE4AG4O", 24 | build: "IXE4AG4O", 25 | }; 26 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/client/DOMTemplates.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/client/DOMTemplates", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Ex, addToElement_Node, addToElement_Object, addToElement_String, elementName, elementNames, getElementFunction, _i, _len; 3 | 4 | Ex = require('../common/Ex'); 5 | 6 | getElementFunction = function(elementName) { 7 | return function() { 8 | var args, argument, element, _i, _len; 9 | element = document.createElement(elementName); 10 | args = [].slice.call(arguments); 11 | for (_i = 0, _len = args.length; _i < _len; _i++) { 12 | argument = args[_i]; 13 | if (argument.nodeType) { 14 | addToElement_Node(element, argument); 15 | } else if (typeof argument === "string") { 16 | addToElement_String(element, argument); 17 | } else if (typeof argument === "object") { 18 | addToElement_Object(element, argument); 19 | } else { 20 | throw new Ex(arguments, ("invalid value passed to DOMTemplates." + elementName + "(): ") + argument); 21 | } 22 | } 23 | return element; 24 | }; 25 | }; 26 | 27 | addToElement_String = function(element, aString) { 28 | return addToElement_Node(element, document.createTextNode(aString)); 29 | }; 30 | 31 | addToElement_Node = function(element, anElement) { 32 | return element.appendChild(anElement); 33 | }; 34 | 35 | addToElement_Object = function(element, anObject) { 36 | var actualKey, key, val, _results; 37 | _results = []; 38 | for (key in anObject) { 39 | if (!anObject.hasOwnProperty(key)) { 40 | continue; 41 | } 42 | val = anObject[key]; 43 | if (key.substr(0, 1) === "$") { 44 | actualKey = key.substr(1); 45 | _results.push(element[actualKey] = val); 46 | } else { 47 | _results.push(element.setAttribute(key, val)); 48 | } 49 | } 50 | return _results; 51 | }; 52 | 53 | elementNames = 'H1 H2 H3 H4 H5 H6 UL OL DL LI DT DD SPAN DIV A B I TT P HR BR PRE IMG CANVAS TABLE TR TD FORM INPUT BUTTON SELECT OPTGROUP OPTION TEXTAREA'; 54 | 55 | elementNames = elementNames.split(' '); 56 | 57 | for (_i = 0, _len = elementNames.length; _i < _len; _i++) { 58 | elementName = elementNames[_i]; 59 | exports[elementName] = getElementFunction(elementName); 60 | exports[elementName].name = "" + elementName; 61 | exports[elementName].displayName = "" + elementName; 62 | exports[elementName].signature = "DOMTemplates." + elementName; 63 | } 64 | 65 | }); 66 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/client/ExtensionRegistryImpl.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/client/ExtensionRegistryImpl", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Binding, Ex, ExtensionRegistryImpl, Weinre, extensions; 3 | 4 | Ex = require('../common/Ex'); 5 | 6 | Binding = require('../common/Binding'); 7 | 8 | Weinre = require('../common/Weinre'); 9 | 10 | extensions = []; 11 | 12 | module.exports = ExtensionRegistryImpl = (function() { 13 | function ExtensionRegistryImpl() {} 14 | 15 | ExtensionRegistryImpl.prototype.getExtensionsAsync = function() { 16 | if (extensions.length) { 17 | return; 18 | } 19 | return Weinre.WeinreClientCommands.getExtensions(Binding(this, this._cb_getExtensions)); 20 | }; 21 | 22 | ExtensionRegistryImpl.prototype._cb_getExtensions = function(extensionsResult) { 23 | extensions = extensionsResult; 24 | return this._installExtensions(); 25 | }; 26 | 27 | ExtensionRegistryImpl.prototype._installExtensions = function() { 28 | return WebInspector.addExtensions(extensions); 29 | }; 30 | 31 | return ExtensionRegistryImpl; 32 | 33 | })(); 34 | 35 | require("../common/MethodNamer").setNamesForClass(module.exports); 36 | 37 | }); 38 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/client/InspectorBackendImpl.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/client/InspectorBackendImpl", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Ex, IDLTools, InspectorBackendImpl, MessageDispatcher, Weinre; 3 | 4 | Ex = require('../common/Ex'); 5 | 6 | IDLTools = require('../common/IDLTools'); 7 | 8 | MessageDispatcher = require('../common/MessageDispatcher'); 9 | 10 | Weinre = require('../common/Weinre'); 11 | 12 | module.exports = InspectorBackendImpl = (function() { 13 | function InspectorBackendImpl() { 14 | this.registeredDomainDispatchers = {}; 15 | MessageDispatcher.setInspectorBackend(this); 16 | } 17 | 18 | InspectorBackendImpl.setupProxies = function() { 19 | var intf, intfName, intfNames, method, proxy, proxyMethod, _i, _len, _results; 20 | intfNames = ["ApplicationCache", "BrowserDebugger", "CSS", "Console", "DOM", "DOMStorage", "Database", "Debugger", "InjectedScript", "Inspector", "Network", "Profiler", "Runtime"]; 21 | _results = []; 22 | for (_i = 0, _len = intfNames.length; _i < _len; _i++) { 23 | intfName = intfNames[_i]; 24 | proxy = Weinre.messageDispatcher.createProxy(intfName); 25 | intf = IDLTools.getIDL(intfName); 26 | if (!intf) { 27 | throw new Ex(arguments, "interface not registered: '" + intfName + "'"); 28 | } 29 | _results.push((function() { 30 | var _j, _len1, _ref, _results1; 31 | _ref = intf.methods; 32 | _results1 = []; 33 | for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) { 34 | method = _ref[_j]; 35 | proxyMethod = InspectorBackendImpl.getProxyMethod(proxy, method); 36 | _results1.push(InspectorBackendImpl.prototype[method.name] = proxyMethod); 37 | } 38 | return _results1; 39 | })()); 40 | } 41 | return _results; 42 | }; 43 | 44 | InspectorBackendImpl.getProxyMethod = function(proxy, method) { 45 | return function() { 46 | return proxy[method.name].apply(proxy, arguments); 47 | }; 48 | }; 49 | 50 | InspectorBackendImpl.prototype.registerDomainDispatcher = function(name, intf) { 51 | return this.registeredDomainDispatchers[name] = intf; 52 | }; 53 | 54 | InspectorBackendImpl.prototype.getRegisteredDomainDispatcher = function(name) { 55 | if (!this.registeredDomainDispatchers.hasOwnProperty(name)) { 56 | return null; 57 | } 58 | return this.registeredDomainDispatchers[name]; 59 | }; 60 | 61 | return InspectorBackendImpl; 62 | 63 | })(); 64 | 65 | require("../common/MethodNamer").setNamesForClass(module.exports); 66 | 67 | }); 68 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/client/WeinreExtraTargetEventsImpl.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/client/WeinreExtraTargetEventsImpl", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var WeinreExtraTargetEventsImpl; 3 | 4 | module.exports = WeinreExtraTargetEventsImpl = (function() { 5 | function WeinreExtraTargetEventsImpl() {} 6 | 7 | WeinreExtraTargetEventsImpl.prototype.databaseOpened = function(databaseRecord) { 8 | return WeinreExtraTargetEventsImpl.addDatabaseRecords([databaseRecord]); 9 | }; 10 | 11 | WeinreExtraTargetEventsImpl.addDatabaseRecords = function(databaseRecords) { 12 | var database, databaseRecord, existingDb, existingDbNames, existingDbs, _i, _j, _len, _len1, _results; 13 | if (!WebInspector.panels) { 14 | return; 15 | } 16 | if (!WebInspector.panels.resources) { 17 | return; 18 | } 19 | if (!WebInspector.panels.resources._databases) { 20 | return; 21 | } 22 | existingDbs = WebInspector.panels.resources._databases; 23 | existingDbNames = {}; 24 | for (_i = 0, _len = existingDbs.length; _i < _len; _i++) { 25 | existingDb = existingDbs[_i]; 26 | existingDbNames[existingDb.name] = existingDb; 27 | } 28 | _results = []; 29 | for (_j = 0, _len1 = databaseRecords.length; _j < _len1; _j++) { 30 | databaseRecord = databaseRecords[_j]; 31 | if (existingDbNames[databaseRecord.name]) { 32 | continue; 33 | } 34 | database = new WebInspector.Database(databaseRecord.id, databaseRecord.domain, databaseRecord.name, databaseRecord.version); 35 | _results.push(WebInspector.panels.resources.addDatabase(database)); 36 | } 37 | return _results; 38 | }; 39 | 40 | return WeinreExtraTargetEventsImpl; 41 | 42 | })(); 43 | 44 | require("../common/MethodNamer").setNamesForClass(module.exports); 45 | 46 | }); 47 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/common/Binding.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/common/Binding", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Binding, Ex; 3 | 4 | Ex = require('./Ex'); 5 | 6 | module.exports = Binding = (function() { 7 | function Binding(receiver, method) { 8 | if (!receiver) { 9 | throw new Ex(arguments, "receiver argument for Binding constructor was null"); 10 | } 11 | if (typeof method === "string") { 12 | method = receiver[method]; 13 | } 14 | if (typeof method === !"function") { 15 | throw new Ex(arguments, "method argument didn't specify a function"); 16 | } 17 | return function() { 18 | return method.apply(receiver, [].slice.call(arguments)); 19 | }; 20 | } 21 | 22 | return Binding; 23 | 24 | })(); 25 | 26 | require("../common/MethodNamer").setNamesForClass(module.exports); 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/common/Callback.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/common/Callback", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Callback, CallbackIndex, CallbackTable, ConnectorChannel, Ex; 3 | 4 | Ex = require('./Ex'); 5 | 6 | CallbackTable = {}; 7 | 8 | CallbackIndex = 1; 9 | 10 | ConnectorChannel = "???"; 11 | 12 | module.exports = Callback = (function() { 13 | function Callback() { 14 | throw new Ex(arguments, "this class is not intended to be instantiated"); 15 | } 16 | 17 | Callback.setConnectorChannel = function(connectorChannel) { 18 | return ConnectorChannel = "" + connectorChannel; 19 | }; 20 | 21 | Callback.register = function(callback) { 22 | var data, func, index, receiver; 23 | if (typeof callback === "function") { 24 | callback = [null, callback]; 25 | } 26 | if (typeof callback.slice !== "function") { 27 | throw new Ex(arguments, "callback must be an array or function"); 28 | } 29 | receiver = callback[0]; 30 | func = callback[1]; 31 | data = callback.slice(2); 32 | if (typeof func === "string") { 33 | func = receiver[func]; 34 | } 35 | if (typeof func !== "function") { 36 | throw new Ex(arguments, "callback function was null or not found"); 37 | } 38 | index = ConnectorChannel + "::" + CallbackIndex; 39 | CallbackIndex++; 40 | if (CallbackIndex >= 65536 * 65536) { 41 | CallbackIndex = 1; 42 | } 43 | CallbackTable[index] = [receiver, func, data]; 44 | return index; 45 | }; 46 | 47 | Callback.deregister = function(index) { 48 | return delete CallbackTable[index]; 49 | }; 50 | 51 | Callback.invoke = function(index, args) { 52 | var callback, e, func, funcName, receiver; 53 | callback = CallbackTable[index]; 54 | if (!callback) { 55 | throw new Ex(arguments, "callback " + index + " not registered or already invoked"); 56 | } 57 | receiver = callback[0]; 58 | func = callback[1]; 59 | args = callback[2].concat(args); 60 | try { 61 | return func.apply(receiver, args); 62 | } catch (_error) { 63 | e = _error; 64 | funcName = func.name || func.signature; 65 | if (!funcName) { 66 | funcName = ""; 67 | } 68 | return require("./Weinre").logError(arguments.callee.signature + (" exception invoking callback: " + funcName + "(" + (args.join(',')) + "): ") + e); 69 | } finally { 70 | Callback.deregister(index); 71 | } 72 | }; 73 | 74 | return Callback; 75 | 76 | })(); 77 | 78 | require("../common/MethodNamer").setNamesForClass(module.exports); 79 | 80 | }); 81 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/common/Debug.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/common/Debug", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Debug; 3 | 4 | module.exports = new (Debug = (function() { 5 | function Debug() { 6 | this._printCalledArgs = {}; 7 | } 8 | 9 | Debug.prototype.log = function(message) { 10 | var console; 11 | console = window.console.__original || window.console; 12 | return console.log("" + (this.timeStamp()) + ": " + message); 13 | }; 14 | 15 | Debug.prototype.logCall = function(context, intf, method, args, message) { 16 | var printArgs, signature; 17 | if (message) { 18 | message = ": " + message; 19 | } else { 20 | message = ""; 21 | } 22 | signature = this.signature(intf, method); 23 | printArgs = this._printCalledArgs[signature]; 24 | if (printArgs) { 25 | args = JSON.stringify(args, null, 4); 26 | } else { 27 | args = ""; 28 | } 29 | return this.log("" + context + " " + signature + "(" + args + ")" + message); 30 | }; 31 | 32 | Debug.prototype.logCallArgs = function(intf, method) { 33 | return this._printCalledArgs[this.signature(intf, method)] = true; 34 | }; 35 | 36 | Debug.prototype.signature = function(intf, method) { 37 | return "" + intf + "." + method; 38 | }; 39 | 40 | Debug.prototype.timeStamp = function() { 41 | var date, mins, secs; 42 | date = new Date(); 43 | mins = "" + (date.getMinutes()); 44 | secs = "" + (date.getSeconds()); 45 | if (mins.length === 1) { 46 | mins = "0" + mins; 47 | } 48 | if (secs.length === 1) { 49 | secs = "0" + secs; 50 | } 51 | return "" + mins + ":" + secs; 52 | }; 53 | 54 | return Debug; 55 | 56 | })()); 57 | 58 | }); 59 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/common/EventListeners.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/common/EventListeners", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var EventListeners, Ex, Weinre; 3 | 4 | Ex = require('./Ex'); 5 | 6 | Weinre = require('./Weinre'); 7 | 8 | module.exports = EventListeners = (function() { 9 | function EventListeners() { 10 | this.listeners = []; 11 | } 12 | 13 | EventListeners.prototype.add = function(listener, useCapture) { 14 | return this.listeners.push([listener, useCapture]); 15 | }; 16 | 17 | EventListeners.prototype.remove = function(listener, useCapture) { 18 | var listeners, _i, _len, _listener; 19 | listeners = this.listeners.slice(); 20 | for (_i = 0, _len = listeners.length; _i < _len; _i++) { 21 | _listener = listeners[_i]; 22 | if (_listener[0] !== listener) { 23 | continue; 24 | } 25 | if (_listener[1] !== useCapture) { 26 | continue; 27 | } 28 | this._listeners.splice(i, 1); 29 | return; 30 | } 31 | }; 32 | 33 | EventListeners.prototype.fire = function(event) { 34 | var e, listener, listeners, _i, _len, _results; 35 | listeners = this.listeners.slice(); 36 | _results = []; 37 | for (_i = 0, _len = listeners.length; _i < _len; _i++) { 38 | listener = listeners[_i]; 39 | listener = listener[0]; 40 | if (typeof listener === "function") { 41 | try { 42 | listener.call(null, event); 43 | } catch (_error) { 44 | e = _error; 45 | Weinre.logError("" + arguments.callee.name + " invocation exception: " + e); 46 | } 47 | continue; 48 | } 49 | if (typeof (listener != null ? listener.handleEvent : void 0) !== "function") { 50 | throw new Ex(arguments, "listener does not implement the handleEvent() method"); 51 | } 52 | try { 53 | _results.push(listener.handleEvent.call(listener, event)); 54 | } catch (_error) { 55 | e = _error; 56 | _results.push(Weinre.logError("" + arguments.callee.name + " invocation exception: " + e)); 57 | } 58 | } 59 | return _results; 60 | }; 61 | 62 | return EventListeners; 63 | 64 | })(); 65 | 66 | require("../common/MethodNamer").setNamesForClass(module.exports); 67 | 68 | }); 69 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/common/Ex.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/common/Ex", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Ex, StackTrace, prefix; 3 | 4 | StackTrace = require('./StackTrace'); 5 | 6 | module.exports = Ex = (function() { 7 | Ex.catching = function(func) { 8 | var e; 9 | try { 10 | return func.call(this); 11 | } catch (_error) { 12 | e = _error; 13 | console.log("runtime error: " + e); 14 | return StackTrace.dump(arguments); 15 | } 16 | }; 17 | 18 | function Ex(args, message) { 19 | if (!args || !args.callee) { 20 | throw Ex(arguments, "first parameter must be an Arguments object"); 21 | } 22 | StackTrace.dump(args); 23 | if (message instanceof Error) { 24 | message = "threw error: " + message; 25 | } 26 | message = prefix(args, message); 27 | message; 28 | } 29 | 30 | return Ex; 31 | 32 | })(); 33 | 34 | prefix = function(args, string) { 35 | if (args.callee.signature) { 36 | return args.callee.signature + ": " + string; 37 | } 38 | if (args.callee.displayName) { 39 | return args.callee.displayName + ": " + string; 40 | } 41 | if (args.callee.name) { 42 | return args.callee.name + ": " + string; 43 | } 44 | return "" + ": " + string; 45 | }; 46 | 47 | require("../common/MethodNamer").setNamesForClass(module.exports); 48 | 49 | }); 50 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/common/IDGenerator.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/common/IDGenerator", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var IDGenerator, idName, nextId, nextIdValue; 3 | 4 | nextIdValue = 1; 5 | 6 | idName = "__weinre__id"; 7 | 8 | module.exports = IDGenerator = (function() { 9 | function IDGenerator() {} 10 | 11 | IDGenerator.checkId = function(object) { 12 | return object[idName]; 13 | }; 14 | 15 | IDGenerator.getId = function(object, map) { 16 | var id; 17 | id = IDGenerator.checkId(object); 18 | if (!id) { 19 | id = nextId(); 20 | object[idName] = id; 21 | } 22 | if (map) { 23 | map[id] = object; 24 | } 25 | return id; 26 | }; 27 | 28 | IDGenerator.next = function() { 29 | return nextId(); 30 | }; 31 | 32 | return IDGenerator; 33 | 34 | })(); 35 | 36 | nextId = function() { 37 | var result; 38 | result = nextIdValue; 39 | nextIdValue += 1; 40 | return result; 41 | }; 42 | 43 | require("../common/MethodNamer").setNamesForClass(module.exports); 44 | 45 | }); 46 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/common/MethodNamer.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/common/MethodNamer", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var MethodNamer, 3 | __hasProp = {}.hasOwnProperty; 4 | 5 | module.exports = MethodNamer = (function() { 6 | function MethodNamer() {} 7 | 8 | MethodNamer.setNamesForClass = function(aClass) { 9 | var key, val, _ref, _results; 10 | for (key in aClass) { 11 | if (!__hasProp.call(aClass, key)) continue; 12 | val = aClass[key]; 13 | if (typeof val === "function") { 14 | val.signature = "" + aClass.name + "::" + key; 15 | val.displayName = key; 16 | val.name = key; 17 | } 18 | } 19 | _ref = aClass.prototype; 20 | _results = []; 21 | for (key in _ref) { 22 | if (!__hasProp.call(_ref, key)) continue; 23 | val = _ref[key]; 24 | if (typeof val === "function") { 25 | val.signature = "" + aClass.name + "." + key; 26 | val.displayName = key; 27 | _results.push(val.name = key); 28 | } else { 29 | _results.push(void 0); 30 | } 31 | } 32 | return _results; 33 | }; 34 | 35 | return MethodNamer; 36 | 37 | })(); 38 | 39 | MethodNamer.setNamesForClass(module.exports); 40 | 41 | }); 42 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/common/StackTrace.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/common/StackTrace", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var StackTrace, getTrace; 3 | 4 | module.exports = StackTrace = (function() { 5 | function StackTrace(args) { 6 | if (!args || !args.callee) { 7 | throw Error("first parameter to " + arguments.callee.signature + " must be an Arguments object"); 8 | } 9 | this.trace = getTrace(args); 10 | } 11 | 12 | StackTrace.dump = function(args) { 13 | var stackTrace; 14 | args = args || arguments; 15 | stackTrace = new StackTrace(args); 16 | return stackTrace.dump(); 17 | }; 18 | 19 | StackTrace.prototype.dump = function() { 20 | var frame, _i, _len, _ref, _results; 21 | console.log("StackTrace:"); 22 | _ref = this.trace; 23 | _results = []; 24 | for (_i = 0, _len = _ref.length; _i < _len; _i++) { 25 | frame = _ref[_i]; 26 | _results.push(console.log(" " + frame)); 27 | } 28 | return _results; 29 | }; 30 | 31 | return StackTrace; 32 | 33 | })(); 34 | 35 | getTrace = function(args) { 36 | var err, func, result, visitedFuncs; 37 | result = []; 38 | visitedFuncs = []; 39 | func = args.callee; 40 | while (func) { 41 | if (func.signature) { 42 | result.push(func.signature); 43 | } else if (func.displayName) { 44 | result.push(func.displayName); 45 | } else if (func.name) { 46 | result.push(func.name); 47 | } else { 48 | result.push(""); 49 | } 50 | if (-1 !== visitedFuncs.indexOf(func)) { 51 | result.push("... recursion"); 52 | return result; 53 | } 54 | visitedFuncs.push(func); 55 | try { 56 | func = func.caller; 57 | } catch (_error) { 58 | err = _error; 59 | func = null; 60 | } 61 | } 62 | return result; 63 | }; 64 | 65 | require("../common/MethodNamer").setNamesForClass(module.exports); 66 | 67 | }); 68 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/common/Weinre.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/common/Weinre", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var ConsoleLogger, Ex, IDLTools, StackTrace, Weinre, consoleLogger, getLogger, logger, _notImplemented, _showNotImplemented; 3 | 4 | Ex = require('./Ex'); 5 | 6 | IDLTools = require('./IDLTools'); 7 | 8 | StackTrace = require('./StackTrace'); 9 | 10 | _notImplemented = {}; 11 | 12 | _showNotImplemented = false; 13 | 14 | logger = null; 15 | 16 | module.exports = Weinre = (function() { 17 | function Weinre() { 18 | throw new Ex(arguments, "this class is not intended to be instantiated"); 19 | } 20 | 21 | Weinre.addIDLs = function(idls) { 22 | return IDLTools.addIDLs(idls); 23 | }; 24 | 25 | Weinre.deprecated = function() { 26 | return StackTrace.dump(arguments); 27 | }; 28 | 29 | Weinre.notImplemented = function(thing) { 30 | if (_notImplemented[thing]) { 31 | return; 32 | } 33 | _notImplemented[thing] = true; 34 | if (!_showNotImplemented) { 35 | return; 36 | } 37 | return Weinre.logWarning(thing + " not implemented"); 38 | }; 39 | 40 | Weinre.showNotImplemented = function() { 41 | var key, _results; 42 | _showNotImplemented = true; 43 | _results = []; 44 | for (key in _notImplemented) { 45 | _results.push(Weinre.logWarning(key + " not implemented")); 46 | } 47 | return _results; 48 | }; 49 | 50 | Weinre.logError = function(message) { 51 | return getLogger().logError(message); 52 | }; 53 | 54 | Weinre.logWarning = function(message) { 55 | return getLogger().logWarning(message); 56 | }; 57 | 58 | Weinre.logInfo = function(message) { 59 | return getLogger().logInfo(message); 60 | }; 61 | 62 | Weinre.logDebug = function(message) { 63 | return getLogger().logDebug(message); 64 | }; 65 | 66 | return Weinre; 67 | 68 | })(); 69 | 70 | ConsoleLogger = (function() { 71 | function ConsoleLogger() {} 72 | 73 | ConsoleLogger.prototype.logError = function(message) { 74 | return console.log("error: " + message); 75 | }; 76 | 77 | ConsoleLogger.prototype.logWarning = function(message) { 78 | return console.log("warning: " + message); 79 | }; 80 | 81 | ConsoleLogger.prototype.logInfo = function(message) { 82 | return console.log("info: " + message); 83 | }; 84 | 85 | ConsoleLogger.prototype.logDebug = function(message) { 86 | return console.log("debug: " + message); 87 | }; 88 | 89 | return ConsoleLogger; 90 | 91 | })(); 92 | 93 | consoleLogger = new ConsoleLogger(); 94 | 95 | getLogger = function() { 96 | if (logger) { 97 | return logger; 98 | } 99 | if (Weinre.client) { 100 | logger = Weinre.WeinreClientCommands; 101 | return logger; 102 | } 103 | if (Weinre.target) { 104 | logger = Weinre.WeinreTargetCommands; 105 | return logger; 106 | } 107 | return consoleLogger; 108 | }; 109 | 110 | require("../common/MethodNamer").setNamesForClass(module.exports); 111 | 112 | }); 113 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/target/BrowserHacks.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/target/BrowserHacks", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var BrowserHacks; 3 | 4 | BrowserHacks = function() { 5 | if (typeof document.addEventListener === "undefined") { 6 | alert("Oops. It seems the page runs in compatibility mode. Please fix it and try again."); 7 | return; 8 | } 9 | if (typeof window.Element === "undefined") { 10 | window.Element = function() {}; 11 | } 12 | if (typeof window.Node === "undefined") { 13 | window.Node = function() {}; 14 | } 15 | if (!Object.getPrototypeOf) { 16 | Object.getPrototypeOf = function(object) { 17 | if (!object.__proto__) { 18 | throw new Error("This vm does not support __proto__ and getPrototypeOf. Script requires any of them to operate correctly."); 19 | } 20 | return object.__proto__; 21 | }; 22 | } 23 | }; 24 | 25 | BrowserHacks(); 26 | 27 | }); 28 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/target/CheckForProblems.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/target/CheckForProblems", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var CheckForProblems, checkForOldPrototypeVersion; 3 | 4 | module.exports = CheckForProblems = (function() { 5 | function CheckForProblems() {} 6 | 7 | CheckForProblems.check = function() { 8 | return checkForOldPrototypeVersion(); 9 | }; 10 | 11 | return CheckForProblems; 12 | 13 | })(); 14 | 15 | checkForOldPrototypeVersion = function() { 16 | var badVersion; 17 | badVersion = false; 18 | if (typeof Prototype === "undefined") { 19 | return; 20 | } 21 | if (!Prototype.Version) { 22 | return; 23 | } 24 | if (Prototype.Version.match(/^1\.5.*/)) { 25 | badVersion = true; 26 | } 27 | if (Prototype.Version.match(/^1\.6.*/)) { 28 | badVersion = true; 29 | } 30 | if (badVersion) { 31 | return alert("Sorry, weinre is not support in versions of Prototype earlier than 1.7"); 32 | } 33 | }; 34 | 35 | require("../common/MethodNamer").setNamesForClass(module.exports); 36 | 37 | }); 38 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/target/HookSites.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/target/HookSites", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var HookLib, HookSites; 3 | 4 | HookLib = require('../common/HookLib'); 5 | 6 | module.exports = HookSites = (function() { 7 | function HookSites() {} 8 | 9 | return HookSites; 10 | 11 | })(); 12 | 13 | HookSites.window_clearInterval = HookLib.addHookSite(window, "clearInterval"); 14 | 15 | HookSites.window_clearTimeout = HookLib.addHookSite(window, "clearTimeout"); 16 | 17 | HookSites.window_setInterval = HookLib.addHookSite(window, "setInterval"); 18 | 19 | HookSites.window_setTimeout = HookLib.addHookSite(window, "setTimeout"); 20 | 21 | HookSites.window_addEventListener = HookLib.addHookSite(window, "addEventListener"); 22 | 23 | HookSites.Node_addEventListener = HookLib.addHookSite(Node.prototype, "addEventListener"); 24 | 25 | HookSites.XMLHttpRequest_open = HookLib.addHookSite(XMLHttpRequest.prototype, "open"); 26 | 27 | HookSites.XMLHttpRequest_send = HookLib.addHookSite(XMLHttpRequest.prototype, "send"); 28 | 29 | HookSites.XMLHttpRequest_addEventListener = HookLib.addHookSite(XMLHttpRequest.prototype, "addEventListener"); 30 | 31 | if (window.openDatabase) { 32 | HookSites.window_openDatabase = HookLib.addHookSite(window, "openDatabase"); 33 | } 34 | 35 | if (window.localStorage) { 36 | HookSites.LocalStorage_setItem = HookLib.addHookSite(window.localStorage, "setItem"); 37 | HookSites.LocalStorage_removeItem = HookLib.addHookSite(window.localStorage, "removeItem"); 38 | HookSites.LocalStorage_clear = HookLib.addHookSite(window.localStorage, "clear"); 39 | } 40 | 41 | if (window.sessionStorage) { 42 | HookSites.SessionStorage_setItem = HookLib.addHookSite(window.sessionStorage, "setItem"); 43 | HookSites.SessionStorage_removeItem = HookLib.addHookSite(window.sessionStorage, "removeItem"); 44 | HookSites.SessionStorage_clear = HookLib.addHookSite(window.sessionStorage, "clear"); 45 | } 46 | 47 | require("../common/MethodNamer").setNamesForClass(module.exports); 48 | 49 | }); 50 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/target/InjectedScriptHostImpl.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/target/InjectedScriptHostImpl", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var InjectedScriptHostImpl, Weinre; 3 | 4 | Weinre = require('../common/Weinre'); 5 | 6 | module.exports = InjectedScriptHostImpl = (function() { 7 | function InjectedScriptHostImpl() {} 8 | 9 | InjectedScriptHostImpl.prototype.clearConsoleMessages = function(callback) { 10 | if (callback) { 11 | return Weinre.WeinreTargetCommands.sendClientCallback(callback); 12 | } 13 | }; 14 | 15 | InjectedScriptHostImpl.prototype.nodeForId = function(nodeId, callback) { 16 | return Weinre.nodeStore.getNode(nodeId); 17 | }; 18 | 19 | InjectedScriptHostImpl.prototype.pushNodePathToFrontend = function(node, withChildren, selectInUI, callback) { 20 | var children, nodeId; 21 | nodeId = Weinre.nodeStore.getNodeId(node); 22 | children = Weinre.nodeStore.serializeNode(node, 1); 23 | Weinre.wi.DOMNotify.setChildNodes(nodeId, children); 24 | if (callback) { 25 | Weinre.WeinreTargetCommands.sendClientCallback(callback); 26 | } 27 | if (selectInUI) { 28 | return Weinre.wi.InspectorNotify.updateFocusedNode(nodeId); 29 | } 30 | }; 31 | 32 | InjectedScriptHostImpl.prototype.inspectedNode = function(num, callback) { 33 | var nodeId; 34 | nodeId = Weinre.nodeStore.getInspectedNode(num); 35 | return nodeId; 36 | }; 37 | 38 | InjectedScriptHostImpl.prototype.internalConstructorName = function(object) { 39 | var ctor, ctorName, match, pattern; 40 | ctor = object.constructor; 41 | ctorName = ctor.fullClassName || ctor.displayName || ctor.name; 42 | if (ctorName && (ctorName !== "Object")) { 43 | return ctorName; 44 | } 45 | pattern = /\[object (.*)\]/; 46 | match = pattern.exec(object.toString()); 47 | if (match) { 48 | return match[1]; 49 | } 50 | return "Object"; 51 | }; 52 | 53 | return InjectedScriptHostImpl; 54 | 55 | })(); 56 | 57 | require("../common/MethodNamer").setNamesForClass(module.exports); 58 | 59 | }); 60 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/target/SqlStepper.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/target/SqlStepper", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Binding, SqlStepper, executeSql, ourErrorCallback, runStep; 3 | 4 | Binding = require('../common/Binding'); 5 | 6 | module.exports = SqlStepper = (function() { 7 | function SqlStepper(steps) { 8 | var context; 9 | if (!(this instanceof SqlStepper)) { 10 | return new SqlStepper(steps); 11 | } 12 | this.__context = {}; 13 | context = this.__context; 14 | context.steps = steps; 15 | } 16 | 17 | SqlStepper.prototype.run = function(db, errorCallback) { 18 | var context; 19 | context = this.__context; 20 | if (context.hasBeenRun) { 21 | throw new Ex(arguments, "stepper has already been run"); 22 | } 23 | context.hasBeenRun = true; 24 | context.db = db; 25 | context.errorCallback = errorCallback; 26 | context.nextStep = 0; 27 | context.ourErrorCallback = new Binding(this, ourErrorCallback); 28 | context.runStep = new Binding(this, runStep); 29 | this.executeSql = new Binding(this, executeSql); 30 | return db.transaction(context.runStep); 31 | }; 32 | 33 | SqlStepper.example = function(db, id) { 34 | var errorCb, step1, step2, stepper; 35 | step1 = function() { 36 | return this.executeSql("SELECT name FROM sqlite_master WHERE type='table'"); 37 | }; 38 | step2 = function(resultSet) { 39 | var i, name, result, rows; 40 | rows = resultSet.rows; 41 | result = []; 42 | i = 0; 43 | while (i < rows.length) { 44 | name = rows.item(i).name; 45 | if (name === "__WebKitDatabaseInfoTable__") { 46 | i++; 47 | continue; 48 | } 49 | result.push(name); 50 | i++; 51 | } 52 | return console.log(("[" + this.id + "] table names: ") + result.join(", ")); 53 | }; 54 | errorCb = function(sqlError) { 55 | return console.log(("[" + this.id + "] sql error:" + sqlError.code + ": ") + sqlError.message); 56 | }; 57 | stepper = new SqlStepper([step1, step2]); 58 | stepper.id = id; 59 | return stepper.run(db, errorCb); 60 | }; 61 | 62 | return SqlStepper; 63 | 64 | })(); 65 | 66 | executeSql = function(statement, data) { 67 | var context; 68 | context = this.__context; 69 | return context.tx.executeSql(statement, data, context.runStep, context.ourErrorCallback); 70 | }; 71 | 72 | ourErrorCallback = function(tx, sqlError) { 73 | var context; 74 | context = this.__context; 75 | return context.errorCallback.call(this, sqlError); 76 | }; 77 | 78 | runStep = function(tx, resultSet) { 79 | var context, step; 80 | context = this.__context; 81 | if (context.nextStep >= context.steps.length) { 82 | return; 83 | } 84 | context.tx = tx; 85 | context.currentStep = context.nextStep; 86 | context.nextStep++; 87 | step = context.steps[context.currentStep]; 88 | return step.call(this, resultSet); 89 | }; 90 | 91 | require("../common/MethodNamer").setNamesForClass(module.exports); 92 | 93 | }); 94 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/target/WeinreExtraClientCommandsImpl.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/target/WeinreExtraClientCommandsImpl", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Console, Weinre, WeinreExtraClientCommandsImpl, WiDatabaseImpl; 3 | 4 | Weinre = require('../common/Weinre'); 5 | 6 | WiDatabaseImpl = require('./WiDatabaseImpl'); 7 | 8 | Console = require('./Console'); 9 | 10 | module.exports = WeinreExtraClientCommandsImpl = (function() { 11 | function WeinreExtraClientCommandsImpl() {} 12 | 13 | WeinreExtraClientCommandsImpl.prototype.getDatabases = function(callback) { 14 | var result; 15 | if (!callback) { 16 | return; 17 | } 18 | result = WiDatabaseImpl.getDatabases(); 19 | return Weinre.WeinreTargetCommands.sendClientCallback(callback, [result]); 20 | }; 21 | 22 | return WeinreExtraClientCommandsImpl; 23 | 24 | })(); 25 | 26 | require("../common/MethodNamer").setNamesForClass(module.exports); 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/target/WeinreTargetEventsImpl.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/target/WeinreTargetEventsImpl", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Callback, Console, Weinre, WeinreTargetEventsImpl; 3 | 4 | Weinre = require('../common/Weinre'); 5 | 6 | Callback = require('../common/Callback'); 7 | 8 | Console = require('./Console'); 9 | 10 | module.exports = WeinreTargetEventsImpl = (function() { 11 | function WeinreTargetEventsImpl() {} 12 | 13 | WeinreTargetEventsImpl.prototype.connectionCreated = function(clientChannel, targetChannel) { 14 | var message; 15 | message = ("weinre: target " + targetChannel + " connected to client ") + clientChannel; 16 | Weinre.logInfo(message); 17 | return Weinre.target.whenBodyReady(this, [], function() { 18 | var oldValue; 19 | oldValue = Console.useRemote(true); 20 | Weinre.target.setDocument(); 21 | Weinre.wi.TimelineNotify.timelineProfilerWasStopped(); 22 | return Weinre.wi.DOMStorage.initialize(); 23 | }); 24 | }; 25 | 26 | WeinreTargetEventsImpl.prototype.connectionDestroyed = function(clientChannel, targetChannel) { 27 | var message, oldValue; 28 | message = ("weinre: target " + targetChannel + " disconnected from client ") + clientChannel; 29 | Weinre.logInfo(message); 30 | return oldValue = Console.useRemote(false); 31 | }; 32 | 33 | WeinreTargetEventsImpl.prototype.sendCallback = function(callbackId, result) { 34 | return Callback.invoke(callbackId, result); 35 | }; 36 | 37 | return WeinreTargetEventsImpl; 38 | 39 | })(); 40 | 41 | require("../common/MethodNamer").setNamesForClass(module.exports); 42 | 43 | }); 44 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/target/WiConsoleImpl.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/target/WiConsoleImpl", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Weinre, WiConsoleImpl; 3 | 4 | Weinre = require('../common/Weinre'); 5 | 6 | module.exports = WiConsoleImpl = (function() { 7 | function WiConsoleImpl() { 8 | this.messagesEnabled = true; 9 | } 10 | 11 | WiConsoleImpl.prototype.setConsoleMessagesEnabled = function(enabled, callback) { 12 | var oldValue; 13 | oldValue = this.messagesEnabled; 14 | this.messagesEnabled = enabled; 15 | if (callback) { 16 | return Weinre.WeinreTargetCommands.sendClientCallback(callback, [oldValue]); 17 | } 18 | }; 19 | 20 | WiConsoleImpl.prototype.clearConsoleMessages = function(callback) { 21 | Weinre.wi.ConsoleNotify.consoleMessagesCleared(); 22 | if (callback) { 23 | return Weinre.WeinreTargetCommands.sendClientCallback(callback, []); 24 | } 25 | }; 26 | 27 | WiConsoleImpl.prototype.setMonitoringXHREnabled = function(enabled, callback) { 28 | if (callback) { 29 | return Weinre.WeinreTargetCommands.sendClientCallback(callback, []); 30 | } 31 | }; 32 | 33 | return WiConsoleImpl; 34 | 35 | })(); 36 | 37 | require("../common/MethodNamer").setNamesForClass(module.exports); 38 | 39 | }); 40 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/target/WiInspectorImpl.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/target/WiInspectorImpl", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Timeline, Weinre, WiInspectorImpl; 3 | 4 | Weinre = require('../common/Weinre'); 5 | 6 | Timeline = require('../target/Timeline'); 7 | 8 | module.exports = WiInspectorImpl = (function() { 9 | function WiInspectorImpl() {} 10 | 11 | WiInspectorImpl.prototype.reloadPage = function(callback) { 12 | if (callback) { 13 | Weinre.WeinreTargetCommands.sendClientCallback(callback); 14 | } 15 | return window.location.reload(); 16 | }; 17 | 18 | WiInspectorImpl.prototype.highlightDOMNode = function(nodeId, callback) { 19 | var node; 20 | node = Weinre.nodeStore.getNode(nodeId); 21 | if (!node) { 22 | Weinre.logWarning(arguments.callee.signature + " passed an invalid nodeId: " + nodeId); 23 | return; 24 | } 25 | Weinre.elementHighlighter.on(node); 26 | if (callback) { 27 | return Weinre.WeinreTargetCommands.sendClientCallback(callback); 28 | } 29 | }; 30 | 31 | WiInspectorImpl.prototype.hideDOMNodeHighlight = function(callback) { 32 | Weinre.elementHighlighter.off(); 33 | if (callback) { 34 | return Weinre.WeinreTargetCommands.sendClientCallback(callback); 35 | } 36 | }; 37 | 38 | WiInspectorImpl.prototype.startTimelineProfiler = function(callback) { 39 | Timeline.start(); 40 | Weinre.wi.TimelineNotify.timelineProfilerWasStarted(); 41 | if (callback) { 42 | return Weinre.WeinreTargetCommands.sendClientCallback(callback); 43 | } 44 | }; 45 | 46 | WiInspectorImpl.prototype.stopTimelineProfiler = function(callback) { 47 | Timeline.stop(); 48 | Weinre.wi.TimelineNotify.timelineProfilerWasStopped(); 49 | if (callback) { 50 | return Weinre.WeinreTargetCommands.sendClientCallback(callback); 51 | } 52 | }; 53 | 54 | return WiInspectorImpl; 55 | 56 | })(); 57 | 58 | require("../common/MethodNamer").setNamesForClass(module.exports); 59 | 60 | }); 61 | -------------------------------------------------------------------------------- /buildin_modules/weinre/web/weinre/target/WiRuntimeImpl.amd.js: -------------------------------------------------------------------------------- 1 | ;modjewel.define("weinre/target/WiRuntimeImpl", function(require, exports, module) { // Generated by CoffeeScript 1.8.0 2 | var Weinre, WiRuntimeImpl; 3 | 4 | Weinre = require('../common/Weinre'); 5 | 6 | module.exports = WiRuntimeImpl = (function() { 7 | function WiRuntimeImpl() {} 8 | 9 | WiRuntimeImpl.prototype.evaluate = function(expression, objectGroup, includeCommandLineAPI, callback) { 10 | var result; 11 | result = Weinre.injectedScript.evaluate(expression, objectGroup, includeCommandLineAPI); 12 | if (callback) { 13 | return Weinre.WeinreTargetCommands.sendClientCallback(callback, [result]); 14 | } 15 | }; 16 | 17 | WiRuntimeImpl.prototype.getCompletions = function(expression, includeCommandLineAPI, callback) { 18 | var result; 19 | result = Weinre.injectedScript.getCompletions(expression, includeCommandLineAPI); 20 | if (callback) { 21 | return Weinre.WeinreTargetCommands.sendClientCallback(callback, [result]); 22 | } 23 | }; 24 | 25 | WiRuntimeImpl.prototype.getProperties = function(objectId, ignoreHasOwnProperty, abbreviate, callback) { 26 | var result; 27 | objectId = JSON.stringify(objectId); 28 | result = Weinre.injectedScript.getProperties(objectId, ignoreHasOwnProperty, abbreviate); 29 | if (callback) { 30 | return Weinre.WeinreTargetCommands.sendClientCallback(callback, [result]); 31 | } 32 | }; 33 | 34 | WiRuntimeImpl.prototype.setPropertyValue = function(objectId, propertyName, expression, callback) { 35 | var result; 36 | objectId = JSON.stringify(objectId); 37 | result = Weinre.injectedScript.setPropertyValue(objectId, propertyName, expression); 38 | if (callback) { 39 | return Weinre.WeinreTargetCommands.sendClientCallback(callback, [result]); 40 | } 41 | }; 42 | 43 | WiRuntimeImpl.prototype.releaseWrapperObjectGroup = function(injectedScriptId, objectGroup, callback) { 44 | var result; 45 | result = Weinre.injectedScript.releaseWrapperObjectGroup(objectGroup); 46 | if (callback) { 47 | return Weinre.WeinreTargetCommands.sendClientCallback(callback, [result]); 48 | } 49 | }; 50 | 51 | return WiRuntimeImpl; 52 | 53 | })(); 54 | 55 | require("../common/MethodNamer").setNamesForClass(module.exports); 56 | 57 | }); 58 | -------------------------------------------------------------------------------- /buildin_modules/weinre/weinre: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | /* 4 | #------------------------------------------------------------------------------- 5 | # Licensed to the Apache Software Foundation (ASF) under one 6 | # or more contributor license agreements. See the NOTICE file 7 | # distributed with this work for additional information 8 | # regarding copyright ownership. The ASF licenses this file 9 | # to you under the Apache License, Version 2.0 (the 10 | # "License"); you may not use this file except in compliance 11 | # with the License. You may obtain a copy of the License at 12 | # 13 | # http://www.apache.org/licenses/LICENSE-2.0 14 | # 15 | # Unless required by applicable law or agreed to in writing, 16 | # software distributed under the License is distributed on an 17 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18 | # KIND, either express or implied. See the License for the 19 | # specific language governing permissions and limitations 20 | # under the License. 21 | #------------------------------------------------------------------------------- 22 | */ 23 | 24 | // script to run the weinre server 25 | 26 | require("./lib/cli").run() 27 | -------------------------------------------------------------------------------- /demo/img/AnyProxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/demo/img/AnyProxy.png -------------------------------------------------------------------------------- /demo/img/QRCodeForCert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/demo/img/QRCodeForCert.png -------------------------------------------------------------------------------- /demo/img/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/demo/img/demo.png -------------------------------------------------------------------------------- /demo/img/externalProxy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/demo/img/externalProxy.jpg -------------------------------------------------------------------------------- /demo/img/spy-debugger-w.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/demo/img/spy-debugger-w.gif -------------------------------------------------------------------------------- /design/spy-debugger framework.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuchangming/spy-debugger/03d787151159c96229aff0266e0d3038af1e69a3/design/spy-debugger framework.png -------------------------------------------------------------------------------- /lib/config/config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var SPY_WEINRE_DOMAIN = 'spyweinrefortest.com'; 4 | var SPY_DEBUGGER_DOMAIN = 'spydebugger.com'; 5 | 6 | var config = exports; 7 | config.SPY_WEINRE_DOMAIN = SPY_WEINRE_DOMAIN; 8 | config.SPY_DEBUGGER_DOMAIN = SPY_DEBUGGER_DOMAIN; 9 | config.SPY_DEBUGGER_SHORT_DOMAIN = 's.xxx'; -------------------------------------------------------------------------------- /lib/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | 'use strict'; 4 | 5 | var program = require('commander'); 6 | var weinreDelegate = require('./weinre/weinreDelegate'); 7 | var colors = require('colors'); 8 | var http = require('http'); 9 | 10 | program.version(require('../package.json').version).option('-p, --port [value]', 'start port').option('-i, --showIframe [value]', 'spy iframe window').option('-b, --autoDetectBrowser [value]', 'Auto detect Browser Request').option('-e, --externalProxy [value]', 'set external Proxy').option('-c, --cache [value]', 'set no cache').option('-w, --contentEditable [value]', 'set content editable'); 11 | 12 | program.parse(process.argv); 13 | 14 | var cusSpyProxyPort = program.port || 9888; 15 | 16 | var cusShowIframe = false; 17 | if (program.showIframe === 'true') { 18 | cusShowIframe = true; 19 | } 20 | 21 | var autoDetectBrowser = false; 22 | if (program.autoDetectBrowser === 'true') { 23 | autoDetectBrowser = true; 24 | } 25 | 26 | var cusCache = false; 27 | if (program.cache === 'true') { 28 | cusCache = true; 29 | } 30 | 31 | var cusContentEditable = false; 32 | if (program.contentEditable === 'true') { 33 | cusContentEditable = true; 34 | } 35 | 36 | weinreDelegate.createCA(); 37 | 38 | var tempServer = new http.Server(); 39 | 40 | var createTempServerPromise = function createTempServerPromise(port) { 41 | return new Promise(function (resolve, reject) { 42 | tempServer.listen(port, function () { 43 | tempServer.close(function () { 44 | resolve(); 45 | }); 46 | }); 47 | tempServer.on('error', function (e) { 48 | console.error(colors.red('警告:启动失败!!')); 49 | console.error(colors.red('检查端口 ' + port + ' 是否被占用,或尝试更换启动端口')); 50 | reject(); 51 | }); 52 | }); 53 | }; 54 | 55 | var tempServerPromise = createTempServerPromise(cusSpyProxyPort); 56 | 57 | tempServerPromise.then(function () { 58 | weinreDelegate.run({ 59 | cusExternalProxy: program.externalProxy, 60 | cusSpyProxyPort: cusSpyProxyPort, 61 | cusShowIframe: cusShowIframe, 62 | cusAutoDetectBrowser: autoDetectBrowser, 63 | cusCache: cusCache, 64 | cusContentEditable: cusContentEditable 65 | }); 66 | }, function (e) { 67 | // throw e 68 | }); -------------------------------------------------------------------------------- /lib/scripts/postinstall.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var fs = require('fs'); 4 | var path = require('path'); 5 | try { 6 | var anyproxyIndexHtml = fs.readFileSync(path.join(__dirname, '../../template/anyproxy_index.html')); 7 | fs.writeFileSync(path.join(__dirname, '../../node_modules/anyproxy/web/index.html'), anyproxyIndexHtml); 8 | } catch (e) { 9 | // 10 | } -------------------------------------------------------------------------------- /lib/util/htmlUtil.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var _ = require('lodash'); 4 | 5 | var htmlUtil = exports; 6 | 7 | // inject script into html 8 | htmlUtil.injectScriptIntoHtml = function (html, script) { 9 | html = html.replace(/|/gi, function (match) { 10 | return match + script; 11 | }); 12 | html = html.replace(/Content-Security-Policy/ig, function (match) { 13 | return 'hacky'; 14 | }); 15 | return html; 16 | }; 17 | 18 | htmlUtil.createScriptTag = function (_ref) { 19 | var tpl = _ref.tpl, 20 | showIframe = _ref.showIframe, 21 | contentEditable = _ref.contentEditable, 22 | weinreDomain = _ref.weinreDomain; 23 | 24 | return _.template(tpl)({ 25 | showIframe: showIframe, 26 | weinreDomain: weinreDomain, 27 | contentEditable: contentEditable 28 | }); 29 | }; -------------------------------------------------------------------------------- /lib/util/httpUtil.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var os = require('os'); 4 | var url = require('url'); 5 | var config = require('../config/config'); 6 | 7 | var httpUtil = exports; 8 | 9 | httpUtil.isGzip = function (res) { 10 | var contentEncoding = res.headers['content-encoding']; 11 | return !!(contentEncoding && contentEncoding.toLowerCase() == 'gzip'); 12 | }; 13 | httpUtil.isHtml = function (res) { 14 | var contentType = res.headers['content-type']; 15 | return typeof contentType != 'undefined' && /text\/html|application\/xhtml\+xml/.test(contentType); 16 | }; 17 | httpUtil.hasPort = function (host) { 18 | return !!~host.indexOf(':'); 19 | }; -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "spy-debugger", 3 | "version": "3.8.7", 4 | "description": "web page one-stop remote network debugger", 5 | "main": "lib/index.js", 6 | "scripts": { 7 | "test": "mocha -R landing test/index --exit", 8 | "build": "babel -w src -d lib", 9 | "dev": "node-debug dev/testSpyProxy.js", 10 | "prepublish": "babel src -d lib" 11 | }, 12 | "bin": { 13 | "spy-debugger": "lib/index.js" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/wuchangming/spy-debugger.git" 18 | }, 19 | "keywords": [ 20 | "spy", 21 | "debugger", 22 | "weinre", 23 | "https" 24 | ], 25 | "author": "wuchangming", 26 | "license": "MIT", 27 | "bugs": { 28 | "url": "https://github.com/wuchangming/spy-debugger/issues" 29 | }, 30 | "homepage": "https://github.com/wuchangming/spy-debugger#readme", 31 | "dependencies": { 32 | "anyproxy": "4.1.0", 33 | "babel-plugin-transform-async-to-generator": "^6.8.0", 34 | "babel-polyfill": "^6.13.0", 35 | "charset": "^1.0.0", 36 | "colors": "^1.1.2", 37 | "commander": "^2.9.0", 38 | "debug": "^2.2.0", 39 | "express": "^3.21.2", 40 | "iconv-lite": "^0.4.13", 41 | "ip": "^1.1.2", 42 | "jschardet": "^1.4.1", 43 | "lodash": "^4.17.14", 44 | "node-mitmproxy": "3.1.1", 45 | "nopt": "3.0.x", 46 | "through2": "^2.0.5", 47 | "underscore": "1.7.x" 48 | }, 49 | "devDependencies": { 50 | "babel-cli": "^6.6.5", 51 | "babel-preset-es2015": "^6.6.0", 52 | "mocha": "^6.1.4" 53 | }, 54 | "files": [ 55 | "lib", 56 | "template", 57 | "buildin_modules" 58 | ], 59 | "engines": { 60 | "node": ">= 6" 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/config/config.js: -------------------------------------------------------------------------------- 1 | const SPY_WEINRE_DOMAIN = 'spyweinrefortest.com'; 2 | const SPY_DEBUGGER_DOMAIN = 'spydebugger.com'; 3 | 4 | var config = exports; 5 | config.SPY_WEINRE_DOMAIN = SPY_WEINRE_DOMAIN; 6 | config.SPY_DEBUGGER_DOMAIN = SPY_DEBUGGER_DOMAIN; 7 | config.SPY_DEBUGGER_SHORT_DOMAIN = 's.xxx'; 8 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict' 3 | const program = require('commander') 4 | const weinreDelegate = require('./weinre/weinreDelegate') 5 | const colors = require('colors') 6 | const http = require('http') 7 | 8 | program 9 | .version(require('../package.json').version) 10 | .option('-p, --port [value]', 'start port') 11 | .option('-i, --showIframe [value]', 'spy iframe window') 12 | .option('-b, --autoDetectBrowser [value]', 'Auto detect Browser Request') 13 | .option('-e, --externalProxy [value]', 'set external Proxy') 14 | .option('-c, --cache [value]', 'set no cache') 15 | .option('-w, --contentEditable [value]', 'set content editable') 16 | 17 | program.parse(process.argv) 18 | 19 | var cusSpyProxyPort = program.port || 9888 20 | 21 | var cusShowIframe = false 22 | if (program.showIframe === 'true') { 23 | cusShowIframe = true 24 | } 25 | 26 | var autoDetectBrowser = false 27 | if (program.autoDetectBrowser === 'true') { 28 | autoDetectBrowser = true 29 | } 30 | 31 | var cusCache = false 32 | if (program.cache === 'true') { 33 | cusCache = true 34 | } 35 | 36 | var cusContentEditable = false 37 | if (program.contentEditable === 'true') { 38 | cusContentEditable = true 39 | } 40 | 41 | weinreDelegate.createCA() 42 | 43 | let tempServer = new http.Server() 44 | 45 | var createTempServerPromise = port => { 46 | return new Promise((resolve, reject) => { 47 | tempServer.listen(port, () => { 48 | tempServer.close(() => { 49 | resolve() 50 | }) 51 | }) 52 | tempServer.on('error', e => { 53 | console.error(colors.red('警告:启动失败!!')) 54 | console.error(colors.red('检查端口 ' + port + ' 是否被占用,或尝试更换启动端口')) 55 | reject() 56 | }) 57 | }) 58 | } 59 | 60 | var tempServerPromise = createTempServerPromise(cusSpyProxyPort) 61 | 62 | tempServerPromise.then( 63 | () => { 64 | weinreDelegate.run({ 65 | cusExternalProxy: program.externalProxy, 66 | cusSpyProxyPort, 67 | cusShowIframe, 68 | cusAutoDetectBrowser: autoDetectBrowser, 69 | cusCache, 70 | cusContentEditable 71 | }) 72 | }, 73 | e => { 74 | // throw e 75 | } 76 | ) 77 | -------------------------------------------------------------------------------- /src/proxy/externalChildProcess.js: -------------------------------------------------------------------------------- 1 | require('babel-polyfill') 2 | const http = require('http') 3 | const AnyProxy = require('anyproxy') 4 | const fs = require('fs') 5 | const path = require('path') 6 | const colors = require('colors') 7 | 8 | let port, webPort, socketPort 9 | 10 | var tempServerPromise = () => { 11 | return new Promise((resolve, reject) => { 12 | let tempServer = new http.Server() 13 | tempServer.listen(() => { 14 | let unBoundedPort = tempServer.address().port 15 | tempServer.close(() => { 16 | resolve(unBoundedPort) 17 | }) 18 | }) 19 | }) 20 | } 21 | 22 | let createAnyProxy = () => { 23 | var options = { 24 | port, 25 | forceProxyHttps: true, 26 | webInterface: { 27 | enable: true, 28 | webPort 29 | }, 30 | dangerouslyIgnoreUnauthorized: true, 31 | silent: true //optional, do not print anything into terminal. do not set it when you are still debugging. 32 | } 33 | new AnyProxy.ProxyServer(options).start() 34 | } 35 | 36 | process.on('message', ({ type, ports }) => { 37 | if (type === 'start') { 38 | if (!AnyProxy.utils.certMgr.isRootCAFileExists()) { 39 | var userHome = process.env.HOME || process.env.USERPROFILE 40 | var certDir = path.join(userHome, '/.anyproxy/certificates') 41 | if (!fs.existsSync(certDir)) { 42 | try { 43 | fs.mkdirSync(certDir) 44 | } catch (e) { 45 | console.error('fail to create certDir at:' + certDir) 46 | } 47 | } 48 | var mitmCrt = path.resolve(userHome, './node-mitmproxy/node-mitmproxy.ca.crt') 49 | var mitmKey = path.resolve(userHome, './node-mitmproxy/node-mitmproxy.ca.key.pem') 50 | 51 | fs 52 | .createReadStream(mitmCrt) 53 | .pipe(fs.createWriteStream(path.join(certDir, './rootCA.crt'))) 54 | fs 55 | .createReadStream(mitmKey) 56 | .pipe(fs.createWriteStream(path.join(certDir, './rootCA.key'))) 57 | } 58 | 59 | ;(async () => { 60 | let ports = await Promise.all([ 61 | tempServerPromise(), 62 | tempServerPromise(), 63 | tempServerPromise() 64 | ]) 65 | port = ports[0] 66 | webPort = ports[1] 67 | socketPort = ports[2] 68 | createAnyProxy() 69 | 70 | process.send({ 71 | port, 72 | webPort, 73 | socketPort 74 | }) 75 | })() 76 | } else if (type === 'restart') { 77 | port = ports.port 78 | webPort = ports.webPort 79 | socketPort = ports.socketPort 80 | 81 | createAnyProxy() 82 | console.log(colors.green('重启成功!请手动刷新浏览器')) 83 | } 84 | }) 85 | -------------------------------------------------------------------------------- /src/util/htmlUtil.js: -------------------------------------------------------------------------------- 1 | const _ = require('lodash'); 2 | 3 | var htmlUtil = exports; 4 | 5 | 6 | // inject script into html 7 | htmlUtil.injectScriptIntoHtml = function(html, script) { 8 | html = html.replace(/|/gi, function (match) { 9 | return match + script; 10 | }); 11 | html = html.replace(/Content-Security-Policy/ig, function (match) { 12 | return 'hacky'; 13 | }); 14 | return html; 15 | } 16 | 17 | htmlUtil.createScriptTag = function ({ 18 | tpl, 19 | showIframe, 20 | contentEditable, 21 | weinreDomain 22 | }) { 23 | return _.template(tpl)({ 24 | showIframe, 25 | weinreDomain, 26 | contentEditable 27 | }); 28 | }; 29 | -------------------------------------------------------------------------------- /src/util/httpUtil.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const os = require('os'); 4 | const url = require('url'); 5 | const config = require('../config/config'); 6 | 7 | var httpUtil = exports; 8 | 9 | httpUtil.isGzip = function (res) { 10 | var contentEncoding = res.headers['content-encoding']; 11 | return !!(contentEncoding && contentEncoding.toLowerCase() == 'gzip'); 12 | } 13 | httpUtil.isHtml = function (res) { 14 | var contentType = res.headers['content-type']; 15 | return (typeof contentType != 'undefined') && /text\/html|application\/xhtml\+xml/.test(contentType); 16 | } 17 | httpUtil.hasPort = (host) => { 18 | return !!~host.indexOf(':'); 19 | }; 20 | -------------------------------------------------------------------------------- /template/anyproxy_index.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | AnyProxy 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 |

AnyProxy

20 |
21 |
22 | 23 |
24 | Stop 25 | Resume 26 | Clear(Ctrl+X) 27 | 28 | | 29 | Download rootCA.crt 30 | QRCode of rootCA.crt 31 |
32 | 33 |
34 | 35 | 36 | | 37 | 38 | {@if customMenu.length} 39 | {@each customMenu as item} 40 | ${item.name} 41 | {@/each} 42 | | 43 | {@/if} 44 | 45 | Rule : ${rule} 46 |
47 | 48 |
49 |
50 | 51 |
52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /template/inject.js.template.html: -------------------------------------------------------------------------------- 1 | 86 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | const child_process = require('child_process') 2 | describe("spy-debugger", function() { 3 | it('`lib` should be ok', function () { 4 | child_process.exec('node ./lib/index.js') 5 | }) 6 | }) 7 | --------------------------------------------------------------------------------