summaryrefslogtreecommitdiff
path: root/Source/WebInspectorUI/UserInterface/ProfileManager.js
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebInspectorUI/UserInterface/ProfileManager.js')
-rw-r--r--Source/WebInspectorUI/UserInterface/ProfileManager.js226
1 files changed, 0 insertions, 226 deletions
diff --git a/Source/WebInspectorUI/UserInterface/ProfileManager.js b/Source/WebInspectorUI/UserInterface/ProfileManager.js
deleted file mode 100644
index c1ef1fd93..000000000
--- a/Source/WebInspectorUI/UserInterface/ProfileManager.js
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-WebInspector.ProfileManager = function()
-{
- WebInspector.Object.call(this);
-
- this._javaScriptProfileType = new WebInspector.JavaScriptProfileType;
- this._canvasProfileType = new WebInspector.CanvasProfileType;
-
- if (window.ProfilerAgent) {
- ProfilerAgent.enable();
- ProfilerAgent.getProfileHeaders();
- }
-
- WebInspector.Frame.addEventListener(WebInspector.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);
-
- this.initialize();
-};
-
-WebInspector.ProfileManager.Event = {
- ProfileWasAdded: "profile-manager-profile-was-added",
- ProfileWasUpdated: "profile-manager-profile-was-updated",
- ProfilingStarted: "profile-manager-profiling-started",
- ProfilingEnded: "profile-manager-profiling-ended",
- ProfilingInterrupted: "profile-manager-profiling-interrupted",
- Cleared: "profile-manager-cleared"
-};
-
-WebInspector.ProfileManager.UserInitiatedProfileName = "org.webkit.profiles.user-initiated";
-
-WebInspector.ProfileManager.prototype = {
- constructor: WebInspector.ProfileManager,
-
- // Public
-
- initialize: function()
- {
- this._checkForInterruptions();
-
- this._recordingJavaScriptProfile = null;
- this._recordingCanvasProfile = null;
-
- this._isProfiling = false;
-
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.Cleared);
- },
-
- isProfilingJavaScript: function()
- {
- return this._javaScriptProfileType.isRecordingProfile();
- },
-
- startProfilingJavaScript: function()
- {
- this._javaScriptProfileType.startRecordingProfile();
- },
-
- stopProfilingJavaScript: function()
- {
- this._javaScriptProfileType.stopRecordingProfile();
- },
-
- isProfilingCanvas: function()
- {
- return this._canvasProfileType.isRecordingProfile();
- },
-
- startProfilingCanvas: function()
- {
- this._canvasProfileType.startRecordingProfile();
-
- var id = this._canvasProfileType.nextProfileId();
- this._recordingCanvasProfile = new WebInspector.CanvasProfileObject(WebInspector.UIString("Canvas Profile %d").format(id), id, true);
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfileWasAdded, {profile: this._recordingCanvasProfile});
-
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfilingStarted);
- },
-
- stopProfilingCanvas: function()
- {
- function canvasProfilingStopped(error, profile)
- {
- if (error)
- return;
-
- console.assert(this._recordingCanvasProfile);
-
- this._recordingCanvasProfile.data = profile.data;
- this._recordingCanvasProfile.recording = false;
-
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfileWasUpdated, {profile: this._recordingCanvasProfile});
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfilingEnded, {profile: this._recordingCanvasProfile});
-
- this._recordingCanvasProfile = null;
- }
-
- this._canvasProfileType.stopRecordingProfile(canvasProfilingStopped.bind(this));
- },
-
- profileWasStartedFromConsole: function(title)
- {
- this.setRecordingJavaScriptProfile(true, true);
-
- if (title.indexOf(WebInspector.ProfileManager.UserInitiatedProfileName) === -1) {
- this._recordingJavaScriptProfile.title = title;
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfileWasUpdated, {profile: this._recordingJavaScriptProfile});
- }
- },
-
- profileWasEndedFromConsole: function()
- {
- this.setRecordingJavaScriptProfile(false, true);
- },
-
- addJavaScriptProfile: function(profile)
- {
- console.assert(this._recordingJavaScriptProfile);
- if (!this._recordingJavaScriptProfile)
- return;
-
- this._recordingJavaScriptProfile.type = profile.typeId;
- this._recordingJavaScriptProfile.title = profile.title;
- this._recordingJavaScriptProfile.id = profile.uid;
- this._recordingJavaScriptProfile.recording = false;
-
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfileWasUpdated, {profile: this._recordingJavaScriptProfile});
-
- // We want to reset _recordingJavaScriptProfile so that we can identify
- // interruptions, but we also want to keep track of the last profile
- // we've recorded so that we can provide it as data to the ProfilingEnded event
- // we'll dispatch in setRecordingJavaScriptProfile().
- this._lastJavaScriptProfileAdded = this._recordingJavaScriptProfile;
- this._recordingJavaScriptProfile = null;
- },
-
- setRecordingJavaScriptProfile: function(isProfiling, fromConsole)
- {
- if (this._isProfiling === isProfiling)
- return;
-
- this._isProfiling = isProfiling;
-
- // We've interrupted the current JS profile due to a page reload. Return
- // now and _attemptToResumeProfiling will pick things up after the reload.
- if (!isProfiling && !!this._recordingJavaScriptProfile)
- return;
-
- if (isProfiling && !this._recordingJavaScriptProfile)
- this._recordingJavaScriptProfile = new WebInspector.JavaScriptProfileObject(WebInspector.ProfileManager.UserInitiatedProfileName, -1, true);
-
- if (isProfiling) {
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfileWasAdded, {profile: this._recordingJavaScriptProfile});
- if (!fromConsole)
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfilingStarted);
- } else {
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfilingEnded, {
- profile: this._lastJavaScriptProfileAdded,
- fromConsole: fromConsole
- });
- this._lastJavaScriptProfileAdded = null;
- }
- },
-
- // Private
-
- _mainResourceDidChange: function(event)
- {
- console.assert(event.target instanceof WebInspector.Frame);
-
- if (!event.target.isMainFrame())
- return;
-
- var oldMainResource = event.data.oldMainResource;
- var newMainResource = event.target.mainResource;
- if (oldMainResource.url !== newMainResource.url)
- this.initialize();
- else
- this._attemptToResumeProfiling();
- },
-
- _checkForInterruptions: function()
- {
- if (this._recordingJavaScriptProfile) {
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfilingInterrupted, {profile: this._recordingJavaScriptProfile});
- this._javaScriptProfileType.setRecordingProfile(false);
- } else if (this._recordingCanvasProfile) {
- this.dispatchEventToListeners(WebInspector.ProfileManager.Event.ProfilingInterrupted, {profile: this._recordingCanvasProfile});
- this._canvasProfileType.setRecordingProfile(false);
- }
- },
-
- _attemptToResumeProfiling: function()
- {
- this._checkForInterruptions();
-
- if (this._recordingJavaScriptProfile)
- this.startProfilingJavaScript();
- else if (this._recordingCanvasProfile)
- this.startProfilingCanvas();
- }
-};
-
-WebInspector.ProfileManager.prototype.__proto__ = WebInspector.Object.prototype;