PageRenderTime 54ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/chrome/browser/resources/net_internals/index.html

https://github.com/Gitman1989/chromium
HTML | 368 lines | 319 code | 27 blank | 22 comment | 0 complexity | c1c2020da49d9ffbb28e8977bb12a53b MD5 | raw file
  1. <!DOCTYPE HTML>
  2. <head i18n-values="dir:textdirection;">
  3. <!--
  4. Copyright (c) 2010 The Chromium Authors. All rights reserved.
  5. Use of this source code is governed by a BSD-style license that can be
  6. found in the LICENSE file.
  7. -->
  8. <head>
  9. <link rel="stylesheet" href="main.css">
  10. <link rel="stylesheet" href="tabswitcherview.css">
  11. <script src="util.js"></script>
  12. <script src="view.js"></script>
  13. <script src="tabswitcherview.js"></script>
  14. <script src="dataview.js"></script>
  15. <script src="httpcacheview.js"></script>
  16. <script src="testview.js"></script>
  17. <script src="main.js"></script>
  18. <script src="dnsview.js"></script>
  19. <script src="eventsview.js"></script>
  20. <script src="detailsview.js"></script>
  21. <script src="sourceentry.js"></script>
  22. <script src="resizableverticalsplitview.js"></script>
  23. <script src="topmidbottomview.js"></script>
  24. <script src="timelineviewpainter.js"></script>
  25. <script src="logviewpainter.js"></script>
  26. <script src="loggrouper.js"></script>
  27. <script src="proxyview.js"></script>
  28. <script src="socketpoolwrapper.js"></script>
  29. <script src="socketsview.js"></script>
  30. <script src="spdyview.js"></script>
  31. <script src="serviceprovidersview.js"></script>
  32. </head>
  33. <body onload="onLoaded()">
  34. <!-- Tab switcher for main categories. -->
  35. <div id=categoryTabHandles>
  36. <ul>
  37. <li><a href="#data" id=dataTab>Data</a></li>
  38. <li><a href="#proxy" id=proxyTab>Proxy</a></li>
  39. <li><a href="#events" id=eventsTab>Events</a></li>
  40. <li><a href="#dns" id=dnsTab>DNS</a></li>
  41. <li><a href="#sockets" id=socketsTab>Sockets</a></li>
  42. <li><a href="#spdy" id=spdyTab>SPDY</a></li>
  43. <li><a href="#httpCache" id=httpCacheTab>HTTP Cache</a></li>
  44. <!-- Tab is only shown on Windows -->
  45. <li><a href="#serviceProviders" id=serviceProvidersTab style="display: none;">SPIs</a></li>
  46. <li><a href="#tests" id=testTab>Tests</a></li>
  47. </ul>
  48. <div style="clear: both;"></div>
  49. </div>
  50. <!-- Proxy info -->
  51. <div id=proxyTabContent>
  52. <h4>
  53. Current proxy settings
  54. <input type=button value="Re-apply settings" id=proxyReloadSettings />
  55. </h4>
  56. <table><tr>
  57. <td valign=top>
  58. <h3>Effective settings</h3>
  59. <pre id=proxyEffectiveSettings></pre>
  60. </pre>
  61. </td>
  62. <td style='width: 30px'>&nbsp;</td>
  63. <td valign=top>
  64. <h3>Original settings</h3>
  65. <pre id=proxyOriginalSettings></pre>
  66. </td>
  67. </tr></table>
  68. <h4>Proxy auto-config initialization</h4>
  69. <ul>
  70. <li>
  71. <a href='#events&q=type:INIT_PROXY_RESOLVER'>View all events</a>
  72. </li>
  73. <li>
  74. Latest proxy resolver event:
  75. <pre id=proxyResolverLog></pre>
  76. </li>
  77. </ul>
  78. <h4>
  79. Proxies which have failed recently, and are marked as bad
  80. <input type=button value="Clear bad proxies" id=clearBadProxies />
  81. </h4>
  82. <table class="styledTable">
  83. <thead>
  84. <tr>
  85. <th>Bad proxy server</th>
  86. <th>Time for next retry</th>
  87. </tr>
  88. </thead>
  89. <tbody id=badProxiesTableBody></tbody>
  90. </table>
  91. </div>
  92. <!-- Host resolver info -->
  93. <div id=dnsTabContent>
  94. <h4>Host resolver</h4>
  95. <ul>
  96. <li><a href='#events&q=type:HOST_RESOLVER_IMPL_REQUEST%20type:HOST_RESOLVER_IMPL_JOB%20is:active'>View pending lookups</a></li>
  97. <li>Default address family: <span id=hostResolverDefaultFamily></span>
  98. <span id=hostResolverIPv6Disabled class=warningText style="display: none;">
  99. (IPv6 disabled)
  100. <input type=button value="Enable IPv6" id=hostResolverEnableIPv6 />
  101. </span>
  102. </li>
  103. </ul>
  104. <h4>
  105. Host resolver cache
  106. <input type=button value="Clear host cache" id=clearHostResolverCache />
  107. </h4>
  108. <ul>
  109. <li>Capacity: <span id=hostResolverCacheCapacity></span></li>
  110. <li>Time to live (ms) for success entries:
  111. <span id=hostResolverCacheTTLSuccess></span></li>
  112. <li>Time to live (ms) for failure entries:
  113. <span id=hostResolverCacheTTLFailure></span></li>
  114. </ul>
  115. <table class="styledTable">
  116. <thead>
  117. <tr>
  118. <th>Hostname</th>
  119. <th>Family</th>
  120. <th>Addresses</th>
  121. <th>Expires</th>
  122. </tr>
  123. </thead>
  124. <tbody id=hostResolverCacheTbody>
  125. </tbody>
  126. </table>
  127. </div>
  128. <div id=socketsTabContent>
  129. <h4>Socket pools</h4>
  130. <a href='#events&q=type:SOCKET%20is:active'>View live sockets</a>
  131. <p>
  132. <div id=socketPoolDiv>
  133. </div>
  134. </p>
  135. <p>
  136. <div id=socketPoolGroupsDiv>
  137. </div>
  138. </p>
  139. </div>
  140. <div id=spdyTabContent>
  141. <h4>SPDY sessions</h4>
  142. <!-- Only one of these two are shown -->
  143. <span id=spdySessionNoneSpan>None</span>
  144. <span id=spdySessionLinkSpan style="display: none;">
  145. <a href='#events&q=type:SPDY_SESSION%20is:active'>View live SPDY sessions</a>
  146. </span>
  147. <p>
  148. <div id=spdySessionDiv>
  149. </div>
  150. </p>
  151. </div>
  152. <div id=httpCacheTabContent>
  153. <h4>Entries</h4>
  154. <a href="chrome://view-http-cache" target=_blank>Explore cache entries</a>
  155. <h4>Statistics</h4>
  156. <div id=httpCacheStats>Nothing loaded yet.</div>
  157. </div>
  158. <!-- Only shown on Windows -->
  159. <div id=serviceProvidersTabContent style="display: none;">
  160. <h4>Layered Service Providers</h4>
  161. <table class="styledTable">
  162. <thead>
  163. <tr>
  164. <th>Name</th>
  165. <th>Version</th>
  166. <th>Type</th>
  167. <th>Socket Type</th>
  168. <th>Protocol</th>
  169. <th>Path</th>
  170. </tr>
  171. </thead>
  172. <tbody id=serviceProvidersTbody>
  173. </tbody>
  174. </table>
  175. <h4>Namespace Providers</h4>
  176. <table class="styledTable">
  177. <thead>
  178. <tr>
  179. <th>Name</th>
  180. <th>Version</th>
  181. <th>Namespace</th>
  182. <th>Active</th>
  183. </tr>
  184. </thead>
  185. <tbody id=namespaceProvidersTbody>
  186. </tbody>
  187. </table>
  188. </div>
  189. <!-- Import/Export data -->
  190. <div id=dataTabContent>
  191. <table width=100%>
  192. <tr>
  193. <td valign=top>
  194. <h2>Dump data</h2>
  195. <div style="margin: 8px">
  196. <p><input id=securityStrippingCheckbox type=checkbox checked=yes>
  197. Strip private information (cookies and credentials).
  198. </p>
  199. <p>
  200. <a href="javascript:displayHelpForBugDump()">
  201. Help: How to get data for bug reports?
  202. </a>
  203. </p>
  204. <button id=exportToText class=bigButton>Dump to text</button>
  205. </div>
  206. </td>
  207. <td align=right valign=top>
  208. <div class="capturingBox">
  209. <b>Capturing all events...</b>
  210. <table style="margin: 8px">
  211. <tr>
  212. <td>Passively captured:</td>
  213. <td align=right id=passivelyCapturedCount></td>
  214. </tr>
  215. <tr>
  216. <td>Actively captured:</td>
  217. <td align=right id=activelyCapturedCount></td>
  218. </tr>
  219. </table>
  220. <p><input type=button value="Delete all" id=dataViewDeleteAll /></p>
  221. <p><input id=byteLoggingCheckbox type=checkbox>
  222. Log actual bytes sent/received.
  223. </p>
  224. </div>
  225. </td>
  226. </tr>
  227. </table>
  228. <pre id=exportedDataText></pre>
  229. </div>
  230. <!-- START OF HELP TEXT -->
  231. <script>
  232. function displayHelpForBugDump() {
  233. // We can't access the popups loaded from DOMUI pages, so we instead populate
  234. // its contents using a data:URL. YUCK!
  235. // TODO(eroman): do something less hacky, like exposing a new URL.
  236. var helpContents =
  237. document.getElementById('howtoDumpForBugsHelpContent').innerHTML;
  238. window.open('data:text/html,' + encodeURIComponent(helpContents));
  239. }
  240. </script>
  241. <div id=howtoDumpForBugsHelpContent style="display: none">
  242. <h2>How to get data for bug reports</h2>
  243. <ol>
  244. <li>Reproduce the network problem.</li>
  245. <li>Click the <i>Dump to text</i> button in the <i>Data</i> tab.</li>
  246. <li>Copy-paste the resulting selected text to a file.</li>
  247. <li>Email the text file to the bug investigator,
  248. <b>along with an explanation of what went wrong.</b>
  249. </li>
  250. </ol>
  251. <ul>
  252. <li>The network log <b>may contain personally identifying information</b> like
  253. IP addresses, URLs, and cookies.</li>
  254. <ul>
  255. <li>You can edit the log to obscure information if you like, but sometimes it
  256. is relevant to the bug.</li>
  257. <li>If you choose not to have cookies removed from the log, you must toggle
  258. the checkbox before clicking the button.</li>
  259. </ul>
  260. <li>Ideally you would have the tool running <b>before</b> you reproduce the
  261. bug.
  262. If that isn't possible (perhaps the bug happens unpredictably), then the
  263. next best thing is to load chrome://net-internals/ <b>as soon as you can
  264. after</b> the problem has occurred.</li>
  265. </ul>
  266. <h2>How it works</h2>
  267. <ul>
  268. <li>While the net-internals page is open, it will capture the network events
  269. that are happening in Chrome. You can view that in real-time by going to
  270. the <i>Events</i> tab.</li>
  271. <li>Once you close the net-internals window, the data it had captured will be
  272. discarded.</li>
  273. <li>Chrome keeps around a small buffer of the most recent network events
  274. even when the net-internals window is not open. That way if you open
  275. chrome://net-internals/ <b>shortly after</b> encountering a problem,
  276. you may still find the relevant data.
  277. These <i>passively captured</i> events are less accurate however, and will
  278. be prefixed in the log with <span style="font-family: monospace;">(P)</span>.
  279. </li>
  280. </ul>
  281. <button onclick='window.close()'>Close this popup</button>
  282. <!-- END OF HELP TEXT -->
  283. </div>
  284. <!-- Connection tests -->
  285. <div id=testTabContent>
  286. <p>Input a URL which failed to load, and then click the button to run some
  287. tests for why it failed.</p>
  288. <form id=connectionTestsForm>
  289. URL: <input type=text id=testUrlInput />
  290. <input type=submit value="Start tests" />
  291. </form>
  292. <div id=testSummary></div>
  293. </div>
  294. <!-- ================= Events view =================== -->
  295. <!-- Filter Box: This the top bar which contains the search box. -->
  296. <div id=filterBox>
  297. <table width=100%>
  298. <tr>
  299. <td width=1%>Filter:</td>
  300. <td width=98%><input type="search" incremental id=filterInput /></td>
  301. <td width=1% id=filterCount>(1 of 34)</td>
  302. </tr>
  303. </table>
  304. </div>
  305. <!-- Events Box: This the panel on the left which lists the sources -->
  306. <div id=eventsBox>
  307. <table id=eventsListTable cellspacing=0 cellpadding=0 width=100%>
  308. <thead>
  309. <tr>
  310. <td><input type=checkbox id=selectAll /></td>
  311. <td id=sortById>ID</td>
  312. <td id=sortBySource>Source</td>
  313. <td id=sortByDescription width=99%>Description</td>
  314. </tr>
  315. </thead>
  316. <!-- Events table body: This is where request rows go into -->
  317. <tbody id=eventsListTableBody></tbody>
  318. </table>
  319. </div>
  320. <!-- Action Box: This is a button bar along the bottom -->
  321. <div id=actionBox>
  322. <input type=button value="Delete selected" id=deleteSelected />
  323. <input type=button value="Delete all" id=deleteAll />
  324. </div>
  325. <!-- Splitter Box: This is a handle to resize the vertical divider -->
  326. <div id=splitterBox></div>
  327. <!-- Details box: This is the panel on the right which shows information -->
  328. <div id=detailsTabHandles>
  329. <table class=tabSwitcher cellspacing=0>
  330. <tr>
  331. <th id=detailsLogTab>Log</th>
  332. <td class=tabSwitcherSpacer>&nbsp;</td>
  333. <th id=detailsTimelineTab>Timeline</th>
  334. </tr>
  335. </table>
  336. <div class=tabSwitcherLine></div>
  337. </div>
  338. <div id=detailsLogBox></div>
  339. <div id=detailsTimelineBox></div>
  340. </body>
  341. </html>