diff options
author | Steve Block <steveblock@google.com> | 2009-12-15 10:12:09 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2009-12-17 17:41:10 +0000 |
commit | 643ca7872b450ea4efacab6188849e5aac2ba161 (patch) | |
tree | 6982576c228bcd1a7efe98afed544d840751094c /WebCore/rendering/RenderTreeAsText.cpp | |
parent | d026980fde6eb3b01c1fe49441174e89cd1be298 (diff) | |
download | external_webkit-643ca7872b450ea4efacab6188849e5aac2ba161.zip external_webkit-643ca7872b450ea4efacab6188849e5aac2ba161.tar.gz external_webkit-643ca7872b450ea4efacab6188849e5aac2ba161.tar.bz2 |
Merge webkit.org at r51976 : Initial merge by git.
Change-Id: Ib0e7e2f0fb4bee5a186610272edf3186f0986b43
Diffstat (limited to 'WebCore/rendering/RenderTreeAsText.cpp')
-rw-r--r-- | WebCore/rendering/RenderTreeAsText.cpp | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/WebCore/rendering/RenderTreeAsText.cpp b/WebCore/rendering/RenderTreeAsText.cpp index b7ab191..a6f5144 100644 --- a/WebCore/rendering/RenderTreeAsText.cpp +++ b/WebCore/rendering/RenderTreeAsText.cpp @@ -36,8 +36,10 @@ #include "HTMLNames.h" #include "InlineTextBox.h" #include "RenderBR.h" +#include "RenderFileUploadControl.h" #include "RenderInline.h" #include "RenderListMarker.h" +#include "RenderPart.h" #include "RenderTableCell.h" #include "RenderView.h" #include "RenderWidget.h" @@ -55,6 +57,10 @@ #include "SVGRenderTreeAsText.h" #endif +#if PLATFORM(QT) +#include <QWidget> +#endif + namespace WebCore { using namespace HTMLNames; @@ -217,6 +223,9 @@ static TextStream &operator<<(TextStream& ts, const RenderObject& o) ts << " " << r; if (!(o.isText() && !o.isBR())) { + if (o.isFileUploadControl()) { + ts << " " << quoteAndEscapeNonPrintables(toRenderFileUploadControl(&o)->fileTextValue()); + } if (o.parent() && (o.parent()->style()->color() != o.style()->color())) ts << " [color=" << o.style()->color().name() << "]"; @@ -336,6 +345,24 @@ static TextStream &operator<<(TextStream& ts, const RenderObject& o) } } +#if PLATFORM(QT) + // Print attributes of embedded QWidgets. E.g. when the WebCore::Widget + // is invisible the QWidget should be invisible too. + if (o.isRenderPart()) { + const RenderPart* part = toRenderPart(const_cast<RenderObject*>(&o)); + if (part->widget() && part->widget()->platformWidget()) { + QWidget* wid = part->widget()->platformWidget(); + + ts << " [QT: "; + ts << "geometry: {" << wid->geometry() << "} "; + ts << "isHidden: " << wid->isHidden() << " "; + ts << "isSelfVisible: " << part->widget()->isSelfVisible() << " "; + ts << "isParentVisible: " << part->widget()->isParentVisible() << " "; + ts << "mask: {" << wid->mask().boundingRect() << "} ] "; + } + } +#endif + return ts; } @@ -535,8 +562,11 @@ static void writeSelection(TextStream& ts, const RenderObject* o) << "selection end: position " << selection.end().deprecatedEditingOffset() << " of " << nodePosition(selection.end().node()) << "\n"; } -String externalRepresentation(RenderObject* o) +String externalRepresentation(Frame* frame) { + frame->document()->updateLayout(); + + RenderObject* o = frame->contentRenderer(); if (!o) return String(); @@ -544,8 +574,6 @@ String externalRepresentation(RenderObject* o) #if ENABLE(SVG) writeRenderResources(ts, o->document()); #endif - if (o->view()->frameView()) - o->view()->frameView()->layout(); if (o->hasLayer()) { RenderLayer* l = toRenderBox(o)->layer(); writeLayers(ts, l, l, IntRect(l->x(), l->y(), l->width(), l->height())); @@ -554,10 +582,13 @@ String externalRepresentation(RenderObject* o) return ts.release(); } -static void writeCounterValuesFromChildren(TextStream& stream, RenderObject* parent) +static void writeCounterValuesFromChildren(TextStream& stream, RenderObject* parent, bool& isFirstCounter) { for (RenderObject* child = parent->firstChild(); child; child = child->nextSibling()) { if (child->isCounter()) { + if (!isFirstCounter) + stream << " "; + isFirstCounter = false; String str(toRenderText(child)->text()); stream << str; } @@ -570,12 +601,13 @@ String counterValueForElement(Element* element) RefPtr<Element> elementRef(element); element->document()->updateLayout(); TextStream stream; + bool isFirstCounter = true; // The counter renderers should be children of anonymous children // (i.e., :before or :after pseudo-elements). if (RenderObject* renderer = element->renderer()) { for (RenderObject* child = renderer->firstChild(); child; child = child->nextSibling()) { if (child->isAnonymous()) - writeCounterValuesFromChildren(stream, child); + writeCounterValuesFromChildren(stream, child, isFirstCounter); } } return stream.release(); |