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

Side by Side Diff: webkit/glue/devtools/js/debugger_agent.js

Issue 113950: Separate results of profiling sessions.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | webkit/glue/devtools/js/devtools_host_stub.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Provides communication interface to remote v8 debugger. See 6 * @fileoverview Provides communication interface to remote v8 debugger. See
7 * protocol decription at http://code.google.com/p/v8/wiki/DebuggerProtocol 7 * protocol decription at http://code.google.com/p/v8/wiki/DebuggerProtocol
8 */ 8 */
9 goog.provide('devtools.DebuggerAgent'); 9 goog.provide('devtools.DebuggerAgent');
10 10
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 */ 62 */
63 this.requestSeqToCallback_ = null; 63 this.requestSeqToCallback_ = null;
64 64
65 /** 65 /**
66 * Whether the scripts list has been requested. 66 * Whether the scripts list has been requested.
67 * @type {boolean} 67 * @type {boolean}
68 */ 68 */
69 this.scriptsCacheInitialized_ = false; 69 this.scriptsCacheInitialized_ = false;
70 70
71 /** 71 /**
72 * Whether user has stopped profiling and we are retrieving the rest of 72 * Whether profiling session is started.
73 * profiler's log.
74 * @type {boolean} 73 * @type {boolean}
75 */ 74 */
76 this.isProcessingProfile_ = false; 75 this.isProfilingStarted_ = false;
77 76
78 /** 77 /**
79 * The position in log file to read from. 78 * The position in log file to read from.
80 * @type {number} 79 * @type {number}
81 */ 80 */
82 this.lastProfileLogPosition_ = 0; 81 this.lastProfileLogPosition_ = 0;
83 82
84 /** 83 /**
85 * Profiler processor instance. 84 * Profiler processor instance.
86 * @type {devtools.profiler.Processor} 85 * @type {devtools.profiler.Processor}
87 */ 86 */
88 this.profilerProcessor_ = new devtools.profiler.Processor(); 87 this.profilerProcessor_ = new devtools.profiler.Processor(
88 goog.bind(WebInspector.addProfile, WebInspector));
89 }; 89 };
90 90
91 91
92 /** 92 /**
93 * Resets debugger agent to its initial state. 93 * Resets debugger agent to its initial state.
94 */ 94 */
95 devtools.DebuggerAgent.prototype.reset = function() { 95 devtools.DebuggerAgent.prototype.reset = function() {
96 this.scriptsCacheInitialized_ = false; 96 this.scriptsCacheInitialized_ = false;
97 this.contextId_ = null; 97 this.contextId_ = null;
98 this.parsedScripts_ = {}; 98 this.parsedScripts_ = {};
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 } 341 }
342 callback(object); 342 callback(object);
343 } 343 }
344 }; 344 };
345 345
346 346
347 /** 347 /**
348 * Starts (resumes) profiling. 348 * Starts (resumes) profiling.
349 */ 349 */
350 devtools.DebuggerAgent.prototype.startProfiling = function() { 350 devtools.DebuggerAgent.prototype.startProfiling = function() {
351 if (this.isProcessingProfile_) {
352 return;
353 }
354 RemoteDebuggerAgent.StartProfiling(); 351 RemoteDebuggerAgent.StartProfiling();
355 // Query if profiling has been really started.
356 RemoteDebuggerAgent.IsProfilingStarted(); 352 RemoteDebuggerAgent.IsProfilingStarted();
357 }; 353 };
358 354
359 355
360 /** 356 /**
361 * Stops (pauses) profiling. 357 * Stops (pauses) profiling.
362 */ 358 */
363 devtools.DebuggerAgent.prototype.stopProfiling = function() { 359 devtools.DebuggerAgent.prototype.stopProfiling = function() {
364 this.isProcessingProfile_ = true;
365 RemoteDebuggerAgent.StopProfiling(); 360 RemoteDebuggerAgent.StopProfiling();
366 }; 361 };
367 362
368 363
369 /** 364 /**
370 * Removes specified breakpoint from the v8 debugger. 365 * Removes specified breakpoint from the v8 debugger.
371 * @param {number} breakpointId Id of the breakpoint in the v8 debugger. 366 * @param {number} breakpointId Id of the breakpoint in the v8 debugger.
372 */ 367 */
373 devtools.DebuggerAgent.prototype.requestClearBreakpoint_ = function( 368 devtools.DebuggerAgent.prototype.requestClearBreakpoint_ = function(
374 breakpointId) { 369 breakpointId) {
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 } 601 }
607 this.addScriptInfo_(script); 602 this.addScriptInfo_(script);
608 }; 603 };
609 604
610 605
611 /** 606 /**
612 * Handles current profiler status. 607 * Handles current profiler status.
613 */ 608 */
614 devtools.DebuggerAgent.prototype.didIsProfilingStarted_ = function( 609 devtools.DebuggerAgent.prototype.didIsProfilingStarted_ = function(
615 is_started) { 610 is_started) {
616 if (is_started) { 611 if (is_started && !this.isProfilingStarted_) {
617 // Start to query log data. 612 // Start to query log data.
618 RemoteDebuggerAgent.GetLogLines(this.lastProfileLogPosition_); 613 RemoteDebuggerAgent.GetLogLines(this.lastProfileLogPosition_);
619 } 614 }
615 this.isProfilingStarted_ = is_started;
616 // Update button.
620 WebInspector.setRecordingProfile(is_started); 617 WebInspector.setRecordingProfile(is_started);
618 if (is_started) {
619 // Monitor profiler state. It can stop itself on buffer fill-up.
620 setTimeout(function() { RemoteDebuggerAgent.IsProfilingStarted(); }, 1000);
621 }
621 }; 622 };
622 623
623 624
624 /** 625 /**
625 * Handles a portion of a profiler log retrieved by GetLogLines call. 626 * Handles a portion of a profiler log retrieved by GetLogLines call.
626 * @param {string} log A portion of profiler log. 627 * @param {string} log A portion of profiler log.
627 * @param {number} newPosition The position in log file to read from 628 * @param {number} newPosition The position in log file to read from
628 * next time. 629 * next time.
629 */ 630 */
630 devtools.DebuggerAgent.prototype.didGetLogLines_ = function( 631 devtools.DebuggerAgent.prototype.didGetLogLines_ = function(
631 log, newPosition) { 632 log, newPosition) {
632 if (log.length > 0) { 633 if (log.length > 0) {
633 this.profilerProcessor_.processLogChunk(log); 634 this.profilerProcessor_.processLogChunk(log);
634 this.lastProfileLogPosition_ = newPosition; 635 this.lastProfileLogPosition_ = newPosition;
635 } else if (this.isProcessingProfile_) { 636 } else if (!this.isProfilingStarted_) {
636 this.isProcessingProfile_ = false; 637 // No new data and profiling is stopped---suspend log reading.
637 WebInspector.setRecordingProfile(false);
638 WebInspector.addProfile(this.profilerProcessor_.createProfileForView());
639 return; 638 return;
640 } 639 }
641 setTimeout(function() { RemoteDebuggerAgent.GetLogLines(newPosition); }, 640 setTimeout(function() { RemoteDebuggerAgent.GetLogLines(newPosition); }, 500);
642 this.isProcessingProfile_ ? 100 : 1000);
643 }; 641 };
644 642
645 643
646 /** 644 /**
647 * Adds the script info to the local cache. This method assumes that the script 645 * Adds the script info to the local cache. This method assumes that the script
648 * is not in the cache yet. 646 * is not in the cache yet.
649 * @param {Object} script Script json object from the debugger message. 647 * @param {Object} script Script json object from the debugger message.
650 */ 648 */
651 devtools.DebuggerAgent.prototype.addScriptInfo_ = function(script) { 649 devtools.DebuggerAgent.prototype.addScriptInfo_ = function(script) {
652 this.parsedScripts_[script.id] = new devtools.ScriptInfo( 650 this.parsedScripts_[script.id] = new devtools.ScriptInfo(
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
1155 1153
1156 1154
1157 /** 1155 /**
1158 * @param {number} handle Object handle. 1156 * @param {number} handle Object handle.
1159 * @return {?Object} Returns the object with the handle if it was sent in this 1157 * @return {?Object} Returns the object with the handle if it was sent in this
1160 * message(some objects referenced by handles may be missing in the message). 1158 * message(some objects referenced by handles may be missing in the message).
1161 */ 1159 */
1162 devtools.DebuggerMessage.prototype.lookup = function(handle) { 1160 devtools.DebuggerMessage.prototype.lookup = function(handle) {
1163 return this.refs_[handle]; 1161 return this.refs_[handle];
1164 }; 1162 };
OLDNEW
« no previous file with comments | « no previous file | webkit/glue/devtools/js/devtools_host_stub.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698