Title: [93972] trunk
Revision
93972
Author
[email protected]
Date
2011-08-29 05:19:39 -0700 (Mon, 29 Aug 2011)

Log Message

Web Inspector: extract FormattedContentProvider from RawSourceCode.
https://bugs.webkit.org/show_bug.cgi?id=66938

Reviewed by Pavel Feldman.

Source/WebCore:

* inspector/front-end/SourceFile.js:
(WebInspector.RawSourceCode.prototype._setContentProvider):
(WebInspector.RawSourceCode.prototype._loadResourceContent):
(WebInspector.RawSourceCode.prototype._loadScriptContent):
(WebInspector.RawSourceCode.prototype._loadAndConcatenateScriptsContent):
(WebInspector.RawSourceCode.prototype._didRequestContent):
(WebInspector.FormattedContentProvider):
(WebInspector.FormattedContentProvider.prototype.requestContent.didRequestContent.didFormatContent):
(WebInspector.FormattedContentProvider.prototype.requestContent):

LayoutTests:

* inspector/debugger/content-providers-expected.txt:
* inspector/debugger/content-providers.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (93971 => 93972)


--- trunk/LayoutTests/ChangeLog	2011-08-29 12:03:57 UTC (rev 93971)
+++ trunk/LayoutTests/ChangeLog	2011-08-29 12:19:39 UTC (rev 93972)
@@ -1,3 +1,13 @@
+2011-08-25  Pavel Podivilov  <[email protected]>
+
+        Web Inspector: extract FormattedContentProvider from RawSourceCode.
+        https://bugs.webkit.org/show_bug.cgi?id=66938
+
+        Reviewed by Pavel Feldman.
+
+        * inspector/debugger/content-providers-expected.txt:
+        * inspector/debugger/content-providers.html:
+
 2011-08-29  Pavel Podivilov  <[email protected]>
 
         Unreviewed, mark fast/dom/dom-constructors.html as TEXT in chromium.

Modified: trunk/LayoutTests/inspector/debugger/content-providers-expected.txt (93971 => 93972)


--- trunk/LayoutTests/inspector/debugger/content-providers-expected.txt	2011-08-29 12:03:57 UTC (rev 93971)
+++ trunk/LayoutTests/inspector/debugger/content-providers-expected.txt	2011-08-29 12:19:39 UTC (rev 93972)
@@ -21,3 +21,5 @@
 Running: testResourceContentProvider
 Request resource content.
 
+Running: testFormattedContentProvider
+

Modified: trunk/LayoutTests/inspector/debugger/content-providers.html (93971 => 93972)


--- trunk/LayoutTests/inspector/debugger/content-providers.html	2011-08-29 12:03:57 UTC (rev 93971)
+++ trunk/LayoutTests/inspector/debugger/content-providers.html	2011-08-29 12:19:39 UTC (rev 93972)
@@ -69,6 +69,28 @@
                 next();
             }
             contentProvider.requestContent(didRequestContent);
+        },
+
+        function testFormattedContentProvider(next)
+        {
+            var mapping = {};
+            var formatter = {
+                formatContent: function(mimeType, content, callback)
+                {
+                    setTimeout(callback.bind(null, "<formatted> " + content, mapping), 0);
+                }
+            };
+            var resource = { type: WebInspector.Resource.Type.Document, requestContent: function(callback) { callback("<resource content>"); } };
+            var contentProvider = new WebInspector.ResourceContentProvider(resource);
+            var formattedContentProvider = new WebInspector.FormattedContentProvider(contentProvider, formatter);
+            function didRequestContent(mimeType, content)
+            {
+                InspectorTest.assertEquals("text/html", mimeType);
+                InspectorTest.assertEquals("<formatted> <resource content>", content);
+                InspectorTest.assertEquals(mapping, formattedContentProvider.mapping);
+                next();
+            }
+            formattedContentProvider.requestContent(didRequestContent);
         }
     ]);
 };

Modified: trunk/Source/WebCore/ChangeLog (93971 => 93972)


--- trunk/Source/WebCore/ChangeLog	2011-08-29 12:03:57 UTC (rev 93971)
+++ trunk/Source/WebCore/ChangeLog	2011-08-29 12:19:39 UTC (rev 93972)
@@ -1,5 +1,22 @@
 2011-08-25  Pavel Podivilov  <[email protected]>
 
+        Web Inspector: extract FormattedContentProvider from RawSourceCode.
+        https://bugs.webkit.org/show_bug.cgi?id=66938
+
+        Reviewed by Pavel Feldman.
+
+        * inspector/front-end/SourceFile.js:
+        (WebInspector.RawSourceCode.prototype._setContentProvider):
+        (WebInspector.RawSourceCode.prototype._loadResourceContent):
+        (WebInspector.RawSourceCode.prototype._loadScriptContent):
+        (WebInspector.RawSourceCode.prototype._loadAndConcatenateScriptsContent):
+        (WebInspector.RawSourceCode.prototype._didRequestContent):
+        (WebInspector.FormattedContentProvider):
+        (WebInspector.FormattedContentProvider.prototype.requestContent.didRequestContent.didFormatContent):
+        (WebInspector.FormattedContentProvider.prototype.requestContent):
+
+2011-08-25  Pavel Podivilov  <[email protected]>
+
         Web Inspector: link UISourceCode to RawSourceCode.
         https://bugs.webkit.org/show_bug.cgi?id=66944
 

Modified: trunk/Source/WebCore/inspector/front-end/SourceFile.js (93971 => 93972)


--- trunk/Source/WebCore/inspector/front-end/SourceFile.js	2011-08-29 12:03:57 UTC (rev 93971)
+++ trunk/Source/WebCore/inspector/front-end/SourceFile.js	2011-08-29 12:19:39 UTC (rev 93972)
@@ -143,6 +143,14 @@
         this.requestContent(didRequestContent.bind(this));
     },
 
+    _setContentProvider: function(contentProvider)
+    {
+        if (this._formatted)
+            this._contentProvider = new WebInspector.FormattedContentProvider(contentProvider, this._formatter);
+        else
+            this._contentProvider = contentProvider;
+    },
+
     forceLoadContent: function(script)
     {
         if (!this._hasPendingResource())
@@ -193,47 +201,32 @@
 
     _loadResourceContent: function(resource)
     {
-        var contentProvider = new WebInspector.ResourceContentProvider(resource);
-        contentProvider.requestContent(this._didRequestContent.bind(this));
+        this._setContentProvider(new WebInspector.ResourceContentProvider(resource));
+        this._contentProvider.requestContent(this._didRequestContent.bind(this));
     },
 
     _loadScriptContent: function()
     {
-        var contentProvider = new WebInspector.ScriptContentProvider(this._scripts[0]);
-        contentProvider.requestContent(this._didRequestContent.bind(this));
+        this._setContentProvider(new WebInspector.ScriptContentProvider(this._scripts[0]));
+        this._contentProvider.requestContent(this._didRequestContent.bind(this));
     },
 
     _loadAndConcatenateScriptsContent: function()
     {
-        var contentProvider;
         if (this._scripts.length === 1 && !this._scripts[0].lineOffset && !this._scripts[0].columnOffset)
-            contentProvider = new WebInspector.ScriptContentProvider(this._scripts[0]);
+            this._setContentProvider(new WebInspector.ScriptContentProvider(this._scripts[0]));
         else
-            contentProvider = new WebInspector.ConcatenatedScriptsContentProvider(this._scripts);
-        contentProvider.requestContent(this._didRequestContent.bind(this));
+            this._setContentProvider(new WebInspector.ConcatenatedScriptsContentProvider(this._scripts));
+        this._contentProvider.requestContent(this._didRequestContent.bind(this));
     },
 
     _didRequestContent: function(mimeType, content)
     {
-        if (!this._formatted) {
-            this._invokeRequestContentCallbacks(mimeType, content);
-            return;
-        }
-
-        function didFormatContent(formattedContent, mapping)
-        {
-            this._mapping = mapping;
-            this._invokeRequestContentCallbacks(mimeType, formattedContent);
-        }
-        this._formatter.formatContent(mimeType, content, didFormatContent.bind(this));
-    },
-
-    _invokeRequestContentCallbacks: function(mimeType, content)
-    {
         this._contentLoaded = true;
         this._contentRequested = false;
         this._mimeType = mimeType;
         this._content = content;
+        this._mapping = this._contentProvider.mapping;
 
         for (var i = 0; i < this._requestContentCallbacks.length; ++i)
             this._requestContentCallbacks[i](mimeType, content);
@@ -365,3 +358,28 @@
 }
 
 WebInspector.ResourceContentProvider.prototype.__proto__ = WebInspector.ContentProvider.prototype;
+
+
+WebInspector.FormattedContentProvider = function(contentProvider, formatter)
+{
+    this._contentProvider = contentProvider;
+    this._formatter = formatter;
+};
+
+WebInspector.FormattedContentProvider.prototype = {
+    requestContent: function(callback)
+    {
+        function didRequestContent(mimeType, content)
+        {
+            function didFormatContent(formattedContent, mapping)
+            {
+                this.mapping = mapping;
+                callback(mimeType, formattedContent);
+            }
+            this._formatter.formatContent(mimeType, content, didFormatContent.bind(this));
+        }
+        this._contentProvider.requestContent(didRequestContent.bind(this));
+    }
+}
+
+WebInspector.FormattedContentProvider.prototype.__proto__ = WebInspector.ContentProvider.prototype;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to