Diff
Modified: trunk/Source/WebKit/ChangeLog (225825 => 225826)
--- trunk/Source/WebKit/ChangeLog 2017-12-13 01:13:30 UTC (rev 225825)
+++ trunk/Source/WebKit/ChangeLog 2017-12-13 01:18:20 UTC (rev 225826)
@@ -1,3 +1,33 @@
+2017-12-12 Alex Christensen <achristen...@webkit.org>
+
+ Modernize WebsiteDataStoreParameters and SandboxExtension::Handle decoding
+ https://bugs.webkit.org/show_bug.cgi?id=180621
+
+ Reviewed by Youenn Fablet.
+
+ * NetworkProcess/NetworkProcessCreationParameters.cpp:
+ (WebKit::NetworkProcessCreationParameters::decode):
+ * NetworkProcess/NetworkResourceLoadParameters.cpp:
+ (WebKit::NetworkResourceLoadParameters::decode):
+ * Shared/LoadParameters.cpp:
+ (WebKit::LoadParameters::decode):
+ * Shared/SandboxExtension.h:
+ (WebKit::decode):
+ (WebKit::SandboxExtension::Handle::decode): Deleted.
+ * Shared/Storage/StorageProcessCreationParameters.cpp:
+ (WebKit::StorageProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebsiteDataStoreParameters.cpp:
+ (WebKit::WebsiteDataStoreParameters::decode):
+ * Shared/WebsiteDataStoreParameters.h:
+ * Shared/mac/SandboxExtensionMac.mm:
+ (WebKit::SandboxExtension::Handle::decode):
+ (WebKit::SandboxExtension::HandleArray::HandleArray):
+ (WebKit::SandboxExtension::HandleArray::encode const):
+ (WebKit::SandboxExtension::HandleArray::decode):
+ (WebKit::SandboxExtension::SandboxExtension):
+
2017-12-12 John Wilander <wilan...@apple.com>
Dispatch resource load statistics telemetry on the main thread
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (225825 => 225826)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2017-12-13 01:13:30 UTC (rev 225825)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2017-12-13 01:18:20 UTC (rev 225826)
@@ -124,12 +124,22 @@
return false;
if (!decoder.decode(result.cacheStoragePerOriginQuota))
return false;
- if (!decoder.decode(result.cacheStorageDirectoryExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> cacheStorageDirectoryExtensionHandle;
+ decoder >> cacheStorageDirectoryExtensionHandle;
+ if (!cacheStorageDirectoryExtensionHandle)
return false;
+ result.cacheStorageDirectoryExtensionHandle = WTFMove(*cacheStorageDirectoryExtensionHandle);
+
if (!decoder.decode(result.diskCacheDirectory))
return false;
- if (!decoder.decode(result.diskCacheDirectoryExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> diskCacheDirectoryExtensionHandle;
+ decoder >> diskCacheDirectoryExtensionHandle;
+ if (!diskCacheDirectoryExtensionHandle)
return false;
+ result.diskCacheDirectoryExtensionHandle = WTFMove(*diskCacheDirectoryExtensionHandle);
+
if (!decoder.decode(result.shouldEnableNetworkCache))
return false;
if (!decoder.decode(result.shouldEnableNetworkCacheEfficacyLogging))
@@ -143,12 +153,23 @@
return false;
#endif
#if PLATFORM(IOS)
- if (!decoder.decode(result.cookieStorageDirectoryExtensionHandle))
+ std::optional<SandboxExtension::Handle> cookieStorageDirectoryExtensionHandle;
+ decoder >> cookieStorageDirectoryExtensionHandle;
+ if (!cookieStorageDirectoryExtensionHandle)
return false;
- if (!decoder.decode(result.containerCachesDirectoryExtensionHandle))
+ result.cookieStorageDirectoryExtensionHandle = WTFMove(*cookieStorageDirectoryExtensionHandle);
+
+ std::optional<SandboxExtension::Handle> containerCachesDirectoryExtensionHandle;
+ decoder >> containerCachesDirectoryExtensionHandle;
+ if (!containerCachesDirectoryExtensionHandle)
return false;
- if (!decoder.decode(result.parentBundleDirectoryExtensionHandle))
+ result.containerCachesDirectoryExtensionHandle = WTFMove(*containerCachesDirectoryExtensionHandle);
+
+ std::optional<SandboxExtension::Handle> parentBundleDirectoryExtensionHandle;
+ decoder >> parentBundleDirectoryExtensionHandle;
+ if (!parentBundleDirectoryExtensionHandle)
return false;
+ result.parentBundleDirectoryExtensionHandle = WTFMove(*parentBundleDirectoryExtensionHandle);
#endif
if (!decoder.decode(result.shouldSuppressMemoryPressureHandler))
return false;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp (225825 => 225826)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp 2017-12-13 01:13:30 UTC (rev 225825)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp 2017-12-13 01:18:20 UTC (rev 225826)
@@ -134,10 +134,11 @@
}
if (result.request.url().isLocalFile()) {
- SandboxExtension::Handle resourceSandboxExtensionHandle;
- if (!decoder.decode(resourceSandboxExtensionHandle))
+ std::optional<SandboxExtension::Handle> resourceSandboxExtensionHandle;
+ decoder >> resourceSandboxExtensionHandle;
+ if (!resourceSandboxExtensionHandle)
return false;
- result.resourceSandboxExtension = SandboxExtension::create(resourceSandboxExtensionHandle);
+ result.resourceSandboxExtension = SandboxExtension::create(WTFMove(*resourceSandboxExtensionHandle));
}
if (!decoder.decodeEnum(result.contentSniffingPolicy))
Modified: trunk/Source/WebKit/Shared/LoadParameters.cpp (225825 => 225826)
--- trunk/Source/WebKit/Shared/LoadParameters.cpp 2017-12-13 01:13:30 UTC (rev 225825)
+++ trunk/Source/WebKit/Shared/LoadParameters.cpp 2017-12-13 01:18:20 UTC (rev 225826)
@@ -72,8 +72,11 @@
data.request.setHTTPBody(WTFMove(formData));
}
- if (!decoder.decode(data.sandboxExtensionHandle))
+ std::optional<SandboxExtension::Handle> sandboxExtensionHandle;
+ decoder >> sandboxExtensionHandle;
+ if (!sandboxExtensionHandle)
return false;
+ data.sandboxExtensionHandle = WTFMove(*sandboxExtensionHandle);
if (!decoder.decode(data.data))
return false;
Modified: trunk/Source/WebKit/Shared/SandboxExtension.h (225825 => 225826)
--- trunk/Source/WebKit/Shared/SandboxExtension.h 2017-12-13 01:13:30 UTC (rev 225825)
+++ trunk/Source/WebKit/Shared/SandboxExtension.h 2017-12-13 01:18:20 UTC (rev 225826)
@@ -23,8 +23,7 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef SandboxExtension_h
-#define SandboxExtension_h
+#pragma once
#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
@@ -55,13 +54,15 @@
Handle();
#if ENABLE(SANDBOX_EXTENSIONS)
Handle(Handle&&);
+ Handle& operator=(Handle&&);
#else
Handle(Handle&&) = default;
+ Handle& operator=(Handle&&) = default;
#endif
~Handle();
void encode(IPC::Encoder&) const;
- static bool decode(IPC::Decoder&, Handle&);
+ static std::optional<Handle> decode(IPC::Decoder&);
private:
friend class SandboxExtension;
@@ -86,7 +87,7 @@
private:
#if ENABLE(SANDBOX_EXTENSIONS)
std::unique_ptr<Handle[]> m_data;
- size_t m_size;
+ size_t m_size { 0 };
#else
Handle m_emptyHandle;
#endif
@@ -111,7 +112,7 @@
#if ENABLE(SANDBOX_EXTENSIONS)
mutable std::unique_ptr<SandboxExtensionImpl> m_sandboxExtension;
- size_t m_useCount;
+ size_t m_useCount { 0 };
#endif
};
@@ -119,7 +120,7 @@
inline SandboxExtension::Handle::Handle() { }
inline SandboxExtension::Handle::~Handle() { }
inline void SandboxExtension::Handle::encode(IPC::Encoder&) const { }
-inline bool SandboxExtension::Handle::decode(IPC::Decoder&, Handle&) { return true; }
+inline std::optional<SandboxExtension::Handle> SandboxExtension::Handle::decode(IPC::Decoder&) { return {{ }}; }
inline SandboxExtension::HandleArray::HandleArray() { }
inline SandboxExtension::HandleArray::~HandleArray() { }
inline void SandboxExtension::HandleArray::allocate(size_t) { }
@@ -149,6 +150,3 @@
#endif
} // namespace WebKit
-
-
-#endif // SandboxExtension_h
Modified: trunk/Source/WebKit/Shared/Storage/StorageProcessCreationParameters.cpp (225825 => 225826)
--- trunk/Source/WebKit/Shared/Storage/StorageProcessCreationParameters.cpp 2017-12-13 01:13:30 UTC (rev 225825)
+++ trunk/Source/WebKit/Shared/Storage/StorageProcessCreationParameters.cpp 2017-12-13 01:18:20 UTC (rev 225826)
@@ -52,14 +52,22 @@
#if ENABLE(INDEXED_DATABASE)
if (!decoder.decode(result.indexedDatabaseDirectory))
return false;
- if (!decoder.decode(result.indexedDatabaseDirectoryExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> indexedDatabaseDirectoryExtensionHandle;
+ decoder >> indexedDatabaseDirectoryExtensionHandle;
+ if (!indexedDatabaseDirectoryExtensionHandle)
return false;
+ result.indexedDatabaseDirectoryExtensionHandle = WTFMove(*indexedDatabaseDirectoryExtensionHandle);
#endif
#if ENABLE(SERVICE_WORKER)
if (!decoder.decode(result.serviceWorkerRegistrationDirectory))
return false;
- if (!decoder.decode(result.serviceWorkerRegistrationDirectoryExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> serviceWorkerRegistrationDirectoryExtensionHandle;
+ decoder >> serviceWorkerRegistrationDirectoryExtensionHandle;
+ if (!serviceWorkerRegistrationDirectoryExtensionHandle)
return false;
+ result.serviceWorkerRegistrationDirectoryExtensionHandle = WTFMove(*serviceWorkerRegistrationDirectoryExtensionHandle);
#endif
return true;
Modified: trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp (225825 => 225826)
--- trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp 2017-12-13 01:13:30 UTC (rev 225825)
+++ trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp 2017-12-13 01:18:20 UTC (rev 225826)
@@ -151,8 +151,13 @@
{
if (!decoder.decode(parameters.injectedBundlePath))
return false;
- if (!decoder.decode(parameters.injectedBundlePathExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> injectedBundlePathExtensionHandle;
+ decoder >> injectedBundlePathExtensionHandle;
+ if (!injectedBundlePathExtensionHandle)
return false;
+ parameters.injectedBundlePathExtensionHandle = WTFMove(*injectedBundlePathExtensionHandle);
+
if (!decoder.decode(parameters.additionalSandboxExtensionHandles))
return false;
if (!decoder.decode(parameters.initializationUserData))
@@ -161,31 +166,64 @@
return false;
if (!decoder.decode(parameters.applicationCacheFlatFileSubdirectoryName))
return false;
- if (!decoder.decode(parameters.applicationCacheDirectoryExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> applicationCacheDirectoryExtensionHandle;
+ decoder >> applicationCacheDirectoryExtensionHandle;
+ if (!applicationCacheDirectoryExtensionHandle)
return false;
+ parameters.applicationCacheDirectoryExtensionHandle = WTFMove(*applicationCacheDirectoryExtensionHandle);
+
if (!decoder.decode(parameters.webSQLDatabaseDirectory))
return false;
- if (!decoder.decode(parameters.webSQLDatabaseDirectoryExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> webSQLDatabaseDirectoryExtensionHandle;
+ decoder >> webSQLDatabaseDirectoryExtensionHandle;
+ if (!webSQLDatabaseDirectoryExtensionHandle)
return false;
+ parameters.webSQLDatabaseDirectoryExtensionHandle = WTFMove(*webSQLDatabaseDirectoryExtensionHandle);
+
if (!decoder.decode(parameters.mediaCacheDirectory))
return false;
- if (!decoder.decode(parameters.mediaCacheDirectoryExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> mediaCacheDirectoryExtensionHandle;
+ decoder >> mediaCacheDirectoryExtensionHandle;
+ if (!mediaCacheDirectoryExtensionHandle)
return false;
+ parameters.mediaCacheDirectoryExtensionHandle = WTFMove(*mediaCacheDirectoryExtensionHandle);
+
if (!decoder.decode(parameters._javascript_ConfigurationDirectory))
return false;
- if (!decoder.decode(parameters._javascript_ConfigurationDirectoryExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> _javascript_ConfigurationDirectoryExtensionHandle;
+ decoder >> _javascript_ConfigurationDirectoryExtensionHandle;
+ if (!_javascript_ConfigurationDirectoryExtensionHandle)
return false;
+ parameters._javascript_ConfigurationDirectoryExtensionHandle = WTFMove(*_javascript_ConfigurationDirectoryExtensionHandle);
+
#if PLATFORM(MAC)
if (!decoder.decode(parameters.uiProcessCookieStorageIdentifier))
return false;
#endif
#if PLATFORM(IOS)
- if (!decoder.decode(parameters.cookieStorageDirectoryExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> cookieStorageDirectoryExtensionHandle;
+ decoder >> cookieStorageDirectoryExtensionHandle;
+ if (!cookieStorageDirectoryExtensionHandle)
return false;
- if (!decoder.decode(parameters.containerCachesDirectoryExtensionHandle))
+ parameters.cookieStorageDirectoryExtensionHandle = WTFMove(*cookieStorageDirectoryExtensionHandle);
+
+ std::optional<SandboxExtension::Handle> containerCachesDirectoryExtensionHandle;
+ decoder >> containerCachesDirectoryExtensionHandle;
+ if (!containerCachesDirectoryExtensionHandle)
return false;
- if (!decoder.decode(parameters.containerTemporaryDirectoryExtensionHandle))
+ parameters.containerCachesDirectoryExtensionHandle = WTFMove(*containerCachesDirectoryExtensionHandle);
+
+ std::optional<SandboxExtension::Handle> containerTemporaryDirectoryExtensionHandle;
+ decoder >> containerTemporaryDirectoryExtensionHandle;
+ if (!containerTemporaryDirectoryExtensionHandle)
return false;
+ parameters.containerTemporaryDirectoryExtensionHandle = WTFMove(*containerTemporaryDirectoryExtensionHandle);
+
#endif
if (!decoder.decode(parameters.mediaKeyStorageDirectory))
return false;
@@ -193,11 +231,21 @@
return false;
if (!decoder.decode(parameters.webKitLoggingChannels))
return false;
- if (!decoder.decode(parameters.mediaKeyStorageDirectoryExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> mediaKeyStorageDirectoryExtensionHandle;
+ decoder >> mediaKeyStorageDirectoryExtensionHandle;
+ if (!mediaKeyStorageDirectoryExtensionHandle)
return false;
+ parameters.mediaKeyStorageDirectoryExtensionHandle = WTFMove(*mediaKeyStorageDirectoryExtensionHandle);
+
#if ENABLE(MEDIA_STREAM)
- if (!decoder.decode(parameters.audioCaptureExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> audioCaptureExtensionHandle;
+ decoder >> audioCaptureExtensionHandle;
+ if (!audioCaptureExtensionHandle)
return false;
+ parameters.audioCaptureExtensionHandle = WTFMove(*audioCaptureExtensionHandle);
+
if (!decoder.decode(parameters.shouldCaptureAudioInUIProcess))
return false;
#endif
@@ -260,8 +308,13 @@
return false;
if (!decoder.decode(parameters.uiProcessBundleResourcePath))
return false;
- if (!decoder.decode(parameters.uiProcessBundleResourcePathExtensionHandle))
+
+ std::optional<SandboxExtension::Handle> uiProcessBundleResourcePathExtensionHandle;
+ decoder >> uiProcessBundleResourcePathExtensionHandle;
+ if (!uiProcessBundleResourcePathExtensionHandle)
return false;
+ parameters.uiProcessBundleResourcePathExtensionHandle = WTFMove(*uiProcessBundleResourcePathExtensionHandle);
+
if (!decoder.decode(parameters.shouldEnableJIT))
return false;
if (!decoder.decode(parameters.shouldEnableFTLJIT))
Modified: trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp (225825 => 225826)
--- trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp 2017-12-13 01:13:30 UTC (rev 225825)
+++ trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp 2017-12-13 01:18:20 UTC (rev 225826)
@@ -46,36 +46,44 @@
encoder << cacheStorageDirectoryExtensionHandle;
}
-bool WebsiteDataStoreParameters::decode(IPC::Decoder& decoder, WebsiteDataStoreParameters& parameters)
+std::optional<WebsiteDataStoreParameters> WebsiteDataStoreParameters::decode(IPC::Decoder& decoder)
{
std::optional<NetworkSessionCreationParameters> networkSessionParameters;
decoder >> networkSessionParameters;
if (!networkSessionParameters)
- return false;
- parameters.networkSessionParameters = WTFMove(*networkSessionParameters);
+ return std::nullopt;
- if (!decoder.decode(parameters.uiProcessCookieStorageIdentifier))
- return false;
+ std::optional<Vector<uint8_t>> uiProcessCookieStorageIdentifier;
+ decoder >> uiProcessCookieStorageIdentifier;
+ if (!uiProcessCookieStorageIdentifier)
+ return std::nullopt;
- if (!decoder.decode(parameters.cookieStoragePathExtensionHandle))
- return false;
+ std::optional<SandboxExtension::Handle> cookieStoragePathExtensionHandle;
+ decoder >> cookieStoragePathExtensionHandle;
+ if (!cookieStoragePathExtensionHandle)
+ return std::nullopt;
std::optional<Vector<WebCore::Cookie>> pendingCookies;
decoder >> pendingCookies;
if (!pendingCookies)
- return false;
- parameters.pendingCookies = WTFMove(*pendingCookies);
+ return std::nullopt;
- if (!decoder.decode(parameters.cacheStorageDirectory))
- return false;
+ std::optional<String> cacheStorageDirectory;
+ decoder >> cacheStorageDirectory;
+ if (!cacheStorageDirectory)
+ return std::nullopt;
- if (!decoder.decode(parameters.cacheStoragePerOriginQuota))
- return false;
+ std::optional<uint64_t> cacheStoragePerOriginQuota;
+ decoder >> cacheStoragePerOriginQuota;
+ if (!cacheStoragePerOriginQuota)
+ return std::nullopt;
- if (!decoder.decode(parameters.cacheStorageDirectoryExtensionHandle))
- return false;
-
- return true;
+ std::optional<SandboxExtension::Handle> cacheStorageDirectoryExtensionHandle;
+ decoder >> cacheStorageDirectoryExtensionHandle;
+ if (!cacheStorageDirectoryExtensionHandle)
+ return std::nullopt;
+
+ return {{ WTFMove(*uiProcessCookieStorageIdentifier), WTFMove(*cookieStoragePathExtensionHandle), WTFMove(*pendingCookies), WTFMove(*cacheStorageDirectory), WTFMove(*cacheStoragePerOriginQuota), WTFMove(*cacheStorageDirectoryExtensionHandle), WTFMove(*networkSessionParameters)}};
}
WebsiteDataStoreParameters WebsiteDataStoreParameters::legacyPrivateSessionParameters()
Modified: trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h (225825 => 225826)
--- trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h 2017-12-13 01:13:30 UTC (rev 225825)
+++ trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h 2017-12-13 01:18:20 UTC (rev 225826)
@@ -42,11 +42,12 @@
struct WebsiteDataStoreParameters {
WebsiteDataStoreParameters() = default;
WebsiteDataStoreParameters(WebsiteDataStoreParameters&&) = default;
+ WebsiteDataStoreParameters& operator=(WebsiteDataStoreParameters&&) = default;
~WebsiteDataStoreParameters();
static WebsiteDataStoreParameters legacyPrivateSessionParameters();
void encode(IPC::Encoder&) const;
- static bool decode(IPC::Decoder&, WebsiteDataStoreParameters&);
+ static std::optional<WebsiteDataStoreParameters> decode(IPC::Decoder&);
Vector<uint8_t> uiProcessCookieStorageIdentifier;
SandboxExtension::Handle cookieStoragePathExtensionHandle;
Modified: trunk/Source/WebKit/Shared/mac/SandboxExtensionMac.mm (225825 => 225826)
--- trunk/Source/WebKit/Shared/mac/SandboxExtensionMac.mm 2017-12-13 01:13:30 UTC (rev 225825)
+++ trunk/Source/WebKit/Shared/mac/SandboxExtensionMac.mm 2017-12-13 01:18:20 UTC (rev 225826)
@@ -111,6 +111,7 @@
}
SandboxExtension::Handle::Handle(Handle&&) = default;
+SandboxExtension::Handle& SandboxExtension::Handle::operator=(Handle&&) = default;
SandboxExtension::Handle::~Handle()
{
@@ -135,23 +136,21 @@
m_sandboxExtension = 0;
}
-bool SandboxExtension::Handle::decode(IPC::Decoder& decoder, Handle& result)
+auto SandboxExtension::Handle::decode(IPC::Decoder& decoder) -> std::optional<Handle>
{
- ASSERT(!result.m_sandboxExtension);
-
IPC::DataReference dataReference;
if (!decoder.decode(dataReference))
- return false;
+ return std::nullopt;
if (dataReference.isEmpty())
- return true;
+ return {{ }};
- result.m_sandboxExtension = std::make_unique<SandboxExtensionImpl>(reinterpret_cast<const char*>(dataReference.data()), dataReference.size());
- return true;
+ Handle handle;
+ handle.m_sandboxExtension = std::make_unique<SandboxExtensionImpl>(reinterpret_cast<const char*>(dataReference.data()), dataReference.size());
+ return WTFMove(handle);
}
SandboxExtension::HandleArray::HandleArray()
- : m_size(0)
{
}
@@ -192,7 +191,6 @@
encoder << static_cast<uint64_t>(size());
for (size_t i = 0; i < m_size; ++i)
encoder << m_data[i];
-
}
bool SandboxExtension::HandleArray::decode(IPC::Decoder& decoder, SandboxExtension::HandleArray& handles)
@@ -202,8 +200,11 @@
return false;
handles.allocate(size);
for (size_t i = 0; i < size; i++) {
- if (!decoder.decode(handles[i]))
+ std::optional<SandboxExtension::Handle> handle;
+ decoder >> handle;
+ if (!handle)
return false;
+ handles[i] = WTFMove(*handle);
}
return true;
}
@@ -362,7 +363,6 @@
SandboxExtension::SandboxExtension(const Handle& handle)
: m_sandboxExtension(WTFMove(handle.m_sandboxExtension))
- , m_useCount(0)
{
}