Diff
Modified: trunk/Source/WebCore/CMakeLists.txt (161206 => 161207)
--- trunk/Source/WebCore/CMakeLists.txt 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/CMakeLists.txt 2014-01-02 15:50:28 UTC (rev 161207)
@@ -1656,7 +1656,6 @@
loader/NavigationScheduler.cpp
loader/NetscapePlugInStreamLoader.cpp
loader/PingLoader.cpp
- loader/PlaceholderDocument.cpp
loader/PolicyCallback.cpp
loader/PolicyChecker.cpp
loader/ProgressTracker.cpp
Modified: trunk/Source/WebCore/ChangeLog (161206 => 161207)
--- trunk/Source/WebCore/ChangeLog 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/ChangeLog 2014-01-02 15:50:28 UTC (rev 161207)
@@ -1,3 +1,33 @@
+2014-01-02 Antti Koivisto <an...@apple.com>
+
+ Remove PlaceholderDocument
+ https://bugs.webkit.org/show_bug.cgi?id=126382
+
+ Reviewed by Andreas Kling.
+
+ Remove PlaceholderDocument class and replace it with a bit in Document.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+ (WebCore::Document::createRenderTree):
+ * dom/Document.h:
+
+ Also make Synthesized a construction flag instead of a boolean parameter.
+
+ (WebCore::Document::createNonRenderedPlaceholder):
+ * html/HTMLDocument.cpp:
+ (WebCore::HTMLDocument::HTMLDocument):
+ * html/HTMLDocument.h:
+ (WebCore::HTMLDocument::create):
+ (WebCore::HTMLDocument::createSynthesizedDocument):
+ * loader/DocumentWriter.cpp:
+ (WebCore::DocumentWriter::createDocument):
+ * loader/PlaceholderDocument.cpp: Removed.
+ * loader/PlaceholderDocument.h: Removed.
+ * pdf/ios/PDFDocument.h:
+ (WebCore::PDFDocument::PDFDocument):
+
2014-01-01 Antti Koivisto <an...@apple.com>
Remove public attachRenderTree
Modified: trunk/Source/WebCore/GNUmakefile.list.am (161206 => 161207)
--- trunk/Source/WebCore/GNUmakefile.list.am 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/GNUmakefile.list.am 2014-01-02 15:50:28 UTC (rev 161207)
@@ -4031,8 +4031,6 @@
Source/WebCore/loader/NetscapePlugInStreamLoader.h \
Source/WebCore/loader/PingLoader.cpp \
Source/WebCore/loader/PingLoader.h \
- Source/WebCore/loader/PlaceholderDocument.cpp \
- Source/WebCore/loader/PlaceholderDocument.h \
Source/WebCore/loader/PolicyCallback.cpp \
Source/WebCore/loader/PolicyCallback.h \
Source/WebCore/loader/PolicyChecker.cpp \
Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (161206 => 161207)
--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj 2014-01-02 15:50:28 UTC (rev 161207)
@@ -7114,7 +7114,6 @@
<ClCompile Include="..\loader\NavigationScheduler.cpp" />
<ClCompile Include="..\loader\NetscapePlugInStreamLoader.cpp" />
<ClCompile Include="..\loader\PingLoader.cpp" />
- <ClCompile Include="..\loader\PlaceholderDocument.cpp" />
<ClCompile Include="..\loader\PolicyCallback.cpp" />
<ClCompile Include="..\loader\PolicyChecker.cpp" />
<ClCompile Include="..\loader\ProgressTracker.cpp" />
@@ -19005,7 +19004,6 @@
<ClInclude Include="..\loader\NavigationScheduler.h" />
<ClInclude Include="..\loader\NetscapePlugInStreamLoader.h" />
<ClInclude Include="..\loader\PingLoader.h" />
- <ClInclude Include="..\loader\PlaceholderDocument.h" />
<ClInclude Include="..\loader\PolicyCallback.h" />
<ClInclude Include="..\loader\PolicyChecker.h" />
<ClInclude Include="..\loader\ProgressTracker.h" />
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (161206 => 161207)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2014-01-02 15:50:28 UTC (rev 161207)
@@ -1178,8 +1178,6 @@
376DCCE113B4F966002EBEFC /* TextRun.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 376DCCE013B4F966002EBEFC /* TextRun.cpp */; };
3774ABA50FA21EB400AD7DE9 /* OverlapTestRequestClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 3774ABA30FA21EB400AD7DE9 /* OverlapTestRequestClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
377A3A9015EFCE9B0059F5C7 /* BitmapImageCG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 377A3A8F15EFCE9A0059F5C7 /* BitmapImageCG.cpp */; };
- 377C4CDF1014E9F600B9AE42 /* PlaceholderDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 377C4CDD1014E9F600B9AE42 /* PlaceholderDocument.h */; };
- 377C4CE01014E9F600B9AE42 /* PlaceholderDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 377C4CDE1014E9F600B9AE42 /* PlaceholderDocument.cpp */; };
3784C34B0E11AA34007D8D48 /* FontTraitsMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3784C34A0E11AA34007D8D48 /* FontTraitsMask.h */; settings = {ATTRIBUTES = (Private, ); }; };
37919C230B7D188600A56998 /* PositionIterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 37919C210B7D188600A56998 /* PositionIterator.cpp */; };
37919C240B7D188600A56998 /* PositionIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 37919C220B7D188600A56998 /* PositionIterator.h */; settings = {ATTRIBUTES = (); }; };
@@ -7889,8 +7887,6 @@
3772B09516535856000A49CA /* PopupOpeningObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopupOpeningObserver.h; sourceTree = "<group>"; };
3774ABA30FA21EB400AD7DE9 /* OverlapTestRequestClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OverlapTestRequestClient.h; sourceTree = "<group>"; };
377A3A8F15EFCE9A0059F5C7 /* BitmapImageCG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitmapImageCG.cpp; sourceTree = "<group>"; };
- 377C4CDD1014E9F600B9AE42 /* PlaceholderDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlaceholderDocument.h; sourceTree = "<group>"; };
- 377C4CDE1014E9F600B9AE42 /* PlaceholderDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlaceholderDocument.cpp; sourceTree = "<group>"; };
3784C34A0E11AA34007D8D48 /* FontTraitsMask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontTraitsMask.h; sourceTree = "<group>"; };
37919C210B7D188600A56998 /* PositionIterator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PositionIterator.cpp; sourceTree = "<group>"; };
37919C220B7D188600A56998 /* PositionIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PositionIterator.h; sourceTree = "<group>"; };
@@ -20191,8 +20187,6 @@
656D372B0ADBA5DE00A4554D /* NetscapePlugInStreamLoader.h */,
D0FF2A5B11F8C45A007E74E0 /* PingLoader.cpp */,
D0FF2A5C11F8C45A007E74E0 /* PingLoader.h */,
- 377C4CDE1014E9F600B9AE42 /* PlaceholderDocument.cpp */,
- 377C4CDD1014E9F600B9AE42 /* PlaceholderDocument.h */,
97059973107D975200A50A7C /* PolicyCallback.cpp */,
97059974107D975200A50A7C /* PolicyCallback.h */,
97059975107D975200A50A7C /* PolicyChecker.cpp */,
@@ -24378,7 +24372,6 @@
FD581FB51520F93B003A7A75 /* PeriodicWave.h in Headers */,
49D5DC2E0F423A73008F20FD /* PerspectiveTransformOperation.h in Headers */,
D0FF2A5E11F8C45A007E74E0 /* PingLoader.h in Headers */,
- 377C4CDF1014E9F600B9AE42 /* PlaceholderDocument.h in Headers */,
E4E9B11D1814569C003ACCDF /* SimpleLineLayoutFunctions.h in Headers */,
499B3EDD128DB50200E726C2 /* PlatformCAAnimation.h in Headers */,
0F13163E16ED0CC80035CC04 /* PlatformCAFilters.h in Headers */,
@@ -27704,7 +27697,6 @@
FD581FB41520F93B003A7A75 /* PeriodicWave.cpp in Sources */,
49D5DC2D0F423A73008F20FD /* PerspectiveTransformOperation.cpp in Sources */,
D0FF2A5D11F8C45A007E74E0 /* PingLoader.cpp in Sources */,
- 377C4CE01014E9F600B9AE42 /* PlaceholderDocument.cpp in Sources */,
4958782112A57DDF007238AC /* PlatformCAAnimationMac.mm in Sources */,
0F13164016ED0CDE0035CC04 /* PlatformCAFiltersMac.mm in Sources */,
4958782212A57DDF007238AC /* PlatformCALayerMac.mm in Sources */,
Modified: trunk/Source/WebCore/dom/Document.cpp (161206 => 161207)
--- trunk/Source/WebCore/dom/Document.cpp 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/dom/Document.cpp 2014-01-02 15:50:28 UTC (rev 161207)
@@ -390,7 +390,7 @@
}
#endif
-Document::Document(Frame* frame, const URL& url, unsigned documentClasses, bool isSynthesized)
+Document::Document(Frame* frame, const URL& url, unsigned documentClasses, unsigned constructionFlags)
: ContainerNode(nullptr, CreateDocument)
, TreeScope(this)
#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)
@@ -453,7 +453,8 @@
, m_inPageCache(false)
, m_accessKeyMapValid(false)
, m_documentClasses(documentClasses)
- , m_isSynthesized(isSynthesized)
+ , m_isSynthesized(constructionFlags & Synthesized)
+ , m_isNonRenderedPlaceholder(constructionFlags & NonRenderedPlaceholder)
, m_isViewSource(false)
, m_sawElementsInKnownNamespaces(false)
, m_isSrcdocDocument(false)
@@ -1950,6 +1951,9 @@
ASSERT(!m_inPageCache);
ASSERT(!m_axObjectCache || this != topDocument());
+ if (m_isNonRenderedPlaceholder)
+ return;
+
// FIXME: It would be better if we could pass the resolved document style directly here.
m_renderView = createRenderer<RenderView>(*this, RenderStyle::create());
Node::setRenderer(m_renderView.get());
Modified: trunk/Source/WebCore/dom/Document.h (161206 => 161207)
--- trunk/Source/WebCore/dom/Document.h 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/dom/Document.h 2014-01-02 15:50:28 UTC (rev 161207)
@@ -252,6 +252,10 @@
{
return adoptRef(new Document(frame, url, XHTMLDocumentClass));
}
+ static PassRefPtr<Document> createNonRenderedPlaceholder(Frame* frame, const URL& url)
+ {
+ return adoptRef(new Document(frame, url, DefaultDocumentClass, NonRenderedPlaceholder));
+ }
virtual ~Document();
MediaQueryMatcher& mediaQueryMatcher();
@@ -1220,7 +1224,8 @@
void setVisualUpdatesAllowedByClient(bool);
protected:
- Document(Frame*, const URL&, unsigned = DefaultDocumentClass, bool isSynthesized = false);
+ enum ConstructionFlags { Synthesized = 1, NonRenderedPlaceholder = 1 << 1 };
+ Document(Frame*, const URL&, unsigned = DefaultDocumentClass, unsigned constructionFlags = 0);
void clearXMLVersion() { m_xmlVersion = String(); }
@@ -1235,11 +1240,11 @@
RenderObject* renderer() const WTF_DELETED_FUNCTION;
void setRenderer(RenderObject*) WTF_DELETED_FUNCTION;
- virtual void createRenderTree();
+ void createRenderTree();
+ void detachParser();
+
virtual void dropChildren() OVERRIDE;
- void detachParser();
-
typedef void (*ArgumentsCallback)(const String& keyString, const String& valueString, Document*, void* data);
void processArguments(const String& features, void* data, ArgumentsCallback);
@@ -1497,6 +1502,7 @@
DocumentClassFlags m_documentClasses;
bool m_isSynthesized;
+ bool m_isNonRenderedPlaceholder;
bool m_isViewSource;
bool m_sawElementsInKnownNamespaces;
Modified: trunk/Source/WebCore/html/HTMLDocument.cpp (161206 => 161207)
--- trunk/Source/WebCore/html/HTMLDocument.cpp 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/html/HTMLDocument.cpp 2014-01-02 15:50:28 UTC (rev 161207)
@@ -81,8 +81,8 @@
using namespace HTMLNames;
-HTMLDocument::HTMLDocument(Frame* frame, const URL& url, DocumentClassFlags documentClasses, bool isSynthesized)
- : Document(frame, url, documentClasses | HTMLDocumentClass, isSynthesized)
+HTMLDocument::HTMLDocument(Frame* frame, const URL& url, DocumentClassFlags documentClasses, unsigned constructionFlags)
+ : Document(frame, url, documentClasses | HTMLDocumentClass, constructionFlags)
{
clearXMLVersion();
}
Modified: trunk/Source/WebCore/html/HTMLDocument.h (161206 => 161207)
--- trunk/Source/WebCore/html/HTMLDocument.h 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/html/HTMLDocument.h 2014-01-02 15:50:28 UTC (rev 161207)
@@ -33,12 +33,12 @@
public:
static PassRefPtr<HTMLDocument> create(Frame* frame, const URL& url)
{
- return adoptRef(new HTMLDocument(frame, url));
+ return adoptRef(new HTMLDocument(frame, url, HTMLDocumentClass));
}
static PassRefPtr<HTMLDocument> createSynthesizedDocument(Frame* frame, const URL& url)
{
- return adoptRef(new HTMLDocument(frame, url, true));
+ return adoptRef(new HTMLDocument(frame, url, HTMLDocumentClass, Synthesized));
}
virtual ~HTMLDocument();
@@ -86,7 +86,7 @@
static bool isCaseSensitiveAttribute(const QualifiedName&);
protected:
- HTMLDocument(Frame*, const URL&, DocumentClassFlags = 0, bool isSynthesized = false);
+ HTMLDocument(Frame*, const URL&, DocumentClassFlags = 0, unsigned constructionFlags = 0);
private:
virtual PassRefPtr<Element> createElement(const AtomicString& tagName, ExceptionCode&);
Modified: trunk/Source/WebCore/loader/DocumentWriter.cpp (161206 => 161207)
--- trunk/Source/WebCore/loader/DocumentWriter.cpp 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/loader/DocumentWriter.cpp 2014-01-02 15:50:28 UTC (rev 161207)
@@ -36,7 +36,6 @@
#include "FrameLoaderClient.h"
#include "FrameLoaderStateMachine.h"
#include "FrameView.h"
-#include "PlaceholderDocument.h"
#include "PluginDocument.h"
#include "RawDataDocumentParser.h"
#include "ScriptController.h"
@@ -116,7 +115,7 @@
return PDFDocument::create(m_frame, url);
#endif
if (!m_frame->loader().client().hasHTMLView())
- return PlaceholderDocument::create(m_frame, url);
+ return Document::createNonRenderedPlaceholder(m_frame, url);
return DOMImplementation::createDocument(m_mimeType, m_frame, url, m_frame->inViewSourceMode());
}
Deleted: trunk/Source/WebCore/loader/PlaceholderDocument.cpp (161206 => 161207)
--- trunk/Source/WebCore/loader/PlaceholderDocument.cpp 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/loader/PlaceholderDocument.cpp 2014-01-02 15:50:28 UTC (rev 161207)
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "PlaceholderDocument.h"
-
-#include "ElementIterator.h"
-
-namespace WebCore {
-
-void PlaceholderDocument::createRenderTree()
-{
- ASSERT(!renderView());
-}
-
-} // namespace WebCore
Deleted: trunk/Source/WebCore/loader/PlaceholderDocument.h (161206 => 161207)
--- trunk/Source/WebCore/loader/PlaceholderDocument.h 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/loader/PlaceholderDocument.h 2014-01-02 15:50:28 UTC (rev 161207)
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2009 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef PlaceholderDocument_h
-#define PlaceholderDocument_h
-
-#include "Document.h"
-
-namespace WebCore {
-
-class PlaceholderDocument : public Document {
-public:
- static PassRefPtr<PlaceholderDocument> create(Frame* frame, const URL& url)
- {
- return adoptRef(new PlaceholderDocument(frame, url));
- }
-
-protected:
- PlaceholderDocument(Frame* frame, const URL& url)
- : Document(frame, url)
- {
- }
-
-private:
- virtual void createRenderTree() OVERRIDE;
-};
-
-} // namespace WebCore
-
-#endif // PlaceholderDocument_h
Modified: trunk/Source/WebCore/pdf/ios/PDFDocument.h (161206 => 161207)
--- trunk/Source/WebCore/pdf/ios/PDFDocument.h 2014-01-02 11:43:33 UTC (rev 161206)
+++ trunk/Source/WebCore/pdf/ios/PDFDocument.h 2014-01-02 15:50:28 UTC (rev 161207)
@@ -27,11 +27,11 @@
#if PLATFORM(IOS)
-#include "PlaceholderDocument.h"
+#include "Document.h"
namespace WebCore {
-class PDFDocument : public PlaceholderDocument {
+class PDFDocument : public Document {
public:
static PassRefPtr<PDFDocument> create(Frame* frame, const URL& url)
{
@@ -39,7 +39,7 @@
}
private:
PDFDocument(Frame* frame, const URL& url)
- : PlaceholderDocument(frame, url)
+ : Document(frame, url, DefaultDocumentClass, NonRenderedPlaceholder)
{
}