summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources/net_internals/main.js
blob: b23d71fdc2059248efd33ed572cbb83b70aae42c (plain)
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
// Copyright (c) 2010 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.

/**
 * Dictionary of constants (initialized by browser).
 */
var LogEntryType = null;
var LogEventType = null;
var LogEventPhase = null;
var LogSourceType = null;

/**
 * Main entry point. called once the page has loaded.
 */
function onLoaded() {
  // Layout the various DIVs in a vertically split fashion.
  new LayoutManager("filterBox",
                    "requestsBox",
                    "actionBox",
                    "splitterBox",
                    "detailsBox");

  // Create the view which displays information on the current selection.
  var detailsView = new DetailsView("detailsLogTabHandle",
                                    "detailsTimelineTabHandle",
                                    "detailsTabArea");

  // Create the view which displays requests lists, and lets you select, filter
  // and delete them.
  new RequestsView('requestsListTableBody',
                   'filterInput',
                   'filterCount',
                   'deleteSelected',
                   'selectAll',
                   detailsView);

  // Tell the browser that we are ready to start receiving log events.
  notifyApplicationReady();
}

//------------------------------------------------------------------------------
// Messages sent to the browser
//------------------------------------------------------------------------------

function notifyApplicationReady() {
  chrome.send('notifyReady');
}

//------------------------------------------------------------------------------
// Messages received from the browser
//------------------------------------------------------------------------------

function onLogEntryAdded(logEntry) {
  LogDataProvider.broadcast(logEntry);
}

function setLogEventTypeConstants(constantsMap) {
  LogEventType = constantsMap;
}

function setLogEventPhaseConstants(constantsMap) {
  LogEventPhase = constantsMap;
}

function setLogSourceTypeConstants(constantsMap) {
  LogSourceType = constantsMap;
}

function setLogEntryTypeConstants(constantsMap) {
  LogEntryType = constantsMap;
}

//------------------------------------------------------------------------------
// LogDataProvider
//------------------------------------------------------------------------------

var LogDataProvider = {}

LogDataProvider.observers_ = [];

LogDataProvider.broadcast = function(logEntry) {
  for (var i = 0; i < this.observers_.length; ++i) {
    this.observers_[i].onLogEntryAdded(logEntry);
  }
};

LogDataProvider.addObserver = function(observer) {
  this.observers_.push(observer);
};