Diff
Modified: branches/safari-536.29-branch/Source/WebKit2/ChangeLog (144830 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/ChangeLog 2013-03-05 23:33:34 UTC (rev 144830)
+++ branches/safari-536.29-branch/Source/WebKit2/ChangeLog 2013-03-05 23:45:47 UTC (rev 144831)
@@ -1,3 +1,43 @@
+2013-03-05 Lucas Forschler <lforsch...@apple.com>
+
+ Merge r144672
+
+ 2013-03-04 Jer Noble <jer.no...@apple.com>
+
+ Add API to allow WK2 clients to query the list of installed plug-ins.
+ https://bugs.webkit.org/show_bug.cgi?id=111245
+
+ Reviewed by Alexey Proskuryakov.
+
+ Add API in WKContext, implemented by WebContext, that allows callers to register a callback
+ retrieve an array containing installed plugin information. This API is exposed through WebContext
+ because it owns the PluginInfoStore used to fulfill the request.
+
+ Bump the WKContextClient API by 1:
+ * Shared/APIClientTraits.cpp:
+ * Shared/APIClientTraits.h:
+ * UIProcess/API/C/WKContext.h:
+
+ Add a client protocol to PluginInfoStore to notify the client when plugIn information has been
+ successfully loaded:
+ * UIProcess/Plugins/PluginInfoStore.cpp:
+ (WebKit::PluginInfoStore::PluginInfoStore): Initialize m_client to 0.
+ (WebKit::PluginInfoStore::loadPluginsIfNecessary): If the client is present, notify after loading the plugin store.
+ * UIProcess/Plugins/PluginInfoStore.h:
+ (WebKit::PluginInfoStoreClient::~PluginInfoStoreClient): Default destructor.
+ (WebKit::PluginInfoStoreClient::PluginInfoStoreClient): Default constructor.
+ (WebKit::PluginInfoStore::setClient): Simple setter.
+ (WebKit::PluginInfoStore::client): Simple getter.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext): Set self as the client of PluginInfoStore.
+ (WebKit::WebContext::~WebContext): Clear the client of PluginInfoStore.
+ (WebKit::WebContext::pluginInfoStoreDidLoadPlugins): Pass the callback to own client.
+ * UIProcess/WebContext.h:
+ * UIProcess/WebContextClient.cpp:
+ (WebKit::WebContextClient::plugInInformationBecameAvailable): Pass the callback to the registered WK callback, if present.
+ * UIProcess/WebContextClient.h:
+
2013-03-04 Brady Eidson <beid...@apple.com>
Merge 144114
Modified: branches/safari-536.29-branch/Source/WebKit2/Shared/APIClientTraits.cpp (144830 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/Shared/APIClientTraits.cpp 2013-03-05 23:33:34 UTC (rev 144830)
+++ branches/safari-536.29-branch/Source/WebKit2/Shared/APIClientTraits.cpp 2013-03-05 23:45:47 UTC (rev 144831)
@@ -69,4 +69,9 @@
sizeof(WKBundlePageFormClient)
};
+const size_t APIClientTraits<WKContextClient>::interfaceSizesByVersion[] = {
+ offsetof(WKContextClient, plugInInformationBecameAvailable),
+ sizeof(WKContextClient)
+};
+
} // namespace WebKit
Modified: branches/safari-536.29-branch/Source/WebKit2/Shared/APIClientTraits.h (144830 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/Shared/APIClientTraits.h 2013-03-05 23:33:34 UTC (rev 144830)
+++ branches/safari-536.29-branch/Source/WebKit2/Shared/APIClientTraits.h 2013-03-05 23:45:47 UTC (rev 144831)
@@ -27,6 +27,7 @@
#define APIClientTraits_h
#include "WKBundlePage.h"
+#include "WKContext.h"
#include "WKPage.h"
namespace WebKit {
@@ -64,6 +65,10 @@
static const size_t interfaceSizesByVersion[2];
};
+template<> struct APIClientTraits<WKContextClient> {
+ static const size_t interfaceSizesByVersion[2];
+};
+
} // namespace WebKit
#endif // APIClientTraits_h
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKContext.cpp (144830 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2013-03-05 23:33:34 UTC (rev 144830)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2013-03-05 23:45:47 UTC (rev 144831)
@@ -71,6 +71,11 @@
return toAPI(WebContext::sharedThreadContext());
}
+void WKContextSetClient(WKContextRef contextRef, const WKContextClient* wkClient)
+{
+ toImpl(contextRef)->initializeClient(wkClient);
+}
+
void WKContextSetInjectedBundleClient(WKContextRef contextRef, const WKContextInjectedBundleClient* wkClient)
{
toImpl(contextRef)->initializeInjectedBundleClient(wkClient);
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKContext.h (144830 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKContext.h 2013-03-05 23:33:34 UTC (rev 144830)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/API/C/WKContext.h 2013-03-05 23:45:47 UTC (rev 144831)
@@ -39,6 +39,26 @@
};
typedef uint32_t WKCacheModel;
+// Context Client
+typedef void (*WKContextPlugInAutoStartOriginHashesChangedCallback)(WKContextRef context, const void *clientInfo);
+typedef void (*WKContextNetworkProcessDidCrashCallback)(WKContextRef context, const void *clientInfo);
+typedef void (*WKContextPlugInInformationBecameAvailableCallback)(WKContextRef context, WKArrayRef plugIn, const void *clientInfo);
+
+struct WKContextClient {
+ int version;
+ const void * clientInfo;
+
+ // Version 0.
+ WKContextPlugInAutoStartOriginHashesChangedCallback plugInAutoStartOriginHashesChanged;
+ WKContextNetworkProcessDidCrashCallback networkProcessDidCrash;
+
+ // Version 1.
+ WKContextPlugInInformationBecameAvailableCallback plugInInformationBecameAvailable;
+};
+typedef struct WKContextClient WKContextClient;
+
+enum { kWKContextClientCurrentVersion = 1 };
+
// Injected Bundle Client
typedef void (*WKContextDidReceiveMessageFromInjectedBundleCallback)(WKContextRef page, WKStringRef messageName, WKTypeRef messageBody, const void *clientInfo);
typedef void (*WKContextDidReceiveSynchronousMessageFromInjectedBundleCallback)(WKContextRef page, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData, const void *clientInfo);
@@ -123,6 +143,7 @@
WK_EXPORT WKContextRef WKContextCreateWithInjectedBundlePath(WKStringRef path);
WK_EXPORT WKContextRef WKContextGetSharedProcessContext();
+WK_EXPORT void WKContextSetClient(WKContextRef context, const WKContextClient* client);
WK_EXPORT void WKContextSetInjectedBundleClient(WKContextRef context, const WKContextInjectedBundleClient* client);
WK_EXPORT void WKContextSetHistoryClient(WKContextRef context, const WKContextHistoryClient* client);
WK_EXPORT void WKContextSetDownloadClient(WKContextRef context, const WKContextDownloadClient* client);
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp (144830 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp 2013-03-05 23:33:34 UTC (rev 144830)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.cpp 2013-03-05 23:45:47 UTC (rev 144831)
@@ -40,6 +40,7 @@
PluginInfoStore::PluginInfoStore()
: m_pluginListIsUpToDate(false)
+ , m_client(0)
{
}
@@ -107,6 +108,9 @@
m_plugins = deepIsolatedCopyPluginInfoVector(plugins);
m_pluginListIsUpToDate = true;
+
+ if (m_client)
+ m_client->pluginInfoStoreDidLoadPlugins(this, m_plugins);
}
void PluginInfoStore::loadPlugin(Vector<PluginModuleInfo>& plugins, const String& pluginPath)
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.h (144830 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.h 2013-03-05 23:33:34 UTC (rev 144830)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/Plugins/PluginInfoStore.h 2013-03-05 23:45:47 UTC (rev 144831)
@@ -35,6 +35,17 @@
namespace WebKit {
+class PluginInfoStore;
+
+class PluginInfoStoreClient {
+ WTF_MAKE_NONCOPYABLE(PluginInfoStoreClient);
+public:
+ virtual ~PluginInfoStoreClient() { }
+ virtual void pluginInfoStoreDidLoadPlugins(PluginInfoStore*, const Vector<PluginModuleInfo>&) = 0;
+protected:
+ PluginInfoStoreClient() { }
+};
+
class PluginInfoStore {
WTF_MAKE_NONCOPYABLE(PluginInfoStore);
@@ -57,6 +68,9 @@
static PluginModuleLoadPolicy policyForPlugin(const PluginModuleInfo&);
static bool reactivateInactivePlugin(const PluginModuleInfo&);
+ void setClient(PluginInfoStoreClient* client) { m_client = client; }
+ PluginInfoStoreClient* client() const { return m_client; }
+
private:
PluginModuleInfo findPluginForMIMEType(const String& mimeType) const;
PluginModuleInfo findPluginForExtension(const String& extension, String& mimeType) const;
@@ -89,6 +103,8 @@
bool m_pluginListIsUpToDate;
mutable Mutex m_pluginsLock;
+
+ PluginInfoStoreClient* m_client;
};
} // namespace WebKit
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContext.cpp (144830 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContext.cpp 2013-03-05 23:33:34 UTC (rev 144830)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContext.cpp 2013-03-05 23:45:47 UTC (rev 144831)
@@ -159,6 +159,8 @@
WebCore::initializeLoggingChannelsIfNecessary();
+ m_pluginInfoStore.setClient(this);
+
#ifndef NDEBUG
webContextCounter.increment();
#endif
@@ -214,12 +216,19 @@
invalidateCallbackMap(m_dictionaryCallbacks);
platformInvalidateContext();
-
+
+ m_pluginInfoStore.setClient(0);
+
#ifndef NDEBUG
webContextCounter.decrement();
#endif
}
+void WebContext::initializeClient(const WKContextClient* client)
+{
+ m_client.initialize(client);
+}
+
void WebContext::initializeInjectedBundleClient(const WKContextInjectedBundleClient* client)
{
m_injectedBundleClient.initialize(client);
@@ -967,4 +976,32 @@
}
}
+void WebContext::pluginInfoStoreDidLoadPlugins(PluginInfoStore* store, const Vector<PluginModuleInfo>& plugins)
+{
+ ASSERT(store == &m_pluginInfoStore);
+
+ Vector<RefPtr<APIObject> > pluginArray;
+
+ for (size_t i = 0; i < plugins.size(); ++i) {
+ const PluginModuleInfo& plugin = plugins[i];
+ ImmutableDictionary::MapType map;
+ map.set("path", WebString::create(plugin.path));
+ map.set("name", WebString::create(plugin.info.name));
+ map.set("file", WebString::create(plugin.info.file));
+ map.set("desc", WebString::create(plugin.info.desc));
+ Vector<RefPtr<APIObject> > mimeArray;
+ for (size_t j = 0; j < plugin.info.mimes.size(); ++j)
+ mimeArray.append(WebString::create(plugin.info.mimes[j].type));
+ map.set("mimes", ImmutableArray::adopt(mimeArray));
+#if PLATFORM(MAC)
+ map.set("bundleId", WebString::create(plugin.bundleIdentifier));
+ map.set("version", WebString::create(plugin.versionString));
+#endif
+
+ pluginArray.append(ImmutableDictionary::adopt(map));
+ }
+
+ m_client.plugInInformationBecameAvailable(this, ImmutableArray::adopt(pluginArray).leakRef());
+}
+
} // namespace WebKit
Modified: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContext.h (144830 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContext.h 2013-03-05 23:33:34 UTC (rev 144830)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContext.h 2013-03-05 23:45:47 UTC (rev 144831)
@@ -32,6 +32,7 @@
#include "ProcessModel.h"
#include "VisitedLinkProvider.h"
#include "WebContextInjectedBundleClient.h"
+#include "WebContextClient.h"
#include "WebContextConnectionClient.h"
#include "WebDownloadClient.h"
#include "WebHistoryClient.h"
@@ -66,7 +67,7 @@
typedef GenericCallback<WKDictionaryRef> DictionaryCallback;
-class WebContext : public APIObject, private CoreIPC::Connection::QueueClient {
+class WebContext : public APIObject, private PluginInfoStoreClient, private CoreIPC::Connection::QueueClient {
public:
static const Type APIType = TypeContext;
@@ -78,6 +79,7 @@
static const Vector<WebContext*>& allContexts();
+ void initializeClient(const WKContextClient*);
void initializeInjectedBundleClient(const WKContextInjectedBundleClient*);
void initializeConnectionClient(const WKContextConnectionClient*);
void initializeHistoryClient(const WKContextHistoryClient*);
@@ -263,6 +265,9 @@
void handleGetPlugins(uint64_t requestID, bool refresh);
void sendDidGetPlugins(uint64_t requestID, PassOwnPtr<Vector<WebCore::PluginInfo> >);
+ // PluginInfoStoreClient:
+ virtual void pluginInfoStoreDidLoadPlugins(PluginInfoStore*, const Vector<PluginModuleInfo>&) OVERRIDE;
+
ProcessModel m_processModel;
// FIXME: In the future, this should be one or more WebProcessProxies.
@@ -274,6 +279,8 @@
String m_injectedBundlePath;
WebContextInjectedBundleClient m_injectedBundleClient;
+
+ WebContextClient m_client;
WebContextConnectionClient m_connectionClient;
WebHistoryClient m_historyClient;
Added: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContextClient.cpp (0 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContextClient.cpp (rev 0)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContextClient.cpp 2013-03-05 23:45:47 UTC (rev 144831)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2012 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 "config.h"
+#include "WebContextClient.h"
+
+#include "WebContext.h"
+
+namespace WebKit {
+
+void WebContextClient::plugInInformationBecameAvailable(WebContext* context, ImmutableArray* plugInInfo)
+{
+ if (!m_client.plugInInformationBecameAvailable)
+ return;
+
+ m_client.plugInInformationBecameAvailable(toAPI(context), toAPI(plugInInfo), m_client.clientInfo);
+}
+
+} // namespace WebKit
Added: branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContextClient.h (0 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContextClient.h (rev 0)
+++ branches/safari-536.29-branch/Source/WebKit2/UIProcess/WebContextClient.h 2013-03-05 23:45:47 UTC (rev 144831)
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2012 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 WebContextClient_h
+#define WebContextClient_h
+
+#include "APIClient.h"
+#include "WKContext.h"
+
+namespace WebKit {
+
+class ImmutableArray;
+class WebContext;
+
+class WebContextClient : public APIClient<WKContextClient, kWKContextClientCurrentVersion> {
+public:
+ void plugInInformationBecameAvailable(WebContext*, ImmutableArray*);
+};
+
+} // namespace WebKit
+
+#endif // WebContextClient_h
Modified: branches/safari-536.29-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (144830 => 144831)
--- branches/safari-536.29-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2013-03-05 23:33:34 UTC (rev 144830)
+++ branches/safari-536.29-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2013-03-05 23:45:47 UTC (rev 144831)
@@ -452,6 +452,7 @@
762B748D120BC75C00819339 /* WKPreferencesPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 762B7484120BBA2D00819339 /* WKPreferencesPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
7801C099142290C400FAF9AF /* WebHitTestResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7801C095142290C400FAF9AF /* WebHitTestResult.cpp */; };
7801C09A142290C400FAF9AF /* WebHitTestResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 7801C096142290C400FAF9AF /* WebHitTestResult.h */; };
+ 8148977216E6A4B40051FFA0 /* WebContextClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8148977016E6A4B40051FFA0 /* WebContextClient.cpp */; };
8CFECE941490F140002AAA32 /* EditorState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8CFECE931490F140002AAA32 /* EditorState.cpp */; };
8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
@@ -1490,6 +1491,8 @@
762B7484120BBA2D00819339 /* WKPreferencesPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreferencesPrivate.h; sourceTree = "<group>"; };
7801C095142290C400FAF9AF /* WebHitTestResult.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebHitTestResult.cpp; sourceTree = "<group>"; };
7801C096142290C400FAF9AF /* WebHitTestResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebHitTestResult.h; sourceTree = "<group>"; };
+ 8148977016E6A4B40051FFA0 /* WebContextClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebContextClient.cpp; sourceTree = "<group>"; };
+ 8148977116E6A4B40051FFA0 /* WebContextClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContextClient.h; sourceTree = "<group>"; };
8CFECE931490F140002AAA32 /* EditorState.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EditorState.cpp; sourceTree = "<group>"; };
8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
8DC2EF5B0486A6940098B216 /* WebKit2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WebKit2.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -2913,6 +2916,8 @@
BCB9E2421120DACA00A137E0 /* WebContext.cpp */,
BCB9E2411120DACA00A137E0 /* WebContext.h */,
BCEE7D0912846AED009827DA /* WebContext.messages.in */,
+ 8148977016E6A4B40051FFA0 /* WebContextClient.cpp */,
+ 8148977116E6A4B40051FFA0 /* WebContextClient.h */,
BC09B8F6147460F7005F5625 /* WebContextConnectionClient.cpp */,
BC09B8F7147460F7005F5625 /* WebContextConnectionClient.h */,
BCDE059A11CDA8AE00E41AF1 /* WebContextInjectedBundleClient.cpp */,
@@ -4965,6 +4970,7 @@
51FA2D7715212E2600C1BA0B /* WKBundleDOMWindowExtension.cpp in Sources */,
CD67D30E15C08F9A00843ADF /* InjectedBundlePageDiagnosticLoggingClient.cpp in Sources */,
51C2966616E144D800757D21 /* WKContextPrivateMac.mm in Sources */,
+ 8148977216E6A4B40051FFA0 /* WebContextClient.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};