Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7503)

Unified Diff: chrome/browser/resources/predictors/resource_prefetch_predictor.js

Issue 462423004: Revert CL 117933003. Re-add resource speculative prefetching code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase to fix patch failure Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/predictors/resource_prefetch_predictor.js
diff --git a/chrome/browser/resources/predictors/resource_prefetch_predictor.js b/chrome/browser/resources/predictors/resource_prefetch_predictor.js
new file mode 100644
index 0000000000000000000000000000000000000000..f725105441dfbcb0fe71a6c068127ffbcc5c68f5
--- /dev/null
+++ b/chrome/browser/resources/predictors/resource_prefetch_predictor.js
@@ -0,0 +1,102 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * Requests the database from the backend.
+ */
+function requestResourcePrefetchPredictorDb() {
+ chrome.send('requestResourcePrefetchPredictorDb');
+}
+
+/**
+ * Callback from backend with the database contents. Sets up some globals and
+ * calls to create the UI.
+ * @param {Dictionary} database Information about ResourcePrefetchPredictor
+ * including the database as a flattened list, a boolean indicating if the
+ * system is enabled.
+ */
+function updateResourcePrefetchPredictorDb(database) {
+ updateResourcePrefetchPredictorDbView(database);
+}
+
+/**
+ * Truncates the string to keep the database readable.
+ * @param {string} str The string to truncate.
+ * @return {string} The truncated string.
+ */
+function truncateString(str) {
+ return str.length < 100 ? str : str.substring(0, 99);
+}
+
+/**
+ * Updates the table from the database.
+ * @param {Dictionary} database Information about ResourcePrefetchPredictor
+ * including the database as a flattened list, a boolean indicating if the
+ * system is enabled and the current hit weight.
+ */
+function updateResourcePrefetchPredictorDbView(database) {
+ if (!database.enabled) {
+ $('rpp_enabled').style.display = 'none';
+ $('rpp_disabled').style.display = 'block';
+ return;
+ } else {
+ $('rpp_enabled').style.display = 'block';
+ $('rpp_disabled').style.display = 'none';
+ }
+
+ var hasUrlData = database.url_db && database.url_db.length > 0;
+ var hasHostData = database.host_db && database.host_db.length > 0;
+
+ if (hasUrlData)
+ renderCacheData($('rpp_url_body'), database.url_db);
+ if (hasHostData)
+ renderCacheData($('rpp_host_body'), database.host_db);
+}
+
+/**
+ * Renders cache data for URL or host based data.
+ * @param {HTMLElement} body element of table to render into.
+ * @param {Dictionary} database to render.
+ */
+function renderCacheData(body, database) {
+ body.textContent = '';
+ for (var i = 0; i < database.length; ++i) {
+ var main = database[i];
+
+ for (var j = 0; j < main.resources.length; ++j) {
+ var resource = main.resources[j];
+ var row = document.createElement('tr');
+
+ if (j == 0) {
+ var t = document.createElement('td');
+ t.rowSpan = main.resources.length;
+ t.textContent = truncateString(main.main_frame_url);
+ t.className = 'last';
+ row.appendChild(t);
+ }
+
+ if (j == main.resources.length - 1)
+ row.className = 'last';
+
+ row.appendChild(document.createElement('td')).textContent =
+ truncateString(resource.resource_url);
+ row.appendChild(document.createElement('td')).textContent =
+ resource.resource_type;
+ row.appendChild(document.createElement('td')).textContent =
+ resource.number_of_hits;
+ row.appendChild(document.createElement('td')).textContent =
+ resource.number_of_misses;
+ row.appendChild(document.createElement('td')).textContent =
+ resource.consecutive_misses;
+ row.appendChild(document.createElement('td')).textContent =
+ resource.position;
+ row.appendChild(document.createElement('td')).textContent =
+ resource.score;
+ body.appendChild(row);
+ }
+ }
+}
+
+document.addEventListener('DOMContentLoaded',
+ requestResourcePrefetchPredictorDb);
« no previous file with comments | « chrome/browser/resources/predictors/resource_prefetch_predictor.html ('k') | chrome/browser/ui/tab_helpers.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698