Reviewed by John
authorkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 Dec 2004 19:21:09 +0000 (19:21 +0000)
committerkocienda <kocienda@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 Dec 2004 19:21:09 +0000 (19:21 +0000)
        Fix for this bug:

        <rdar://problem/3912841> REGRESSION (173-TOT): Some images report 0x0 dimensions on layout tests, causes spurious test failures

        The new threaded image decoding capability can throw off layout tests. The issue is that the decoding
        callback may not be delivered before the program asks for the dimensions of an image in order to
        wrote the layout dimensions. More generally, I think we need to ensure that there are no races in
        layout tests, so I have added a flag to the render tree debug code that we can set when debugging.

        * kwq/KWQRenderTreeDebug.cpp:
        (debuggingRenderTree): New function. Returns flag which tells whether the program is debugging the render tree.
        (externalRepresentation): Sets debuggingRenderTree flag to true;
        * kwq/KWQRenderTreeDebug.h:
        * kwq/WebCoreImageRendererFactory.m:
        (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]): Checks debuggingRenderTree flag and will not
        do threaded decoding in any case if the flag is set.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8162 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/kwq/KWQRenderTreeDebug.cpp
WebCore/kwq/KWQRenderTreeDebug.h
WebCore/kwq/WebCoreImageRendererFactory.m

index 081d2c3fae799bd45470f05dfef4f883cedb58d5..d284e49c1cf1e4528de74df4f4b703d6df6cd8e7 100644 (file)
@@ -1,3 +1,24 @@
+2004-12-09  Ken Kocienda  <kocienda@apple.com>
+
+        Reviewed by John
+        
+        Fix for this bug:
+        
+        <rdar://problem/3912841> REGRESSION (173-TOT): Some images report 0x0 dimensions on layout tests, causes spurious test failures
+
+        The new threaded image decoding capability can throw off layout tests. The issue is that the decoding
+        callback may not be delivered before the program asks for the dimensions of an image in order to
+        wrote the layout dimensions. More generally, I think we need to ensure that there are no races in
+        layout tests, so I have added a flag to the render tree debug code that we can set when debugging.
+
+        * kwq/KWQRenderTreeDebug.cpp:
+        (debuggingRenderTree): New function. Returns flag which tells whether the program is debugging the render tree.
+        (externalRepresentation): Sets debuggingRenderTree flag to true;
+        * kwq/KWQRenderTreeDebug.h:
+        * kwq/WebCoreImageRendererFactory.m:
+        (+[WebCoreImageRendererFactory shouldUseThreadedDecoding]): Checks debuggingRenderTree flag and will not
+        do threaded decoding in any case if the flag is set.
+
 2004-12-09  Chris Blumenberg  <cblu@apple.com>
 
        Fix for busting XMLHTTPRequest.
index 1726ac2b43f247ec0d8917c77144488de8d2beb9..c5bb9d7ea822f6c0cfef950f30a7570b7f5d7b67 100644 (file)
@@ -424,8 +424,16 @@ static void writeSelection(QTextStream &ts, const RenderObject *o)
     }
 }
 
+static bool debuggingRenderTreeFlag = false;
+
+bool debuggingRenderTree()
+{
+    return debuggingRenderTreeFlag;
+}
+
 QString externalRepresentation(RenderObject *o)
 {
+    debuggingRenderTreeFlag = true;
     JSEditor::setSupportsPasteCommand(true);
 
     QString s;
index dc0ceb72df3e1a5e52b580de56c890b0f7177d22..e84d0c7d109dc56166a9136d68e514903d5a1384 100644 (file)
@@ -23,6 +23,8 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
+#ifdef __cplusplus
+
 #include "KWQString.h"
 
 namespace khtml {
@@ -30,3 +32,16 @@ namespace khtml {
 }
 
 QString externalRepresentation(khtml::RenderObject *);
+
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+bool debuggingRenderTree();
+
+#ifdef __cplusplus
+}
+#endif
index 2d848d2cabaf44f7e16eb1adba62df6aa8bb79f4..8193f94e2b2bfcfc5535c95739dd71c26076fc4f 100644 (file)
@@ -25,6 +25,7 @@
 
 #import "WebCoreImageRendererFactory.h"
 #import "KWQAssertions.h"
+#import "KWQRenderTreeDebug.h"
 
 @implementation WebCoreImageRendererFactory
 
@@ -39,7 +40,7 @@ static BOOL shouldUseThreadedDecoding = NO;
 
 + (BOOL)shouldUseThreadedDecoding
 {
-    return shouldUseThreadedDecoding;
+    return !debuggingRenderTree && shouldUseThreadedDecoding;
 }
 
 + (void)setShouldUseThreadedDecoding:(BOOL)flag