Source/WebCore: [CSS2.1] Anonymous tables should be inline/block-level based off...
authorjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Jul 2012 23:10:50 +0000 (23:10 +0000)
committerjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Jul 2012 23:10:50 +0000 (23:10 +0000)
https://bugs.webkit.org/show_bug.cgi?id=15365

Reviewed by Abhishek Arya.

This change makes us match bullet 3 "Generate missing parents" of section 17.2.1 http://www.w3.org/TR/CSS2/tables.html#anonymous-boxes":
"If a table is contained by an inline element, then the anonymous tables should be inline-tables."

Patch based on an earlier change by Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>.

Tests: css2.1/20110323/inline-table-002b.html
       fast/dynamic/insert-before-table-part-in-continuation.html
       fast/table/inline-table-in-continuation.html
       fast/table/inline-table-with-caption.html

* rendering/RenderTable.cpp:
(WebCore::RenderTable::createAnonymousWithParentRenderer):
Added a check to determine if we should be inline or block based on our parent to match CSS 2.1.

* rendering/RenderInline.cpp:
(WebCore::RenderInline::addChildIgnoringContinuation):
Changed the child addition logic to not wrap a table part in an inline context. This change works
as intended as we will call RenderObject::addChild which will create an anonymous inline table that
will be added under |this| instead of the table part. As the table is inline, it doesn't need to be
wrapped when we recursively call RenderInline::addChild.

Source/WebKit2: [WK2] Add Vibration API integration to WebContext and WebPage
https://bugs.webkit.org/show_bug.cgi?id=91081

Reviewed by Anders Carlsson.

Integrate Vibration API to WebPage, WebContext and properly route
messages to the WebVibrationProxy.

* UIProcess/API/C/WKContext.cpp:
(WKContextGetVibration):
* UIProcess/API/C/WKContext.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::~WebContext):
(WebKit::WebContext::disconnectProcess):
(WebKit::WebContext::didReceiveMessage):
* UIProcess/WebContext.h:
(WebKit):
(WebContext):
(WebKit::WebContext::vibrationProxy):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessage):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):

Tools: [EFL] [WK2] Add a callback to handle delete request in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=91483

Reviewed by Dirk Pranke.

Add a callback to handle delete request and quit the main loop when
window is asked to be deleted so that all the resources allocated
for the window will be freed properly.

* MiniBrowser/efl/main.c:
(closeWindow):
(browserCreate):

LayoutTests: [CSS2.1] Anonymous tables should be inline/block-level based off their parent
https://bugs.webkit.org/show_bug.cgi?id=15365

Reviewed by Abhishek Arya.

* css2.1/20110323/inline-table-002b-expected.htm: Added.
* css2.1/20110323/inline-table-002b.html: Added.

* fast/table/inline-table-in-continuation-expected.html: Added.
* fast/table/inline-table-in-continuation.html: Added.
Added a test for an anonymous inline table in a continuation.

* fast/table/inline-table-with-caption-expected.html: Added.
* fast/table/inline-table-with-caption.html: Added.
Added a test for a table-caption in inline-context.

* platform/chromium-win/tables/mozilla/bugs/bug3037-1-expected.txt:
This is a progression: we now properly make the table inline and don't wrap it in anonymous blocks.

* platform/chromium-linux/fast/dynamic/insert-before-table-part-in-continuation-expected.png:
* platform/chromium-win/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
This is a progression too. However we still have some differences with Firefox and Opera.

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

15 files changed:
LayoutTests/ChangeLog
LayoutTests/css2.1/20110323/inline-table-002b-expected.htm [new file with mode: 0644]
LayoutTests/css2.1/20110323/inline-table-002b.html [new file with mode: 0644]
LayoutTests/fast/table/inline-table-in-continuation-expected.html [new file with mode: 0644]
LayoutTests/fast/table/inline-table-in-continuation.html [new file with mode: 0644]
LayoutTests/fast/table/inline-table-with-caption-expected.html [new file with mode: 0644]
LayoutTests/fast/table/inline-table-with-caption.html [new file with mode: 0644]
LayoutTests/platform/chromium-linux/fast/dynamic/insert-before-table-part-in-continuation-expected.png
LayoutTests/platform/chromium-win/fast/dynamic/insert-before-table-part-in-continuation-expected.txt
LayoutTests/platform/chromium-win/tables/mozilla/bugs/bug3037-1-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderInline.cpp
Source/WebCore/rendering/RenderTable.cpp
Source/WebKit2/ChangeLog
Tools/ChangeLog

index adc9698..fce07fd 100644 (file)
@@ -1,3 +1,28 @@
+2012-07-19  Julien Chaffraix  <jchaffraix@webkit.org>
+
+        [CSS2.1] Anonymous tables should be inline/block-level based off their parent
+        https://bugs.webkit.org/show_bug.cgi?id=15365
+
+        Reviewed by Abhishek Arya.
+
+        * css2.1/20110323/inline-table-002b-expected.htm: Added.
+        * css2.1/20110323/inline-table-002b.html: Added.
+
+        * fast/table/inline-table-in-continuation-expected.html: Added.
+        * fast/table/inline-table-in-continuation.html: Added.
+        Added a test for an anonymous inline table in a continuation.
+
+        * fast/table/inline-table-with-caption-expected.html: Added.
+        * fast/table/inline-table-with-caption.html: Added.
+        Added a test for a table-caption in inline-context.
+
+        * platform/chromium-win/tables/mozilla/bugs/bug3037-1-expected.txt:
+        This is a progression: we now properly make the table inline and don't wrap it in anonymous blocks.
+
+        * platform/chromium-linux/fast/dynamic/insert-before-table-part-in-continuation-expected.png:
+        * platform/chromium-win/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
+        This is a progression too. However we still have some differences with Firefox and Opera.
+
 2012-07-19  Chris Fleizach  <cfleizach@apple.com>
 
         WebKit should pass <title> element value as the default AXTitle for web views
         * compositing/layer-creation/animation-overlap-with-children-expected.txt: Added.
         * compositing/layer-creation/animation-overlap-with-children.html: Added.
 
+2012-07-19  Simon Fraser  <simon.fraser@apple.com>
+
+        Keep overlap testing on for descendants of an animating element
+        https://bugs.webkit.org/show_bug.cgi?id=91787
+
+        Reviewed by Beth Dakin.
+
+        Test with two layers inside an animating container; one should be composited
+        because of overlap, the other should not be.
+
+        * compositing/layer-creation/animation-overlap-with-children-expected.txt: Added.
+        * compositing/layer-creation/animation-overlap-with-children.html: Added.
+
 2012-07-19  Luciano Wolf  <luciano.wolf@openbossa.org>
 
         [Qt] [Part 5] platform/qt/css1 tests needs update after rebaseline and new testfonts
diff --git a/LayoutTests/css2.1/20110323/inline-table-002b-expected.htm b/LayoutTests/css2.1/20110323/inline-table-002b-expected.htm
new file mode 100644 (file)
index 0000000..9030d72
--- /dev/null
@@ -0,0 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>
+<title>CSS Test: Reference for inline-table test</title>
+<link rel="author" title="L. David Baron" href="http://dbaron.org/" />
+<link rel="author" title="Mozilla Corporation" href="http://mozilla.com/" />
+</head>
+<body>
+<p>abcde</p>
+
+
+</body></html>
\ No newline at end of file
diff --git a/LayoutTests/css2.1/20110323/inline-table-002b.html b/LayoutTests/css2.1/20110323/inline-table-002b.html
new file mode 100644 (file)
index 0000000..d446f1c
--- /dev/null
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html><head>
+<title>CSS Test: Test for inline-table</title>
+<link rel="author" title="L. David Baron" href="http://dbaron.org/">
+<link rel="author" title="Mozilla Corporation" href="http://mozilla.com/">
+<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#table-display">
+<meta name="assert" content="it is a rectangular block that participates in an inline formatting context).">
+<link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#leading">
+<link rel="match" href="http://test.csswg.org/suites/css2.1/nightly-unstable/html4/reference/inline-table-002-ref.htm">
+<meta name="assert" content="The baseline of an &#39;inline-table&#39; is the baseline of the first row of the table.">
+<meta name="flags" content="">
+<style type="text/css">
+span > span { display: table-cell; }
+span > span > span { display: block; visibility: hidden; }
+</style>
+</head>
+<body>
+<p><span>a<span>bcd<span>x</span></span>e</span></p>
+
+
+</body></html>
diff --git a/LayoutTests/fast/table/inline-table-in-continuation-expected.html b/LayoutTests/fast/table/inline-table-in-continuation-expected.html
new file mode 100644 (file)
index 0000000..f9a2f35
--- /dev/null
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+<body>
+<span>a<i>b<span>cd</span>e</i>f</span>
+</body>
+</html>
diff --git a/LayoutTests/fast/table/inline-table-in-continuation.html b/LayoutTests/fast/table/inline-table-in-continuation.html
new file mode 100644 (file)
index 0000000..93ad56a
--- /dev/null
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+.cell {
+    display: table-cell;
+}
+</style>
+</head>
+<body>
+<span>a<i>b<div class="cell">cd</div>e</i>f</span>
+</body>
+</html>
diff --git a/LayoutTests/fast/table/inline-table-with-caption-expected.html b/LayoutTests/fast/table/inline-table-with-caption-expected.html
new file mode 100644 (file)
index 0000000..cf760d7
--- /dev/null
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+<body>
+<span>ab<table style="display: inline-table"><caption>cd</caption></table>ef</span>
+</body>
+</html>
diff --git a/LayoutTests/fast/table/inline-table-with-caption.html b/LayoutTests/fast/table/inline-table-with-caption.html
new file mode 100644 (file)
index 0000000..1179a5c
--- /dev/null
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+.caption {
+    display: table-caption;
+}
+</style>
+</head>
+<body>
+<span>ab<div class="caption">cd</div>ef</span>
+</body>
+</html>
index 1ef1cfa..8194a89 100644 (file)
Binary files a/LayoutTests/platform/chromium-linux/fast/dynamic/insert-before-table-part-in-continuation-expected.png and b/LayoutTests/platform/chromium-linux/fast/dynamic/insert-before-table-part-in-continuation-expected.png differ
index 3346ca6..89d095b 100644 (file)
@@ -1,9 +1,9 @@
-layer at (0,0) size 785x748
-  RenderView at (0,0) size 785x600
-layer at (0,0) size 785x748
-  RenderBlock {HTML} at (0,0) size 785x748
-    RenderBody {BODY} at (8,8) size 769x732
-      RenderBlock {P} at (0,0) size 769x20
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderBlock {P} at (0,0) size 784x20
         RenderText {#text} at (0,0) size 51x19
           text run at (0,0) width 51: "Test for "
         RenderInline {I} at (0,0) size 638x19
@@ -15,111 +15,88 @@ layer at (0,0) size 785x748
             text run at (360,0) width 329: "Safari Crashes when opening a JS TreeGrid widget"
         RenderText {#text} at (689,0) size 4x19
           text run at (689,0) width 4: "."
-      RenderBlock {P} at (0,36) size 769x80
-        RenderText {#text} at (0,0) size 744x79
+      RenderBlock {P} at (0,36) size 784x60
+        RenderText {#text} at (0,0) size 783x59
           text run at (0,0) width 739: "The test sets up an inline parent with a child that is some kind of table part. The child gets broken off into a continuation and"
           text run at (0,20) width 744: "anonymous table parts get created below and/or above the table parts. Then the test tries to insert a new child into the inline,"
-          text run at (0,40) width 741: "specifying the table part as the \"before child\". The resulting render tree should look just like it would look if the parent was a"
-          text run at (0,60) width 38: "block."
-      RenderBlock {DIV} at (0,132) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 123x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-            RenderText {#text} at (39,0) size 84x19
-              text run at (39,0) width 84: "goes here and"
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+          text run at (0,40) width 783: "specifying the table part as the \"before child\". The resulting render tree should look just like it would look if the parent was a block."
+      RenderBlock {DIV} at (0,112) size 784x20
+        RenderInline {SPAN} at (0,0) size 221x19
+          RenderText {#text} at (0,0) size 39x19
+            text run at (0,0) width 39: "Text..."
+          RenderText {#text} at (39,0) size 84x19
+            text run at (39,0) width 84: "goes here and"
+          RenderTable at (123,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x20
               RenderTableRow (anonymous) at (0,0) size 98x20
                 RenderTableCell {DIV} at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,172) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 39x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 99x20
+      RenderBlock {DIV} at (0,132) size 784x20
+        RenderInline {SPAN} at (0,0) size 138x19
+          RenderText {#text} at (0,0) size 39x19
+            text run at (0,0) width 39: "Text..."
+          RenderTable at (39,0) size 99x20
             RenderTableSection (anonymous) at (0,0) size 99x20
               RenderTableRow (anonymous) at (0,0) size 99x20
                 RenderTableCell {TD} at (0,0) size 0x0 [r=0 c=0 rs=1 cs=1]
                 RenderTableCell {DIV} at (0,0) size 99x20 [r=0 c=1 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,212) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 39x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+      RenderBlock {DIV} at (0,152) size 784x25
+        RenderInline {SPAN} at (0,0) size 137x19
+          RenderText {#text} at (0,5) size 39x19
+            text run at (0,5) width 39: "Text..."
+          RenderTable at (39,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x20
               RenderTableRow {TR} at (0,0) size 98x0
               RenderTableRow (anonymous) at (0,0) size 98x20
                 RenderTableCell {DIV} at (0,0) size 98x20 [r=1 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,252) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 39x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-            RenderInline {SPAN} at (0,0) size 0x19
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+      RenderBlock {DIV} at (0,177) size 784x20
+        RenderInline {SPAN} at (0,0) size 137x19
+          RenderText {#text} at (0,0) size 39x19
+            text run at (0,0) width 39: "Text..."
+          RenderInline {SPAN} at (0,0) size 0x19
+          RenderTable at (39,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x20
               RenderTableRow (anonymous) at (0,0) size 98x20
                 RenderTableCell {DIV} at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,292) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
+      RenderBlock {DIV} at (0,197) size 784x40
+        RenderBlock (anonymous) at (0,0) size 784x20
           RenderInline {SPAN} at (0,0) size 39x19
             RenderText {#text} at (0,0) size 39x19
               text run at (0,0) width 39: "Text..."
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderBlock {DIV} at (0,0) size 769x0
+        RenderBlock (anonymous) at (0,20) size 784x20
+          RenderBlock {DIV} at (0,0) size 784x0
           RenderTable at (0,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x20
               RenderTableRow (anonymous) at (0,0) size 98x20
                 RenderTableCell {DIV} at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
+        RenderBlock (anonymous) at (0,40) size 784x0
           RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,332) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 123x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-            RenderText {#text} at (39,0) size 84x19
-              text run at (39,0) width 84: "goes here and"
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+      RenderBlock {DIV} at (0,237) size 784x20
+        RenderInline {SPAN} at (0,0) size 221x19
+          RenderText {#text} at (0,0) size 39x19
+            text run at (0,0) width 39: "Text..."
+          RenderText {#text} at (39,0) size 84x19
+            text run at (39,0) width 84: "goes here and"
+          RenderTable at (123,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x20
               RenderTableRow {DIV} at (0,0) size 98x20
                 RenderTableCell (anonymous) at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,372) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 39x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+      RenderBlock {DIV} at (0,257) size 784x25
+        RenderInline {SPAN} at (0,0) size 137x19
+          RenderText {#text} at (0,5) size 39x19
+            text run at (0,5) width 39: "Text..."
+          RenderTable at (39,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x20
               RenderTableRow (anonymous) at (0,0) size 98x0
                 RenderTableCell {TD} at (0,0) size 98x0 [r=0 c=0 rs=1 cs=1]
@@ -127,76 +104,60 @@ layer at (0,0) size 785x748
                 RenderTableCell (anonymous) at (0,0) size 98x20 [r=1 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,412) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 39x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+      RenderBlock {DIV} at (0,282) size 784x25
+        RenderInline {SPAN} at (0,0) size 137x19
+          RenderText {#text} at (0,5) size 39x19
+            text run at (0,5) width 39: "Text..."
+          RenderTable at (39,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x20
               RenderTableRow {TR} at (0,0) size 98x0
               RenderTableRow {DIV} at (0,0) size 98x20
                 RenderTableCell (anonymous) at (0,0) size 98x20 [r=1 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,452) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 39x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-            RenderInline {SPAN} at (0,0) size 0x19
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+      RenderBlock {DIV} at (0,307) size 784x20
+        RenderInline {SPAN} at (0,0) size 137x19
+          RenderText {#text} at (0,0) size 39x19
+            text run at (0,0) width 39: "Text..."
+          RenderInline {SPAN} at (0,0) size 0x19
+          RenderTable at (39,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x20
               RenderTableRow {DIV} at (0,0) size 98x20
                 RenderTableCell (anonymous) at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,492) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
+      RenderBlock {DIV} at (0,327) size 784x40
+        RenderBlock (anonymous) at (0,0) size 784x20
           RenderInline {SPAN} at (0,0) size 39x19
             RenderText {#text} at (0,0) size 39x19
               text run at (0,0) width 39: "Text..."
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderBlock {DIV} at (0,0) size 769x0
+        RenderBlock (anonymous) at (0,20) size 784x20
+          RenderBlock {DIV} at (0,0) size 784x0
           RenderTable at (0,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x20
               RenderTableRow {DIV} at (0,0) size 98x20
                 RenderTableCell (anonymous) at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
+        RenderBlock (anonymous) at (0,40) size 784x0
           RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,532) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 123x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-            RenderText {#text} at (39,0) size 84x19
-              text run at (39,0) width 84: "goes here and"
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+      RenderBlock {DIV} at (0,367) size 784x20
+        RenderInline {SPAN} at (0,0) size 221x19
+          RenderText {#text} at (0,0) size 39x19
+            text run at (0,0) width 39: "Text..."
+          RenderText {#text} at (39,0) size 84x19
+            text run at (39,0) width 84: "goes here and"
+          RenderTable at (123,0) size 98x20
             RenderTableSection {DIV} at (0,0) size 98x20
               RenderTableRow (anonymous) at (0,0) size 98x20
                 RenderTableCell (anonymous) at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,572) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 39x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+      RenderBlock {DIV} at (0,387) size 784x25
+        RenderInline {SPAN} at (0,0) size 137x19
+          RenderText {#text} at (0,5) size 39x19
+            text run at (0,5) width 39: "Text..."
+          RenderTable at (39,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x0
               RenderTableRow (anonymous) at (0,0) size 98x0
                 RenderTableCell {TD} at (0,0) size 98x0 [r=0 c=0 rs=1 cs=1]
@@ -205,15 +166,11 @@ layer at (0,0) size 785x748
                 RenderTableCell (anonymous) at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,612) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 39x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+      RenderBlock {DIV} at (0,412) size 784x25
+        RenderInline {SPAN} at (0,0) size 137x19
+          RenderText {#text} at (0,5) size 39x19
+            text run at (0,5) width 39: "Text..."
+          RenderTable at (39,0) size 98x20
             RenderTableSection (anonymous) at (0,0) size 98x0
               RenderTableRow {TR} at (0,0) size 98x0
             RenderTableSection {DIV} at (0,0) size 98x20
@@ -221,35 +178,29 @@ layer at (0,0) size 785x748
                 RenderTableCell (anonymous) at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,652) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
-          RenderInline {SPAN} at (0,0) size 39x19
-            RenderText {#text} at (0,0) size 39x19
-              text run at (0,0) width 39: "Text..."
-            RenderInline {SPAN} at (0,0) size 0x19
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderTable at (0,0) size 98x20
+      RenderBlock {DIV} at (0,437) size 784x20
+        RenderInline {SPAN} at (0,0) size 137x19
+          RenderText {#text} at (0,0) size 39x19
+            text run at (0,0) width 39: "Text..."
+          RenderInline {SPAN} at (0,0) size 0x19
+          RenderTable at (39,0) size 98x20
             RenderTableSection {DIV} at (0,0) size 98x20
               RenderTableRow (anonymous) at (0,0) size 98x20
                 RenderTableCell (anonymous) at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
-          RenderInline {SPAN} at (0,0) size 0x0
-      RenderBlock {DIV} at (0,692) size 769x40
-        RenderBlock (anonymous) at (0,0) size 769x20
+      RenderBlock {DIV} at (0,457) size 784x40
+        RenderBlock (anonymous) at (0,0) size 784x20
           RenderInline {SPAN} at (0,0) size 39x19
             RenderText {#text} at (0,0) size 39x19
               text run at (0,0) width 39: "Text..."
-        RenderBlock (anonymous) at (0,20) size 769x20
-          RenderBlock {DIV} at (0,0) size 769x0
+        RenderBlock (anonymous) at (0,20) size 784x20
+          RenderBlock {DIV} at (0,0) size 784x0
           RenderTable at (0,0) size 98x20
             RenderTableSection {DIV} at (0,0) size 98x20
               RenderTableRow (anonymous) at (0,0) size 98x20
                 RenderTableCell (anonymous) at (0,0) size 98x20 [r=0 c=0 rs=1 cs=1]
                   RenderText {#text} at (0,0) size 98x19
                     text run at (0,0) width 98: "...continues here"
-        RenderBlock (anonymous) at (0,40) size 769x0
+        RenderBlock (anonymous) at (0,40) size 784x0
           RenderInline {SPAN} at (0,0) size 0x0
index dc16f7a..856c598 100644 (file)
@@ -3,38 +3,30 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderBlock {HTML} at (0,0) size 800x600
     RenderBody {BODY} at (8,8) size 784x584
-      RenderBlock (anonymous) at (0,0) size 784x0
-        RenderInline {WINDOW} at (0,0) size 0x0
+      RenderInline {WINDOW} at (0,0) size 33x19
+        RenderText {#text} at (0,0) size 0x0
+        RenderInline {WINDOW} at (0,0) size 33x19
           RenderText {#text} at (0,0) size 0x0
-          RenderInline {WINDOW} at (0,0) size 0x0
+          RenderInline {WINDOW} at (0,0) size 33x19
             RenderText {#text} at (0,0) size 0x0
-            RenderInline {WINDOW} at (0,0) size 0x0
+            RenderInline {XUL:TOOLBOX} at (0,0) size 33x19
               RenderText {#text} at (0,0) size 0x0
-              RenderInline {XUL:TOOLBOX} at (0,0) size 0x0
-                RenderText {#text} at (0,0) size 0x0
-                RenderInline {XUL:TOOLBAR} at (0,0) size 0x0
-                  RenderText {#text} at (0,0) size 0x0
-      RenderBlock (anonymous) at (0,0) size 784x20
-        RenderTable at (0,0) size 33x20
-          RenderTableSection (anonymous) at (0,0) size 33x20
-            RenderTableRow (anonymous) at (0,0) size 33x20
-              RenderTableCell {HTML:SPAN} at (0,0) size 32x20 [r=0 c=0 rs=1 cs=1]
-                RenderInline {HTML:BUTTON} at (0,0) size 32x19 [bgcolor=#C0C0C0]
-                  RenderText {#text} at (0,0) size 0x0
-                  RenderInline {HTML:IMG} at (0,0) size 32x19
-                    RenderInline {HTML:BR} at (0,0) size 32x19
-                      RenderText {#text} at (0,0) size 32x19
-                        text run at (0,0) width 32: "Back"
-                RenderText {#text} at (0,0) size 0x0
-              RenderTableCell {HTML:SPAN} at (32,0) size 1x0 [r=0 c=1 rs=1 cs=1]
-                RenderInline {HTML:INPUT} at (0,0) size 0x0
-                RenderText {#text} at (0,0) size 0x0
-      RenderBlock (anonymous) at (0,20) size 784x0
-        RenderInline {WINDOW} at (0,0) size 0x0
-          RenderInline {WINDOW} at (0,0) size 0x0
-            RenderInline {WINDOW} at (0,0) size 0x0
-              RenderInline {XUL:TOOLBOX} at (0,0) size 0x0
-                RenderInline {XUL:TOOLBAR} at (0,0) size 0x0
+              RenderInline {XUL:TOOLBAR} at (0,0) size 33x19
                 RenderText {#text} at (0,0) size 0x0
+                RenderTable at (0,0) size 33x20
+                  RenderTableSection (anonymous) at (0,0) size 33x20
+                    RenderTableRow (anonymous) at (0,0) size 33x20
+                      RenderTableCell {HTML:SPAN} at (0,0) size 32x20 [r=0 c=0 rs=1 cs=1]
+                        RenderInline {HTML:BUTTON} at (0,0) size 32x19 [bgcolor=#C0C0C0]
+                          RenderText {#text} at (0,0) size 0x0
+                          RenderInline {HTML:IMG} at (0,0) size 32x19
+                            RenderInline {HTML:BR} at (0,0) size 32x19
+                              RenderText {#text} at (0,0) size 32x19
+                                text run at (0,0) width 32: "Back"
+                        RenderText {#text} at (0,0) size 0x0
+                      RenderTableCell {HTML:SPAN} at (32,0) size 1x0 [r=0 c=1 rs=1 cs=1]
+                        RenderInline {HTML:INPUT} at (0,0) size 0x0
+                        RenderText {#text} at (0,0) size 0x0
               RenderText {#text} at (0,0) size 0x0
             RenderText {#text} at (0,0) size 0x0
+          RenderText {#text} at (0,0) size 0x0
index 78213fc..1d17cb3 100644 (file)
@@ -1,3 +1,31 @@
+2012-07-19  Julien Chaffraix  <jchaffraix@webkit.org>
+
+        [CSS2.1] Anonymous tables should be inline/block-level based off their parent
+        https://bugs.webkit.org/show_bug.cgi?id=15365
+
+        Reviewed by Abhishek Arya.
+
+        This change makes us match bullet 3 "Generate missing parents" of section 17.2.1 http://www.w3.org/TR/CSS2/tables.html#anonymous-boxes":
+        "If a table is contained by an inline element, then the anonymous tables should be inline-tables."
+
+        Patch based on an earlier change by Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>.
+
+        Tests: css2.1/20110323/inline-table-002b.html
+               fast/dynamic/insert-before-table-part-in-continuation.html
+               fast/table/inline-table-in-continuation.html
+               fast/table/inline-table-with-caption.html
+
+        * rendering/RenderTable.cpp:
+        (WebCore::RenderTable::createAnonymousWithParentRenderer):
+        Added a check to determine if we should be inline or block based on our parent to match CSS 2.1.
+
+        * rendering/RenderInline.cpp:
+        (WebCore::RenderInline::addChildIgnoringContinuation):
+        Changed the child addition logic to not wrap a table part in an inline context. This change works
+        as intended as we will call RenderObject::addChild which will create an anonymous inline table that
+        will be added under |this| instead of the table part. As the table is inline, it doesn't need to be
+        wrapped when we recursively call RenderInline::addChild.
+
 2012-07-19  Chris Fleizach  <cfleizach@apple.com>
 
         WebKit should pass <title> element value as the default description for web views
 
         * Target.pri:
 
+2012-07-19  Simon Fraser  <simon.fraser@apple.com>
+
+        Keep overlap testing on for descendants of an animating element
+        https://bugs.webkit.org/show_bug.cgi?id=91787
+
+        Reviewed by Beth Dakin.
+
+        RenderLayerCompositor::computeCompositingRequirements() would turn off
+        overlap testing for descendants of a layer that has a 3D transform,
+        or has an animating transform. This could cause compositing changes
+        inside an animating element when transitions start and stop, which
+        is undesirable.
+        
+        Instead, we can keep overlap testing on for descendants of that
+        animating element, but we have to turn it off for layers later
+        in z-order.
+        
+        Also enhance the "IndirectCompositingReason" flags so that in
+        the compositing log output, we can distinguish between layers that
+        were composited as a result of overlap testing from those compositing
+        for stacking reasons.
+
+        Test: compositing/layer-creation/animation-overlap-with-children.html
+
+        * rendering/RenderLayer.h: New IndirectCompositingReason value to
+        distinguish overlap from stacking.
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+        Use an IndirectCompositingReason enum rather than a bool to track whether
+        the layer starts as composited.
+        Remove the if (layer->has3DTransform() || isRunningAcceleratedTransformAnimation(layer->renderer()))
+        check that turned off overlap testing for descendants of this layer.
+        Use IndirectCompositingForStacking (somewhat arbitrarily) for reflection layers.
+        Turn overlap testing off for layers later in the z-order.
+        (WebCore::RenderLayerCompositor::requiresOwnBackingStore): Take IndirectCompositingForStacking into
+        account.
+        (WebCore::RenderLayerCompositor::reasonForCompositing): Improve the logging output.
+
+2012-07-19  No'am Rosenthal  <noam.rosenthal@nokia.com>
+
+        [Qt] Enable CSS shaders in Qt (software mode)
+        https://bugs.webkit.org/show_bug.cgi?id=85140
+
+        Reviewed by Simon Hausmann.
+
+        Added missing files to the Qt build.
+
+        No new tests, WebGL is still disabled by default in the bots.
+
+        * Target.pri:
+
 2012-07-17  Dmitry Titov  <dimich@chromium.org>
 
         [Chromium] Out of Memory is observed when a large object is passed to a Web Worker.
index 7b9fc2e..7985268 100644 (file)
@@ -302,7 +302,8 @@ void RenderInline::addChildIgnoringContinuation(RenderObject* newChild, RenderOb
     if (!beforeChild && isAfterContent(lastChild()))
         beforeChild = lastChild();
 
-    if (!newChild->isInline() && !newChild->isFloatingOrOutOfFlowPositioned()) {
+    // We don't split table parts as they will be wrapped in an anonymous inline table.
+    if (!newChild->isInline() && !newChild->isFloatingOrOutOfFlowPositioned() && !newChild->isTablePart()) {
         // We are placing a block inside an inline. We have to perform a split of this
         // inline into continuations.  This involves creating an anonymous block box to hold
         // |newChild|.  We then make that block box a continuation of this inline.  We take all of
index 18bc996..9c115a0 100644 (file)
@@ -1296,7 +1296,9 @@ bool RenderTable::nodeAtPoint(const HitTestRequest& request, HitTestResult& resu
 
 RenderTable* RenderTable::createAnonymousWithParentRenderer(const RenderObject* parent)
 {
-    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parent->style(), TABLE);
+    // CSS 2.1, section 17.2.1: "If a proper table child's parent is an 'inline' box, then the generated anonymous table must be an 'inline-table' box".
+    EDisplay tableDisplay = parent->isInline() ? INLINE_TABLE : TABLE;
+    RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parent->style(), tableDisplay);
     RenderTable* newTable = new (parent->renderArena()) RenderTable(parent->document() /* is anonymous */);
     newTable->setStyle(newStyle.release());
     return newTable;
index bc1a371..d29a59b 100644 (file)
         (QWebPreferencesPrivate::setAttribute):
         * UIProcess/API/qt/qwebpreferences_p_p.h:
 
+2012-07-19  No'am Rosenthal  <noam.rosenthal@nokia.com>
+
+        [Qt] Enable CSS shaders in Qt (software mode)
+        https://bugs.webkit.org/show_bug.cgi?id=85140
+
+        Reviewed by Simon Hausmann.
+
+        Add CSSCustomFilterEnabled to QWebPreferences. It's disabled by default.
+
+        * UIProcess/API/qt/qwebpreferences.cpp:
+        (QWebPreferencesPrivate::testAttribute):
+        (QWebPreferencesPrivate::setAttribute):
+        * UIProcess/API/qt/qwebpreferences_p_p.h:
+
 2012-07-19  Pierre Rossi  <pierre.rossi@gmail.com>
 
         [Qt][WK2] Map the elementRect exposed in QML to the view for popup menu
index 64415ac..faa2fc5 100644 (file)
 
         * qmake/mkspecs/features/features.prf:
 
+2012-07-19  No'am Rosenthal  <noam.rosenthal@nokia.com>
+
+        [Qt] Enable CSS shaders in Qt (software mode)
+        https://bugs.webkit.org/show_bug.cgi?id=85140
+
+        Reviewed by Simon Hausmann.
+
+        Enable CSS_SHADERS when WEBGL and CSS_FILTERS are enabled.
+
+        * qmake/mkspecs/features/features.prf:
+
 2012-07-19  Dirk Pranke  <dpranke@chromium.org>
 
         test-webkitpy: fix executive_unittest nits, including a missing 'errno' import