2010-08-06 Adam Barth <abarth@webkit.org>
authorabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 7 Aug 2010 01:56:07 +0000 (01:56 +0000)
committerabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 7 Aug 2010 01:56:07 +0000 (01:56 +0000)
        Reviewed by Eric Seidel.

        REGRESSION (r64712): YouTube video pages have contents of <noembed> elements overlapping the video description
        https://bugs.webkit.org/show_bug.cgi?id=43605

        Show test progression.  We missed this regression when analyzing the
        expectation diffs because the DOM was correct and was a progression.

        * fast/dom/no-elements-expected.txt:
        * platform/mac/fast/parser/nofoo-tags-inside-paragraph-expected.txt:
2010-08-06  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        REGRESSION (r64712): YouTube video pages have contents of <noembed> elements overlapping the video description
        https://bugs.webkit.org/show_bug.cgi?id=43605

        The old parser used to drop <noembed> on the floor.  We're supposed to
        add it to the DOM, but we don't want to create a renderer for it.

        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::rendererIsNeeded):

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

LayoutTests/ChangeLog
LayoutTests/fast/dom/no-elements-expected.txt
LayoutTests/platform/mac/fast/parser/nofoo-tags-inside-paragraph-expected.txt
WebCore/ChangeLog
WebCore/html/HTMLElement.cpp

index 0bf975e..e64e10c 100644 (file)
@@ -1,3 +1,16 @@
+2010-08-06  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        REGRESSION (r64712): YouTube video pages have contents of <noembed> elements overlapping the video description
+        https://bugs.webkit.org/show_bug.cgi?id=43605
+
+        Show test progression.  We missed this regression when analyzing the
+        expectation diffs because the DOM was correct and was a progression.
+
+        * fast/dom/no-elements-expected.txt:
+        * platform/mac/fast/parser/nofoo-tags-inside-paragraph-expected.txt:
+
 2010-08-06  Dimitri Glazkov  <dglazkov@chromium.org>
 
         [Chromium/DRT] Adjust expectations after my unexpectedly awful search-and-replace performance.
index c19598a..0e66cb7 100644 (file)
@@ -1,6 +1,6 @@
 This tests that the elements noframes, nolayer, noscript and noembed are created as elements and put in the DOM tree. The elements other than <nolayer> should not contain any children. If the test is successful, the four messages below will list 0, 0, 0, and 1 child.
 
-This is noembed. This is nolayer.
+This is nolayer.
 noframes has 1 children.
 noscript has 1 children.
 noembed has 1 children.
index d244f32..c253e9f 100644 (file)
@@ -30,6 +30,5 @@ layer at (0,0) size 800x600
       RenderBlock {P} at (0,136) size 784x18
         RenderText {#text} at (0,0) size 329x18
           text run at (0,0) width 329: "This sentence contains noembed tags and should be "
-        RenderInline {NOEMBED} at (0,0) size 0x0
         RenderText {#text} at (329,0) size 74x18
           text run at (329,0) width 74: "on one line."
index 76c14ad..bc40eed 100644 (file)
@@ -1,3 +1,16 @@
+2010-08-06  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        REGRESSION (r64712): YouTube video pages have contents of <noembed> elements overlapping the video description
+        https://bugs.webkit.org/show_bug.cgi?id=43605
+
+        The old parser used to drop <noembed> on the floor.  We're supposed to
+        add it to the DOM, but we don't want to create a renderer for it.
+
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::rendererIsNeeded):
+
 2010-08-06  Tony Gentilcore  <tonyg@chromium.org>
 
         Reviewed by Adam Barth.
index fb1bcc2..0198901 100644 (file)
@@ -986,7 +986,7 @@ bool HTMLElement::checkDTD(const Node* newChild)
         return true;
     return inEitherTagList(newChild);
 }
-    
+
 bool HTMLElement::rendererIsNeeded(RenderStyle *style)
 {
 #if !ENABLE(XHTMLMP)
@@ -994,11 +994,16 @@ bool HTMLElement::rendererIsNeeded(RenderStyle *style)
         Frame* frame = document()->frame();
         if (frame && frame->script()->canExecuteScripts(NotAboutToExecuteScript))
             return false;
-    }
+    } else
 #endif
+    if (hasLocalName(noembedTag)) {
+        Frame* frame = document()->frame();
+        if (frame && frame->loader()->subframeLoader()->allowPlugins(NotAboutToInstantiatePlugin))
+            return false;
+    }
     return StyledElement::rendererIsNeeded(style);
 }
-    
+
 RenderObject* HTMLElement::createRenderer(RenderArena* arena, RenderStyle* style)
 {
     if (hasLocalName(wbrTag))