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

Unified Diff: appengine_apps/chromium_status/static/js/profiling/data_fetcher.js

Issue 778533003: Moved chromium_status to appengine/ (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 6 years 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: appengine_apps/chromium_status/static/js/profiling/data_fetcher.js
diff --git a/appengine_apps/chromium_status/static/js/profiling/data_fetcher.js b/appengine_apps/chromium_status/static/js/profiling/data_fetcher.js
deleted file mode 100644
index 4d16b40e813923924cf37c35b676dee02c38ab7f..0000000000000000000000000000000000000000
--- a/appengine_apps/chromium_status/static/js/profiling/data_fetcher.js
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright (c) 2011 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.
-
-/**
- * Helper that fetches the profiling information data from a server.
- *
- * The public method it exports is:
- * DataFetcher.GetEntries(filters, callback) method.
- */
-var DataFetcher = {};
-
-// -----------------------------------------------------------------------------
-// Private implementation
-// -----------------------------------------------------------------------------
-(function() {
-
-/**
- * Downloads a single url and calls callback(text,error) on completion.
- *
- * @param {string} url
- * @param {function} callback
- */
-function Fetch(url, callback, no_cache) {
- DomUtil.DisplayNode(document.getElementById('error_container'), false);
- var r = new XMLHttpRequest();
- r.open("GET", url, true);
- if (no_cache) {
- r.setRequestHeader("pragma", "no-cache");
- r.setRequestHeader("cache-control", "no-cache");
- }
- r.onreadystatechange = function() {
- if (r.readyState == 4) {
- var error;
- if (r.status != 200) {
- error = url + ": " + r.status + ": " + r.statusText;
- } else if (!r.responseText) {
- error = url + ": null response";
- }
- callback(r.responseText, r.status, error);
- }
- }
-
- r.send(null);
- return r;
-};
-
-/**
- * Parses response text and returns the parsed entries.
- */
-function ParseDataResponseAndAppend(text) {
- try {
- var content = JSON.parse(text);
- } catch (err) {
- Log("Content is invalid: " + err + "\n" + text);
- return;
- }
-
- var entries = [];
- for (var i = 0; i < content.length; ++i) {
- var item = content[i];
- entries.push(
- new Entry(
- // The time has a trailing ".XXXXX" ms component we don't care for.
- // Also append "UTC" so we are left with a string resembling:
- // "2009-10-14 21:59:18 UTC"
- DateUtil.ParseUTCDateTimeString(item.timestamp.split(".")[0] + " UTC"),
- item.domain,
- item.platform,
- item.duration,
- item.argv,
- item.executable,
- item.first_arg));
- }
- return entries;
-};
-
-/**
- * Fetches all of the profiling data relating to |filters|.
- * On completion |callback(entries)| is invoked, where |entries| is a list of
- * Entry instances or undefined if the request failed.
- **/
-DataFetcher.GetEntries = function(filters, callback) {
- var url = "/profiling?";
- var keys = Object.keys(filters);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- if (filters[key]) {
- if (!url.match("\\?$")) {
- url += "&";
- }
- url += encodeURIComponent(key) + "=" + encodeURIComponent(filters[key]);
- }
- }
-
- return Fetch(url, OnFetchedDataComplete.bind(this, callback));
-};
-
-/**
- * Callback for when the data has been fetched.
- *
- * @param {function} callback The user's callback.
- * @param {string} text The contents of the response.
- * @param {int} status The http status code.
- * @param {string} error Any error message, or undefined on success.
- */
-function OnFetchedDataComplete(callback, text, status, error) {
- if (status == 200) {
- // Everything is OK.
- var entries = ParseDataResponseAndAppend(text, error);
- callback(entries);
- if (!entries) {
- // Text is probably an error message. Replace the "log" div with "text"
- // content.
- var log_div = document.getElementById('log');
- log_div.innerText = "";
- DomUtil.AddText(log_div, text);
- }
-
- } else if (status == 0) {
- // Request was aborted.
- callback(undefined);
-
- } else if (status == 403) {
- // Need admin access.
- callback(undefined);
- if (!document.getElementById("form_login")) {
- // POST to /login to get a ASCID cookie.
- var container = document.getElementById("login_container");
- var form = DomUtil.AddNode(container, "form");
- form.setAttribute("method", "POST");
- form.setAttribute("action", "/login");
- form.id = "form_login";
- // TODO(maruel): Use a <a> instead? It would be nicer.
- var input = DomUtil.AddNode(form, "input");
- input.type = "submit";
- input.value = "Please login first with an admin account";
- DomUtil.DisplayNode(container, true);
- }
-
- } else if (status == 500 || status == 501 || status == 503) {
- // AppEngine misbehaves. Dump the text so the user can view the GAE error.
- callback(undefined);
- var container = document.getElementById('error_container');
- container.innerHTML = text;
- DomUtil.DisplayNode(container, true);
-
- } else {
- // Unknown error. Log it instead of putting it in error_container.
- callback(undefined);
- Log(error);
- Log(text);
- }
-};
-
-})(); // Private implementation.

Powered by Google App Engine
This is Rietveld 408576698