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

Side by Side Diff: chrome/browser/resources/gpu/main.js

Issue 5228004: Switch the about:gpu implementation from an about handler to dom_ui.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6 * Object to communicate between the renderer and the browser.
7 * @type {!BrowserBridge}
8 */
9 var g_browser = null;
10
11 /**
12 * Main entry point. called once the page has loaded.
13 */
14 function onLoaded() {
15 g_browser = new BrowserBridge();
16
17 // Create a view which will display general information
18 // about the gpu.
19 var infoView = new InfoView("infoTabContent");
arv (Not doing code reviews) 2010/11/24 19:07:38 Use single quotes for all js
nduca 2010/12/03 21:32:50 Done.
20 g_browser.infoView_ = infoView;
21
22 // Create a view which lets you tab between the different sub-views.
23 var categoryTabSwitcher =
24 new TabSwitcherView(new DivView('categoryTabHandles'));
25
26 // Populate the main tabs.
27 categoryTabSwitcher.addTab('infoTab', infoView, false);
28
29 // Build a map from the anchor name of each tab handle to its "tab ID".
30 // We will consider navigations to the #hash as a switch tab request.
31 var anchorMap = {};
32 var tabIds = categoryTabSwitcher.getAllTabIds();
33 for (var i = 0; i < tabIds.length; ++i) {
34 var aNode = document.getElementById(tabIds[i]);
35 anchorMap[aNode.hash] = tabIds[i];
36 }
37 // Default the empty hash to the info tab.
38 anchorMap['#'] = anchorMap[''] = 'infoTab';
39
40 window.onhashchange = function() {
41 var tabId = anchorMap[window.location.hash];
42 if (tabId)
43 categoryTabSwitcher.switchToTab(tabId);
44 };
45
46 // Make this category tab widget the primary view, that fills the whole page.
47 var windowView = new WindowView(categoryTabSwitcher);
48
49 // Trigger initial layout.
50 windowView.resetGeometry();
51
52 // Select the initial view based on the current URL.
53 window.onhashchange();
54 }
55
56 /**
57 * This class provides a "bridge" for communicating between the javascript and
58 * the browser.
59 *
60 * @constructor
61 */
62 function BrowserBridge() {
63 this.nextRequestId = 0;
64 this.pendingCallbacks_ = []
65 // If we are not running inside DOMUI, otuput chrome.send messages
66 // to the console to help with quick-iteration debugging.
67 if(chrome.send === undefined && console.log) {
68 chrome.send = function(messageHandler,args) {
69 if(args) {
70 console.log("chrome.send(" + messageHandler + ", " +
71 args.toString() + ")");
72 } else {
73 console.log("chrome.send(" + messageHandler + ")");
74 }
75 };
76 }
77 }
78
79 /**
80 * This function sends the specified message and arguments, if any, to
81 * Chrome. It will prepend the message arugments with a requestId. The
82 * C++-side Chrome code to call onSendReply with that requestId
83 * in order to complete the request.
84 */
85 BrowserBridge.prototype.callAsync = function(submessage, args, callback) {
86 var requestId = this.nextRequestId;
87 this.nextRequestId += 1;
88 this.pendingCallbacks_[requestId] = callback;
89 if(args === undefined) {
90 chrome.send("callAsync", [requestId.toString(), submessage]);
91 } else {
92 var all_args = [requestId.toString(), submessage].concat(args);
93 chrome.send("callAsync", all_args);
94 }
95 };
96
97 /**
98 * Called by gpu c++ code when client info is ready.
99 */
100 BrowserBridge.prototype.onCallAsyncReply = function(requestId,args) {
101 if(this.pendingCallbacks_[requestId] === undefined) {
102 throw "requestId " + requestId + " is not pending";
arv (Not doing code reviews) 2010/11/24 19:07:38 only throw errors
nduca 2010/12/03 21:32:50 Done.
103 }
104 var callback = this.pendingCallbacks_[requestId];
105 callback(args);
106 delete this.pendingCallbacks_[requestId];
107 }
108
109 convertTimeTicksToDate = function(timeTicks) {
110 // Note that the subtraction by 0 is to cast to a number (probably a float
111 // since the numbers are big).
112 var timeStampMs = (this.timeTickOffset_ - 0) + (timeTicks - 0);
113 var d = new Date();
114 d.setTime(timeStampMs);
115 return d;
116 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698