Diff
Modified: branches/safari-537.78-branch/Source/WebKit2/ChangeLog (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/ChangeLog 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/ChangeLog 2014-07-22 23:25:48 UTC (rev 171369)
@@ -1,3 +1,48 @@
+2014-07-22 Dana Burkart <dburk...@apple.com>
+
+ Merge r169448
+
+ 2014-05-29 Alexey Proskuryakov <a...@apple.com>
+
+ [Mac] Always use plug-in sandbox with sandboxed clients
+ https://bugs.webkit.org/show_bug.cgi?id=133358
+ <rdar://problem/15637695>
+
+ Reviewed by Anders Carlsson.
+
+ * PluginProcess/mac/PluginProcessMac.mm: (WebKit::PluginProcess::initializeSandbox):
+ Refuse to start if parent process is sandboxed, and plug-in process is not going to be.
+ None of this should run in normal case, because there are also checks on UI process side.
+
+ * Shared/Plugins/PluginModuleInfo.h:
+ * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
+ (WebKit::NetscapePluginModule::getPluginInfo):
+ Added a member to PluginModuleInfo, telling whether the plug-in has a sandbox profile.
+
+ * Shared/Plugins/Netscape/mac/PluginInformationMac.mm:
+ (WebKit::getPlatformPluginModuleInformation): Use the new PluginModuleInfo member,
+ we no longer need to check the file system here.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+ * Shared/mac/SandboxUtilities.h: Added.
+ * Shared/mac/SandboxUtilities.cpp: Added. (WebKit::processIsSandboxed):
+ This code is simple, but include magic is not. Moved it to a separate file to
+ avoid repeating.
+
+ * UIProcess/API/C/mac/WKContextPrivateMac.mm: Removed an unused include.
+
+ * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
+ (WebKit::PluginInfoStore::shouldUsePlugin): Don't use unsandboxed plug-ins in
+ sandboxed applications.
+
+ * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+ (WebKit::PluginProcessProxy::platformGetLaunchOptions): Don't ever pass disable-sandbox
+ from sandboxed processes.
+
+ * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
+ (WebKit::XPCServiceInitializerDelegate::isClientSandboxed):
+ Use the new shared code in SandboxUtilities.h.
+
2014-07-19 Lucas Forschler <lforsch...@apple.com>
Merge r169448
Modified: branches/safari-537.78-branch/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm 2014-07-22 23:25:48 UTC (rev 171369)
@@ -36,6 +36,7 @@
#import "PluginProcessShim.h"
#import "PluginSandboxProfile.h"
#import "SandboxInitializationParameters.h"
+#import "SandboxUtilities.h"
#import <CoreAudio/AudioHardware.h>
#import <WebCore/LocalizedStrings.h>
#import <WebKitSystemInterface.h>
@@ -456,12 +457,32 @@
void PluginProcess::initializeSandbox(const ChildProcessInitializationParameters& parameters, SandboxInitializationParameters& sandboxParameters)
{
- if (parameters.extraInitializationData.get("disable-sandbox") == "1")
+ // PluginProcess may already be sandboxed if its parent process was sandboxed, and launched a child process instead of an XPC service.
+ // This is generally not expected, however we currently always spawn a child process to create a MIME type preferences file.
+ if (processIsSandboxed(getpid())) {
+ RELEASE_ASSERT(!parameters.connectionIdentifier.xpcConnection);
+ RELEASE_ASSERT(processIsSandboxed(getppid()));
return;
+ }
+ bool parentIsSandboxed = parameters.connectionIdentifier.xpcConnection && processIsSandboxed(xpc_connection_get_pid(parameters.connectionIdentifier.xpcConnection));
+
+ if (parameters.extraInitializationData.get("disable-sandbox") == "1") {
+ if (parentIsSandboxed) {
+ WTFLogAlways("Sandboxed processes may not disable plug-in sandbox, terminating %s.", parameters.clientIdentifier.utf8().data());
+ exit(EX_OSERR);
+ }
+ return;
+ }
+
String sandboxProfile = pluginSandboxProfile(m_pluginBundleIdentifier);
- if (sandboxProfile.isEmpty())
+ if (sandboxProfile.isEmpty()) {
+ if (parentIsSandboxed) {
+ WTFLogAlways("Sandboxed processes may only use sandboxed plug-ins, terminating %s.", parameters.clientIdentifier.utf8().data());
+ exit(EX_OSERR);
+ }
return;
+ }
sandboxParameters.setSandboxProfile(sandboxProfile);
Modified: branches/safari-537.78-branch/Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h 2014-07-22 23:25:48 UTC (rev 171369)
@@ -50,6 +50,8 @@
virtual bool getExtraInitializationData(HashMap<String, String>& extraInitializationData);
protected:
+ bool isClientSandboxed();
+
xpc_connection_t m_connection;
xpc_object_t m_initializerMessage;
};
Modified: branches/safari-537.78-branch/Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm 2014-07-22 23:25:48 UTC (rev 171369)
@@ -27,6 +27,7 @@
#if HAVE(XPC)
+#import "SandboxUtilities.h"
#import "XPCServiceEntryPoint.h"
extern "C" mach_port_t xpc_dictionary_copy_mach_send(xpc_object_t, const char*);
@@ -64,6 +65,11 @@
return true;
}
+bool XPCServiceInitializerDelegate::isClientSandboxed()
+{
+ return processIsSandboxed(xpc_connection_get_pid(m_connection));
+}
+
} // namespace WebKit
#endif // HAVE(XPC)
Modified: branches/safari-537.78-branch/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm 2014-07-22 23:25:48 UTC (rev 171369)
@@ -29,6 +29,7 @@
#if ENABLE(NETSCAPE_PLUGIN_API)
#import "PluginProcessProxy.h"
+#import "PluginSandboxProfile.h"
#import <WebCore/WebCoreNSStringExtras.h>
#import <wtf/HashSet.h>
#import <wtf/MainThread.h>
@@ -392,7 +393,9 @@
if (!getPluginInfoFromPropertyLists(bundle.get(), plugin) &&
!getPluginInfoFromCarbonResources(bundle.get(), plugin))
return false;
-
+
+ plugin.hasSandboxProfile = pluginHasSandboxProfile(plugin.bundleIdentifier);
+
RetainPtr<CFStringRef> filename = adoptCF(CFURLCopyLastPathComponent(bundleURL.get()));
plugin.info.file = filename.get();
Modified: branches/safari-537.78-branch/Source/WebKit2/Shared/Plugins/Netscape/mac/PluginInformationMac.mm (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/Shared/Plugins/Netscape/mac/PluginInformationMac.mm 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/Shared/Plugins/Netscape/mac/PluginInformationMac.mm 2014-07-22 23:25:48 UTC (rev 171369)
@@ -27,7 +27,6 @@
#import "PluginInformation.h"
#import "PluginModuleInfo.h"
-#import "PluginSandboxProfile.h"
#import "StringUtilities.h"
#import "WebNumber.h"
#import "WebString.h"
@@ -41,7 +40,7 @@
map.set(pluginInformationBundleVersionKey(), WebString::create(plugin.versionString));
map.set(pluginInformationBundleShortVersionKey(), WebString::create(plugin.shortVersionString));
map.set(pluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey(), WebBoolean::create(WKIsPluginUpdateAvailable(nsStringFromWebCoreString(plugin.bundleIdentifier))));
- map.set(pluginInformationHasSandboxProfileKey(), WebBoolean::create(pluginHasSandboxProfile(plugin.bundleIdentifier)));
+ map.set(pluginInformationHasSandboxProfileKey(), WebBoolean::create(plugin.hasSandboxProfile));
}
} // namespace WebKit
Modified: branches/safari-537.78-branch/Source/WebKit2/Shared/Plugins/PluginModuleInfo.h (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/Shared/Plugins/PluginModuleInfo.h 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/Shared/Plugins/PluginModuleInfo.h 2014-07-22 23:25:48 UTC (rev 171369)
@@ -56,6 +56,7 @@
String versionString;
String shortVersionString;
String preferencePanePath;
+ bool hasSandboxProfile;
#endif
};
Copied: branches/safari-537.78-branch/Source/WebKit2/Shared/mac/SandboxUtilities.cpp (from rev 169457, trunk/Source/WebKit2/Shared/mac/SandboxUtilities.cpp) (0 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/Shared/mac/SandboxUtilities.cpp (rev 0)
+++ branches/safari-537.78-branch/Source/WebKit2/Shared/mac/SandboxUtilities.cpp 2014-07-22 23:25:48 UTC (rev 171369)
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2014 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 "SandboxUtilities.h"
+
+#if __has_include(<sandbox/private.h>)
+#import <sandbox/private.h>
+#else
+enum sandbox_filter_type {
+ SANDBOX_FILTER_NONE,
+};
+extern "C"
+int sandbox_check(pid_t, const char *operation, enum sandbox_filter_type, ...);
+#endif
+
+namespace WebKit {
+
+bool processIsSandboxed(pid_t pid)
+{
+ return sandbox_check(pid, nullptr, SANDBOX_FILTER_NONE);
+}
+
+}
Copied: branches/safari-537.78-branch/Source/WebKit2/Shared/mac/SandboxUtilities.h (from rev 169457, trunk/Source/WebKit2/Shared/mac/SandboxUtilities.h) (0 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/Shared/mac/SandboxUtilities.h (rev 0)
+++ branches/safari-537.78-branch/Source/WebKit2/Shared/mac/SandboxUtilities.h 2014-07-22 23:25:48 UTC (rev 171369)
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 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 SandboxUtilities_h
+#define SandboxUtilities_h
+
+#include <sys/types.h>
+
+namespace WebKit {
+
+bool processIsSandboxed(pid_t);
+
+}
+
+#endif // SandboxUtilities_h
Modified: branches/safari-537.78-branch/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm 2014-07-22 23:25:48 UTC (rev 171369)
@@ -30,7 +30,6 @@
#import "ImmutableDictionary.h"
#import "PluginInfoStore.h"
#import "PluginInformation.h"
-#import "PluginSandboxProfile.h"
#import "StringUtilities.h"
#import "WKAPICast.h"
#import "WKPluginInformation.h"
Modified: branches/safari-537.78-branch/Source/WebKit2/UIProcess/Plugins/mac/PluginInfoStoreMac.mm (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/UIProcess/Plugins/mac/PluginInfoStoreMac.mm 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/UIProcess/Plugins/mac/PluginInfoStoreMac.mm 2014-07-22 23:25:48 UTC (rev 171369)
@@ -28,11 +28,14 @@
#if ENABLE(NETSCAPE_PLUGIN_API)
+#import "Logging.h"
#import "NetscapePluginModule.h"
+#import "SandboxUtilities.h"
#import "WebKitSystemInterface.h"
#import <WebCore/WebCoreNSStringExtras.h>
#import <wtf/HashSet.h>
#import <wtf/RetainPtr.h>
+#import <wtf/text/CString.h>
using namespace WebCore;
@@ -101,9 +104,16 @@
}
}
- if (plugin.bundleIdentifier == "com.apple.java.JavaAppletPlugin")
+ if (plugin.bundleIdentifier == "com.apple.java.JavaAppletPlugin") {
+ LOG(Plugins, "Ignoring com.apple.java.JavaAppletPlugin");
return false;
+ }
+ if (processIsSandboxed(getpid()) && !plugin.hasSandboxProfile) {
+ LOG(Plugins, "Ignoring unsandboxed plug-in %s", plugin.bundleIdentifier.utf8().data());
+ return false;
+ }
+
return true;
}
Modified: branches/safari-537.78-branch/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm 2014-07-22 23:25:48 UTC (rev 171369)
@@ -32,6 +32,7 @@
#import "EnvironmentVariables.h"
#import "PluginProcessCreationParameters.h"
#import "PluginProcessMessages.h"
+#import "SandboxUtilities.h"
#import "WebKitSystemInterface.h"
#import <WebCore/FileSystem.h>
#import <WebCore/KURL.h>
@@ -147,9 +148,12 @@
launchOptions.executableHeap = PluginProcessProxy::pluginNeedsExecutableHeap(pluginProcessAttributes.moduleInfo);
launchOptions.extraInitializationData.add("plugin-path", pluginProcessAttributes.moduleInfo.path);
- // FIXME: Don't allow this if the UI process is sandboxed.
- if (pluginProcessAttributes.sandboxPolicy == PluginProcessSandboxPolicyUnsandboxed)
- launchOptions.extraInitializationData.add("disable-sandbox", "1");
+ if (pluginProcessAttributes.sandboxPolicy == PluginProcessSandboxPolicyUnsandboxed) {
+ if (!processIsSandboxed(getpid()))
+ launchOptions.extraInitializationData.add("disable-sandbox", "1");
+ else
+ WTFLogAlways("Main process is sandboxed, ignoring plug-in sandbox policy");
+ }
#if HAVE(XPC)
launchOptions.useXPC = shouldUseXPC();
Modified: branches/safari-537.78-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (171368 => 171369)
--- branches/safari-537.78-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2014-07-22 22:32:40 UTC (rev 171368)
+++ branches/safari-537.78-branch/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2014-07-22 23:25:48 UTC (rev 171369)
@@ -1166,6 +1166,8 @@
E18E6918169B667B009B6670 /* SecItemShimProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = E18E6914169B667B009B6670 /* SecItemShimProxyMessages.h */; };
E19582D3153CBFD700B60875 /* PDFKitImports.h in Headers */ = {isa = PBXBuildFile; fileRef = E19582D2153CBFD700B60875 /* PDFKitImports.h */; };
E19582D6153CC05400B60875 /* PDFKitImports.mm in Sources */ = {isa = PBXBuildFile; fileRef = E19582D4153CC05300B60875 /* PDFKitImports.mm */; };
+ E19BDA8A193686A400B97F57 /* SandboxUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E19BDA88193686A400B97F57 /* SandboxUtilities.h */; };
+ E19BDA8B19368D4600B97F57 /* SandboxUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E19BDA87193686A400B97F57 /* SandboxUtilities.cpp */; };
E19BDA86193665E300B97F57 /* com.apple.appstore.CodeRedeemerNetscapePlugin.sb in Copy Plug-in Sandbox Profiles */ = {isa = PBXBuildFile; fileRef = E19BDA8419365F4B00B97F57 /* com.apple.appstore.CodeRedeemerNetscapePlugin.sb */; };
E199875E142C045400BB2DE7 /* SimplePDFPlugin.mm in Sources */ = {isa = PBXBuildFile; fileRef = E199875C142BFC9700BB2DE7 /* SimplePDFPlugin.mm */; };
E1A31732134CEA6C007C9A4F /* AttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = E1A31731134CEA6C007C9A4F /* AttributedString.h */; };
@@ -2699,6 +2701,8 @@
E19582D2153CBFD700B60875 /* PDFKitImports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFKitImports.h; sourceTree = "<group>"; };
E19582D4153CC05300B60875 /* PDFKitImports.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PDFKitImports.mm; sourceTree = "<group>"; };
E1967E37150AB5E200C73169 /* com.apple.WebProcess.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.WebProcess.sb; sourceTree = "<group>"; };
+ E19BDA87193686A400B97F57 /* SandboxUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SandboxUtilities.cpp; sourceTree = "<group>"; };
+ E19BDA88193686A400B97F57 /* SandboxUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SandboxUtilities.h; sourceTree = "<group>"; };
E19BDA8419365F4B00B97F57 /* com.apple.appstore.CodeRedeemerNetscapePlugin.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.appstore.CodeRedeemerNetscapePlugin.sb; sourceTree = "<group>"; };
E199875A142BF9B800BB2DE7 /* SimplePDFPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SimplePDFPlugin.h; path = PDF/SimplePDFPlugin.h; sourceTree = "<group>"; };
E199875C142BFC9700BB2DE7 /* SimplePDFPlugin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SimplePDFPlugin.mm; path = PDF/SimplePDFPlugin.mm; sourceTree = "<group>"; };
@@ -4368,6 +4372,8 @@
1AAB4AA91296F1540023952F /* SandboxExtensionMac.mm */,
E1E552C216AE065E004ED653 /* SandboxInitialiationParametersMac.mm */,
51D1304F1382EAC000351EDD /* SecItemRequestData.cpp */,
+ E19BDA87193686A400B97F57 /* SandboxUtilities.cpp */,
+ E19BDA88193686A400B97F57 /* SandboxUtilities.h */,
51D130501382EAC000351EDD /* SecItemRequestData.h */,
51D130511382EAC000351EDD /* SecItemResponseData.cpp */,
51D130521382EAC000351EDD /* SecItemResponseData.h */,
@@ -5492,6 +5498,7 @@
BC2D021712AC41CB00E732A3 /* SameDocumentNavigationType.h in Headers */,
1AAB4A8D1296F0A20023952F /* SandboxExtension.h in Headers */,
E1E552C516AE065F004ED653 /* SandboxInitializationParameters.h in Headers */,
+ E19BDA8A193686A400B97F57 /* SandboxUtilities.h in Headers */,
51D130541382EAC000351EDD /* SecItemRequestData.h in Headers */,
1A588B33174AAE0B00ACF472 /* KeyedCodingValue.h in Headers */,
51D130561382EAC000351EDD /* SecItemResponseData.h in Headers */,
@@ -6645,6 +6652,7 @@
BC33E0D212408E8600360F3F /* InjectedBundleRangeHandle.cpp in Sources */,
BC14DF78120B5B7900826C0C /* InjectedBundleScriptWorld.cpp in Sources */,
1AE49A4A11FFA8CE0048B464 /* JSNPMethod.cpp in Sources */,
+ E19BDA8B19368D4600B97F57 /* SandboxUtilities.cpp in Sources */,
1AE4987911FF7FAA0048B464 /* JSNPObject.cpp in Sources */,
BCE0937714FB128C001138D9 /* LayerHostingContext.mm in Sources */,
7CD622771739D863005BD7FF /* PluginSandboxProfile.mm in Sources */,