[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e
darin at apple.com
darin at apple.com
Fri Jan 21 14:55:55 UTC 2011
The following commit has been merged in the debian/experimental branch:
commit c9bf05d8386b2a14301a37a793e9134185b1ce68
Author: darin at apple.com <darin at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Jan 4 23:28:59 2011 +0000
2011-01-04 Darin Adler <darin at apple.com>
Reviewed by Brady Eidson.
Add back/forward encoding and decoding to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=51901
* WebCore.exp.in: Export functions used in WebKit2.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::encodeBackForwardTree): Use references instead of pointers.
(WebCore::HistoryItem::encodeBackForwardTreeNode): Ditto.
(WebCore::HistoryItem::decodeBackForwardTree): Ditto.
* history/HistoryItem.h: Ditto.
* platform/network/FormData.cpp:
(WebCore::encode): Ditto.
(WebCore::decode): Ditto.
(WebCore::FormData::encodeForBackForward): Ditto.
(WebCore::FormData::decodeForBackForward): Ditto.
* platform/network/FormData.h: Ditto.
2011-01-04 Darin Adler <darin at apple.com>
Reviewed by Brady Eidson.
Add back/forward encoding and decoding to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=51901
* GNUmakefile.am: Added new source files.
* WebKit2.pro: Ditto.
* WebKit2.xcodeproj/project.pbxproj: Ditto.
* win/WebKit2.vcproj: Ditto.
* WebProcess/WebPage/DecoderAdapter.cpp: Added.
* WebProcess/WebPage/DecoderAdapter.h: Added.
* WebProcess/WebPage/EncoderAdapter.cpp: Added.
* WebProcess/WebPage/EncoderAdapter.h: Added.
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::updateBackForwardItem): Added code to encode the back/forward
tree and send it along. The code to decode needs to wait on Brady's
current project.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75020 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c40a420..243ad59 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,24 @@
+2011-01-04 Darin Adler <darin at apple.com>
+
+ Reviewed by Brady Eidson.
+
+ Add back/forward encoding and decoding to WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=51901
+
+ * WebCore.exp.in: Export functions used in WebKit2.
+
+ * history/HistoryItem.cpp:
+ (WebCore::HistoryItem::encodeBackForwardTree): Use references instead of pointers.
+ (WebCore::HistoryItem::encodeBackForwardTreeNode): Ditto.
+ (WebCore::HistoryItem::decodeBackForwardTree): Ditto.
+ * history/HistoryItem.h: Ditto.
+ * platform/network/FormData.cpp:
+ (WebCore::encode): Ditto.
+ (WebCore::decode): Ditto.
+ (WebCore::FormData::encodeForBackForward): Ditto.
+ (WebCore::FormData::decodeForBackForward): Ditto.
+ * platform/network/FormData.h: Ditto.
+
2011-01-04 Xiaomei Ji <xji at chromium.org>
Reviewed by Dan Bernstein.
diff --git a/WebCore/WebCore.exp.in b/WebCore/WebCore.exp.in
index 593bc60..d3abe88 100644
--- a/WebCore/WebCore.exp.in
+++ b/WebCore/WebCore.exp.in
@@ -193,6 +193,7 @@ __ZN7WebCore11HistoryItem18recordInitialVisitEv
__ZN7WebCore11HistoryItem18setLastVisitedTimeEd
__ZN7WebCore11HistoryItem20setOriginalURLStringERKN3WTF6StringE
__ZN7WebCore11HistoryItem20setTransientPropertyERKN3WTF6StringEP11objc_object
+__ZN7WebCore11HistoryItem21decodeBackForwardTreeERKN3WTF6StringES4_S4_RNS1_7DecoderE
__ZN7WebCore11HistoryItem22mergeAutoCompleteHintsEPS0_
__ZN7WebCore11HistoryItem6setURLERKNS_4KURLE
__ZN7WebCore11HistoryItem7visitedERKN3WTF6StringEdNS_18VisitCountBehaviorE
@@ -340,8 +341,8 @@ __ZN7WebCore14SecurityOrigin28createFromDatabaseIdentifierERKN3WTF6StringE
__ZN7WebCore14SecurityOrigin29addOriginAccessWhitelistEntryERKS0_RKN3WTF6StringES6_b
__ZN7WebCore14SecurityOrigin32removeOriginAccessWhitelistEntryERKS0_RKN3WTF6StringES6_b
__ZN7WebCore14SecurityOrigin40setDomainRelaxationForbiddenForURLSchemeEbRKN3WTF6StringE
-__ZN7WebCore14SecurityOrigin6createERKNS_4KURLEi
__ZN7WebCore14SecurityOrigin6createERKN3WTF6StringES4_i
+__ZN7WebCore14SecurityOrigin6createERKNS_4KURLEi
__ZN7WebCore15ArchiveResource6createEN3WTF10PassRefPtrINS_12SharedBufferEEERKNS_4KURLERKNS1_6StringESA_SA_RKNS_16ResourceResponseE
__ZN7WebCore15DOMWrapperWorld15unregisterWorldEv
__ZN7WebCore15DOMWrapperWorldD1Ev
@@ -966,6 +967,7 @@ __ZNK7WebCore11HistoryItem14alternateTitleEv
__ZNK7WebCore11HistoryItem15lastVisitedTimeEv
__ZNK7WebCore11HistoryItem17originalURLStringEv
__ZNK7WebCore11HistoryItem20getTransientPropertyERKN3WTF6StringE
+__ZNK7WebCore11HistoryItem21encodeBackForwardTreeERN3WTF7EncoderE
__ZNK7WebCore11HistoryItem3urlEv
__ZNK7WebCore11HistoryItem4copyEv
__ZNK7WebCore11HistoryItem4iconEv
diff --git a/WebCore/history/HistoryItem.cpp b/WebCore/history/HistoryItem.cpp
index bbe6a5d..0995913 100644
--- a/WebCore/history/HistoryItem.cpp
+++ b/WebCore/history/HistoryItem.cpp
@@ -625,59 +625,59 @@ void HistoryItem::setRedirectURLs(PassOwnPtr<Vector<String> > redirectURLs)
m_redirectURLs = redirectURLs;
}
-void HistoryItem::encodeBackForwardTree(Encoder* encoder) const
+void HistoryItem::encodeBackForwardTree(Encoder& encoder) const
{
- encoder->encodeUInt32(backForwardTreeEncodingVersion);
+ encoder.encodeUInt32(backForwardTreeEncodingVersion);
encodeBackForwardTreeNode(encoder);
}
-void HistoryItem::encodeBackForwardTreeNode(Encoder* encoder) const
+void HistoryItem::encodeBackForwardTreeNode(Encoder& encoder) const
{
size_t size = m_children.size();
- encoder->encodeUInt64(size);
+ encoder.encodeUInt64(size);
for (size_t i = 0; i < size; ++i) {
const HistoryItem& child = *m_children[i];
- encoder->encodeString(child.m_originalURLString);
+ encoder.encodeString(child.m_originalURLString);
- encoder->encodeString(child.m_urlString);
+ encoder.encodeString(child.m_urlString);
child.encodeBackForwardTreeNode(encoder);
}
- encoder->encodeInt64(m_documentSequenceNumber);
+ encoder.encodeInt64(m_documentSequenceNumber);
size = m_documentState.size();
- encoder->encodeUInt64(size);
+ encoder.encodeUInt64(size);
for (size_t i = 0; i < size; ++i)
- encoder->encodeString(m_documentState[i]);
+ encoder.encodeString(m_documentState[i]);
- encoder->encodeString(m_formContentType);
+ encoder.encodeString(m_formContentType);
- encoder->encodeBool(m_formData);
+ encoder.encodeBool(m_formData);
if (m_formData)
m_formData->encodeForBackForward(encoder);
- encoder->encodeInt64(m_itemSequenceNumber);
+ encoder.encodeInt64(m_itemSequenceNumber);
- encoder->encodeString(m_originalURLString);
+ encoder.encodeString(m_originalURLString);
- encoder->encodeString(m_referrer);
+ encoder.encodeString(m_referrer);
- encoder->encodeInt32(m_scrollPoint.x());
- encoder->encodeInt32(m_scrollPoint.y());
+ encoder.encodeInt32(m_scrollPoint.x());
+ encoder.encodeInt32(m_scrollPoint.y());
- encoder->encodeBool(m_stateObject);
+ encoder.encodeBool(m_stateObject);
if (m_stateObject) {
#if !USE(V8)
- encoder->encodeBytes(m_stateObject->data().data(), m_stateObject->data().size());
+ encoder.encodeBytes(m_stateObject->data().data(), m_stateObject->data().size());
#else
- encoder->encodeString(m_stateObject->toWireString());
+ encoder.encodeString(m_stateObject->toWireString());
#endif
}
- encoder->encodeString(m_target);
+ encoder.encodeString(m_target);
}
struct DecodeRecursionStackElement {
@@ -693,13 +693,13 @@ struct DecodeRecursionStackElement {
}
};
-PassRefPtr<HistoryItem> HistoryItem::decodeBackForwardTree(const String& topURLString, const String& topTitle, const String& topOriginalURLString, Decoder* decoder)
+PassRefPtr<HistoryItem> HistoryItem::decodeBackForwardTree(const String& topURLString, const String& topTitle, const String& topOriginalURLString, Decoder& decoder)
{
// Since the data stream is not trusted, the decode has to be non-recursive.
// We don't want bad data to cause a stack overflow.
uint32_t version;
- if (!decoder->decodeUInt32(version))
+ if (!decoder.decodeUInt32(version))
return 0;
if (version != backForwardTreeEncodingVersion)
return 0;
@@ -718,15 +718,15 @@ recurse:
title = String();
uint64_t size;
- if (!decoder->decodeUInt64(size))
+ if (!decoder.decodeUInt64(size))
return 0;
size_t i;
RefPtr<HistoryItem> child;
for (i = 0; i < size; ++i) {
- if (!decoder->decodeString(originalURLString))
+ if (!decoder.decodeString(originalURLString))
return 0;
- if (!decoder->decodeString(urlString))
+ if (!decoder.decodeString(urlString))
return 0;
recursionStack.append(DecodeRecursionStackElement(node.release(), i, size));
@@ -736,23 +736,23 @@ resume:
node->m_children.append(child.release());
}
- if (!decoder->decodeInt64(node->m_documentSequenceNumber))
+ if (!decoder.decodeInt64(node->m_documentSequenceNumber))
return 0;
- if (!decoder->decodeUInt64(size))
+ if (!decoder.decodeUInt64(size))
return 0;
for (i = 0; i < size; ++i) {
String state;
- if (!decoder->decodeString(state))
+ if (!decoder.decodeString(state))
return 0;
node->m_documentState.append(state);
}
- if (!decoder->decodeString(node->m_formContentType))
+ if (!decoder.decodeString(node->m_formContentType))
return 0;
bool hasFormData;
- if (!decoder->decodeBool(hasFormData))
+ if (!decoder.decodeBool(hasFormData))
return 0;
if (hasFormData) {
node->m_formData = FormData::decodeForBackForward(decoder);
@@ -760,41 +760,41 @@ resume:
return 0;
}
- if (!decoder->decodeInt64(node->m_itemSequenceNumber))
+ if (!decoder.decodeInt64(node->m_itemSequenceNumber))
return 0;
- if (!decoder->decodeString(node->m_originalURLString))
+ if (!decoder.decodeString(node->m_originalURLString))
return 0;
- if (!decoder->decodeString(node->m_referrer))
+ if (!decoder.decodeString(node->m_referrer))
return 0;
int32_t x;
- if (!decoder->decodeInt32(x))
+ if (!decoder.decodeInt32(x))
return 0;
int32_t y;
- if (!decoder->decodeInt32(y))
+ if (!decoder.decodeInt32(y))
return 0;
node->m_scrollPoint = IntPoint(x, y);
bool hasStateObject;
- if (!decoder->decodeBool(hasStateObject))
+ if (!decoder.decodeBool(hasStateObject))
return 0;
if (hasStateObject) {
#if !USE(V8)
Vector<uint8_t> bytes;
- if (!decoder->decodeBytes(bytes))
+ if (!decoder.decodeBytes(bytes))
return 0;
node->m_stateObject = SerializedScriptValue::adopt(bytes);
#else
String string;
- if (!decoder->decodeString(string))
+ if (!decoder.decodeString(string))
return 0;
node->m_stateObject = SerializedScriptValue::createFromWire(string);
#endif
}
- if (!decoder->decodeString(node->m_target))
+ if (!decoder.decodeString(node->m_target))
return 0;
// Simulate recursion with our own stack.
diff --git a/WebCore/history/HistoryItem.h b/WebCore/history/HistoryItem.h
index cd867f7..19b33ad 100644
--- a/WebCore/history/HistoryItem.h
+++ b/WebCore/history/HistoryItem.h
@@ -88,8 +88,8 @@ public:
PassRefPtr<HistoryItem> copy() const;
- void encodeBackForwardTree(Encoder*) const;
- static PassRefPtr<HistoryItem> decodeBackForwardTree(const String& urlString, const String& title, const String& originalURLString, Decoder*);
+ void encodeBackForwardTree(Encoder&) const;
+ static PassRefPtr<HistoryItem> decodeBackForwardTree(const String& urlString, const String& title, const String& originalURLString, Decoder&);
const String& originalURLString() const;
const String& urlString() const;
@@ -226,8 +226,8 @@ private:
HistoryItem* findTargetItem();
- void encodeBackForwardTreeNode(Encoder*) const;
- static PassRefPtr<HistoryItem> decodeBackForwardTreeNode(const String& urlString, const String& title, const String& originalURLString, Decoder*);
+ void encodeBackForwardTreeNode(Encoder&) const;
+ static PassRefPtr<HistoryItem> decodeBackForwardTreeNode(const String& urlString, const String& title, const String& originalURLString, Decoder&);
/* When adding new member variables to this class, please notify the Qt team.
* qt/HistoryItemQt.cpp contains code to serialize history items.
diff --git a/WebCore/platform/network/FormData.cpp b/WebCore/platform/network/FormData.cpp
index c61c501..16f98ad 100644
--- a/WebCore/platform/network/FormData.cpp
+++ b/WebCore/platform/network/FormData.cpp
@@ -329,32 +329,32 @@ void FormData::removeGeneratedFilesIfNeeded()
m_hasGeneratedFiles = false;
}
-static void encode(Encoder* encoder, const FormDataElement& element)
+static void encode(Encoder& encoder, const FormDataElement& element)
{
- encoder->encodeUInt32(element.m_type);
+ encoder.encodeUInt32(element.m_type);
switch (element.m_type) {
case FormDataElement::data:
- encoder->encodeBytes(reinterpret_cast<const uint8_t*>(element.m_data.data()), element.m_data.size());
+ encoder.encodeBytes(reinterpret_cast<const uint8_t*>(element.m_data.data()), element.m_data.size());
return;
case FormDataElement::encodedFile:
- encoder->encodeString(element.m_filename);
- encoder->encodeBool(element.m_shouldGenerateFile);
+ encoder.encodeString(element.m_filename);
+ encoder.encodeBool(element.m_shouldGenerateFile);
#if ENABLE(BLOB)
- encoder->encodeInt64(element.m_fileStart);
- encoder->encodeInt64(element.m_fileLength);
- encoder->encodeDouble(element.m_expectedFileModificationTime);
+ encoder.encodeInt64(element.m_fileStart);
+ encoder.encodeInt64(element.m_fileLength);
+ encoder.encodeDouble(element.m_expectedFileModificationTime);
#else
- encoder->encodeInt64(0);
- encoder->encodeInt64(0);
- encoder->encodeDouble(0);
+ encoder.encodeInt64(0);
+ encoder.encodeInt64(0);
+ encoder.encodeDouble(0);
#endif
return;
#if ENABLE(BLOB)
case FormDataElement::encodedBlob:
- encoder->encodeString(element.m_blobURL.string());
+ encoder.encodeString(element.m_blobURL.string());
return;
#endif
}
@@ -362,7 +362,7 @@ static void encode(Encoder* encoder, const FormDataElement& element)
ASSERT_NOT_REACHED();
}
-static bool decode(Decoder* decoder, FormDataElement& element)
+static bool decode(Decoder& decoder, FormDataElement& element)
{
uint32_t type = element.m_type;
@@ -370,7 +370,7 @@ static bool decode(Decoder* decoder, FormDataElement& element)
case FormDataElement::data: {
element.m_type = FormDataElement::data;
Vector<uint8_t> data;
- if (!decoder->decodeBytes(data))
+ if (!decoder.decodeBytes(data))
return false;
size_t size = data.size();
element.m_data.resize(size);
@@ -380,22 +380,22 @@ static bool decode(Decoder* decoder, FormDataElement& element)
case FormDataElement::encodedFile: {
element.m_type = FormDataElement::encodedFile;
- if (!decoder->decodeString(element.m_filename))
+ if (!decoder.decodeString(element.m_filename))
return false;
- if (!decoder->decodeBool(element.m_shouldGenerateFile))
+ if (!decoder.decodeBool(element.m_shouldGenerateFile))
return false;
int64_t fileStart;
- if (!decoder->decodeInt64(fileStart))
+ if (!decoder.decodeInt64(fileStart))
return false;
if (fileStart < 0)
return false;
int64_t fileLength;
- if (!decoder->decodeInt64(fileLength))
+ if (!decoder.decodeInt64(fileLength))
return false;
if (fileLength < fileStart)
return false;
double expectedFileModificationTime;
- if (!decoder->decodeDouble(expectedFileModificationTime))
+ if (!decoder.decodeDouble(expectedFileModificationTime))
return false;
#if ENABLE(BLOB)
element.m_fileStart = fileStart;
@@ -409,7 +409,7 @@ static bool decode(Decoder* decoder, FormDataElement& element)
case FormDataElement::encodedBlob:
element.m_type = FormDataElement::encodedBlob;
String blobURLString;
- if (!decoder->decodeString(blobURLString))
+ if (!decoder.decodeString(blobURLString))
return false;
element.m_blobURL = KURL(KURL(), blobURLString);
return true;
@@ -419,38 +419,38 @@ static bool decode(Decoder* decoder, FormDataElement& element)
return false;
}
-void FormData::encodeForBackForward(Encoder* encoder) const
+void FormData::encodeForBackForward(Encoder& encoder) const
{
- encoder->encodeBool(m_alwaysStream);
+ encoder.encodeBool(m_alwaysStream);
- encoder->encodeBytes(reinterpret_cast<const uint8_t*>(m_boundary.data()), m_boundary.size());
+ encoder.encodeBytes(reinterpret_cast<const uint8_t*>(m_boundary.data()), m_boundary.size());
size_t size = m_elements.size();
- encoder->encodeUInt64(size);
+ encoder.encodeUInt64(size);
for (size_t i = 0; i < size; ++i)
encode(encoder, m_elements[i]);
- encoder->encodeBool(m_hasGeneratedFiles);
+ encoder.encodeBool(m_hasGeneratedFiles);
- encoder->encodeBool(m_identifier);
+ encoder.encodeBool(m_identifier);
}
-PassRefPtr<FormData> FormData::decodeForBackForward(Decoder* decoder)
+PassRefPtr<FormData> FormData::decodeForBackForward(Decoder& decoder)
{
RefPtr<FormData> data = FormData::create();
- if (!decoder->decodeBool(data->m_alwaysStream))
+ if (!decoder.decodeBool(data->m_alwaysStream))
return 0;
Vector<uint8_t> boundary;
- if (!decoder->decodeBytes(boundary))
+ if (!decoder.decodeBytes(boundary))
return 0;
size_t size = boundary.size();
data->m_boundary.resize(size);
memcpy(data->m_boundary.data(), boundary.data(), size);
uint64_t elementsSize;
- if (!decoder->decodeUInt64(elementsSize))
+ if (!decoder.decodeUInt64(elementsSize))
return 0;
for (size_t i = 0; i < elementsSize; ++i) {
FormDataElement element;
@@ -459,10 +459,10 @@ PassRefPtr<FormData> FormData::decodeForBackForward(Decoder* decoder)
data->m_elements.append(element);
}
- if (!decoder->decodeBool(data->m_hasGeneratedFiles))
+ if (!decoder.decodeBool(data->m_hasGeneratedFiles))
return 0;
- if (!decoder->decodeInt64(data->m_identifier))
+ if (!decoder.decodeInt64(data->m_identifier))
return 0;
return data.release();
diff --git a/WebCore/platform/network/FormData.h b/WebCore/platform/network/FormData.h
index 3b29ba5..85c932a 100644
--- a/WebCore/platform/network/FormData.h
+++ b/WebCore/platform/network/FormData.h
@@ -101,8 +101,8 @@ public:
PassRefPtr<FormData> deepCopy() const;
~FormData();
- void encodeForBackForward(Encoder*) const;
- static PassRefPtr<FormData> decodeForBackForward(Decoder*);
+ void encodeForBackForward(Encoder&) const;
+ static PassRefPtr<FormData> decodeForBackForward(Decoder&);
void appendData(const void* data, size_t);
void appendFile(const String& filePath, bool shouldGenerateFile = false);
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index d8beb00..fedee38 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,25 @@
+2011-01-04 Darin Adler <darin at apple.com>
+
+ Reviewed by Brady Eidson.
+
+ Add back/forward encoding and decoding to WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=51901
+
+ * GNUmakefile.am: Added new source files.
+ * WebKit2.pro: Ditto.
+ * WebKit2.xcodeproj/project.pbxproj: Ditto.
+ * win/WebKit2.vcproj: Ditto.
+
+ * WebProcess/WebPage/DecoderAdapter.cpp: Added.
+ * WebProcess/WebPage/DecoderAdapter.h: Added.
+ * WebProcess/WebPage/EncoderAdapter.cpp: Added.
+ * WebProcess/WebPage/EncoderAdapter.h: Added.
+
+ * WebProcess/WebPage/WebBackForwardListProxy.cpp:
+ (WebKit::updateBackForwardItem): Added code to encode the back/forward
+ tree and send it along. The code to decode needs to wait on Brady's
+ current project.
+
2011-01-04 Anders Carlsson <andersca at apple.com>
Reviewed by Sam Weinig.
diff --git a/WebKit2/GNUmakefile.am b/WebKit2/GNUmakefile.am
index 11f7521..172f8d1 100644
--- a/WebKit2/GNUmakefile.am
+++ b/WebKit2/GNUmakefile.am
@@ -400,8 +400,12 @@ libWebKit2_la_SOURCES = \
WebKit2/WebProcess/WebKitMain.cpp \
WebKit2/WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp \
WebKit2/WebProcess/WebPage/ChunkedUpdateDrawingArea.h \
+ WebKit2/WebProcess/WebPage/DecoderAdapter.cpp \
+ WebKit2/WebProcess/WebPage/DecoderAdapter.h \
WebKit2/WebProcess/WebPage/DrawingArea.cpp \
WebKit2/WebProcess/WebPage/DrawingArea.h \
+ WebKit2/WebProcess/WebPage/EncoderAdapter.cpp \
+ WebKit2/WebProcess/WebPage/EncoderAdapter.h \
WebKit2/WebProcess/WebPage/FindController.cpp \
WebKit2/WebProcess/WebPage/FindController.h \
WebKit2/WebProcess/WebPage/FindPageOverlay.cpp \
diff --git a/WebKit2/WebKit2.pro b/WebKit2/WebKit2.pro
index 261ece7..b54da9d 100644
--- a/WebKit2/WebKit2.pro
+++ b/WebKit2/WebKit2.pro
@@ -632,7 +632,9 @@ SOURCES += \
WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp \
WebProcess/WebCoreSupport/qt/WebPopupMenuQt.cpp \
WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp \
+ WebProcess/WebPage/DecoderAdapter.cpp \
WebProcess/WebPage/DrawingArea.cpp \
+ WebProcess/WebPage/EncoderAdapter.cpp \
WebProcess/WebPage/FindController.cpp \
WebProcess/WebPage/PageOverlay.cpp \
WebProcess/WebPage/TiledDrawingArea.cpp \
diff --git a/WebKit2/WebKit2.xcodeproj/project.pbxproj b/WebKit2/WebKit2.xcodeproj/project.pbxproj
index 3dc0c72..7418f9c 100644
--- a/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -272,6 +272,10 @@
935EEBA4127761D6003322B8 /* InjectedBundleBackForwardListItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 935EEB921277615D003322B8 /* InjectedBundleBackForwardListItem.h */; };
9391F2CA121B679A00EBF7E8 /* WebFrameNetworkingContext.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9391F284121B38F500EBF7E8 /* WebFrameNetworkingContext.mm */; };
9391F2CB121B67AD00EBF7E8 /* WebFrameNetworkingContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 9391F283121B38F500EBF7E8 /* WebFrameNetworkingContext.h */; };
+ 93FC67BD12D3CCF200A60610 /* DecoderAdapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93FC679D12D3CC7400A60610 /* DecoderAdapter.cpp */; };
+ 93FC67BE12D3CCF200A60610 /* DecoderAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 93FC679E12D3CC7400A60610 /* DecoderAdapter.h */; };
+ 93FC67BF12D3CCF200A60610 /* EncoderAdapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93FC679F12D3CC7400A60610 /* EncoderAdapter.cpp */; };
+ 93FC67C012D3CCF200A60610 /* EncoderAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 93FC67A012D3CC7400A60610 /* EncoderAdapter.h */; };
BC0092F7115837A300E0AE2A /* RunLoopMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC0092F5115837A300E0AE2A /* RunLoopMac.mm */; };
BC0092F8115837A300E0AE2A /* WorkQueueMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0092F6115837A300E0AE2A /* WorkQueueMac.cpp */; };
BC032D7510F4378D0058C15A /* WebChromeClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC032D6010F4378D0058C15A /* WebChromeClient.h */; };
@@ -949,6 +953,10 @@
935EEB981277616D003322B8 /* WKBundleBackForwardListItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleBackForwardListItem.h; sourceTree = "<group>"; };
9391F283121B38F500EBF7E8 /* WebFrameNetworkingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebFrameNetworkingContext.h; sourceTree = "<group>"; };
9391F284121B38F500EBF7E8 /* WebFrameNetworkingContext.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebFrameNetworkingContext.mm; sourceTree = "<group>"; };
+ 93FC679D12D3CC7400A60610 /* DecoderAdapter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DecoderAdapter.cpp; sourceTree = "<group>"; };
+ 93FC679E12D3CC7400A60610 /* DecoderAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DecoderAdapter.h; sourceTree = "<group>"; };
+ 93FC679F12D3CC7400A60610 /* EncoderAdapter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EncoderAdapter.cpp; sourceTree = "<group>"; };
+ 93FC67A012D3CC7400A60610 /* EncoderAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EncoderAdapter.h; sourceTree = "<group>"; };
A72D5D7F1236CBA800A88B15 /* WebSerializedScriptValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSerializedScriptValue.h; sourceTree = "<group>"; };
BC0092F5115837A300E0AE2A /* RunLoopMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RunLoopMac.mm; sourceTree = "<group>"; };
BC0092F6115837A300E0AE2A /* WorkQueueMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkQueueMac.cpp; sourceTree = "<group>"; };
@@ -1885,8 +1893,12 @@
BC963D6C113DD19500574BE2 /* mac */,
BC5F7BB21182376C0052C02C /* ChunkedUpdateDrawingArea.cpp */,
BC5F7BB31182376C0052C02C /* ChunkedUpdateDrawingArea.h */,
+ 93FC679D12D3CC7400A60610 /* DecoderAdapter.cpp */,
+ 93FC679E12D3CC7400A60610 /* DecoderAdapter.h */,
BC8452A51162C80900CAB9B5 /* DrawingArea.cpp */,
BC8452A61162C80900CAB9B5 /* DrawingArea.h */,
+ 93FC679F12D3CC7400A60610 /* EncoderAdapter.cpp */,
+ 93FC67A012D3CC7400A60610 /* EncoderAdapter.h */,
1A90C1F31264FD71003E44D4 /* FindController.cpp */,
1A90C1F21264FD71003E44D4 /* FindController.h */,
0F5265B111DD37680006D33C /* LayerBackedDrawingArea.cpp */,
@@ -2824,6 +2836,8 @@
BCCF6ACA12C91F59008F9C35 /* WKImageCG.h in Headers */,
BCAC111F12C92C1F00B08EEE /* WebDatabaseManagerProxyClient.h in Headers */,
BCCF6B2512C93E7A008F9C35 /* ImageOptions.h in Headers */,
+ 93FC67BE12D3CCF200A60610 /* DecoderAdapter.h in Headers */,
+ 93FC67C012D3CCF200A60610 /* EncoderAdapter.h in Headers */,
1A5E4DA412D3BD3D0099A2BB /* TextCheckerState.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -3254,6 +3268,8 @@
BCCF6AC212C91F34008F9C35 /* WKImage.cpp in Sources */,
BCCF6AC912C91F59008F9C35 /* WKImageCG.cpp in Sources */,
BCAC112012C92C1F00B08EEE /* WebDatabaseManagerProxyClient.cpp in Sources */,
+ 93FC67BD12D3CCF200A60610 /* DecoderAdapter.cpp in Sources */,
+ 93FC67BF12D3CCF200A60610 /* EncoderAdapter.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/WebKit2/WebProcess/WebPage/DecoderAdapter.cpp b/WebKit2/WebProcess/WebPage/DecoderAdapter.cpp
new file mode 100644
index 0000000..e5de52f
--- /dev/null
+++ b/WebKit2/WebProcess/WebPage/DecoderAdapter.cpp
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2011 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. AND ITS CONTRIBUTORS ``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 ITS 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 "DecoderAdapter.h"
+
+#include "WebCoreArgumentCoders.h"
+
+namespace WebKit {
+
+DecoderAdapter::DecoderAdapter(const uint8_t* buffer, size_t bufferSize)
+ : m_decoder(buffer, bufferSize)
+{
+}
+
+bool DecoderAdapter::decodeBytes(Vector<uint8_t>& bytes)
+{
+ return m_decoder.decodeBytes(bytes);
+}
+
+bool DecoderAdapter::decodeBool(bool& value)
+{
+ return m_decoder.decodeBool(value);
+}
+
+bool DecoderAdapter::decodeUInt32(uint32_t& value)
+{
+ return m_decoder.decodeUInt32(value);
+}
+
+bool DecoderAdapter::decodeUInt64(uint64_t& value)
+{
+ return m_decoder.decodeUInt64(value);
+}
+
+bool DecoderAdapter::decodeInt32(int32_t& value)
+{
+ return m_decoder.decodeInt32(value);
+}
+
+bool DecoderAdapter::decodeInt64(int64_t& value)
+{
+ return m_decoder.decodeInt64(value);
+}
+
+bool DecoderAdapter::decodeFloat(float& value)
+{
+ return m_decoder.decodeFloat(value);
+}
+
+bool DecoderAdapter::decodeDouble(double& value)
+{
+ return m_decoder.decodeDouble(value);
+}
+
+bool DecoderAdapter::decodeString(String& value)
+{
+ return m_decoder.decode(value);
+}
+
+}
diff --git a/WebKit2/WebProcess/WebPage/DecoderAdapter.h b/WebKit2/WebProcess/WebPage/DecoderAdapter.h
new file mode 100644
index 0000000..bd34ea8
--- /dev/null
+++ b/WebKit2/WebProcess/WebPage/DecoderAdapter.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2011 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. AND ITS CONTRIBUTORS ``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 ITS 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 DecoderAdapter_h
+#define DecoderAdapter_h
+
+#include "ArgumentDecoder.h"
+#include <wtf/Decoder.h>
+#include <wtf/Forward.h>
+
+namespace WebKit {
+
+class DecoderAdapter : public Decoder {
+public:
+ DecoderAdapter(const uint8_t* buffer, size_t bufferSize);
+
+private:
+ virtual bool decodeBytes(Vector<uint8_t>&);
+ virtual bool decodeBool(bool&);
+ virtual bool decodeUInt32(uint32_t&);
+ virtual bool decodeUInt64(uint64_t&);
+ virtual bool decodeInt32(int32_t&);
+ virtual bool decodeInt64(int64_t&);
+ virtual bool decodeFloat(float&);
+ virtual bool decodeDouble(double&);
+ virtual bool decodeString(String&);
+
+ CoreIPC::ArgumentDecoder m_decoder;
+};
+
+} // namespace WebKit
+
+#endif // DecoderAdapter_h
diff --git a/WebKit2/WebProcess/WebPage/EncoderAdapter.cpp b/WebKit2/WebProcess/WebPage/EncoderAdapter.cpp
new file mode 100644
index 0000000..9ccca6a
--- /dev/null
+++ b/WebKit2/WebProcess/WebPage/EncoderAdapter.cpp
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2011 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. AND ITS CONTRIBUTORS ``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 ITS 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 "EncoderAdapter.h"
+
+#include "WebCoreArgumentCoders.h"
+
+namespace WebKit {
+
+EncoderAdapter::EncoderAdapter()
+ : m_encoder(CoreIPC::ArgumentEncoder::create(0))
+{
+}
+
+Vector<uint8_t> EncoderAdapter::data() const
+{
+ Vector<uint8_t> vector;
+ size_t size = m_encoder->bufferSize();
+ vector.reserveCapacity(size);
+ vector.append(m_encoder->buffer(), size);
+ return vector;
+}
+
+void EncoderAdapter::encodeBytes(const uint8_t* bytes, size_t size)
+{
+ m_encoder->encodeBytes(bytes, size);
+}
+
+void EncoderAdapter::encodeBool(bool value)
+{
+ m_encoder->encodeBool(value);
+}
+
+void EncoderAdapter::encodeUInt32(uint32_t value)
+{
+ m_encoder->encodeUInt32(value);
+}
+
+void EncoderAdapter::encodeUInt64(uint64_t value)
+{
+ m_encoder->encodeUInt64(value);
+}
+
+void EncoderAdapter::encodeInt32(int32_t value)
+{
+ m_encoder->encodeInt32(value);
+}
+
+void EncoderAdapter::encodeInt64(int64_t value)
+{
+ m_encoder->encodeInt64(value);
+}
+
+void EncoderAdapter::encodeFloat(float value)
+{
+ m_encoder->encodeFloat(value);
+}
+
+void EncoderAdapter::encodeDouble(double value)
+{
+ m_encoder->encodeDouble(value);
+}
+
+void EncoderAdapter::encodeString(const String& value)
+{
+ m_encoder->encode(value);
+}
+
+}
diff --git a/WebKit2/WebProcess/WebPage/EncoderAdapter.h b/WebKit2/WebProcess/WebPage/EncoderAdapter.h
new file mode 100644
index 0000000..ba4914a
--- /dev/null
+++ b/WebKit2/WebProcess/WebPage/EncoderAdapter.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2011 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. AND ITS CONTRIBUTORS ``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 ITS 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 EncoderAdapter_h
+#define EncoderAdapter_h
+
+#include <wtf/Encoder.h>
+#include <wtf/Forward.h>
+#include <wtf/Vector.h>
+
+namespace CoreIPC {
+ class ArgumentEncoder;
+}
+
+namespace WebKit {
+
+class EncoderAdapter : public Encoder {
+public:
+ EncoderAdapter();
+
+ Vector<uint8_t> data() const;
+
+private:
+ virtual void encodeBytes(const uint8_t*, size_t);
+ virtual void encodeBool(bool);
+ virtual void encodeUInt32(uint32_t);
+ virtual void encodeUInt64(uint64_t);
+ virtual void encodeInt32(int32_t);
+ virtual void encodeInt64(int64_t);
+ virtual void encodeFloat(float);
+ virtual void encodeDouble(double);
+ virtual void encodeString(const String&);
+
+ OwnPtr<CoreIPC::ArgumentEncoder> m_encoder;
+};
+
+} // namespace WebKit
+
+#endif // EncoderAdapter_h
diff --git a/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp b/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
index 50ff16c..2dcd687 100644
--- a/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
+++ b/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
@@ -25,6 +25,7 @@
#include "WebBackForwardListProxy.h"
+#include "EncoderAdapter.h"
#include "WebCoreArgumentCoders.h"
#include "WebPage.h"
#include "WebPageProxyMessages.h"
@@ -87,8 +88,12 @@ static void updateBackForwardItem(HistoryItem* item)
const String& urlString = item->urlString();
const String& title = item->title();
- // FIXME: Pass the encoded backForwardData to the message here.
- WebProcess::shared().connection()->send(Messages::WebProcessProxy::AddBackForwardItem(itemID, originalURLString, urlString, title, Vector<uint8_t>()), 0);
+ // FIXME: We only want to do this work for top level back/forward items.
+ // The best way to do that is probably to arrange for this entire function to only be called by top leve back/forward items.
+ EncoderAdapter encoder;
+ item->encodeBackForwardTree(encoder);
+
+ WebProcess::shared().connection()->send(Messages::WebProcessProxy::AddBackForwardItem(itemID, originalURLString, urlString, title, encoder.data()), 0);
}
static void WK2NotifyHistoryItemChanged(HistoryItem* item)
diff --git a/WebKit2/win/WebKit2.vcproj b/WebKit2/win/WebKit2.vcproj
index ef9d87b..8325eb9 100755
--- a/WebKit2/win/WebKit2.vcproj
+++ b/WebKit2/win/WebKit2.vcproj
@@ -1366,6 +1366,14 @@
>
</File>
<File
+ RelativePath="..\WebProcess\WebPage\DecoderAdapter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebProcess\WebPage\DecoderAdapter.h"
+ >
+ </File>
+ <File
RelativePath="..\WebProcess\WebPage\DrawingArea.cpp"
>
</File>
@@ -1374,6 +1382,14 @@
>
</File>
<File
+ RelativePath="..\WebProcess\WebPage\EncoderAdapter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebProcess\WebPage\EncoderAdapter.h"
+ >
+ </File>
+ <File
RelativePath="..\WebProcess\WebPage\FindController.cpp"
>
</File>
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list