Diff
Modified: trunk/Source/WebCore/ChangeLog (115204 => 115205)
--- trunk/Source/WebCore/ChangeLog 2012-04-25 14:35:34 UTC (rev 115204)
+++ trunk/Source/WebCore/ChangeLog 2012-04-25 14:39:36 UTC (rev 115205)
@@ -1,3 +1,26 @@
+2012-04-25 Yury Semikhatsky <[email protected]>
+
+ Web Inspector: move HeapSnapshotLoader into a separate file
+ https://bugs.webkit.org/show_bug.cgi?id=84860
+
+ Extracted HeapSnapshotLoader into its own file.
+
+ Reviewed by Pavel Feldman.
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * inspector/compile-front-end.py:
+ * inspector/front-end/HeapSnapshot.js:
+ * inspector/front-end/HeapSnapshotLoader.js: Added.
+ (WebInspector.HeapSnapshotLoader):
+ (WebInspector.HeapSnapshotLoader.prototype._findBalancedCurlyBrackets):
+ (WebInspector.HeapSnapshotLoader.prototype.finishLoading):
+ (WebInspector.HeapSnapshotLoader.prototype._parseUintArray):
+ (WebInspector.HeapSnapshotLoader.prototype._parseStringsArray):
+ (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/inspector.html:
+
2012-04-25 'Pavel Feldman' <[email protected]>
Not reviewed: inspector frontend tests fix.
Modified: trunk/Source/WebCore/WebCore.gypi (115204 => 115205)
--- trunk/Source/WebCore/WebCore.gypi 2012-04-25 14:35:34 UTC (rev 115204)
+++ trunk/Source/WebCore/WebCore.gypi 2012-04-25 14:39:36 UTC (rev 115205)
@@ -6350,6 +6350,7 @@
'inspector/front-end/HeapSnapshot.js',
'inspector/front-end/HeapSnapshotDataGrids.js',
'inspector/front-end/HeapSnapshotGridNodes.js',
+ 'inspector/front-end/HeapSnapshotLoader.js',
'inspector/front-end/HeapSnapshotProxy.js',
'inspector/front-end/HeapSnapshotView.js',
'inspector/front-end/HeapSnapshotWorker.js',
Modified: trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj (115204 => 115205)
--- trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj 2012-04-25 14:35:34 UTC (rev 115204)
+++ trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj 2012-04-25 14:39:36 UTC (rev 115205)
@@ -74033,6 +74033,10 @@
>
</File>
<File
+ RelativePath="..\inspector\front-end\HeapSnapshotLoader.js"
+ >
+ </File>
+ <File
RelativePath="..\inspector\front-end\HeapSnapshotProxy.js"
>
</File>
Modified: trunk/Source/WebCore/inspector/compile-front-end.py (115204 => 115205)
--- trunk/Source/WebCore/inspector/compile-front-end.py 2012-04-25 14:35:34 UTC (rev 115204)
+++ trunk/Source/WebCore/inspector/compile-front-end.py 2012-04-25 14:39:36 UTC (rev 115205)
@@ -292,6 +292,7 @@
"HeapSnapshot.js",
"HeapSnapshotDataGrids.js",
"HeapSnapshotGridNodes.js",
+ "HeapSnapshotLoader.js",
"HeapSnapshotProxy.js",
"HeapSnapshotView.js",
"HeapSnapshotWorker.js",
Modified: trunk/Source/WebCore/inspector/front-end/HeapSnapshot.js (115204 => 115205)
--- trunk/Source/WebCore/inspector/front-end/HeapSnapshot.js 2012-04-25 14:35:34 UTC (rev 115204)
+++ trunk/Source/WebCore/inspector/front-end/HeapSnapshot.js 2012-04-25 14:39:36 UTC (rev 115205)
@@ -60,206 +60,6 @@
/**
* @constructor
*/
-WebInspector.HeapSnapshotLoader = function()
-{
- this._json = "";
- this._state = "find-snapshot-info";
- this._snapshot = {};
-}
-
-WebInspector.HeapSnapshotLoader.prototype = {
- _findBalancedCurlyBrackets: function()
- {
- var counter = 0;
- var openingBracket = "{".charCodeAt(0), closingBracket = "}".charCodeAt(0);
- for (var i = 0, l = this._json.length; i < l; ++i) {
- var character = this._json.charCodeAt(i);
- if (character === openingBracket)
- ++counter;
- else if (character === closingBracket) {
- if (--counter === 0)
- return i + 1;
- }
- }
- return -1;
- },
-
- finishLoading: function()
- {
- if (!this._json)
- return null;
- this._parseStringsArray();
- this._json = "";
- var result = new WebInspector.HeapSnapshot(this._snapshot);
- this._json = "";
- this._snapshot = {};
- return result;
- },
-
- _parseUintArray: function()
- {
- var index = 0;
- var char0 = "0".charCodeAt(0), char9 = "9".charCodeAt(0), closingBracket = "]".charCodeAt(0);
- var length = this._json.length;
- while (true) {
- while (index < length) {
- var code = this._json.charCodeAt(index);
- if (char0 <= code && code <= char9)
- break;
- else if (code === closingBracket) {
- this._json = this._json.slice(index + 1);
- return false;
- }
- ++index;
- }
- if (index === length) {
- this._json = "";
- return true;
- }
- var nextNumber = 0;
- var startIndex = index;
- while (index < length) {
- var code = this._json.charCodeAt(index);
- if (char0 > code || code > char9)
- break;
- nextNumber *= 10;
- nextNumber += (code - char0);
- ++index;
- }
- if (index === length) {
- this._json = this._json.slice(startIndex);
- return true;
- }
- this._array.push(nextNumber);
- }
- },
-
- _parseStringsArray: function()
- {
- var closingBracketIndex = this._json.lastIndexOf("]");
- if (closingBracketIndex === -1)
- throw new Error("Incomplete JSON");
- this._json = this._json.slice(0, closingBracketIndex + 1);
- this._snapshot.strings = JSON.parse(this._json);
- },
-
- pushJSONChunk: function(chunk)
- {
- this._json += chunk;
- switch (this._state) {
- case "find-snapshot-info": {
- var snapshotToken = "\"snapshot\"";
- var snapshotTokenIndex = this._json.indexOf(snapshotToken);
- if (snapshotTokenIndex === -1)
- throw new Error("Snapshot token not found");
- this._json = this._json.slice(snapshotTokenIndex + snapshotToken.length + 1);
- this._state = "parse-snapshot-info";
- this.pushJSONChunk("");
- break;
- }
- case "parse-snapshot-info": {
- var closingBracketIndex = this._findBalancedCurlyBrackets();
- if (closingBracketIndex === -1)
- return;
- this._snapshot.snapshot = /** @type {HeapSnapshotHeader} */JSON.parse(this._json.slice(0, closingBracketIndex));
- this._json = this._json.slice(closingBracketIndex);
- this._state = "find-nodes";
- this.pushJSONChunk("");
- break;
- }
- case "find-nodes": {
- var nodesToken = "\"nodes\"";
- var nodesTokenIndex = this._json.indexOf(nodesToken);
- if (nodesTokenIndex === -1)
- return;
- var bracketIndex = this._json.indexOf("[", nodesTokenIndex);
- if (bracketIndex === -1)
- return;
- this._json = this._json.slice(bracketIndex + 1);
- if (this._snapshot.snapshot.meta) {
- var node_fields_count = this._snapshot.snapshot.meta.node_fields.length;
- var nodes_length = this._snapshot.snapshot.node_count * node_fields_count;
- this._array = new WebInspector.Uint32Array(nodes_length);
- this._snapshot.snapshot.meta.separate_edges = true;
- this._state = "parse-nodes";
- } else {
- this._state = "parse-nodes-meta-info";
- }
- this.pushJSONChunk("");
- break;
- }
- case "parse-nodes-meta-info": {
- var closingBracketIndex = this._findBalancedCurlyBrackets();
- if (closingBracketIndex === -1)
- return;
- this._snapshot.snapshot.meta = JSON.parse(this._json.slice(0, closingBracketIndex));
- this._json = this._json.slice(closingBracketIndex);
- this._array = new WebInspector.Uint32Array();
- this._array.push(0);
- this._state = "parse-nodes";
- this.pushJSONChunk("");
- break;
- }
- case "parse-nodes": {
- if (this._parseUintArray())
- return;
- if (this._snapshot.snapshot.meta.separate_edges) {
- this._snapshot._onlyNodes_ = this._array.array;
- this._state = "find-edges";
- } else {
- this._snapshot.nodes = this._array.array;
- this._state = "find-strings";
- }
- this._array = null;
- this.pushJSONChunk("");
- break;
- }
- case "find-edges": {
- var edgesToken = "\"edges\"";
- var edgesTokenIndex = this._json.indexOf(edgesToken);
- if (edgesTokenIndex === -1)
- return;
- var bracketIndex = this._json.indexOf("[", edgesTokenIndex);
- if (bracketIndex === -1)
- return;
- this._json = this._json.slice(bracketIndex + 1);
- var edge_fields_count = this._snapshot.snapshot.meta.edge_fields.length;
- var edges_length = this._snapshot.snapshot.edge_count * edge_fields_count;
- this._array = new WebInspector.Uint32Array(edges_length);
- this._state = "parse-edges";
- this.pushJSONChunk("");
- break;
- }
- case "parse-edges": {
- if (this._parseUintArray())
- return;
- this._snapshot.containmentEdges = this._array.array;
- this._array = null;
- this._state = "find-strings";
- this.pushJSONChunk("");
- break;
- }
- case "find-strings": {
- var stringsToken = "\"strings\"";
- var stringsTokenIndex = this._json.indexOf(stringsToken);
- if (stringsTokenIndex === -1)
- return;
- var bracketIndex = this._json.indexOf("[", stringsTokenIndex);
- if (bracketIndex === -1)
- return;
- this._json = this._json.slice(bracketIndex);
- this._state = "accumulate-strings";
- break;
- }
- case "accumulate-strings":
- break;
- }
- }
-};
-
-/**
- * @constructor
- */
WebInspector.HeapSnapshotArraySlice = function(array, start, end)
{
this._array = array;
Added: trunk/Source/WebCore/inspector/front-end/HeapSnapshotLoader.js (0 => 115205)
--- trunk/Source/WebCore/inspector/front-end/HeapSnapshotLoader.js (rev 0)
+++ trunk/Source/WebCore/inspector/front-end/HeapSnapshotLoader.js 2012-04-25 14:39:36 UTC (rev 115205)
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 2012 Google 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:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+/**
+ * @constructor
+ */
+WebInspector.HeapSnapshotLoader = function()
+{
+ this._json = "";
+ this._state = "find-snapshot-info";
+ this._snapshot = {};
+}
+
+WebInspector.HeapSnapshotLoader.prototype = {
+ _findBalancedCurlyBrackets: function()
+ {
+ var counter = 0;
+ var openingBracket = "{".charCodeAt(0), closingBracket = "}".charCodeAt(0);
+ for (var i = 0, l = this._json.length; i < l; ++i) {
+ var character = this._json.charCodeAt(i);
+ if (character === openingBracket)
+ ++counter;
+ else if (character === closingBracket) {
+ if (--counter === 0)
+ return i + 1;
+ }
+ }
+ return -1;
+ },
+
+ finishLoading: function()
+ {
+ if (!this._json)
+ return null;
+ this._parseStringsArray();
+ this._json = "";
+ var result = new WebInspector.HeapSnapshot(this._snapshot);
+ this._json = "";
+ this._snapshot = {};
+ return result;
+ },
+
+ _parseUintArray: function()
+ {
+ var index = 0;
+ var char0 = "0".charCodeAt(0), char9 = "9".charCodeAt(0), closingBracket = "]".charCodeAt(0);
+ var length = this._json.length;
+ while (true) {
+ while (index < length) {
+ var code = this._json.charCodeAt(index);
+ if (char0 <= code && code <= char9)
+ break;
+ else if (code === closingBracket) {
+ this._json = this._json.slice(index + 1);
+ return false;
+ }
+ ++index;
+ }
+ if (index === length) {
+ this._json = "";
+ return true;
+ }
+ var nextNumber = 0;
+ var startIndex = index;
+ while (index < length) {
+ var code = this._json.charCodeAt(index);
+ if (char0 > code || code > char9)
+ break;
+ nextNumber *= 10;
+ nextNumber += (code - char0);
+ ++index;
+ }
+ if (index === length) {
+ this._json = this._json.slice(startIndex);
+ return true;
+ }
+ this._array.push(nextNumber);
+ }
+ },
+
+ _parseStringsArray: function()
+ {
+ var closingBracketIndex = this._json.lastIndexOf("]");
+ if (closingBracketIndex === -1)
+ throw new Error("Incomplete JSON");
+ this._json = this._json.slice(0, closingBracketIndex + 1);
+ this._snapshot.strings = JSON.parse(this._json);
+ },
+
+ pushJSONChunk: function(chunk)
+ {
+ this._json += chunk;
+ switch (this._state) {
+ case "find-snapshot-info": {
+ var snapshotToken = "\"snapshot\"";
+ var snapshotTokenIndex = this._json.indexOf(snapshotToken);
+ if (snapshotTokenIndex === -1)
+ throw new Error("Snapshot token not found");
+ this._json = this._json.slice(snapshotTokenIndex + snapshotToken.length + 1);
+ this._state = "parse-snapshot-info";
+ this.pushJSONChunk("");
+ break;
+ }
+ case "parse-snapshot-info": {
+ var closingBracketIndex = this._findBalancedCurlyBrackets();
+ if (closingBracketIndex === -1)
+ return;
+ this._snapshot.snapshot = /** @type {HeapSnapshotHeader} */JSON.parse(this._json.slice(0, closingBracketIndex));
+ this._json = this._json.slice(closingBracketIndex);
+ this._state = "find-nodes";
+ this.pushJSONChunk("");
+ break;
+ }
+ case "find-nodes": {
+ var nodesToken = "\"nodes\"";
+ var nodesTokenIndex = this._json.indexOf(nodesToken);
+ if (nodesTokenIndex === -1)
+ return;
+ var bracketIndex = this._json.indexOf("[", nodesTokenIndex);
+ if (bracketIndex === -1)
+ return;
+ this._json = this._json.slice(bracketIndex + 1);
+ if (this._snapshot.snapshot.meta) {
+ var node_fields_count = this._snapshot.snapshot.meta.node_fields.length;
+ var nodes_length = this._snapshot.snapshot.node_count * node_fields_count;
+ this._array = new WebInspector.Uint32Array(nodes_length);
+ this._snapshot.snapshot.meta.separate_edges = true;
+ this._state = "parse-nodes";
+ } else {
+ this._state = "parse-nodes-meta-info";
+ }
+ this.pushJSONChunk("");
+ break;
+ }
+ case "parse-nodes-meta-info": {
+ var closingBracketIndex = this._findBalancedCurlyBrackets();
+ if (closingBracketIndex === -1)
+ return;
+ this._snapshot.snapshot.meta = JSON.parse(this._json.slice(0, closingBracketIndex));
+ this._json = this._json.slice(closingBracketIndex);
+ this._array = new WebInspector.Uint32Array();
+ this._array.push(0);
+ this._state = "parse-nodes";
+ this.pushJSONChunk("");
+ break;
+ }
+ case "parse-nodes": {
+ if (this._parseUintArray())
+ return;
+ if (this._snapshot.snapshot.meta.separate_edges) {
+ this._snapshot._onlyNodes_ = this._array.array;
+ this._state = "find-edges";
+ } else {
+ this._snapshot.nodes = this._array.array;
+ this._state = "find-strings";
+ }
+ this._array = null;
+ this.pushJSONChunk("");
+ break;
+ }
+ case "find-edges": {
+ var edgesToken = "\"edges\"";
+ var edgesTokenIndex = this._json.indexOf(edgesToken);
+ if (edgesTokenIndex === -1)
+ return;
+ var bracketIndex = this._json.indexOf("[", edgesTokenIndex);
+ if (bracketIndex === -1)
+ return;
+ this._json = this._json.slice(bracketIndex + 1);
+ var edge_fields_count = this._snapshot.snapshot.meta.edge_fields.length;
+ var edges_length = this._snapshot.snapshot.edge_count * edge_fields_count;
+ this._array = new WebInspector.Uint32Array(edges_length);
+ this._state = "parse-edges";
+ this.pushJSONChunk("");
+ break;
+ }
+ case "parse-edges": {
+ if (this._parseUintArray())
+ return;
+ this._snapshot.containmentEdges = this._array.array;
+ this._array = null;
+ this._state = "find-strings";
+ this.pushJSONChunk("");
+ break;
+ }
+ case "find-strings": {
+ var stringsToken = "\"strings\"";
+ var stringsTokenIndex = this._json.indexOf(stringsToken);
+ if (stringsTokenIndex === -1)
+ return;
+ var bracketIndex = this._json.indexOf("[", stringsTokenIndex);
+ if (bracketIndex === -1)
+ return;
+ this._json = this._json.slice(bracketIndex);
+ this._state = "accumulate-strings";
+ break;
+ }
+ case "accumulate-strings":
+ break;
+ }
+ }
+};
Property changes on: trunk/Source/WebCore/inspector/front-end/HeapSnapshotLoader.js
___________________________________________________________________
Added: svn:eol-style
Modified: trunk/Source/WebCore/inspector/front-end/HeapSnapshotWorker.js (115204 => 115205)
--- trunk/Source/WebCore/inspector/front-end/HeapSnapshotWorker.js 2012-04-25 14:35:34 UTC (rev 115204)
+++ trunk/Source/WebCore/inspector/front-end/HeapSnapshotWorker.js 2012-04-25 14:39:36 UTC (rev 115205)
@@ -32,6 +32,7 @@
WebInspector.UIString = function(s) { return s; };
importScripts("HeapSnapshot.js");
+importScripts("HeapSnapshotLoader.js");
importScripts("HeapSnapshotWorkerDispatcher.js");
importScripts("utilities.js");
Modified: trunk/Source/WebCore/inspector/front-end/WebKit.qrc (115204 => 115205)
--- trunk/Source/WebCore/inspector/front-end/WebKit.qrc 2012-04-25 14:35:34 UTC (rev 115204)
+++ trunk/Source/WebCore/inspector/front-end/WebKit.qrc 2012-04-25 14:39:36 UTC (rev 115205)
@@ -63,6 +63,7 @@
<file>HeapSnapshot.js</file>
<file>HeapSnapshotDataGrids.js</file>
<file>HeapSnapshotGridNodes.js</file>
+ <file>HeapSnapshotLoader.js</file>
<file>HeapSnapshotProxy.js</file>
<file>HeapSnapshotView.js</file>
<file>HeapSnapshotWorker.js</file>
Modified: trunk/Source/WebCore/inspector/front-end/inspector.html (115204 => 115205)
--- trunk/Source/WebCore/inspector/front-end/inspector.html 2012-04-25 14:35:34 UTC (rev 115204)
+++ trunk/Source/WebCore/inspector/front-end/inspector.html 2012-04-25 14:39:36 UTC (rev 115205)
@@ -171,6 +171,7 @@
<script type="text/_javascript_" src=""
<script type="text/_javascript_" src=""
<script type="text/_javascript_" src=""
+ <script type="text/_javascript_" src=""
<script type="text/_javascript_" src=""
<script type="text/_javascript_" src=""
<script type="text/_javascript_" src=""
Modified: trunk/Source/WebKit/chromium/ChangeLog (115204 => 115205)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-04-25 14:35:34 UTC (rev 115204)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-04-25 14:39:36 UTC (rev 115205)
@@ -1,3 +1,14 @@
+2012-04-25 Yury Semikhatsky <[email protected]>
+
+ Web Inspector: move HeapSnapshotLoader into a separate file
+ https://bugs.webkit.org/show_bug.cgi?id=84860
+
+ Extracted HeapSnapshotLoader into its own file.
+
+ Reviewed by Pavel Feldman.
+
+ * WebKit.gyp:
+
2012-04-25 Ian Vollick <[email protected]>
[chromium] Animations waiting for a synchronized start time should never be marked finished.
Modified: trunk/Source/WebKit/chromium/WebKit.gyp (115204 => 115205)
--- trunk/Source/WebKit/chromium/WebKit.gyp 2012-04-25 14:35:34 UTC (rev 115204)
+++ trunk/Source/WebKit/chromium/WebKit.gyp 2012-04-25 14:39:36 UTC (rev 115205)
@@ -1092,6 +1092,7 @@
'<@(_script_name)',
'<@(_input_file)',
'../../WebCore/inspector/front-end/HeapSnapshot.js',
+ '../../WebCore/inspector/front-end/HeapSnapshotLoader.js',
'../../WebCore/inspector/front-end/HeapSnapshotWorkerDispatcher.js',
'../../WebCore/inspector/front-end/utilities.js',
],