[webkit-changes] cvs commit: WebCore/khtml/xml dom_docimpl.cpp
Timothy
thatcher at opensource.apple.com
Thu Nov 10 15:40:55 PST 2005
thatcher 05/11/10 15:40:55
Modified: . Tag: Safari-2-0-branch ChangeLog
khtml/html Tag: Safari-2-0-branch html_objectimpl.cpp
html_objectimpl.h htmlparser.cpp
khtml/rendering Tag: Safari-2-0-branch render_frames.cpp
khtml/xml Tag: Safari-2-0-branch dom_docimpl.cpp
Log:
Merged fix from TOT to Safari-2-0-branch
2005-11-01 Mitz Pettel <opendarwin.org at mitzpettel.com>
Reviewed by Dave Hyatt.
Commited by Tim Hatcher.
Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=5256
Relayout during load causes duplicate plugin part.
This was a problem with <OBJECT>s that contain an <EMBED>, if
layout happened in the middle of the OBJECT but before the EMBED.
No test case added, requires manual testing.
* khtml/html/html_objectimpl.cpp:
(DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
(DOM::HTMLObjectElementImpl::closeRenderer):
(DOM::HTMLObjectElementImpl::setComplete):
* khtml/html/html_objectimpl.h:
(DOM::HTMLObjectElementImpl::isComplete):
* khtml/html/htmlfactory.cpp:
(DOM::objectConstructor):
* khtml/rendering/render_frames.cpp:
(RenderPartObject::updateWidget):
Revision Changes Path
No revision
No revision
1.1.2.46 +28 -0 WebCore/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /cvs/root/WebCore/ChangeLog,v
retrieving revision 1.1.2.45
retrieving revision 1.1.2.46
diff -u -r1.1.2.45 -r1.1.2.46
--- ChangeLog 10 Nov 2005 23:03:57 -0000 1.1.2.45
+++ ChangeLog 10 Nov 2005 23:40:49 -0000 1.1.2.46
@@ -2,6 +2,34 @@
Merged fix from TOT to Safari-2-0-branch
+ 2005-11-01 Mitz Pettel <opendarwin.org at mitzpettel.com>
+
+ Reviewed by Dave Hyatt.
+ Commited by Tim Hatcher.
+
+ Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=5256
+ Relayout during load causes duplicate plugin part.
+
+ This was a problem with <OBJECT>s that contain an <EMBED>, if
+ layout happened in the middle of the OBJECT but before the EMBED.
+
+ No test case added, requires manual testing.
+
+ * khtml/html/html_objectimpl.cpp:
+ (DOM::HTMLObjectElementImpl::HTMLObjectElementImpl):
+ (DOM::HTMLObjectElementImpl::closeRenderer):
+ (DOM::HTMLObjectElementImpl::setComplete):
+ * khtml/html/html_objectimpl.h:
+ (DOM::HTMLObjectElementImpl::isComplete):
+ * khtml/html/htmlfactory.cpp:
+ (DOM::objectConstructor):
+ * khtml/rendering/render_frames.cpp:
+ (RenderPartObject::updateWidget):
+
+2005-11-10 Timothy Hatcher <timothy at apple.com>
+
+ Merged fix from TOT to Safari-2-0-branch
+
2005-11-09 Dave Hyatt <hyatt at apple.com>
Fixed <rdar://problem/4237617> selects should be in the tab order
No revision
No revision
1.60.8.4 +20 -0 WebCore/khtml/html/html_objectimpl.cpp
Index: html_objectimpl.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/html/html_objectimpl.cpp,v
retrieving revision 1.60.8.3
retrieving revision 1.60.8.4
diff -u -r1.60.8.3 -r1.60.8.4
--- html_objectimpl.cpp 9 Nov 2005 22:37:16 -0000 1.60.8.3
+++ html_objectimpl.cpp 10 Nov 2005 23:40:52 -0000 1.60.8.4
@@ -389,6 +389,7 @@
{
needWidgetUpdate = false;
m_useFallbackContent = false;
+ m_complete = false;
}
HTMLObjectElementImpl::~HTMLObjectElementImpl()
@@ -566,6 +567,25 @@
}
}
+void HTMLObjectElementImpl::closeRenderer()
+{
+ // The parser just reached </object>.
+ setComplete(true);
+
+ HTMLElementImpl::closeRenderer();
+}
+
+void HTMLObjectElementImpl::setComplete(bool complete)
+{
+ if (complete != m_complete) {
+ m_complete = complete;
+ if (complete && inDocument() && !m_useFallbackContent) {
+ needWidgetUpdate = true;
+ setChanged();
+ }
+ }
+}
+
void HTMLObjectElementImpl::detach()
{
// Only bother with an unload event if we had a render object. - dwh
1.28.8.2 +5 -0 WebCore/khtml/html/html_objectimpl.h
Index: html_objectimpl.h
===================================================================
RCS file: /cvs/root/WebCore/khtml/html/html_objectimpl.h,v
retrieving revision 1.28.8.1
retrieving revision 1.28.8.2
diff -u -r1.28.8.1 -r1.28.8.2
--- html_objectimpl.h 9 Aug 2005 23:52:13 -0000 1.28.8.1
+++ html_objectimpl.h 10 Nov 2005 23:40:52 -0000 1.28.8.2
@@ -130,11 +130,15 @@
virtual void attach();
virtual bool rendererIsNeeded(khtml::RenderStyle *);
virtual khtml::RenderObject *createRenderer(RenderArena *, khtml::RenderStyle *);
+ virtual void closeRenderer();
virtual void detach();
virtual void recalcStyle(StyleChange ch);
virtual void childrenChanged();
+ bool isComplete() const { return m_complete; }
+ void setComplete(bool complete);
+
DocumentImpl* contentDocument() const;
virtual bool isURLAttribute(AttributeImpl *attr) const;
@@ -158,6 +162,7 @@
private:
mutable KJS::Bindings::Instance *objectInstance;
#endif
+ bool m_complete;
};
// -------------------------------------------------------------------------
1.92.6.5 +7 -0 WebCore/khtml/html/htmlparser.cpp
Index: htmlparser.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/html/htmlparser.cpp,v
retrieving revision 1.92.6.4
retrieving revision 1.92.6.5
diff -u -r1.92.6.4 -r1.92.6.5
--- htmlparser.cpp 9 Aug 2005 23:52:14 -0000 1.92.6.4
+++ htmlparser.cpp 10 Nov 2005 23:40:52 -0000 1.92.6.5
@@ -950,6 +950,13 @@
scriptElement->setCreatedByParser(true);
return scriptElement;
}
+
+ case ID_OBJECT:
+ {
+ HTMLObjectElementImpl *objectElement = new HTMLObjectElementImpl(document);
+ objectElement->setComplete(false);
+ return objectElement;
+ }
}
return document->document()->createHTMLElement(t->id);
No revision
No revision
1.66.8.2 +2 -0 WebCore/khtml/rendering/render_frames.cpp
Index: render_frames.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/rendering/render_frames.cpp,v
retrieving revision 1.66.8.1
retrieving revision 1.66.8.2
diff -u -r1.66.8.1 -r1.66.8.2
--- render_frames.cpp 9 Aug 2005 23:52:16 -0000 1.66.8.1
+++ render_frames.cpp 10 Nov 2005 23:40:53 -0000 1.66.8.2
@@ -678,6 +678,8 @@
HTMLObjectElementImpl *o = static_cast<HTMLObjectElementImpl *>(element());
+ if (!o->isComplete())
+ return;
// Check for a child EMBED tag.
HTMLEmbedElementImpl *embed = 0;
for (NodeImpl *child = o->firstChild(); child; ) {
No revision
No revision
1.211.6.9 +5 -1 WebCore/khtml/xml/dom_docimpl.cpp
Index: dom_docimpl.cpp
===================================================================
RCS file: /cvs/root/WebCore/khtml/xml/dom_docimpl.cpp,v
retrieving revision 1.211.6.8
retrieving revision 1.211.6.9
diff -u -r1.211.6.8 -r1.211.6.9
--- dom_docimpl.cpp 13 Jul 2005 01:02:34 -0000 1.211.6.8
+++ dom_docimpl.cpp 10 Nov 2005 23:40:54 -0000 1.211.6.9
@@ -927,7 +927,11 @@
case ID_EMBED:
return new HTMLEmbedElementImpl(docPtr());
case ID_OBJECT:
- return new HTMLObjectElementImpl(docPtr());
+ {
+ HTMLObjectElementImpl *objectElement = new HTMLObjectElementImpl(docPtr());
+ objectElement->setComplete(true);
+ return objectElement;
+ }
case ID_PARAM:
return new HTMLParamElementImpl(docPtr());
case ID_SCRIPT:
More information about the webkit-changes
mailing list