1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
<!doctype html>
<html dir="ltr" lang="en">
<head>
<!-- If you change the title, make sure you also update
chrome/test/functional/special_tabs.py. -->
<meta charset="utf-8">
<meta content="width=device-width,initial-scale=1.0" name="viewport">
<title>Sync Internals</title>
<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
<link rel="stylesheet" href="about.css">
<link rel="stylesheet" href="sync_search.css">
<link rel="stylesheet" href="sync_node_browser.css">
<link rel="stylesheet" href="traffic_log.css">
<link rel="stylesheet" href="invalidations.css">
</head>
<body>
<style>
html {
text-size-adjust: none;
}
body {
margin: 0;
}
#sync-page {
/* TODO(akalin): Figure out a better way to make the tab box the
same height no matter which tab is selected. */
min-height: 650px;
}
[hidden] {
/* This allows us to hide tabs by adding and removing hidden attribute. */
display: none !important;
}
div[slot='panel'] {
margin-top: 5px;
}
</style>
<cr-tab-box id="sync-page">
<div slot="tab" id="sync-about-tab">About</div>
<div slot="tab" id="sync-data-tab">Data</div>
<div slot="tab" id="sync-browser-tab">Sync Node Browser</div>
<div slot="tab" id="sync-search-tab">Search</div>
<div slot="tab" id="sync-user-events-tab">User Events</div>
<div slot="tab" id="sync-traffic-log-tab">Traffic Log</div>
<div slot="tab" id="sync-invalidations-tab">Invalidations</div>
<div slot="panel">
<div id="status">
<div id="dump">
<button id="dump-status">Dump status</button>
<input type="checkbox" id="include-ids">
Include Identifiers
</div>
<div id="import">
<button id="import-status">Import status</button>
</div>
<div id="status-data">
<textarea rows="10" cols="30" id="status-text"></textarea>
</div>
</div>
<div id="about-info"></div>
</div>
<div slot="panel">
<p><strong>Some personal info may be in the events dump. Be
careful about posting data dumps on bug reports.</strong></p>
<button id="dump-to-text">Dump sync events to text</button>
<pre id="data-dump"></pre>
<hr>
<div id="node-type-checkboxes"></div>
<button id="dump-to-file">Dump sync nodes to file</button>
<input type="checkbox" id="include-specifics">include node content <font color="red">WARNING: This is likely to include personal information.</font><br>
<a style="display: none" id="dump-to-file-anchor"></a>
</div>
<div slot="panel">
<!-- TODO(akalin): Move to a three-pane view; node tree on the left
(minus leaf nodes), tree contents list on the upper right, selected
item detail on the lower right. -->
<div id="sync-node-main">
<!-- TODO(akalin): Figure out how to get this element to be as tall
as its container (style.height=100% doesn't work). Also fix
behavior when tree is too tall (currently it makes you scroll the
entire page). -->
<div id="sync-node-browser-refresher">
<button id="node-browser-refresh-button">Refresh</button>
<div id="node-refresh-status">
Last refresh time: <span id="node-browser-refresh-time">Never</span>
</div>
</div>
<div id="sync-node-browser-container">
<div id="sync-node-tree-container">
</div>
<cr-splitter id="sync-node-splitter"></cr-splitter>
<div id="node-details"></div>
</div>
</div>
</div>
<div slot="panel">
<p>
<input id="sync-search-query" type="search"
placeholder="Search Sync Data">
<button id="sync-search-submit">Search</button>
<span id="sync-search-quicklink-container">Quick Search:
<a class='sync-search-quicklink' data-query=""IS_UNAPPLIED_UPDATE": true"
href="#">Unapplied Updates</a>
<a class='sync-search-quicklink' data-query=""IS_UNSYNCED": true"
href="#">Unsynced</a>
<a class='sync-search-quicklink' data-query="(("IS_UNAPPLIED_UPDATE": true)[\s\S]*("IS_UNSYNCED": true))|(("IS_UNSYNCED": true)[\s\S]*("IS_UNAPPLIED_UPDATE": true))"
href="#">Conflicted</a>
<a class='sync-search-quicklink' data-query=""IS_DEL": true"
href="#">Deleted</a>
</span>
</p>
<p>
<span id="sync-search-status"></span>
</p>
<div id="sync-results-container">
<ul id="sync-results-list"></ul>
<cr-splitter id="sync-results-splitter"></cr-splitter>
<div id="sync-result-details-container">
<pre id="sync-result-details"></pre>
</div>
</div>
</div>
<div slot="panel">
<input id="event-time-usec-input" type="text" placeholder="event_time_usec">
<input id="navigation-id-input" type="text" placeholder="navigation_id">
<button id="create-event-button">Create</button>
</div>
<div slot="panel">
<div id="traffic-event-fullscreen-container"></div>
</div>
<div slot="panel">
<table id="invalidation-counters-table"></table>
<textarea id="invalidations-log" rows="10" cols="80"readonly></textarea>
</div>
</cr-tab-box>
<script type="module" src="sync_index.js"></script>
</body>
</html>
|