[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:26:23 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 15e3dbd3fa18a52f5db881d315c08f7bb74ab7b0
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jul 23 01:05:22 2002 +0000

    	Fix for bug 3004889, plugin content on stylesheet pages not
    	showing up.  The rendering tree needed to perform an update
    	when all children had arrived, and this was being handled by
    	the parser.  With async rendering construction, I had to store
    	this in the content node instead, so it could do the update
    	once the render object was built at a later date.
    
            * khtml/html/html_objectimpl.cpp:
            (HTMLObjectElementImpl::HTMLObjectElementImpl):
            (HTMLObjectElementImpl::attach):
            * khtml/html/html_objectimpl.h:
            * khtml/html/htmlparser.cpp:
            (KHTMLParser::processCloseTag):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1631 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index 38d6f22..c9f7cdf 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,5 +1,21 @@
 2002-07-22  David Hyatt  <hyatt at apple.com>
 
+	Fix for bug 3004889, plugin content on stylesheet pages not
+	showing up.  The rendering tree needed to perform an update
+	when all children had arrived, and this was being handled by
+	the parser.  With async rendering construction, I had to store
+	this in the content node instead, so it could do the update
+	once the render object was built at a later date.
+	
+        * khtml/html/html_objectimpl.cpp:
+        (HTMLObjectElementImpl::HTMLObjectElementImpl):
+        (HTMLObjectElementImpl::attach):
+        * khtml/html/html_objectimpl.h:
+        * khtml/html/htmlparser.cpp:
+        (KHTMLParser::processCloseTag):
+
+2002-07-22  David Hyatt  <hyatt at apple.com>
+
 	This checkin adds support for querying the selected style set,
 	for querying the preferred style set, and for changing the
 	selected style set dynamically.  With this checkin, a Web page
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 38d6f22..c9f7cdf 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,21 @@
 2002-07-22  David Hyatt  <hyatt at apple.com>
 
+	Fix for bug 3004889, plugin content on stylesheet pages not
+	showing up.  The rendering tree needed to perform an update
+	when all children had arrived, and this was being handled by
+	the parser.  With async rendering construction, I had to store
+	this in the content node instead, so it could do the update
+	once the render object was built at a later date.
+	
+        * khtml/html/html_objectimpl.cpp:
+        (HTMLObjectElementImpl::HTMLObjectElementImpl):
+        (HTMLObjectElementImpl::attach):
+        * khtml/html/html_objectimpl.h:
+        * khtml/html/htmlparser.cpp:
+        (KHTMLParser::processCloseTag):
+
+2002-07-22  David Hyatt  <hyatt at apple.com>
+
 	This checkin adds support for querying the selected style set,
 	for querying the preferred style set, and for changing the
 	selected style set dynamically.  With this checkin, a Web page
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 38d6f22..c9f7cdf 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,21 @@
 2002-07-22  David Hyatt  <hyatt at apple.com>
 
+	Fix for bug 3004889, plugin content on stylesheet pages not
+	showing up.  The rendering tree needed to perform an update
+	when all children had arrived, and this was being handled by
+	the parser.  With async rendering construction, I had to store
+	this in the content node instead, so it could do the update
+	once the render object was built at a later date.
+	
+        * khtml/html/html_objectimpl.cpp:
+        (HTMLObjectElementImpl::HTMLObjectElementImpl):
+        (HTMLObjectElementImpl::attach):
+        * khtml/html/html_objectimpl.h:
+        * khtml/html/htmlparser.cpp:
+        (KHTMLParser::processCloseTag):
+
+2002-07-22  David Hyatt  <hyatt at apple.com>
+
 	This checkin adds support for querying the selected style set,
 	for querying the preferred style set, and for changing the
 	selected style set dynamically.  With this checkin, a Web page
diff --git a/WebCore/khtml/html/html_objectimpl.cpp b/WebCore/khtml/html/html_objectimpl.cpp
index f151d2a..026f914 100644
--- a/WebCore/khtml/html/html_objectimpl.cpp
+++ b/WebCore/khtml/html/html_objectimpl.cpp
@@ -264,6 +264,7 @@ void HTMLEmbedElementImpl::attach()
 HTMLObjectElementImpl::HTMLObjectElementImpl(DocumentPtr *doc) : HTMLElementImpl(doc)
 {
     needWidgetUpdate = false;
+    m_childrenLoaded = false;
 }
 
 HTMLObjectElementImpl::~HTMLObjectElementImpl()
@@ -348,6 +349,10 @@ void HTMLObjectElementImpl::attach()
         }
 #endif
 
+    // If we are already cleared, then it means that we were attach()-ed previously
+    // with no renderer.  We will actually need to do an update in order to ensure
+    // that the plugin shows up.  This fix is necessary to work with async
+    // render tree construction caused by stylesheet loads. -dwh
     if (loadplugin && parentNode()->renderer()) {
         needWidgetUpdate = false;
         m_render = new RenderPartObject(this);
@@ -355,10 +360,12 @@ void HTMLObjectElementImpl::attach()
         parentNode()->renderer()->addChild(m_render, nextRenderer());
     }
 
-    NodeBaseImpl::attach();
-
-  // ### do this when we are actually finished loading instead
-  dispatchHTMLEvent(EventImpl::LOAD_EVENT,false,false);
+    // Go ahead and perform the update.
+    if (m_childrenLoaded && m_render && strcmp(m_render->renderName(), "RenderPartObject") == 0)
+        static_cast<RenderPartObject*>(m_render)->updateWidget();
+    
+    // ### do this when we are actually finished loading instead
+    dispatchHTMLEvent(EventImpl::LOAD_EVENT,false,false);
 }
 
 void HTMLObjectElementImpl::detach()
diff --git a/WebCore/khtml/html/html_objectimpl.h b/WebCore/khtml/html/html_objectimpl.h
index ae542bf..6111570 100644
--- a/WebCore/khtml/html/html_objectimpl.h
+++ b/WebCore/khtml/html/html_objectimpl.h
@@ -98,10 +98,13 @@ public:
 
     DocumentImpl* contentDocument() const;
 
+    void setChildrenLoaded() { m_childrenLoaded = true; }
+    
     QString serviceType;
     QString url;
     QString classId;
     bool needWidgetUpdate;
+    bool m_childrenLoaded;
 };
 
 // -------------------------------------------------------------------------
diff --git a/WebCore/khtml/html/htmlparser.cpp b/WebCore/khtml/html/htmlparser.cpp
index 960d039..de2353e 100644
--- a/WebCore/khtml/html/htmlparser.cpp
+++ b/WebCore/khtml/html/htmlparser.cpp
@@ -1095,6 +1095,12 @@ void KHTMLParser::processCloseTag(Token *t)
     case ID_SELECT+ID_CLOSE_TAG:
         inSelect = false;
         break;
+    case ID_OBJECT+ID_CLOSE_TAG:
+        // This case has been added to deal with async rendering tree construction
+        // caused by <link rel=stylesheet>. We need to update the widget if and only
+        // if all children have loaded.  -dwh
+        if (current && !current->renderer())
+            static_cast<HTMLObjectElementImpl*>(current)->setChildrenLoaded();
     default:
         break;
     }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list