[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
weinig at apple.com
weinig at apple.com
Wed Dec 22 13:31:15 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit c368c8862d9da4aa1914eaa9adf25279f95eb6c4
Author: weinig at apple.com <weinig at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Sep 18 00:20:23 2010 +0000
Make certificate data available to the WKFrameRef after it is committed
Part of <rdar://problem/8350189>
https://bugs.webkit.org/show_bug.cgi?id=45998
Reviewed by Anders Carlsson.
* Shared/APIObject.h:
Add new type.
* Shared/WebCertificateInfo.h: Added.
(WebKit::WebCertificateInfo::create):
(WebKit::WebCertificateInfo::platformCertificateInfo):
(WebKit::WebCertificateInfo::WebCertificateInfo):
(WebKit::WebCertificateInfo::type):
Add API type for vending.
* Shared/mac/PlatformCertificateInfo.h: Added.
(WebKit::PlatformCertificateInfo::peerCertificates):
* Shared/mac/PlatformCertificateInfo.mm: Added.
(WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
(WebKit::PlatformCertificateInfo::encode):
(WebKit::PlatformCertificateInfo::decode):
(WebKit::PlatformCertificateInfo::dump):
* Shared/qt/PlatformCertificateInfo.h: Added.
(WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
(WebKit::PlatformCertificateInfo::encode):
(WebKit::PlatformCertificateInfo::decode):
* Shared/win/PlatformCertificateInfo.h: Added.
(WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
(WebKit::PlatformCertificateInfo::encode):
(WebKit::PlatformCertificateInfo::decode):
Add platform specific holder for certificate data and encode/decode functions
to send it over the wire. Right now, this only implemented for the mac.
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKBase.h:
* UIProcess/API/C/WKCertificateInfo.cpp: Added.
(WKCertificateInfoGetTypeID):
* UIProcess/API/C/WKCertificateInfo.h: Added.
Add wrapper for WebCertificateInfo.
* UIProcess/API/C/WKFrame.cpp:
(WKFrameGetCertificateInfo):
* UIProcess/API/C/WKFrame.h:
Add getter for a WKCertificateInfo.
* UIProcess/API/C/mac/WKCertificateInfoMac.h: Added.
* UIProcess/API/C/mac/WKCertificateInfoMac.mm: Added.
(WKCertificateInfoGetPeerCertificates):
Add mac specific getters for the platform specific certificate
data.
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::setCertificateInfo):
* UIProcess/WebFrameProxy.h:
(WebKit::WebFrameProxy::certificateInfo):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReceiveMessage):
(WebKit::WebPageProxy::didCommitLoadForFrame):
* UIProcess/WebPageProxy.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
Pipe the certificate info through to the WebFrameProxy on
commit.
* WebKit2.pro:
* WebKit2.xcodeproj/project.pbxproj:
* win/WebKit2.vcproj:
* win/WebKit2Generated.make:
Add new files.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67760 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index ff535e5..c244081 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,77 @@
+2010-09-17 Sam Weinig <sam at webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ Make certificate data available to the WKFrameRef after it is committed
+ Part of <rdar://problem/8350189>
+ https://bugs.webkit.org/show_bug.cgi?id=45998
+
+ * Shared/APIObject.h:
+ Add new type.
+
+ * Shared/WebCertificateInfo.h: Added.
+ (WebKit::WebCertificateInfo::create):
+ (WebKit::WebCertificateInfo::platformCertificateInfo):
+ (WebKit::WebCertificateInfo::WebCertificateInfo):
+ (WebKit::WebCertificateInfo::type):
+ Add API type for vending.
+
+ * Shared/mac/PlatformCertificateInfo.h: Added.
+ (WebKit::PlatformCertificateInfo::peerCertificates):
+ * Shared/mac/PlatformCertificateInfo.mm: Added.
+ (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
+ (WebKit::PlatformCertificateInfo::encode):
+ (WebKit::PlatformCertificateInfo::decode):
+ (WebKit::PlatformCertificateInfo::dump):
+ * Shared/qt/PlatformCertificateInfo.h: Added.
+ (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
+ (WebKit::PlatformCertificateInfo::encode):
+ (WebKit::PlatformCertificateInfo::decode):
+ * Shared/win/PlatformCertificateInfo.h: Added.
+ (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
+ (WebKit::PlatformCertificateInfo::encode):
+ (WebKit::PlatformCertificateInfo::decode):
+ Add platform specific holder for certificate data and encode/decode functions
+ to send it over the wire. Right now, this only implemented for the mac.
+
+ * UIProcess/API/C/WKAPICast.h:
+ * UIProcess/API/C/WKBase.h:
+ * UIProcess/API/C/WKCertificateInfo.cpp: Added.
+ (WKCertificateInfoGetTypeID):
+ * UIProcess/API/C/WKCertificateInfo.h: Added.
+ Add wrapper for WebCertificateInfo.
+
+ * UIProcess/API/C/WKFrame.cpp:
+ (WKFrameGetCertificateInfo):
+ * UIProcess/API/C/WKFrame.h:
+ Add getter for a WKCertificateInfo.
+
+ * UIProcess/API/C/mac/WKCertificateInfoMac.h: Added.
+ * UIProcess/API/C/mac/WKCertificateInfoMac.mm: Added.
+ (WKCertificateInfoGetPeerCertificates):
+ Add mac specific getters for the platform specific certificate
+ data.
+
+ * UIProcess/WebFrameProxy.cpp:
+ (WebKit::WebFrameProxy::setCertificateInfo):
+ * UIProcess/WebFrameProxy.h:
+ (WebKit::WebFrameProxy::certificateInfo):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::didReceiveMessage):
+ (WebKit::WebPageProxy::didCommitLoadForFrame):
+ * UIProcess/WebPageProxy.h:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ Pipe the certificate info through to the WebFrameProxy on
+ commit.
+
+ * WebKit2.pro:
+ * WebKit2.xcodeproj/project.pbxproj:
+ * win/WebKit2.vcproj:
+ * win/WebKit2Generated.make:
+ Add new files.
+
2010-09-17 Matthew Delaney <mdelaney at apple.com>
Reviewed by Simon Fraser.
diff --git a/WebKit2/Shared/APIObject.h b/WebKit2/Shared/APIObject.h
index 38d12d3..4eada83 100644
--- a/WebKit2/Shared/APIObject.h
+++ b/WebKit2/Shared/APIObject.h
@@ -34,8 +34,9 @@ class APIObject : public RefCounted<APIObject> {
public:
enum Type {
// Base types
- TypeNull,
+ TypeNull = 0,
TypeArray,
+ TypeCertificateInfo,
TypeData,
TypeDictionary,
TypeError,
diff --git a/WebKit2/Shared/WebCertificateInfo.h b/WebKit2/Shared/WebCertificateInfo.h
new file mode 100644
index 0000000..84ff231
--- /dev/null
+++ b/WebKit2/Shared/WebCertificateInfo.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2010 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 WebCertificateInfo_h
+#define WebCertificateInfo_h
+
+#include "APIObject.h"
+#include "PlatformCertificateInfo.h"
+#include <wtf/PassRefPtr.h>
+
+namespace WebKit {
+
+class WebCertificateInfo : public APIObject {
+public:
+ static const Type APIType = TypeCertificateInfo;
+
+ static PassRefPtr<WebCertificateInfo> create(const PlatformCertificateInfo& info)
+ {
+ return adoptRef(new WebCertificateInfo(info));
+ }
+
+ const PlatformCertificateInfo& platformCertificateInfo() const { return m_platformCertificateInfo; }
+
+private:
+ explicit WebCertificateInfo(const PlatformCertificateInfo& info)
+ : m_platformCertificateInfo(info)
+ {
+ }
+
+ virtual Type type() const { return APIType; }
+
+ PlatformCertificateInfo m_platformCertificateInfo;
+};
+
+} // namespace WebKit
+
+#endif // WebCertificateInfo_h
diff --git a/WebKit2/Shared/mac/PlatformCertificateInfo.h b/WebKit2/Shared/mac/PlatformCertificateInfo.h
new file mode 100644
index 0000000..5a3ad5c
--- /dev/null
+++ b/WebKit2/Shared/mac/PlatformCertificateInfo.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2010 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 PlatformCertificateInfo_h
+#define PlatformCertificateInfo_h
+
+#include <WebCore/ResourceResponse.h>
+#include <wtf/RetainPtr.h>
+
+namespace CoreIPC {
+ class ArgumentDecoder;
+ class ArgumentEncoder;
+}
+
+namespace WebKit {
+
+class PlatformCertificateInfo {
+public:
+ PlatformCertificateInfo();
+ explicit PlatformCertificateInfo(const WebCore::ResourceResponse&);
+
+ CFArrayRef peerCertificates() const { return m_peerCertificates.get(); }
+
+ void encode(CoreIPC::ArgumentEncoder* encoder) const;
+ static bool decode(CoreIPC::ArgumentDecoder* decoder, PlatformCertificateInfo& t);
+
+#ifndef NDEBUG
+ void dump() const;
+#endif
+
+private:
+ RetainPtr<CFArrayRef> m_peerCertificates;
+};
+
+} // namespace WebKit
+
+#endif // PlatformCertificateInfo_h
diff --git a/WebKit2/Shared/mac/PlatformCertificateInfo.mm b/WebKit2/Shared/mac/PlatformCertificateInfo.mm
new file mode 100644
index 0000000..c234d76
--- /dev/null
+++ b/WebKit2/Shared/mac/PlatformCertificateInfo.mm
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2010 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 "PlatformCertificateInfo.h"
+
+#include "ArgumentDecoder.h"
+#include "ArgumentEncoder.h"
+#include <WebKitSystemInterface.h>
+#include <Security/Security.h>
+
+using namespace WebCore;
+
+namespace WebKit {
+
+PlatformCertificateInfo::PlatformCertificateInfo()
+{
+}
+
+PlatformCertificateInfo::PlatformCertificateInfo(const ResourceResponse& response)
+ : m_peerCertificates(AdoptCF, WKCopyNSURLResponsePeerCertificates(response.nsURLResponse()))
+{
+}
+
+void PlatformCertificateInfo::encode(CoreIPC::ArgumentEncoder* encoder) const
+{
+ // Special case no certificates,
+ if (!m_peerCertificates) {
+ encoder->encodeUInt64(std::numeric_limits<uint64_t>::max());
+ return;
+ }
+
+ uint64_t length = CFArrayGetCount(m_peerCertificates.get());
+ encoder->encodeUInt64(length);
+
+ for (size_t i = 0; i < length; ++i) {
+ RetainPtr<CFDataRef> data(AdoptCF, SecCertificateCopyData((SecCertificateRef)CFArrayGetValueAtIndex(m_peerCertificates.get(), i)));
+ encoder->encodeBytes(CFDataGetBytePtr(data.get()), CFDataGetLength(data.get()));
+ }
+}
+
+bool PlatformCertificateInfo::decode(CoreIPC::ArgumentDecoder* decoder, PlatformCertificateInfo& c)
+{
+ uint64_t length;
+ if (!decoder->decode(length))
+ return false;
+
+ if (length == std::numeric_limits<uint64_t>::max()) {
+ // This is the no certificates case.
+ return true;
+ }
+
+ RetainPtr<CFMutableArrayRef> array(AdoptCF, CFArrayCreateMutable(0, length, &kCFTypeArrayCallBacks));
+
+ for (size_t i = 0; i < length; ++i) {
+ Vector<uint8_t> bytes;
+ if (!decoder->decodeBytes(bytes))
+ return false;
+
+ RetainPtr<CFDataRef> data(AdoptCF, CFDataCreateWithBytesNoCopy(0, bytes.data(), bytes.size(), kCFAllocatorNull));
+ RetainPtr<SecCertificateRef> certificate(AdoptCF, SecCertificateCreateWithData(0, data.get()));
+ CFArrayAppendValue(array.get(), certificate.get());
+ }
+
+ c.m_peerCertificates = array;
+ return true;
+}
+
+#ifndef NDEBUG
+void PlatformCertificateInfo::dump() const
+{
+ unsigned entries = m_peerCertificates ? CFArrayGetCount(m_peerCertificates.get()) : 0;
+
+ NSLog(@"PlatformCertificateInfo\n");
+ NSLog(@" Entries: %d\n", entries);
+ for (unsigned i = 0; i < entries; ++i) {
+ RetainPtr<CFStringRef> summary(AdoptCF, SecCertificateCopySubjectSummary((SecCertificateRef)CFArrayGetValueAtIndex(m_peerCertificates.get(), i)));
+ NSLog(@" %@", (NSString *)summary.get());
+ }
+}
+#endif
+
+} // namespace WebKit
diff --git a/WebKit2/Shared/qt/PlatformCertificateInfo.h b/WebKit2/Shared/qt/PlatformCertificateInfo.h
new file mode 100644
index 0000000..1a407d1
--- /dev/null
+++ b/WebKit2/Shared/qt/PlatformCertificateInfo.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2010 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 PlatformCertificateInfo_h
+#define PlatformCertificateInfo_h
+
+#include "ArgumentDecoder.h"
+#include "ArgumentEncoder.h"
+#include <WebCore/ResourceResponse.h>
+
+namespace WebKit {
+
+class PlatformCertificateInfo {
+public:
+ PlatformCertificateInfo()
+ {
+ }
+
+ explicit PlatformCertificateInfo(const WebCore::ResourceResponse&)
+ {
+ }
+
+ void encode(CoreIPC::ArgumentEncoder*) const
+ {
+ }
+
+ static bool decode(CoreIPC::ArgumentDecoder*, PlatformCertificateInfo&)
+ {
+ }
+};
+
+} // namespace WebKit
+
+#endif // PlatformCertificateInfo_h
diff --git a/WebKit2/Shared/win/PlatformCertificateInfo.h b/WebKit2/Shared/win/PlatformCertificateInfo.h
new file mode 100644
index 0000000..8d76b27
--- /dev/null
+++ b/WebKit2/Shared/win/PlatformCertificateInfo.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2010 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 PlatformCertificateInfo_h
+#define PlatformCertificateInfo_h
+
+#include "ArgumentDecoder.h"
+#include "ArgumentEncoder.h"
+#include <WebCore/ResourceResponse.h>
+
+namespace WebKit {
+
+class PlatformCertificateInfo {
+public:
+ PlatformCertificateInfo()
+ {
+ }
+
+ explicit PlatformCertificateInfo(const WebCore::ResourceResponse&)
+ {
+ }
+
+ void encode(CoreIPC::ArgumentEncoder*) const
+ {
+ }
+
+ static bool decode(CoreIPC::ArgumentDecoder*, PlatformCertificateInfo&)
+ {
+
+ }
+};
+
+} // namespace WebKit
+
+#endif // PlatformCertificateInfo_h
diff --git a/WebKit2/UIProcess/API/C/WKAPICast.h b/WebKit2/UIProcess/API/C/WKAPICast.h
index f46e314..147b0fa 100644
--- a/WebKit2/UIProcess/API/C/WKAPICast.h
+++ b/WebKit2/UIProcess/API/C/WKAPICast.h
@@ -47,6 +47,7 @@ class MutableArray;
class MutableDictionary;
class WebBackForwardList;
class WebBackForwardListItem;
+class WebCertificateInfo;
class WebContext;
class WebData;
class WebError;
@@ -66,6 +67,7 @@ template<> struct APITypeInfo<WKArrayRef> { typedef Immuta
template<> struct APITypeInfo<WKBackForwardListItemRef> { typedef WebBackForwardListItem* ImplType; };
template<> struct APITypeInfo<WKBackForwardListRef> { typedef WebBackForwardList* ImplType; };
template<> struct APITypeInfo<WKBooleanRef> { typedef WebBoolean* ImplType; };
+template<> struct APITypeInfo<WKCertificateInfoRef> { typedef WebCertificateInfo* ImplType; };
template<> struct APITypeInfo<WKContextRef> { typedef WebContext* ImplType; };
template<> struct APITypeInfo<WKDataRef> { typedef WebData* ImplType; };
template<> struct APITypeInfo<WKDictionaryRef> { typedef ImmutableDictionary* ImplType; };
@@ -97,6 +99,7 @@ template<> struct ImplTypeInfo<MutableDictionary*> { typedef WKMuta
template<> struct ImplTypeInfo<WebBackForwardList*> { typedef WKBackForwardListRef APIType; };
template<> struct ImplTypeInfo<WebBackForwardListItem*> { typedef WKBackForwardListItemRef APIType; };
template<> struct ImplTypeInfo<WebBoolean*> { typedef WKBooleanRef APIType; };
+template<> struct ImplTypeInfo<WebCertificateInfo*> { typedef WKCertificateInfoRef APIType; };
template<> struct ImplTypeInfo<WebContext*> { typedef WKContextRef APIType; };
template<> struct ImplTypeInfo<WebData*> { typedef WKDataRef APIType; };
template<> struct ImplTypeInfo<WebDouble*> { typedef WKDoubleRef APIType; };
diff --git a/WebKit2/UIProcess/API/C/WKBase.h b/WebKit2/UIProcess/API/C/WKBase.h
index 7e07403..f598f48 100644
--- a/WebKit2/UIProcess/API/C/WKBase.h
+++ b/WebKit2/UIProcess/API/C/WKBase.h
@@ -44,6 +44,7 @@ typedef struct OpaqueWKDictionary* WKMutableDictionaryRef;
typedef const struct OpaqueWKBackForwardList* WKBackForwardListRef;
typedef const struct OpaqueWKBackForwardListItem* WKBackForwardListItemRef;
typedef const struct OpaqueWKBoolean* WKBooleanRef;
+typedef const struct OpaqueWKCertificateInfo* WKCertificateInfoRef;
typedef const struct OpaqueWKContext* WKContextRef;
typedef const struct OpaqueWKData* WKDataRef;
typedef const struct OpaqueWKDouble* WKDoubleRef;
diff --git a/WebKit2/UIProcess/API/C/WKCertificateInfo.cpp b/WebKit2/UIProcess/API/C/WKCertificateInfo.cpp
new file mode 100644
index 0000000..94ded70
--- /dev/null
+++ b/WebKit2/UIProcess/API/C/WKCertificateInfo.cpp
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2010 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 "WKCertificateInfo.h"
+
+#include "WebCertificateInfo.h"
+#include "WKAPICast.h"
+
+using namespace WebKit;
+
+WKTypeID WKCertificateInfoGetTypeID()
+{
+ return toRef(WebCertificateInfo::APIType);
+}
diff --git a/WebKit2/UIProcess/API/C/WKCertificateInfo.h b/WebKit2/UIProcess/API/C/WKCertificateInfo.h
new file mode 100644
index 0000000..d4a2ed9
--- /dev/null
+++ b/WebKit2/UIProcess/API/C/WKCertificateInfo.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 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 WKCertificateInfo_h
+#define WKCertificateInfo_h
+
+#include <WebKit2/WKBase.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+WK_EXPORT WKTypeID WKCertificateInfoGetTypeID();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WKCertificateInfo_h */
diff --git a/WebKit2/UIProcess/API/C/WKFrame.cpp b/WebKit2/UIProcess/API/C/WKFrame.cpp
index c4504e7..da390f3 100644
--- a/WebKit2/UIProcess/API/C/WKFrame.cpp
+++ b/WebKit2/UIProcess/API/C/WKFrame.cpp
@@ -70,3 +70,8 @@ WKPageRef WKFrameGetPage(WKFrameRef frameRef)
{
return toRef(toWK(frameRef)->page());
}
+
+WKCertificateInfoRef WKFrameGetCertificateInfo(WKFrameRef frameRef)
+{
+ return toRef(toWK(frameRef)->certificateInfo());
+}
diff --git a/WebKit2/UIProcess/API/C/WKFrame.h b/WebKit2/UIProcess/API/C/WKFrame.h
index aa0180a..3e81724 100644
--- a/WebKit2/UIProcess/API/C/WKFrame.h
+++ b/WebKit2/UIProcess/API/C/WKFrame.h
@@ -52,6 +52,8 @@ WK_EXPORT WKURLRef WKFrameCopyURL(WKFrameRef frame);
WK_EXPORT WKPageRef WKFrameGetPage(WKFrameRef frame);
+WK_EXPORT WKCertificateInfoRef WKFrameGetCertificateInfo(WKFrameRef frame);
+
#ifdef __cplusplus
}
#endif
diff --git a/WebKit2/UIProcess/API/C/mac/WKCertificateInfoMac.h b/WebKit2/UIProcess/API/C/mac/WKCertificateInfoMac.h
new file mode 100644
index 0000000..11efdb7
--- /dev/null
+++ b/WebKit2/UIProcess/API/C/mac/WKCertificateInfoMac.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2010 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 WKCertificateInfoMac_h
+#define WKCertificateInfoMac_h
+
+#include <Foundation/Foundation.h>
+#include <WebKit2/WKBase.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+WK_EXPORT CFArrayRef WKCertificateInfoGetPeerCertificates(WKCertificateInfoRef certificateInfo);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WKCertificateInfoMac_h */
diff --git a/WebKit2/UIProcess/API/C/mac/WKCertificateInfoMac.mm b/WebKit2/UIProcess/API/C/mac/WKCertificateInfoMac.mm
new file mode 100644
index 0000000..1455909
--- /dev/null
+++ b/WebKit2/UIProcess/API/C/mac/WKCertificateInfoMac.mm
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2010 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 "WKCertificateInfoMac.h"
+
+#include "WKAPICast.h"
+#include "WebCertificateInfo.h"
+
+using namespace WebKit;
+
+CFArrayRef WKCertificateInfoGetPeerCertificates(WKCertificateInfoRef certificateInfoRef)
+{
+ return toWK(certificateInfoRef)->platformCertificateInfo().peerCertificates();
+}
diff --git a/WebKit2/UIProcess/WebFrameProxy.cpp b/WebKit2/UIProcess/WebFrameProxy.cpp
index 16406a4..c382915 100644
--- a/WebKit2/UIProcess/WebFrameProxy.cpp
+++ b/WebKit2/UIProcess/WebFrameProxy.cpp
@@ -25,6 +25,7 @@
#include "WebFrameProxy.h"
+#include "WebCertificateInfo.h"
#include "WebFormSubmissionListenerProxy.h"
#include "WebFramePolicyListenerProxy.h"
#include "WebPageProxy.h"
@@ -62,6 +63,11 @@ bool WebFrameProxy::isMainFrame() const
return this == m_page->mainFrame();
}
+void WebFrameProxy::setCertificateInfo(PassRefPtr<WebCertificateInfo> certificateInfo)
+{
+ m_certificateInfo = certificateInfo;
+}
+
void WebFrameProxy::didStartProvisionalLoad(const String& url)
{
// FIXME: Add assertions.
diff --git a/WebKit2/UIProcess/WebFrameProxy.h b/WebKit2/UIProcess/WebFrameProxy.h
index 4b36002..72839e5 100644
--- a/WebKit2/UIProcess/WebFrameProxy.h
+++ b/WebKit2/UIProcess/WebFrameProxy.h
@@ -41,9 +41,11 @@ namespace CoreIPC {
namespace WebKit {
-class WebPageProxy;
-class WebFramePolicyListenerProxy;
+class PlatformCertificateInfo;
+class WebCertificateInfo;
class WebFormSubmissionListenerProxy;
+class WebFramePolicyListenerProxy;
+class WebPageProxy;
class WebFrameProxy : public APIObject {
public:
@@ -72,6 +74,9 @@ public:
const WTF::String& url() const { return m_url; }
const WTF::String& provisionalURL() const { return m_provisionalURL; }
+ void setCertificateInfo(PassRefPtr<WebCertificateInfo>);
+ WebCertificateInfo* certificateInfo() const { return m_certificateInfo.get(); }
+
void didStartProvisionalLoad(const String& url);
void didReceiveServerRedirectForProvisionalLoad(const String& url);
void didCommitLoad();
@@ -91,6 +96,7 @@ private:
LoadState m_loadState;
WTF::String m_url;
WTF::String m_provisionalURL;
+ RefPtr<WebCertificateInfo> m_certificateInfo;
RefPtr<WebFrameListenerProxy> m_activeListener;
uint64_t m_frameID;
};
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index 47b970b..88924db 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -30,6 +30,7 @@
#include "PageClient.h"
#include "WebBackForwardList.h"
#include "WebBackForwardListItem.h"
+#include "WebCertificateInfo.h"
#include "WebContext.h"
#include "WebContextUserMessageCoders.h"
#include "WebCoreArgumentCoders.h"
@@ -555,9 +556,10 @@ void WebPageProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::M
}
case WebPageProxyMessage::DidCommitLoadForFrame: {
uint64_t frameID;
- if (!arguments->decode(frameID))
+ PlatformCertificateInfo certificateInfo;
+ if (!arguments->decode(CoreIPC::Out(frameID, certificateInfo)))
return;
- didCommitLoadForFrame(process()->webFrame(frameID));
+ didCommitLoadForFrame(process()->webFrame(frameID), certificateInfo);
break;
}
case WebPageProxyMessage::DidFinishDocumentLoadForFrame: {
@@ -933,8 +935,9 @@ void WebPageProxy::didFailProvisionalLoadForFrame(WebFrameProxy* frame)
m_loaderClient.didFailProvisionalLoadWithErrorForFrame(this, frame);
}
-void WebPageProxy::didCommitLoadForFrame(WebFrameProxy* frame)
+void WebPageProxy::didCommitLoadForFrame(WebFrameProxy* frame, const PlatformCertificateInfo& certificateInfo)
{
+ frame->setCertificateInfo(WebCertificateInfo::create(certificateInfo));
frame->didCommitLoad();
m_loaderClient.didCommitLoadForFrame(this, frame);
}
diff --git a/WebKit2/UIProcess/WebPageProxy.h b/WebKit2/UIProcess/WebPageProxy.h
index 7a7e8da..ffc51c7 100644
--- a/WebKit2/UIProcess/WebPageProxy.h
+++ b/WebKit2/UIProcess/WebPageProxy.h
@@ -64,6 +64,7 @@ namespace WebKit {
class DrawingAreaProxy;
class PageClient;
+class PlatformCertificateInfo;
class WebBackForwardList;
class WebBackForwardListItem;
class WebData;
@@ -206,7 +207,7 @@ private:
void didStartProvisionalLoadForFrame(WebFrameProxy*, const String&);
void didReceiveServerRedirectForProvisionalLoadForFrame(WebFrameProxy*, const String&);
void didFailProvisionalLoadForFrame(WebFrameProxy*);
- void didCommitLoadForFrame(WebFrameProxy*);
+ void didCommitLoadForFrame(WebFrameProxy*, const PlatformCertificateInfo&);
void didFinishDocumentLoadForFrame(WebFrameProxy*);
void didFinishLoadForFrame(WebFrameProxy*);
void didFailLoadForFrame(WebFrameProxy*);
diff --git a/WebKit2/WebKit2.pro b/WebKit2/WebKit2.pro
index 2987561..4688007 100644
--- a/WebKit2/WebKit2.pro
+++ b/WebKit2/WebKit2.pro
@@ -162,9 +162,11 @@ HEADERS += \
Shared/MutableArray.h \
Shared/MutableDictionary.h \
Shared/NotImplemented.h \
+ Shared/qt/PlatformCertificateInfo.h \
Shared/qt/WebEventFactoryQt.h \
Shared/UserMessageCoders.h \
Shared/VisitedLinkTable.h \
+ Shared/WebCertificateInfo.h \
Shared/WebEventConversion.h \
Shared/WebEvent.h \
Shared/WebNumber.h \
@@ -178,6 +180,7 @@ HEADERS += \
UIProcess/API/C/WebKit2.h \
UIProcess/API/C/WKAPICast.h \
UIProcess/API/C/WKBase.h \
+ UIProcess/API/C/WKCertificateInfo.h \
UIProcess/API/C/WKContext.h \
UIProcess/API/C/WKContextPrivate.h \
UIProcess/API/C/WKFrame.h \
@@ -292,6 +295,7 @@ SOURCES += \
Shared/qt/WebCoreArgumentCodersQt.cpp \
Shared/qt/WebURLRequestQt.cpp \
Shared/qt/WebURLResponseQt.cpp \
+ UIProcess/API/C/WKCertificateInfo.cpp \
UIProcess/API/C/WKContext.cpp \
UIProcess/API/C/WKFrame.cpp \
UIProcess/API/C/WKFramePolicyListener.cpp \
diff --git a/WebKit2/WebKit2.xcodeproj/project.pbxproj b/WebKit2/WebKit2.xcodeproj/project.pbxproj
index 57a9d45..95125b3 100644
--- a/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -336,6 +336,14 @@
BCF50121123ED3B3005955AE /* ThreadLauncher.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF5011F123ED3B3005955AE /* ThreadLauncher.h */; };
BCF50122123ED3B3005955AE /* ThreadLauncher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCF50120123ED3B3005955AE /* ThreadLauncher.cpp */; };
BCF501B4123EF602005955AE /* ThreadLauncherMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BCF501B3123EF602005955AE /* ThreadLauncherMac.mm */; };
+ BCF505E71243047B005955AE /* PlatformCertificateInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF505E51243047B005955AE /* PlatformCertificateInfo.h */; };
+ BCF505E81243047B005955AE /* PlatformCertificateInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = BCF505E61243047B005955AE /* PlatformCertificateInfo.mm */; };
+ BCF5068512431861005955AE /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCF5068412431861005955AE /* Security.framework */; };
+ BCF50724124328A9005955AE /* WKCertificateInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF50722124328A9005955AE /* WKCertificateInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BCF50725124328A9005955AE /* WKCertificateInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCF50723124328A9005955AE /* WKCertificateInfo.cpp */; };
+ BCF50728124329AA005955AE /* WebCertificateInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF50726124329AA005955AE /* WebCertificateInfo.h */; };
+ BCF5072E12432A97005955AE /* WKCertificateInfoMac.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF5072C12432A97005955AE /* WKCertificateInfoMac.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BCF5072F12432A97005955AE /* WKCertificateInfoMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BCF5072D12432A97005955AE /* WKCertificateInfoMac.mm */; };
BCF69F861176CD6F00471A52 /* WebHistoryClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCF69F841176CD6F00471A52 /* WebHistoryClient.cpp */; };
BCF69F871176CD6F00471A52 /* WebHistoryClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF69F851176CD6F00471A52 /* WebHistoryClient.h */; };
BCF69F9A1176CED600471A52 /* WebNavigationDataStore.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF69F981176CED600471A52 /* WebNavigationDataStore.h */; };
@@ -720,6 +728,14 @@
BCF5011F123ED3B3005955AE /* ThreadLauncher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadLauncher.h; sourceTree = "<group>"; };
BCF50120123ED3B3005955AE /* ThreadLauncher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThreadLauncher.cpp; sourceTree = "<group>"; };
BCF501B3123EF602005955AE /* ThreadLauncherMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ThreadLauncherMac.mm; sourceTree = "<group>"; };
+ BCF505E51243047B005955AE /* PlatformCertificateInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformCertificateInfo.h; sourceTree = "<group>"; };
+ BCF505E61243047B005955AE /* PlatformCertificateInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformCertificateInfo.mm; sourceTree = "<group>"; };
+ BCF5068412431861005955AE /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; };
+ BCF50722124328A9005955AE /* WKCertificateInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKCertificateInfo.h; sourceTree = "<group>"; };
+ BCF50723124328A9005955AE /* WKCertificateInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKCertificateInfo.cpp; sourceTree = "<group>"; };
+ BCF50726124329AA005955AE /* WebCertificateInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCertificateInfo.h; sourceTree = "<group>"; };
+ BCF5072C12432A97005955AE /* WKCertificateInfoMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKCertificateInfoMac.h; sourceTree = "<group>"; };
+ BCF5072D12432A97005955AE /* WKCertificateInfoMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKCertificateInfoMac.mm; sourceTree = "<group>"; };
BCF69F841176CD6F00471A52 /* WebHistoryClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebHistoryClient.cpp; sourceTree = "<group>"; };
BCF69F851176CD6F00471A52 /* WebHistoryClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebHistoryClient.h; sourceTree = "<group>"; };
BCF69F981176CED600471A52 /* WebNavigationDataStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNavigationDataStore.h; sourceTree = "<group>"; };
@@ -763,6 +779,7 @@
BC87DFAA1018101400564216 /* libicucore.dylib in Frameworks */,
1AA1CC5D100FA1A10078DEBC /* QuartzCore.framework in Frameworks */,
1A1C4EC810D06099005E67E7 /* WebCore.framework in Frameworks */,
+ BCF5068512431861005955AE /* Security.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -826,6 +843,7 @@
BC87DFA91018101400564216 /* libicucore.dylib */,
1AA1CC5C100FA1A10078DEBC /* QuartzCore.framework */,
1AA1C79A100E7FC50078DEBC /* WebCore.framework */,
+ BCF5068412431861005955AE /* Security.framework */,
);
name = "Linked Frameworks";
sourceTree = "<group>";
@@ -942,6 +960,7 @@
1A0F29C9120B37160053D1B9 /* VisitedLinkTable.cpp */,
1A0F29CA120B37160053D1B9 /* VisitedLinkTable.h */,
BC1DD7B1114DC396005ADAF3 /* WebCoreArgumentCoders.h */,
+ BCF50726124329AA005955AE /* WebCertificateInfo.h */,
51578B821209ECEF00A37C4A /* WebData.h */,
516A4A5B120A2CCD00C05B7F /* WebError.h */,
BC032DAF10F4380F0058C15A /* WebEvent.h */,
@@ -951,13 +970,13 @@
BC33DD671238464600360F3F /* WebNumber.h */,
BCD598AB112B7FDF00EC8C23 /* WebPreferencesStore.cpp */,
BCD598AA112B7FDF00EC8C23 /* WebPreferencesStore.h */,
+ A72D5D7F1236CBA800A88B15 /* WebSerializedScriptValue.h */,
BCF04C8E11FF9F6E00F86A58 /* WebString.h */,
BCDB86C01200FB97007254BE /* WebURL.h */,
BCE2315C122C30CA00D5C35A /* WebURLRequest.cpp */,
BCE2315B122C30CA00D5C35A /* WebURLRequest.h */,
BC90A1D1122DD55E00CC8C50 /* WebURLResponse.cpp */,
BC90A1D0122DD55E00CC8C50 /* WebURLResponse.h */,
- A72D5D7F1236CBA800A88B15 /* WebSerializedScriptValue.h */,
);
path = Shared;
sourceTree = "<group>";
@@ -1166,6 +1185,8 @@
BC646C1811DD399F006455B0 /* WKBackForwardListItem.cpp */,
BC646C1911DD399F006455B0 /* WKBackForwardListItem.h */,
BC0C376710F807B20076D7CB /* WKBase.h */,
+ BCF50723124328A9005955AE /* WKCertificateInfo.cpp */,
+ BCF50722124328A9005955AE /* WKCertificateInfo.h */,
BCB9E24A1120E15C00A137E0 /* WKContext.cpp */,
BCB9E2491120E15C00A137E0 /* WKContext.h */,
BCC938E01180DE440085E5FE /* WKContextPrivate.h */,
@@ -1263,6 +1284,8 @@
isa = PBXGroup;
children = (
1A6F9FB611E1408500DB1371 /* CommandLineMac.cpp */,
+ BCF505E61243047B005955AE /* PlatformCertificateInfo.mm */,
+ BCF505E51243047B005955AE /* PlatformCertificateInfo.h */,
BC9E95D211449B0300870E71 /* UpdateChunk.cpp */,
BC9E95D111449B0300870E71 /* UpdateChunk.h */,
BCE23262122C6CF300D5C35A /* WebCoreArgumentCodersMac.mm */,
@@ -1448,6 +1471,8 @@
BCE23276122C718F00D5C35A /* mac */ = {
isa = PBXGroup;
children = (
+ BCF5072C12432A97005955AE /* WKCertificateInfoMac.h */,
+ BCF5072D12432A97005955AE /* WKCertificateInfoMac.mm */,
BCE23277122C71AC00D5C35A /* WKURLRequestNS.h */,
BCE23278122C71AC00D5C35A /* WKURLRequestNS.mm */,
BC90A1DE122DD8EE00CC8C50 /* WKURLResponseNS.h */,
@@ -1633,6 +1658,10 @@
BC33DE8E12385C3300360F3F /* WKNumber.h in Headers */,
BC33DF061238677F00360F3F /* WKSerializedScriptValue.h in Headers */,
BCF50121123ED3B3005955AE /* ThreadLauncher.h in Headers */,
+ BCF505E71243047B005955AE /* PlatformCertificateInfo.h in Headers */,
+ BCF50724124328A9005955AE /* WKCertificateInfo.h in Headers */,
+ BCF50728124329AA005955AE /* WebCertificateInfo.h in Headers */,
+ BCF5072E12432A97005955AE /* WKCertificateInfoMac.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1880,6 +1909,9 @@
BC33DE8F12385C3300360F3F /* WKNumber.cpp in Sources */,
BCF50122123ED3B3005955AE /* ThreadLauncher.cpp in Sources */,
BCF501B4123EF602005955AE /* ThreadLauncherMac.mm in Sources */,
+ BCF505E81243047B005955AE /* PlatformCertificateInfo.mm in Sources */,
+ BCF50725124328A9005955AE /* WKCertificateInfo.cpp in Sources */,
+ BCF5072F12432A97005955AE /* WKCertificateInfoMac.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp b/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
index ec65182..6447dfa 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
@@ -30,6 +30,7 @@
#include "InjectedBundleUserMessageCoders.h"
#include "NetscapePlugin.h"
+#include "PlatformCertificateInfo.h"
#include "PluginView.h"
#include "WebCoreArgumentCoders.h"
#include "WebErrors.h"
@@ -309,11 +310,13 @@ void WebFrameLoaderClient::dispatchDidCommitLoad()
if (!webPage)
return;
+ const ResourceResponse& response = m_frame->coreFrame()->loader()->documentLoader()->response();
+
// Notify the bundle client.
webPage->injectedBundleLoaderClient().didCommitLoadForFrame(webPage, m_frame);
// Notify the UIProcess.
- WebProcess::shared().connection()->send(WebPageProxyMessage::DidCommitLoadForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID()));
+ WebProcess::shared().connection()->send(WebPageProxyMessage::DidCommitLoadForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), PlatformCertificateInfo(response)));
}
void WebFrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& error)
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h b/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
index bcde537..766557a 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
+++ b/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
@@ -205,9 +205,8 @@ private:
virtual bool shouldUsePluginDocument(const WTF::String& /*mimeType*/) const;
virtual PassRefPtr<WebCore::FrameNetworkingContext> createNetworkingContext();
-
+
WebFrame* m_frame;
-
RefPtr<PluginView> m_pluginView;
bool m_hasSentResponseToPluginView;
};
diff --git a/WebKit2/win/WebKit2.vcproj b/WebKit2/win/WebKit2.vcproj
index cb2bd03..ede8c8a 100755
--- a/WebKit2/win/WebKit2.vcproj
+++ b/WebKit2/win/WebKit2.vcproj
@@ -461,6 +461,10 @@
>
</File>
<File
+ RelativePath="..\Shared\WebCertificateInfo.h"
+ >
+ </File>
+ <File
RelativePath="..\Shared\WebEvent.h"
>
</File>
@@ -576,6 +580,10 @@
>
</File>
<File
+ RelativePath="..\Shared\win\PlatformCertificateInfo.h"
+ >
+ </File>
+ <File
RelativePath="..\Shared\win\WebURLRequestWin.cpp"
>
<FileConfiguration
@@ -1331,6 +1339,14 @@
>
</File>
<File
+ RelativePath="..\UIProcess\API\C\WKCertificateInfo.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\UIProcess\API\C\WKCertificateInfo.h"
+ >
+ </File>
+ <File
RelativePath="..\UIProcess\API\C\WKContext.cpp"
>
</File>
diff --git a/WebKit2/win/WebKit2Generated.make b/WebKit2/win/WebKit2Generated.make
index 07e9f1b..19f4b65 100644
--- a/WebKit2/win/WebKit2Generated.make
+++ b/WebKit2/win/WebKit2Generated.make
@@ -6,6 +6,7 @@ all:
xcopy /y /d "..\UIProcess\API\C\WKBackForwardList.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
xcopy /y /d "..\UIProcess\API\C\WKBackForwardListItem.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
xcopy /y /d "..\UIProcess\API\C\WKBase.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
+ xcopy /y /d "..\UIProcess\API\C\WKCertificateInfo.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
xcopy /y /d "..\UIProcess\API\C\WKContext.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
xcopy /y /d "..\UIProcess\API\C\WKContextPrivate.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
xcopy /y /d "..\UIProcess\API\C\WKData.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list