[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da
mrobinson at webkit.org
mrobinson at webkit.org
Wed Dec 22 18:06:49 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit c289de6a5d5aef8bb8086035d9e161abc8fffd90
Author: mrobinson at webkit.org <mrobinson at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Dec 7 12:40:54 2010 +0000
2010-12-07 Martin Robinson <mrobinson at igalia.com>
Unreviewed, rolling out r73392.
http://trac.webkit.org/changeset/73392
https://bugs.webkit.org/show_bug.cgi?id=50489
This commit caused crashes on the GTK+ bots
* bindings/ScriptControllerBase.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::close):
(WebCore::Document::lastModified):
(WebCore::Document::finishedParsing):
(WebCore::Document::initSecurityContext):
(WebCore::Document::updateURLForPushOrReplaceState):
* dom/Document.h:
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::checkStyleSheet):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::scriptCharset):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
* html/MediaDocument.cpp:
(WebCore::MediaDocument::replaceMediaElementTimerFired):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::setupForReplaceByMIMEType):
(WebCore::DocumentLoader::setFrame):
* loader/DocumentLoader.h:
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin):
* loader/DocumentWriter.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::init):
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::finishedLoadingDocument):
(WebCore::FrameLoader::addExtraFieldsToRequest):
* loader/FrameLoader.h:
(WebCore::FrameLoader::writer):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestPreload):
* platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::encodingFromAcceptCharset):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
2010-12-07 Martin Robinson <mrobinson at igalia.com>
Unreviewed, rolling out r73392.
http://trac.webkit.org/changeset/73392
https://bugs.webkit.org/show_bug.cgi?id=50489
This commit caused crashes on the GTK+ bots
* src/ContextMenuClientImpl.cpp:
(WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):
* src/FrameLoaderClientImpl.cpp:
(WebKit::FrameLoaderClientImpl::finishedLoading):
* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::encoding):
(WebKit::WebFrameImpl::loadJavaScriptURL):
* src/WebPageSerializerImpl.cpp:
(WebKit::WebPageSerializerImpl::preActionBeforeSerializeOpenTag):
(WebKit::WebPageSerializerImpl::serialize):
* src/WebSearchableFormData.cpp:
(WebCore::GetFormEncoding):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::pageEncoding):
2010-12-07 Martin Robinson <mrobinson at igalia.com>
Unreviewed, rolling out r73392.
http://trac.webkit.org/changeset/73392
https://bugs.webkit.org/show_bug.cgi?id=50489
This commit caused crashes on the GTK+ bots
* WebCoreSupport/FrameLoaderClientGtk.cpp:
(WebKit::FrameLoaderClient::finishedLoading):
* webkit/webkitwebview.cpp:
(webkit_web_view_get_encoding):
2010-12-07 Martin Robinson <mrobinson at igalia.com>
Unreviewed, rolling out r73392.
http://trac.webkit.org/changeset/73392
https://bugs.webkit.org/show_bug.cgi?id=50489
This commit caused crashes on the GTK+ bots
* WebView/WebFrame.mm:
(-[WebFrame _canProvideDocumentSource]):
2010-12-07 Martin Robinson <mrobinson at igalia.com>
Unreviewed, rolling out r73392.
http://trac.webkit.org/changeset/73392
https://bugs.webkit.org/show_bug.cgi?id=50489
This commit caused crashes on the GTK+ bots
* Api/qwebframe.cpp:
(QWebFrame::setUrl):
* WebCoreSupport/FrameLoaderClientQt.cpp:
(WebCore::FrameLoaderClientQt::finishedLoading):
2010-12-07 Martin Robinson <mrobinson at igalia.com>
Unreviewed, rolling out r73392.
http://trac.webkit.org/changeset/73392
https://bugs.webkit.org/show_bug.cgi?id=50489
This commit caused crashes on the GTK+ bots
* WebCoreSupport/FrameLoaderClientWinCE.cpp:
(WebKit::FrameLoaderClientWinCE::finishedLoading):
2010-12-07 Martin Robinson <mrobinson at igalia.com>
Unreviewed, rolling out r73392.
http://trac.webkit.org/changeset/73392
https://bugs.webkit.org/show_bug.cgi?id=50489
This commit caused crashes on the GTK+ bots
* WebKitSupport/FrameLoaderClientWx.cpp:
(WebCore::FrameLoaderClientWx::finishedLoading):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73436 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 4fbeb71..a148fa4 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,59 @@
+2010-12-07 Martin Robinson <mrobinson at igalia.com>
+
+ Unreviewed, rolling out r73392.
+ http://trac.webkit.org/changeset/73392
+ https://bugs.webkit.org/show_bug.cgi?id=50489
+
+ This commit caused crashes on the GTK+ bots
+
+ * bindings/ScriptControllerBase.cpp:
+ (WebCore::ScriptController::executeIfJavaScriptURL):
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+ (WebCore::Document::close):
+ (WebCore::Document::lastModified):
+ (WebCore::Document::finishedParsing):
+ (WebCore::Document::initSecurityContext):
+ (WebCore::Document::updateURLForPushOrReplaceState):
+ * dom/Document.h:
+ * dom/ProcessingInstruction.cpp:
+ (WebCore::ProcessingInstruction::checkStyleSheet):
+ * dom/ScriptElement.cpp:
+ (WebCore::ScriptElement::scriptCharset):
+ * html/HTMLLinkElement.cpp:
+ (WebCore::HTMLLinkElement::process):
+ * html/MediaDocument.cpp:
+ (WebCore::MediaDocument::replaceMediaElementTimerFired):
+ * html/PluginDocument.cpp:
+ (WebCore::PluginDocumentParser::createDocumentStructure):
+ * loader/DocumentLoader.cpp:
+ (WebCore::DocumentLoader::DocumentLoader):
+ (WebCore::DocumentLoader::finishedLoading):
+ (WebCore::DocumentLoader::commitData):
+ (WebCore::DocumentLoader::setupForReplaceByMIMEType):
+ (WebCore::DocumentLoader::setFrame):
+ * loader/DocumentLoader.h:
+ * loader/DocumentWriter.cpp:
+ (WebCore::DocumentWriter::begin):
+ * loader/DocumentWriter.h:
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::FrameLoader):
+ (WebCore::FrameLoader::init):
+ (WebCore::FrameLoader::clear):
+ (WebCore::FrameLoader::receivedFirstData):
+ (WebCore::FrameLoader::transitionToCommitted):
+ (WebCore::FrameLoader::open):
+ (WebCore::FrameLoader::finishedLoadingDocument):
+ (WebCore::FrameLoader::addExtraFieldsToRequest):
+ * loader/FrameLoader.h:
+ (WebCore::FrameLoader::writer):
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::requestPreload):
+ * platform/network/FormDataBuilder.cpp:
+ (WebCore::FormDataBuilder::encodingFromAcceptCharset):
+ * svg/graphics/SVGImage.cpp:
+ (WebCore::SVGImage::dataChanged):
+
2010-12-07 Patrick Gansterer <paroga at webkit.org>
Reviewed by Andreas Kling.
diff --git a/WebCore/bindings/ScriptControllerBase.cpp b/WebCore/bindings/ScriptControllerBase.cpp
index 3c50db2..a77ff9c 100644
--- a/WebCore/bindings/ScriptControllerBase.cpp
+++ b/WebCore/bindings/ScriptControllerBase.cpp
@@ -112,7 +112,7 @@ bool ScriptController::executeIfJavaScriptURL(const KURL& url, ShouldReplaceDocu
// synchronously can cause crashes:
// http://bugs.webkit.org/show_bug.cgi?id=16782
if (shouldReplaceDocumentIfJavaScriptURL == ReplaceDocumentIfJavaScriptURL)
- m_frame->document()->loader()->writer()->replaceDocument(scriptResult);
+ m_frame->loader()->writer()->replaceDocument(scriptResult);
return true;
}
diff --git a/WebCore/dom/Document.cpp b/WebCore/dom/Document.cpp
index 75d8b9b..c54f007 100644
--- a/WebCore/dom/Document.cpp
+++ b/WebCore/dom/Document.cpp
@@ -428,7 +428,6 @@ Document::Document(Frame* frame, const KURL& url, bool isXHTML, bool isHTML, con
m_ignoreAutofocus = false;
m_frame = frame;
- m_documentLoader = frame ? frame->loader()->activeDocumentLoader() : 0;
if (frame || !url.isEmpty())
setURL(url);
@@ -2055,8 +2054,9 @@ void Document::close()
Frame* frame = this->frame();
if (frame) {
// This code calls implicitClose() if all loading has completed.
- loader()->writer()->endIfNotLoadingMainResource();
- frame->loader()->checkCompleted();
+ FrameLoader* frameLoader = frame->loader();
+ frameLoader->writer()->endIfNotLoadingMainResource();
+ frameLoader->checkCompleted();
} else {
// Because we have no frame, we don't know if all loading has completed,
// so we just call implicitClose() immediately. FIXME: This might fire
@@ -3713,7 +3713,7 @@ String Document::lastModified() const
DateComponents date;
bool foundDate = false;
if (m_frame) {
- String httpLastModified = m_documentLoader->response().httpHeaderField("Last-Modified");
+ String httpLastModified = m_frame->loader()->documentLoader()->response().httpHeaderField("Last-Modified");
if (!httpLastModified.isEmpty()) {
date.setMillisecondsSinceEpochForDateTime(parseDate(httpLastModified));
foundDate = true;
@@ -4231,7 +4231,7 @@ void Document::finishedParsing()
return;
if (InspectorController* controller = page()->inspectorController())
- controller->mainResourceFiredDOMContentEvent(m_documentLoader, url());
+ controller->mainResourceFiredDOMContentEvent(f->loader()->documentLoader(), url());
#endif
}
}
@@ -4445,7 +4445,8 @@ void Document::initSecurityContext()
// load local resources. See https://bugs.webkit.org/show_bug.cgi?id=16756
// and https://bugs.webkit.org/show_bug.cgi?id=19760 for further
// discussion.
- if (m_documentLoader->substituteData().isValid())
+ DocumentLoader* documentLoader = m_frame->loader()->documentLoader();
+ if (documentLoader && documentLoader->substituteData().isValid())
securityOrigin()->grantLoadLocalResources();
}
@@ -4525,7 +4526,7 @@ void Document::updateURLForPushOrReplaceState(const KURL& url)
// FIXME: Eliminate this redundancy.
setURL(url);
f->loader()->setURL(url);
- m_documentLoader->replaceRequestURLForSameDocumentNavigation(url);
+ f->loader()->documentLoader()->replaceRequestURLForSameDocumentNavigation(url);
}
void Document::statePopped(SerializedScriptValue* stateObject)
diff --git a/WebCore/dom/Document.h b/WebCore/dom/Document.h
index 5a4f5ca..2d607c9 100644
--- a/WebCore/dom/Document.h
+++ b/WebCore/dom/Document.h
@@ -33,7 +33,6 @@
#include "CollectionType.h"
#include "Color.h"
#include "ContainerNode.h"
-#include "DocumentLoader.h"
#include "DocumentMarkerController.h"
#include "DocumentTiming.h"
#include "QualifiedName.h"
@@ -56,7 +55,6 @@ class Attr;
class AXObjectCache;
class CDATASection;
class CachedCSSStyleSheet;
-class CachedResourceLoader;
class CachedScript;
class CanvasRenderingContext;
class CharacterData;
@@ -69,6 +67,7 @@ class DOMImplementation;
class DOMSelection;
class DOMWindow;
class DatabaseThread;
+class CachedResourceLoader;
class DocumentFragment;
class DocumentType;
class DocumentWeakReference;
@@ -550,9 +549,6 @@ public:
// to get visually ordered hebrew and arabic pages right
void setVisuallyOrdered();
bool visuallyOrdered() const { return m_visuallyOrdered; }
-
- void setDocumentLoader(DocumentLoader* documentLoader) { m_documentLoader = documentLoader; }
- DocumentLoader* loader() const { return m_documentLoader; }
void open(Document* ownerDocument = 0);
void implicitOpen();
@@ -1141,7 +1137,6 @@ private:
bool m_didCalculateStyleSelector;
Frame* m_frame;
- DocumentLoader* m_documentLoader;
OwnPtr<CachedResourceLoader> m_cachedResourceLoader;
RefPtr<DocumentParser> m_parser;
bool m_wellFormed;
diff --git a/WebCore/dom/ProcessingInstruction.cpp b/WebCore/dom/ProcessingInstruction.cpp
index b891310..544d789 100644
--- a/WebCore/dom/ProcessingInstruction.cpp
+++ b/WebCore/dom/ProcessingInstruction.cpp
@@ -168,7 +168,7 @@ void ProcessingInstruction::checkStyleSheet()
{
String charset = attrs.get("charset");
if (charset.isEmpty())
- charset = document()->loader()->writer()->encoding();
+ charset = document()->frame()->loader()->writer()->encoding();
m_cachedSheet = document()->cachedResourceLoader()->requestCSSStyleSheet(url, charset);
}
diff --git a/WebCore/dom/ScriptElement.cpp b/WebCore/dom/ScriptElement.cpp
index 72878d2..74f2580 100644
--- a/WebCore/dom/ScriptElement.cpp
+++ b/WebCore/dom/ScriptElement.cpp
@@ -292,8 +292,8 @@ String ScriptElement::scriptCharset() const
// If charset has not been declared in script tag, fall back to frame encoding.
if (charset.isEmpty()) {
- if (DocumentLoader* loader = m_element->document()->loader())
- charset = loader->writer()->encoding();
+ if (Frame* frame = m_element->document()->frame())
+ charset = frame->loader()->writer()->encoding();
}
return charset;
diff --git a/WebCore/html/HTMLLinkElement.cpp b/WebCore/html/HTMLLinkElement.cpp
index f928138..319e759 100644
--- a/WebCore/html/HTMLLinkElement.cpp
+++ b/WebCore/html/HTMLLinkElement.cpp
@@ -230,8 +230,8 @@ void HTMLLinkElement::process()
// also, don't load style sheets for standalone documents
String charset = getAttribute(charsetAttr);
- if (charset.isEmpty())
- charset = document()->loader()->writer()->encoding();
+ if (charset.isEmpty() && document()->frame())
+ charset = document()->frame()->loader()->writer()->encoding();
if (m_cachedSheet) {
if (m_loading)
diff --git a/WebCore/html/MediaDocument.cpp b/WebCore/html/MediaDocument.cpp
index 72b9f78..af66795 100644
--- a/WebCore/html/MediaDocument.cpp
+++ b/WebCore/html/MediaDocument.cpp
@@ -208,7 +208,7 @@ void MediaDocument::replaceMediaElementTimerFired(Timer<MediaDocument>*)
embedElement->setAttribute(heightAttr, "100%");
embedElement->setAttribute(nameAttr, "plugin");
embedElement->setAttribute(srcAttr, url().string());
- embedElement->setAttribute(typeAttr, loader()->writer()->mimeType());
+ embedElement->setAttribute(typeAttr, frame()->loader()->writer()->mimeType());
ExceptionCode ec;
videoElement->parentNode()->replaceChild(embedElement, videoElement, ec);
diff --git a/WebCore/html/PluginDocument.cpp b/WebCore/html/PluginDocument.cpp
index bcb6d3a..cebb949 100644
--- a/WebCore/html/PluginDocument.cpp
+++ b/WebCore/html/PluginDocument.cpp
@@ -91,7 +91,7 @@ void PluginDocumentParser::createDocumentStructure()
m_embedElement->setAttribute(nameAttr, "plugin");
m_embedElement->setAttribute(srcAttr, document()->url().string());
- m_embedElement->setAttribute(typeAttr, document()->loader()->writer()->mimeType());
+ m_embedElement->setAttribute(typeAttr, document()->frame()->loader()->writer()->mimeType());
static_cast<PluginDocument*>(document())->setPluginNode(m_embedElement);
diff --git a/WebCore/loader/DocumentLoader.cpp b/WebCore/loader/DocumentLoader.cpp
index 66837d2..2f21066 100644
--- a/WebCore/loader/DocumentLoader.cpp
+++ b/WebCore/loader/DocumentLoader.cpp
@@ -37,7 +37,6 @@
#include "DOMWindow.h"
#include "Document.h"
#include "DocumentParser.h"
-#include "DocumentWriter.h"
#include "Event.h"
#include "Frame.h"
#include "FrameLoader.h"
@@ -50,7 +49,7 @@
#include "PlatformString.h"
#include "Settings.h"
#include "SharedBuffer.h"
-#include "TextResourceDecoder.h"
+
#include <wtf/Assertions.h>
#include <wtf/text/CString.h>
#include <wtf/unicode/Unicode.h>
@@ -78,7 +77,6 @@ static void setAllDefersLoading(const ResourceLoaderSet& loaders, bool defers)
DocumentLoader::DocumentLoader(const ResourceRequest& req, const SubstituteData& substituteData)
: m_deferMainResourceDataLoad(true)
, m_frame(0)
- , m_writer(m_frame)
, m_originalRequest(req)
, m_substituteData(substituteData)
, m_originalRequestCopy(req)
@@ -278,7 +276,7 @@ void DocumentLoader::finishedLoading()
commitIfReady();
if (FrameLoader* loader = frameLoader()) {
loader->finishedLoadingDocument(this);
- m_writer.end();
+ loader->writer()->end();
}
}
@@ -306,9 +304,10 @@ void DocumentLoader::commitData(const char* bytes, int length)
userChosen = false;
encoding = response().textEncodingName();
}
- m_writer.setEncoding(encoding, userChosen);
+ // FIXME: DocumentWriter should be owned by DocumentLoader.
+ m_frame->loader()->writer()->setEncoding(encoding, userChosen);
ASSERT(m_frame->document()->parsing());
- m_writer.addData(bytes, length);
+ m_frame->loader()->writer()->addData(bytes, length);
}
bool DocumentLoader::doesProgressiveLoad(const String& MIMEType) const
@@ -338,7 +337,7 @@ void DocumentLoader::setupForReplaceByMIMEType(const String& newMIMEType)
}
frameLoader()->finishedLoadingDocument(this);
- m_writer.end();
+ m_frame->loader()->writer()->end();
frameLoader()->setReplacing();
m_gotFirstByte = false;
@@ -375,7 +374,6 @@ void DocumentLoader::setFrame(Frame* frame)
return;
ASSERT(frame && !m_frame);
m_frame = frame;
- m_writer.setFrame(frame);
attachToFrame();
}
diff --git a/WebCore/loader/DocumentLoader.h b/WebCore/loader/DocumentLoader.h
index 63e5f43..e1f75ed 100644
--- a/WebCore/loader/DocumentLoader.h
+++ b/WebCore/loader/DocumentLoader.h
@@ -30,7 +30,6 @@
#define DocumentLoader_h
#include "DocumentLoadTiming.h"
-#include "DocumentWriter.h"
#include "NavigationAction.h"
#include "ResourceError.h"
#include "ResourceRequest.h"
@@ -73,8 +72,6 @@ namespace WebCore {
FrameLoader* frameLoader() const;
MainResourceLoader* mainResourceLoader() const { return m_mainResourceLoader.get(); }
PassRefPtr<SharedBuffer> mainResourceData() const;
-
- DocumentWriter* writer() const { return &m_writer; }
const ResourceRequest& originalRequest() const;
const ResourceRequest& originalRequestCopy() const;
@@ -249,8 +246,6 @@ namespace WebCore {
ResourceLoaderSet m_plugInStreamLoaders;
RefPtr<SharedBuffer> m_mainResourceData;
-
- mutable DocumentWriter m_writer;
// A reference to actual request used to create the data source.
// This should only be used by the resourceLoadDelegate's
diff --git a/WebCore/loader/DocumentWriter.cpp b/WebCore/loader/DocumentWriter.cpp
index 8b75ee6..5b03cd7 100644
--- a/WebCore/loader/DocumentWriter.cpp
+++ b/WebCore/loader/DocumentWriter.cpp
@@ -123,7 +123,6 @@ void DocumentWriter::begin(const KURL& url, bool dispatch, SecurityOrigin* origi
bool resetScripting = !(m_frame->loader()->stateMachine()->isDisplayingInitialEmptyDocument() && m_frame->document()->securityOrigin()->isSecureTransitionTo(url));
m_frame->loader()->clear(resetScripting, resetScripting);
- clear();
if (resetScripting)
m_frame->script()->updatePlatformScriptObjects();
diff --git a/WebCore/loader/DocumentWriter.h b/WebCore/loader/DocumentWriter.h
index 78db16c..5fb3dc1 100644
--- a/WebCore/loader/DocumentWriter.h
+++ b/WebCore/loader/DocumentWriter.h
@@ -52,8 +52,7 @@ public:
void addData(const char* string, int length = -1, bool flush = false);
void end();
void endIfNotLoadingMainResource();
-
- void setFrame(Frame* frame) { m_frame = frame; }
+ void clear();
String encoding() const;
void setEncoding(const String& encoding, bool userChosen);
@@ -76,7 +75,6 @@ public:
private:
PassRefPtr<Document> createDocument(const KURL&);
- void clear();
Frame* m_frame;
diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp
index 25ca6a4..35a492b 100644
--- a/WebCore/loader/FrameLoader.cpp
+++ b/WebCore/loader/FrameLoader.cpp
@@ -178,6 +178,7 @@ FrameLoader::FrameLoader(Frame* frame, FrameLoaderClient* client)
, m_policyChecker(frame)
, m_history(frame)
, m_notifer(frame)
+ , m_writer(frame)
, m_subframeLoader(frame)
, m_state(FrameStateCommittedPage)
, m_loadType(FrameLoadTypeStandard)
@@ -231,8 +232,8 @@ void FrameLoader::init()
setState(FrameStateProvisional);
m_provisionalDocumentLoader->setResponse(ResourceResponse(KURL(), "text/html", 0, String(), String()));
m_provisionalDocumentLoader->finishedLoading();
- m_documentLoader->writer()->begin(KURL(), false);
- m_documentLoader->writer()->end();
+ writer()->begin(KURL(), false);
+ writer()->end();
m_frame->document()->cancelParsing();
m_stateMachine.advanceTo(FrameLoaderStateMachine::DisplayingInitialEmptyDocument);
m_didCallImplicitClose = true;
@@ -591,6 +592,7 @@ void FrameLoader::clear(bool clearWindowProperties, bool clearScriptObjects, boo
// Do not drop the document before the ScriptController and view are cleared
// as some destructors might still try to access the document.
m_frame->setDocument(0);
+ writer()->clear();
m_subframeLoader.clear();
@@ -609,8 +611,8 @@ void FrameLoader::clear(bool clearWindowProperties, bool clearScriptObjects, boo
void FrameLoader::receivedFirstData()
{
- activeDocumentLoader()->writer()->begin(m_workingURL, false);
- activeDocumentLoader()->writer()->setDocumentWasLoadedAsPartOfNavigation();
+ writer()->begin(m_workingURL, false);
+ writer()->setDocumentWasLoadedAsPartOfNavigation();
dispatchDidCommitLoad();
dispatchDidClearWindowObjectsInAllWorlds();
@@ -2010,7 +2012,7 @@ void FrameLoader::transitionToCommitted(PassRefPtr<CachedPage> cachedPage)
ASSERT_NOT_REACHED();
}
- m_documentLoader->writer()->setMIMEType(dl->responseMIMEType());
+ writer()->setMIMEType(dl->responseMIMEType());
// Tell the client we've committed this URL.
ASSERT(m_frame->view());
@@ -2146,6 +2148,8 @@ void FrameLoader::open(CachedFrameBase& cachedFrame)
m_frame->domWindow()->setURL(document->url());
m_frame->domWindow()->setSecurityOrigin(document->securityOrigin());
+ writer()->setDecoder(document->decoder());
+
updateFirstPartyForCookies();
cachedFrame.restore();
@@ -2238,7 +2242,7 @@ void FrameLoader::finishedLoadingDocument(DocumentLoader* loader)
ArchiveResource* mainResource = archive->mainResource();
loader->setParsedArchiveData(mainResource->data());
- loader->writer()->setMIMEType(mainResource->mimeType());
+ writer()->setMIMEType(mainResource->mimeType());
closeURL();
didOpenURL(mainResource->url());
@@ -2246,8 +2250,8 @@ void FrameLoader::finishedLoadingDocument(DocumentLoader* loader)
ASSERT(m_frame->document());
String userChosenEncoding = documentLoader()->overrideEncoding();
bool encodingIsUserChosen = !userChosenEncoding.isNull();
- loader->writer()->setEncoding(encodingIsUserChosen ? userChosenEncoding : mainResource->textEncoding(), encodingIsUserChosen);
- loader->writer()->addData(mainResource->data()->data(), mainResource->data()->size());
+ writer()->setEncoding(encodingIsUserChosen ? userChosenEncoding : mainResource->textEncoding(), encodingIsUserChosen);
+ writer()->addData(mainResource->data()->data(), mainResource->data()->size());
}
bool FrameLoader::isReplacing() const
@@ -2671,7 +2675,7 @@ void FrameLoader::addExtraFieldsToRequest(ResourceRequest& request, FrameLoadTyp
// Always try UTF-8. If that fails, try frame encoding (if any) and then the default.
// For a newly opened frame with an empty URL, encoding() should not be used, because this methods asks decoder, which uses ISO-8859-1.
Settings* settings = m_frame->settings();
- request.setResponseContentDispositionEncodingFallbackArray("UTF-8", activeDocumentLoader()->writer()->deprecatedFrameEncoding(), settings ? settings->defaultTextEncodingName() : String());
+ request.setResponseContentDispositionEncodingFallbackArray("UTF-8", writer()->deprecatedFrameEncoding(), settings ? settings->defaultTextEncodingName() : String());
}
void FrameLoader::addHTTPOriginIfNeeded(ResourceRequest& request, String origin)
diff --git a/WebCore/loader/FrameLoader.h b/WebCore/loader/FrameLoader.h
index 2101286..76ad977 100644
--- a/WebCore/loader/FrameLoader.h
+++ b/WebCore/loader/FrameLoader.h
@@ -32,6 +32,7 @@
#define FrameLoader_h
#include "CachePolicy.h"
+#include "DocumentWriter.h"
#include "FrameLoaderStateMachine.h"
#include "FrameLoaderTypes.h"
#include "HistoryController.h"
@@ -97,6 +98,7 @@ public:
PolicyChecker* policyChecker() const { return &m_policyChecker; }
HistoryController* history() const { return &m_history; }
ResourceLoadNotifier* notifier() const { return &m_notifer; }
+ DocumentWriter* writer() const { return &m_writer; }
SubframeLoader* subframeLoader() const { return &m_subframeLoader; }
// FIXME: This is not cool, people. There are too many different functions that all start loads.
@@ -425,6 +427,7 @@ private:
mutable PolicyChecker m_policyChecker;
mutable HistoryController m_history;
mutable ResourceLoadNotifier m_notifer;
+ mutable DocumentWriter m_writer;
mutable SubframeLoader m_subframeLoader;
mutable FrameLoaderStateMachine m_stateMachine;
diff --git a/WebCore/loader/cache/CachedResourceLoader.cpp b/WebCore/loader/cache/CachedResourceLoader.cpp
index 5f4f360..15c5f03 100644
--- a/WebCore/loader/cache/CachedResourceLoader.cpp
+++ b/WebCore/loader/cache/CachedResourceLoader.cpp
@@ -406,7 +406,7 @@ void CachedResourceLoader::requestPreload(CachedResource::Type type, const Strin
{
String encoding;
if (type == CachedResource::Script || type == CachedResource::CSSStyleSheet)
- encoding = charset.isEmpty() ? m_document->loader()->writer()->encoding() : charset;
+ encoding = charset.isEmpty() ? m_document->frame()->loader()->writer()->encoding() : charset;
CachedResource* resource = requestResource(type, url, encoding, true);
if (!resource || (m_preloads && m_preloads->contains(resource)))
diff --git a/WebCore/platform/network/FormDataBuilder.cpp b/WebCore/platform/network/FormDataBuilder.cpp
index 4645583..da28fc2 100644
--- a/WebCore/platform/network/FormDataBuilder.cpp
+++ b/WebCore/platform/network/FormDataBuilder.cpp
@@ -94,7 +94,10 @@ TextEncoding FormDataBuilder::encodingFromAcceptCharset(const String& acceptChar
return encoding;
}
- return document->loader()->writer()->encoding();
+ if (Frame* frame = document->frame())
+ return frame->loader()->writer()->encoding();
+
+ return Latin1Encoding();
}
Vector<char> FormDataBuilder::generateUniqueBoundaryString()
diff --git a/WebCore/svg/graphics/SVGImage.cpp b/WebCore/svg/graphics/SVGImage.cpp
index bebc742..c9804ae 100644
--- a/WebCore/svg/graphics/SVGImage.cpp
+++ b/WebCore/svg/graphics/SVGImage.cpp
@@ -278,10 +278,10 @@ bool SVGImage::dataChanged(bool allDataReceived)
loader->load(fakeRequest, false); // Make sure the DocumentLoader is created
loader->policyChecker()->cancelCheck(); // cancel any policy checks
loader->commitProvisionalLoad();
- loader->activeDocumentLoader()->writer()->setMIMEType("image/svg+xml");
- loader->activeDocumentLoader()->writer()->begin(KURL()); // create the empty document
- loader->activeDocumentLoader()->writer()->addData(data()->data(), data()->size());
- loader->activeDocumentLoader()->writer()->end();
+ loader->writer()->setMIMEType("image/svg+xml");
+ loader->writer()->begin(KURL()); // create the empty document
+ loader->writer()->addData(data()->data(), data()->size());
+ loader->writer()->end();
frame->view()->setTransparent(true); // SVG Images are transparent.
}
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 7cfd885..7d95846 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,26 @@
+2010-12-07 Martin Robinson <mrobinson at igalia.com>
+
+ Unreviewed, rolling out r73392.
+ http://trac.webkit.org/changeset/73392
+ https://bugs.webkit.org/show_bug.cgi?id=50489
+
+ This commit caused crashes on the GTK+ bots
+
+ * src/ContextMenuClientImpl.cpp:
+ (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::finishedLoading):
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::encoding):
+ (WebKit::WebFrameImpl::loadJavaScriptURL):
+ * src/WebPageSerializerImpl.cpp:
+ (WebKit::WebPageSerializerImpl::preActionBeforeSerializeOpenTag):
+ (WebKit::WebPageSerializerImpl::serialize):
+ * src/WebSearchableFormData.cpp:
+ (WebCore::GetFormEncoding):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::pageEncoding):
+
2010-12-07 Kenichi Ishibashi <bashi at google.com>
Reviewed by Kent Tamura.
diff --git a/WebKit/chromium/src/ContextMenuClientImpl.cpp b/WebKit/chromium/src/ContextMenuClientImpl.cpp
index 5003d10..d33a06b 100644
--- a/WebKit/chromium/src/ContextMenuClientImpl.cpp
+++ b/WebKit/chromium/src/ContextMenuClientImpl.cpp
@@ -226,7 +226,7 @@ PlatformMenuDescription ContextMenuClientImpl::getCustomMenuFromDefaultItems(
// If it's not a link, an image, a media element, or an image/media link,
// show a selection menu or a more generic page menu.
- data.frameEncoding = selectedFrame->document()->loader()->writer()->encoding();
+ data.frameEncoding = selectedFrame->loader()->writer()->encoding();
// Send the frame and page URLs in any case.
data.pageURL = urlFromFrame(m_webView->mainFrameImpl()->frame());
diff --git a/WebKit/chromium/src/FrameLoaderClientImpl.cpp b/WebKit/chromium/src/FrameLoaderClientImpl.cpp
index f76c657..9d79599 100644
--- a/WebKit/chromium/src/FrameLoaderClientImpl.cpp
+++ b/WebKit/chromium/src/FrameLoaderClientImpl.cpp
@@ -1097,7 +1097,7 @@ void FrameLoaderClientImpl::finishedLoading(DocumentLoader* dl)
// However, we only want to do this if makeRepresentation has been called, to
// match the behavior on the Mac.
if (m_hasRepresentation)
- dl->writer()->setEncoding("", false);
+ dl->frameLoader()->writer()->setEncoding("", false);
}
}
diff --git a/WebKit/chromium/src/WebFrameImpl.cpp b/WebKit/chromium/src/WebFrameImpl.cpp
index 898d24b..4422e1b 100644
--- a/WebKit/chromium/src/WebFrameImpl.cpp
+++ b/WebKit/chromium/src/WebFrameImpl.cpp
@@ -545,7 +545,7 @@ WebURL WebFrameImpl::openSearchDescriptionURL() const
WebString WebFrameImpl::encoding() const
{
- return frame()->document()->loader()->writer()->encoding();
+ return frame()->loader()->writer()->encoding();
}
WebSize WebFrameImpl::scrollOffset() const
@@ -2271,7 +2271,7 @@ void WebFrameImpl::loadJavaScriptURL(const KURL& url)
return;
if (!m_frame->navigationScheduler()->locationChangePending())
- m_frame->document()->loader()->writer()->replaceDocument(scriptResult);
+ m_frame->loader()->writer()->replaceDocument(scriptResult);
}
} // namespace WebKit
diff --git a/WebKit/chromium/src/WebPageSerializerImpl.cpp b/WebKit/chromium/src/WebPageSerializerImpl.cpp
index 7ea9a8c..0d85d78 100644
--- a/WebKit/chromium/src/WebPageSerializerImpl.cpp
+++ b/WebKit/chromium/src/WebPageSerializerImpl.cpp
@@ -168,7 +168,7 @@ String WebPageSerializerImpl::preActionBeforeSerializeOpenTag(
// Get encoding info.
String xmlEncoding = param->document->xmlEncoding();
if (xmlEncoding.isEmpty())
- xmlEncoding = param->document->loader()->writer()->encoding();
+ xmlEncoding = param->document->frame()->loader()->writer()->encoding();
if (xmlEncoding.isEmpty())
xmlEncoding = UTF8Encoding().name();
result.append("<?xml version=\"");
@@ -505,7 +505,7 @@ bool WebPageSerializerImpl::serialize()
didSerialization = true;
- String encoding = document->loader()->writer()->encoding();
+ String encoding = webFrame->frame()->loader()->writer()->encoding();
const TextEncoding& textEncoding = encoding.isEmpty() ? UTF8Encoding() : TextEncoding(encoding);
String directoryName = url == mainURL ? m_localDirectoryName : "";
diff --git a/WebKit/chromium/src/WebSearchableFormData.cpp b/WebKit/chromium/src/WebSearchableFormData.cpp
index 55c0adf..178e4db 100644
--- a/WebKit/chromium/src/WebSearchableFormData.cpp
+++ b/WebKit/chromium/src/WebSearchableFormData.cpp
@@ -61,7 +61,8 @@ void GetFormEncoding(const HTMLFormElement* form, TextEncoding* encoding)
if (encoding->isValid())
return;
}
- *encoding = TextEncoding(form->document()->loader()->writer()->encoding());
+ const Frame* frame = form->document()->frame();
+ *encoding = frame ? TextEncoding(frame->loader()->writer()->encoding()) : Latin1Encoding();
}
// Returns true if the submit request results in an HTTP URL.
diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp
index 351c13d..7bec254 100644
--- a/WebKit/chromium/src/WebViewImpl.cpp
+++ b/WebKit/chromium/src/WebViewImpl.cpp
@@ -1431,7 +1431,7 @@ WebString WebViewImpl::pageEncoding() const
if (!m_page.get())
return WebString();
- return m_page->mainFrame()->document()->loader()->writer()->encoding();
+ return m_page->mainFrame()->loader()->writer()->encoding();
}
void WebViewImpl::setPageEncoding(const WebString& encodingName)
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index 7367388..0e06a64 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,16 @@
+2010-12-07 Martin Robinson <mrobinson at igalia.com>
+
+ Unreviewed, rolling out r73392.
+ http://trac.webkit.org/changeset/73392
+ https://bugs.webkit.org/show_bug.cgi?id=50489
+
+ This commit caused crashes on the GTK+ bots
+
+ * WebCoreSupport/FrameLoaderClientGtk.cpp:
+ (WebKit::FrameLoaderClient::finishedLoading):
+ * webkit/webkitwebview.cpp:
+ (webkit_web_view_get_encoding):
+
2010-12-06 Nate Chapin <japhet at chromium.org>
Reviewed by Adam Barth.
diff --git a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
index 9613bb1..3dbba12 100644
--- a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
@@ -1016,9 +1016,10 @@ String FrameLoaderClient::generatedMIMETypeForURLScheme(const String&) const
void FrameLoaderClient::finishedLoading(WebCore::DocumentLoader* documentLoader)
{
- if (!m_pluginView)
- documentLoader->writer()->setEncoding(m_response.textEncodingName(), false);
- else {
+ if (!m_pluginView) {
+ FrameLoader* loader = documentLoader->frameLoader();
+ loader->writer()->setEncoding(m_response.textEncodingName(), false);
+ } else {
m_pluginView->didFinishLoading();
m_pluginView = 0;
m_hasSentResponseToPlugin = false;
diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp
index a1d550f..559906a 100644
--- a/WebKit/gtk/webkit/webkitwebview.cpp
+++ b/WebKit/gtk/webkit/webkitwebview.cpp
@@ -4509,7 +4509,7 @@ gdouble webkit_web_view_get_progress(WebKitWebView* webView)
const gchar* webkit_web_view_get_encoding(WebKitWebView* webView)
{
g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);
- String encoding = core(webView)->mainFrame()->document()->loader()->writer()->encoding();
+ String encoding = core(webView)->mainFrame()->loader()->writer()->encoding();
if (encoding.isEmpty())
return 0;
webView->priv->encoding = encoding.utf8();
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index 581cb03..bc4bb8a 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,14 @@
+2010-12-07 Martin Robinson <mrobinson at igalia.com>
+
+ Unreviewed, rolling out r73392.
+ http://trac.webkit.org/changeset/73392
+ https://bugs.webkit.org/show_bug.cgi?id=50489
+
+ This commit caused crashes on the GTK+ bots
+
+ * WebView/WebFrame.mm:
+ (-[WebFrame _canProvideDocumentSource]):
+
2010-12-07 Kenichi Ishibashi <bashi at google.com>
Reviewed by Kent Tamura.
diff --git a/WebKit/mac/WebView/WebFrame.mm b/WebKit/mac/WebView/WebFrame.mm
index db3f6ce..d1d4953 100644
--- a/WebKit/mac/WebView/WebFrame.mm
+++ b/WebKit/mac/WebView/WebFrame.mm
@@ -933,7 +933,7 @@ static inline WebDataSource *dataSource(DocumentLoader* loader)
- (BOOL)_canProvideDocumentSource
{
Frame* frame = _private->coreFrame;
- String mimeType = frame->document()->loader()->writer()->mimeType();
+ String mimeType = frame->loader()->writer()->mimeType();
PluginData* pluginData = frame->page() ? frame->page()->pluginData() : 0;
if (WebCore::DOMImplementation::isTextMIMEType(mimeType) ||
diff --git a/WebKit/qt/Api/qwebframe.cpp b/WebKit/qt/Api/qwebframe.cpp
index 268b73e..3cdbef2 100644
--- a/WebKit/qt/Api/qwebframe.cpp
+++ b/WebKit/qt/Api/qwebframe.cpp
@@ -703,8 +703,8 @@ static inline QUrl ensureAbsoluteUrl(const QUrl &url)
void QWebFrame::setUrl(const QUrl &url)
{
const QUrl absolute = ensureAbsoluteUrl(url);
- d->frame->document()->loader()->writer()->begin(absolute);
- d->frame->document()->loader()->writer()->end();
+ d->frame->loader()->writer()->begin(absolute);
+ d->frame->loader()->writer()->end();
load(absolute);
}
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index c31feb9..9d73ff9 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,16 @@
+2010-12-07 Martin Robinson <mrobinson at igalia.com>
+
+ Unreviewed, rolling out r73392.
+ http://trac.webkit.org/changeset/73392
+ https://bugs.webkit.org/show_bug.cgi?id=50489
+
+ This commit caused crashes on the GTK+ bots
+
+ * Api/qwebframe.cpp:
+ (QWebFrame::setUrl):
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::finishedLoading):
+
2010-12-06 Nate Chapin <japhet at chromium.org>
Reviewed by Adam Barth.
diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index 4751cf8..bf6e75a 100644
--- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -619,7 +619,7 @@ void FrameLoaderClientQt::finishedLoading(DocumentLoader* loader)
// However, we only want to do this if makeRepresentation has been called, to
// match the behavior on the Mac.
if (m_hasRepresentation)
- loader->writer()->setEncoding("", false);
+ loader->frameLoader()->writer()->setEncoding("", false);
return;
}
if (m_pluginView->isPluginView())
diff --git a/WebKit/wince/ChangeLog b/WebKit/wince/ChangeLog
index da1cd48..31f5543 100644
--- a/WebKit/wince/ChangeLog
+++ b/WebKit/wince/ChangeLog
@@ -1,3 +1,14 @@
+2010-12-07 Martin Robinson <mrobinson at igalia.com>
+
+ Unreviewed, rolling out r73392.
+ http://trac.webkit.org/changeset/73392
+ https://bugs.webkit.org/show_bug.cgi?id=50489
+
+ This commit caused crashes on the GTK+ bots
+
+ * WebCoreSupport/FrameLoaderClientWinCE.cpp:
+ (WebKit::FrameLoaderClientWinCE::finishedLoading):
+
2010-12-06 Nate Chapin <japhet at chromium.org>
Reviewed by Adam Barth.
diff --git a/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp b/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp
index f16346a..f3643b2 100644
--- a/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp
+++ b/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp
@@ -450,7 +450,8 @@ String FrameLoaderClientWinCE::generatedMIMETypeForURLScheme(const String&) cons
void FrameLoaderClientWinCE::finishedLoading(DocumentLoader* documentLoader)
{
if (!m_pluginView) {
- documentLoader->writer()->setEncoding(m_response.textEncodingName(), false);
+ FrameLoader* loader = documentLoader->frameLoader();
+ loader->writer()->setEncoding(m_response.textEncodingName(), false);
return;
}
diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog
index f4e0615..ae7f240 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,3 +1,14 @@
+2010-12-07 Martin Robinson <mrobinson at igalia.com>
+
+ Unreviewed, rolling out r73392.
+ http://trac.webkit.org/changeset/73392
+ https://bugs.webkit.org/show_bug.cgi?id=50489
+
+ This commit caused crashes on the GTK+ bots
+
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::finishedLoading):
+
2010-12-06 Nate Chapin <japhet at chromium.org>
Reviewed by Adam Barth.
diff --git a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
index 9af992c..8748a98 100644
--- a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
@@ -434,7 +434,8 @@ void FrameLoaderClientWx::finishedLoading(DocumentLoader* loader)
{
if (!m_pluginView) {
if (m_firstData) {
- loader->writer()->setEncoding(m_response.textEncodingName(), false);
+ FrameLoader* fl = loader->frameLoader();
+ fl->writer()->setEncoding(m_response.textEncodingName(), false);
m_firstData = false;
}
} else {
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list