Title: [225926] trunk/Source/WebKit
Revision
225926
Author
[email protected]
Date
2017-12-14 14:08:53 -0800 (Thu, 14 Dec 2017)

Log Message

Use move semantics for SandboxExtension::Handle
https://bugs.webkit.org/show_bug.cgi?id=180792

Reviewed by Andy Estes.
        
Passing them around as const SandboxExtension::Handle& is wrong because ownership is transferred and they are consumed.
It only works now because their contents are mutable, which isn't a good use of mutable.

* NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::decideDestinationWithSuggestedFilename):
(WebKit::Download::didDecideDownloadDestination):
* NetworkProcess/Downloads/Download.h:
* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::continueDecidePendingDownloadDestination):
(WebKit::DownloadManager::resumeDownload):
* NetworkProcess/Downloads/DownloadManager.h:
* NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:
(WebKit::Download::resume):
* NetworkProcess/Downloads/ios/DownloadIOS.mm:
(WebKit::Download::resume):
* NetworkProcess/Downloads/mac/DownloadMac.mm:
(WebKit::Download::resume):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerFileBlobURL):
(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::setPendingDownloadLocation):
* NetworkProcess/NetworkDataTaskBlob.cpp:
(WebKit::NetworkDataTaskBlob::setPendingDownloadLocation):
* NetworkProcess/NetworkDataTaskBlob.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::resumeDownload):
(WebKit::NetworkProcess::continueDecidePendingDownloadDestination):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::decode):
* NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::setPendingDownloadLocation):
* Shared/SandboxExtension.h:
(WebKit::SandboxExtension::create):
* Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::start):
(WebKit::WebMemorySampler::initializeSandboxedLogFile):
* Shared/WebMemorySampler.h:
* Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::create):
* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::grantSandboxExtensionsForBlobs):
* StorageProcess/StorageProcess.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::performDragOperation):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dragEntered):
(WebKit::WebPageProxy::dragUpdated):
(WebKit::WebPageProxy::dragExited):
(WebKit::WebPageProxy::performDragOperation):
(WebKit::WebPageProxy::performDragControllerAction):
* UIProcess/WebPageProxy.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::create):
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp:
(WebKit::MediaDeviceSandboxExtensions::operator[]):
(WebKit::MediaDeviceSandboxExtensions::operator[] const): Deleted.
* WebProcess/MediaStream/MediaDeviceSandboxExtensions.h:
* WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::grantUserMediaDeviceSandboxExtensions):
* WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::getPathnamesForType):
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::goToItem):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::reload):
(WebKit::WebPage::performDragControllerAction):
(WebKit::WebPage::grantUserMediaDeviceSandboxExtensions):
(WebKit::WebPage::SandboxExtensionTracker::beginLoad):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::startMemorySampler):
* WebProcess/WebProcess.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (225925 => 225926)


--- trunk/Source/WebKit/ChangeLog	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/ChangeLog	2017-12-14 22:08:53 UTC (rev 225926)
@@ -1,5 +1,92 @@
 2017-12-14  Alex Christensen  <[email protected]>
 
+        Use move semantics for SandboxExtension::Handle
+        https://bugs.webkit.org/show_bug.cgi?id=180792
+
+        Reviewed by Andy Estes.
+        
+        Passing them around as const SandboxExtension::Handle& is wrong because ownership is transferred and they are consumed.
+        It only works now because their contents are mutable, which isn't a good use of mutable.
+
+        * NetworkProcess/Downloads/Download.cpp:
+        (WebKit::Download::decideDestinationWithSuggestedFilename):
+        (WebKit::Download::didDecideDownloadDestination):
+        * NetworkProcess/Downloads/Download.h:
+        * NetworkProcess/Downloads/DownloadManager.cpp:
+        (WebKit::DownloadManager::continueDecidePendingDownloadDestination):
+        (WebKit::DownloadManager::resumeDownload):
+        * NetworkProcess/Downloads/DownloadManager.h:
+        * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:
+        (WebKit::Download::resume):
+        * NetworkProcess/Downloads/ios/DownloadIOS.mm:
+        (WebKit::Download::resume):
+        * NetworkProcess/Downloads/mac/DownloadMac.mm:
+        (WebKit::Download::resume):
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::registerFileBlobURL):
+        (WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):
+        * NetworkProcess/NetworkConnectionToWebProcess.h:
+        * NetworkProcess/NetworkDataTask.h:
+        (WebKit::NetworkDataTask::setPendingDownloadLocation):
+        * NetworkProcess/NetworkDataTaskBlob.cpp:
+        (WebKit::NetworkDataTaskBlob::setPendingDownloadLocation):
+        * NetworkProcess/NetworkDataTaskBlob.h:
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::resumeDownload):
+        (WebKit::NetworkProcess::continueDecidePendingDownloadDestination):
+        * NetworkProcess/NetworkProcess.h:
+        * NetworkProcess/NetworkResourceLoadParameters.cpp:
+        (WebKit::NetworkResourceLoadParameters::decode):
+        * NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
+        * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+        (WebKit::NetworkDataTaskCocoa::setPendingDownloadLocation):
+        * Shared/SandboxExtension.h:
+        (WebKit::SandboxExtension::create):
+        * Shared/WebMemorySampler.cpp:
+        (WebKit::WebMemorySampler::start):
+        (WebKit::WebMemorySampler::initializeSandboxedLogFile):
+        * Shared/WebMemorySampler.h:
+        * Shared/mac/SandboxExtensionMac.mm:
+        (WebKit::SandboxExtension::create):
+        * StorageProcess/StorageProcess.cpp:
+        (WebKit::StorageProcess::grantSandboxExtensionsForBlobs):
+        * StorageProcess/StorageProcess.h:
+        * UIProcess/Cocoa/WebViewImpl.mm:
+        (WebKit::WebViewImpl::performDragOperation):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::dragEntered):
+        (WebKit::WebPageProxy::dragUpdated):
+        (WebKit::WebPageProxy::dragExited):
+        (WebKit::WebPageProxy::performDragOperation):
+        (WebKit::WebPageProxy::performDragControllerAction):
+        * UIProcess/WebPageProxy.h:
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::create):
+        * WebProcess/InjectedBundle/InjectedBundle.h:
+        * WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp:
+        (WebKit::MediaDeviceSandboxExtensions::operator[]):
+        (WebKit::MediaDeviceSandboxExtensions::operator[] const): Deleted.
+        * WebProcess/MediaStream/MediaDeviceSandboxExtensions.h:
+        * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
+        (WebKit::UserMediaPermissionRequestManager::grantUserMediaDeviceSandboxExtensions):
+        * WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
+        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
+        (WebKit::WebPlatformStrategies::getPathnamesForType):
+        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
+        (WebKit::WebBackForwardListProxy::goToItem):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::loadRequest):
+        (WebKit::WebPage::reload):
+        (WebKit::WebPage::performDragControllerAction):
+        (WebKit::WebPage::grantUserMediaDeviceSandboxExtensions):
+        (WebKit::WebPage::SandboxExtensionTracker::beginLoad):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::startMemorySampler):
+        * WebProcess/WebProcess.h:
+
+2017-12-14  Alex Christensen  <[email protected]>
+
         Make WebsitePolicies a proper class with getters and setters
         https://bugs.webkit.org/show_bug.cgi?id=180788
 

Modified: trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/Download.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -210,7 +210,7 @@
     if (!sendSync(Messages::DownloadProxy::DecideDestinationWithSuggestedFilename(filename, m_responseMIMEType), Messages::DownloadProxy::DecideDestinationWithSuggestedFilename::Reply(destination, allowOverwrite, sandboxExtensionHandle)))
         return String();
 
-    m_sandboxExtension = SandboxExtension::create(sandboxExtensionHandle);
+    m_sandboxExtension = SandboxExtension::create(WTFMove(sandboxExtensionHandle));
     if (m_sandboxExtension)
         m_sandboxExtension->consume();
 
@@ -222,10 +222,10 @@
     send(Messages::DownloadProxy::DecideDestinationWithSuggestedFilenameAsync(downloadID(), suggestedFilename));
 }
 
-void Download::didDecideDownloadDestination(const String& destinationPath, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite)
+void Download::didDecideDownloadDestination(const String& destinationPath, SandboxExtension::Handle&& sandboxExtensionHandle, bool allowOverwrite)
 {
     ASSERT(!m_sandboxExtension);
-    m_sandboxExtension = SandboxExtension::create(sandboxExtensionHandle);
+    m_sandboxExtension = SandboxExtension::create(WTFMove(sandboxExtensionHandle));
     if (m_sandboxExtension)
         m_sandboxExtension->consume();
 

Modified: trunk/Source/WebKit/NetworkProcess/Downloads/Download.h (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/Downloads/Download.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/Download.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -90,7 +90,7 @@
     void start();
     void startWithHandle(WebCore::ResourceHandle*, const WebCore::ResourceResponse&);
 #endif
-    void resume(const IPC::DataReference& resumeData, const String& path, const SandboxExtension::Handle&);
+    void resume(const IPC::DataReference& resumeData, const String& path, SandboxExtension::Handle&&);
     void cancel();
 
     DownloadID downloadID() const { return m_downloadID; }
@@ -108,7 +108,7 @@
     bool shouldDecodeSourceDataOfMIMEType(const String& mimeType);
     String decideDestinationWithSuggestedFilename(const String& filename, bool& allowOverwrite);
     void decideDestinationWithSuggestedFilenameAsync(const String&);
-    void didDecideDownloadDestination(const String& destinationPath, const SandboxExtension::Handle&, bool allowOverwrite);
+    void didDecideDownloadDestination(const String& destinationPath, SandboxExtension::Handle&&, bool allowOverwrite);
     void continueDidReceiveResponse();
     void platformDidFinish();
 #endif

Modified: trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -122,7 +122,7 @@
 #endif
 }
 
-void DownloadManager::continueDecidePendingDownloadDestination(DownloadID downloadID, String destination, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite)
+void DownloadManager::continueDecidePendingDownloadDestination(DownloadID downloadID, String destination, SandboxExtension::Handle&& sandboxExtensionHandle, bool allowOverwrite)
 {
 #if USE(NETWORK_SESSION)
     if (m_downloadsWaitingForDestination.contains(downloadID)) {
@@ -133,7 +133,7 @@
         ASSERT(completionHandler);
         ASSERT(m_pendingDownloads.contains(downloadID));
 
-        networkDataTask->setPendingDownloadLocation(destination, sandboxExtensionHandle, allowOverwrite);
+        networkDataTask->setPendingDownloadLocation(destination, WTFMove(sandboxExtensionHandle), allowOverwrite);
         completionHandler(PolicyAction::Download);
         if (networkDataTask->state() == NetworkDataTask::State::Canceling || networkDataTask->state() == NetworkDataTask::State::Completed)
             return;
@@ -148,11 +148,11 @@
     }
 #else
     if (auto* waitingDownload = download(downloadID))
-        waitingDownload->didDecideDownloadDestination(destination, sandboxExtensionHandle, allowOverwrite);
+        waitingDownload->didDecideDownloadDestination(destination, WTFMove(sandboxExtensionHandle), allowOverwrite);
 #endif
 }
 
-void DownloadManager::resumeDownload(PAL::SessionID sessionID, DownloadID downloadID, const IPC::DataReference& resumeData, const String& path, const SandboxExtension::Handle& sandboxExtensionHandle)
+void DownloadManager::resumeDownload(PAL::SessionID sessionID, DownloadID downloadID, const IPC::DataReference& resumeData, const String& path, SandboxExtension::Handle&& sandboxExtensionHandle)
 {
 #if USE(NETWORK_SESSION) && !PLATFORM(COCOA)
     notImplemented();
@@ -164,7 +164,7 @@
     auto download = std::make_unique<Download>(*this, downloadID, ResourceRequest());
 #endif
 
-    download->resume(resumeData, path, sandboxExtensionHandle);
+    download->resume(resumeData, path, WTFMove(sandboxExtensionHandle));
     ASSERT(!m_downloads.contains(downloadID));
     m_downloads.add(downloadID, WTFMove(download));
 #endif

Modified: trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.h (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/DownloadManager.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -84,9 +84,9 @@
     void willDecidePendingDownloadDestination(NetworkDataTask&, ResponseCompletionHandler&&);
 #endif
     void convertNetworkLoadToDownload(DownloadID, std::unique_ptr<NetworkLoad>&&, Vector<RefPtr<WebCore::BlobDataFileReference>>&&, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
-    void continueDecidePendingDownloadDestination(DownloadID, String destination, const SandboxExtension::Handle&, bool allowOverwrite);
+    void continueDecidePendingDownloadDestination(DownloadID, String destination, SandboxExtension::Handle&&, bool allowOverwrite);
 
-    void resumeDownload(PAL::SessionID, DownloadID, const IPC::DataReference& resumeData, const String& path, const SandboxExtension::Handle&);
+    void resumeDownload(PAL::SessionID, DownloadID, const IPC::DataReference& resumeData, const String& path, SandboxExtension::Handle&&);
 
     void cancelDownload(DownloadID);
     

Modified: trunk/Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/cocoa/DownloadCocoa.mm	2017-12-14 22:08:53 UTC (rev 225926)
@@ -35,9 +35,9 @@
 
 namespace WebKit {
 
-void Download::resume(const IPC::DataReference& resumeData, const String& path, const SandboxExtension::Handle& sandboxExtensionHandle)
+void Download::resume(const IPC::DataReference& resumeData, const String& path, SandboxExtension::Handle&& sandboxExtensionHandle)
 {
-    m_sandboxExtension = SandboxExtension::create(sandboxExtensionHandle);
+    m_sandboxExtension = SandboxExtension::create(WTFMove(sandboxExtensionHandle));
     if (m_sandboxExtension)
         m_sandboxExtension->consume();
 

Modified: trunk/Source/WebKit/NetworkProcess/Downloads/ios/DownloadIOS.mm (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/Downloads/ios/DownloadIOS.mm	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/ios/DownloadIOS.mm	2017-12-14 22:08:53 UTC (rev 225926)
@@ -127,7 +127,7 @@
     notImplemented();
 }
 
-void Download::resume(const IPC::DataReference&, const String&, const SandboxExtension::Handle&)
+void Download::resume(const IPC::DataReference&, const String&, SandboxExtension::Handle&&)
 {
     notImplemented();
 }

Modified: trunk/Source/WebKit/NetworkProcess/Downloads/mac/DownloadMac.mm (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/Downloads/mac/DownloadMac.mm	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/Downloads/mac/DownloadMac.mm	2017-12-14 22:08:53 UTC (rev 225926)
@@ -83,12 +83,12 @@
     [m_nsURLDownload setDeletesFileUponFailure:NO];
 }
 
-void Download::resume(const IPC::DataReference& resumeData, const String& path, const SandboxExtension::Handle& sandboxExtensionHandle)
+void Download::resume(const IPC::DataReference& resumeData, const String& path, SandboxExtension::Handle&& sandboxExtensionHandle)
 {
     ASSERT(!m_nsURLDownload);
     ASSERT(!m_delegate);
 
-    m_sandboxExtension = SandboxExtension::create(sandboxExtensionHandle);
+    m_sandboxExtension = SandboxExtension::create(WTFMove(sandboxExtensionHandle));
     if (m_sandboxExtension)
         m_sandboxExtension->consume();
 

Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -377,9 +377,9 @@
     WebCore::deleteCookie(storageSession(sessionID), url, cookieName);
 }
 
-void NetworkConnectionToWebProcess::registerFileBlobURL(const URL& url, const String& path, const SandboxExtension::Handle& extensionHandle, const String& contentType)
+void NetworkConnectionToWebProcess::registerFileBlobURL(const URL& url, const String& path, SandboxExtension::Handle&& extensionHandle, const String& contentType)
 {
-    RefPtr<SandboxExtension> extension = SandboxExtension::create(extensionHandle);
+    RefPtr<SandboxExtension> extension = SandboxExtension::create(WTFMove(extensionHandle));
 
     NetworkBlobRegistry::singleton().registerFileBlobURL(this, url, path, WTFMove(extension), contentType);
 }
@@ -394,13 +394,13 @@
     NetworkBlobRegistry::singleton().registerBlobURL(this, url, srcURL);
 }
 
-void NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob(const Vector<String>& filePaths, const SandboxExtension::HandleArray& handles)
+void NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob(const Vector<String>& filePaths, SandboxExtension::HandleArray&& handles)
 {
 #if ENABLE(SANDBOX_EXTENSIONS)
     ASSERT(filePaths.size() == handles.size());
 
     for (size_t i = 0; i < filePaths.size(); ++i)
-        m_blobDataFileReferences.add(filePaths[i], BlobDataFileReferenceWithSandboxExtension::create(filePaths[i], SandboxExtension::create(handles[i])));
+        m_blobDataFileReferences.add(filePaths[i], BlobDataFileReferenceWithSandboxExtension::create(filePaths[i], SandboxExtension::create(WTFMove(handles[i]))));
 #else
     for (size_t i = 0; i < filePaths.size(); ++i)
         m_blobDataFileReferences.add(filePaths[i], BlobDataFileReferenceWithSandboxExtension::create(filePaths[i], nullptr));

Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -108,10 +108,10 @@
     void getRawCookies(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, Vector<WebCore::Cookie>&);
     void deleteCookie(PAL::SessionID, const WebCore::URL&, const String& cookieName);
 
-    void registerFileBlobURL(const WebCore::URL&, const String& path, const SandboxExtension::Handle&, const String& contentType);
+    void registerFileBlobURL(const WebCore::URL&, const String& path, SandboxExtension::Handle&&, const String& contentType);
     void registerBlobURL(const WebCore::URL&, Vector<WebCore::BlobPart>&&, const String& contentType);
     void registerBlobURLFromURL(const WebCore::URL&, const WebCore::URL& srcURL);
-    void preregisterSandboxExtensionsForOptionallyFileBackedBlob(const Vector<String>& fileBackedPath, const SandboxExtension::HandleArray&);
+    void preregisterSandboxExtensionsForOptionallyFileBackedBlob(const Vector<String>& fileBackedPath, SandboxExtension::HandleArray&&);
     void registerBlobURLOptionallyFileBacked(const WebCore::URL&, const WebCore::URL& srcURL, const String& fileBackedPath, const String& contentType);
     void registerBlobURLForSlice(const WebCore::URL&, const WebCore::URL& srcURL, int64_t start, int64_t end);
     void blobSize(const WebCore::URL&, uint64_t& resultSize);

Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTask.h (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/NetworkDataTask.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTask.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -119,7 +119,7 @@
         m_pendingDownload = &pendingDownload;
     }
 
-    virtual void setPendingDownloadLocation(const String& filename, const SandboxExtension::Handle&, bool /*allowOverwrite*/) { m_pendingDownloadLocation = filename; }
+    virtual void setPendingDownloadLocation(const String& filename, SandboxExtension::Handle&&, bool /*allowOverwrite*/) { m_pendingDownloadLocation = filename; }
     const String& pendingDownloadLocation() const { return m_pendingDownloadLocation; }
     bool isDownload() const { return !!m_pendingDownloadID.downloadID(); }
 

Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -439,12 +439,12 @@
     read();
 }
 
-void NetworkDataTaskBlob::setPendingDownloadLocation(const String& filename, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite)
+void NetworkDataTaskBlob::setPendingDownloadLocation(const String& filename, SandboxExtension::Handle&& sandboxExtensionHandle, bool allowOverwrite)
 {
-    NetworkDataTask::setPendingDownloadLocation(filename, sandboxExtensionHandle, allowOverwrite);
+    NetworkDataTask::setPendingDownloadLocation(filename, { }, allowOverwrite);
 
     ASSERT(!m_sandboxExtension);
-    m_sandboxExtension = SandboxExtension::create(sandboxExtensionHandle);
+    m_sandboxExtension = SandboxExtension::create(WTFMove(sandboxExtensionHandle));
     if (m_sandboxExtension)
         m_sandboxExtension->consume();
 

Modified: trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.h (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/NetworkDataTaskBlob.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -64,7 +64,7 @@
     void invalidateAndCancel() override;
     NetworkDataTask::State state() const override { return m_state; }
 
-    void setPendingDownloadLocation(const String&, const SandboxExtension::Handle&, bool /*allowOverwrite*/) override;
+    void setPendingDownloadLocation(const String&, SandboxExtension::Handle&&, bool /*allowOverwrite*/) override;
     String suggestedFilename() const override;
 
     // FileStreamClient methods.

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -518,9 +518,9 @@
     downloadManager().startDownload(nullptr, sessionID, downloadID, request, suggestedFilename);
 }
 
-void NetworkProcess::resumeDownload(PAL::SessionID sessionID, DownloadID downloadID, const IPC::DataReference& resumeData, const String& path, const WebKit::SandboxExtension::Handle& sandboxExtensionHandle)
+void NetworkProcess::resumeDownload(PAL::SessionID sessionID, DownloadID downloadID, const IPC::DataReference& resumeData, const String& path, WebKit::SandboxExtension::Handle&& sandboxExtensionHandle)
 {
-    downloadManager().resumeDownload(sessionID, downloadID, resumeData, path, sandboxExtensionHandle);
+    downloadManager().resumeDownload(sessionID, downloadID, resumeData, path, WTFMove(sandboxExtensionHandle));
 }
 
 void NetworkProcess::cancelDownload(DownloadID downloadID)
@@ -594,12 +594,12 @@
 }
 #endif
 
-void NetworkProcess::continueDecidePendingDownloadDestination(DownloadID downloadID, String destination, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite)
+void NetworkProcess::continueDecidePendingDownloadDestination(DownloadID downloadID, String destination, SandboxExtension::Handle&& sandboxExtensionHandle, bool allowOverwrite)
 {
     if (destination.isEmpty())
         downloadManager().cancelDownload(downloadID);
     else
-        downloadManager().continueDecidePendingDownloadDestination(downloadID, destination, sandboxExtensionHandle, allowOverwrite);
+        downloadManager().continueDecidePendingDownloadDestination(downloadID, destination, WTFMove(sandboxExtensionHandle), allowOverwrite);
 }
 
 void NetworkProcess::setCacheModel(uint32_t cm)

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -200,7 +200,7 @@
     void clearDiskCache(std::chrono::system_clock::time_point modifiedSince, Function<void ()>&& completionHandler);
 
     void downloadRequest(PAL::SessionID, DownloadID, const WebCore::ResourceRequest&, const String& suggestedFilename);
-    void resumeDownload(PAL::SessionID, DownloadID, const IPC::DataReference& resumeData, const String& path, const SandboxExtension::Handle&);
+    void resumeDownload(PAL::SessionID, DownloadID, const IPC::DataReference& resumeData, const String& path, SandboxExtension::Handle&&);
     void cancelDownload(DownloadID);
 #if USE(PROTECTION_SPACE_AUTH_CALLBACK)
     void continueCanAuthenticateAgainstProtectionSpace(uint64_t resourceLoadIdentifier, bool canAuthenticate);
@@ -208,7 +208,7 @@
 #if USE(NETWORK_SESSION)
     void continueWillSendRequest(DownloadID, WebCore::ResourceRequest&&);
 #endif
-    void continueDecidePendingDownloadDestination(DownloadID, String destination, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite);
+    void continueDecidePendingDownloadDestination(DownloadID, String destination, SandboxExtension::Handle&&, bool allowOverwrite);
 
     void setCacheModel(uint32_t);
     void allowSpecificHTTPSCertificateForHost(const WebCore::CertificateInfo&, const String& host);

Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -128,7 +128,7 @@
         if (!decoder.decode(requestBodySandboxExtensionHandles))
             return false;
         for (size_t i = 0; i < requestBodySandboxExtensionHandles.size(); ++i) {
-            if (auto extension = SandboxExtension::create(requestBodySandboxExtensionHandles[i]))
+            if (auto extension = SandboxExtension::create(WTFMove(requestBodySandboxExtensionHandles[i])))
                 result.requestBodySandboxExtensions.append(WTFMove(extension));
         }
     }

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -64,7 +64,7 @@
     void invalidateAndCancel() override { }
     NetworkDataTask::State state() const override;
 
-    void setPendingDownloadLocation(const String&, const SandboxExtension::Handle&, bool /*allowOverwrite*/) override;
+    void setPendingDownloadLocation(const String&, SandboxExtension::Handle&&, bool /*allowOverwrite*/) override;
     String suggestedFilename() const override;
 
     WebCore::NetworkLoadMetrics& networkLoadMetrics() { return m_networkLoadMetrics; }

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2017-12-14 22:08:53 UTC (rev 225926)
@@ -293,12 +293,12 @@
     }
 }
 
-void NetworkDataTaskCocoa::setPendingDownloadLocation(const WTF::String& filename, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite)
+void NetworkDataTaskCocoa::setPendingDownloadLocation(const WTF::String& filename, SandboxExtension::Handle&& sandboxExtensionHandle, bool allowOverwrite)
 {
-    NetworkDataTask::setPendingDownloadLocation(filename, sandboxExtensionHandle, allowOverwrite);
+    NetworkDataTask::setPendingDownloadLocation(filename, { }, allowOverwrite);
 
     ASSERT(!m_sandboxExtension);
-    m_sandboxExtension = SandboxExtension::create(sandboxExtensionHandle);
+    m_sandboxExtension = SandboxExtension::create(WTFMove(sandboxExtensionHandle));
     if (m_sandboxExtension)
         m_sandboxExtension->consume();
 

Modified: trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -95,9 +95,9 @@
     return decodeURLEscapeSequences(m_response.url().lastPathComponent());
 }
 
-void NetworkDataTaskSoup::setPendingDownloadLocation(const String& filename, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite)
+void NetworkDataTaskSoup::setPendingDownloadLocation(const String& filename, SandboxExtension::Handle&& sandboxExtensionHandle, bool allowOverwrite)
 {
-    NetworkDataTask::setPendingDownloadLocation(filename, sandboxExtensionHandle, allowOverwrite);
+    NetworkDataTask::setPendingDownloadLocation(filename, WTFMove(sandboxExtensionHandle), allowOverwrite);
     m_allowOverwriteDownload = allowOverwrite;
 }
 

Modified: trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.h (225925 => 225926)


--- trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -52,7 +52,7 @@
     void invalidateAndCancel() override;
     NetworkDataTask::State state() const override;
 
-    void setPendingDownloadLocation(const String&, const SandboxExtension::Handle&, bool /*allowOverwrite*/) override;
+    void setPendingDownloadLocation(const String&, SandboxExtension::Handle&&, bool /*allowOverwrite*/) override;
     String suggestedFilename() const override;
 
     void timeoutFired();

Modified: trunk/Source/WebKit/Shared/SandboxExtension.h (225925 => 225926)


--- trunk/Source/WebKit/Shared/SandboxExtension.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/Shared/SandboxExtension.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -93,7 +93,7 @@
 #endif
     };
     
-    static RefPtr<SandboxExtension> create(const Handle&);
+    static RefPtr<SandboxExtension> create(Handle&&);
     static bool createHandle(const String& path, Type, Handle&);
     static bool createHandleWithoutResolvingPath(const String& path, Type, Handle&);
     static bool createHandleForReadWriteDirectory(const String& path, Handle&); // Will attempt to create the directory.
@@ -129,7 +129,7 @@
 inline SandboxExtension::Handle& SandboxExtension::HandleArray::operator[](size_t) { return m_emptyHandle; }
 inline void SandboxExtension::HandleArray::encode(IPC::Encoder&) const { }
 inline bool SandboxExtension::HandleArray::decode(IPC::Decoder&, HandleArray&) { return true; }
-inline RefPtr<SandboxExtension> SandboxExtension::create(const Handle&) { return nullptr; }
+inline RefPtr<SandboxExtension> SandboxExtension::create(Handle&&) { return nullptr; }
 inline bool SandboxExtension::createHandle(const String&, Type, Handle&) { return true; }
 inline bool SandboxExtension::createHandleWithoutResolvingPath(const String&, Type, Handle&) { return true; }
 inline bool SandboxExtension::createHandleForReadWriteDirectory(const String&, Handle&) { return true; }

Modified: trunk/Source/WebKit/Shared/WebMemorySampler.cpp (225925 => 225926)


--- trunk/Source/WebKit/Shared/WebMemorySampler.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/Shared/WebMemorySampler.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -70,7 +70,7 @@
     initializeTimers(interval);
 }
 
-void WebMemorySampler::start(const SandboxExtension::Handle& sampleLogFileHandle, const String& sampleLogFilePath, const double interval) 
+void WebMemorySampler::start(SandboxExtension::Handle&& sampleLogFileHandle, const String& sampleLogFilePath, const double interval)
 {
     if (m_isRunning) 
         return;
@@ -81,7 +81,7 @@
         return;
     }
         
-    initializeSandboxedLogFile(sampleLogFileHandle, sampleLogFilePath);
+    initializeSandboxedLogFile(WTFMove(sampleLogFileHandle), sampleLogFilePath);
     initializeTimers(interval);
    
 }
@@ -131,9 +131,9 @@
     writeHeaders();
 }
 
-void WebMemorySampler::initializeSandboxedLogFile(const SandboxExtension::Handle& sampleLogSandboxHandle, const String& sampleLogFilePath)
+void WebMemorySampler::initializeSandboxedLogFile(SandboxExtension::Handle&& sampleLogSandboxHandle, const String& sampleLogFilePath)
 {
-    m_sampleLogSandboxExtension = SandboxExtension::create(sampleLogSandboxHandle);
+    m_sampleLogSandboxExtension = SandboxExtension::create(WTFMove(sampleLogSandboxHandle));
     if (m_sampleLogSandboxExtension)
         m_sampleLogSandboxExtension->consume();
     m_sampleLogFilePath = sampleLogFilePath;

Modified: trunk/Source/WebKit/Shared/WebMemorySampler.h (225925 => 225926)


--- trunk/Source/WebKit/Shared/WebMemorySampler.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/Shared/WebMemorySampler.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -73,7 +73,7 @@
 public:
     static WebMemorySampler* singleton();
     void start(const double interval = 0);
-    void start(const SandboxExtension::Handle&, const String&, const double interval = 0);
+    void start(SandboxExtension::Handle&&, const String&, const double interval = 0);
     void stop();
     bool isRunning() const;
     
@@ -82,7 +82,7 @@
     ~WebMemorySampler();
     
     void initializeTempLogFile();
-    void initializeSandboxedLogFile(const SandboxExtension::Handle&, const String&);
+    void initializeSandboxedLogFile(SandboxExtension::Handle&&, const String&);
     void writeHeaders();
     void initializeTimers(double);
     void sampleTimerFired();

Modified: trunk/Source/WebKit/Shared/mac/SandboxExtensionMac.mm (225925 => 225926)


--- trunk/Source/WebKit/Shared/mac/SandboxExtensionMac.mm	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/Shared/mac/SandboxExtensionMac.mm	2017-12-14 22:08:53 UTC (rev 225926)
@@ -209,7 +209,7 @@
     return true;
 }
 
-RefPtr<SandboxExtension> SandboxExtension::create(const Handle& handle)
+RefPtr<SandboxExtension> SandboxExtension::create(Handle&& handle)
 {
     if (!handle.m_sandboxExtension)
         return nullptr;

Modified: trunk/Source/WebKit/StorageProcess/StorageProcess.cpp (225925 => 225926)


--- trunk/Source/WebKit/StorageProcess/StorageProcess.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/StorageProcess/StorageProcess.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -332,12 +332,12 @@
 }
 
 #if ENABLE(SANDBOX_EXTENSIONS)
-void StorageProcess::grantSandboxExtensionsForBlobs(const Vector<String>& paths, const SandboxExtension::HandleArray& handles)
+void StorageProcess::grantSandboxExtensionsForBlobs(const Vector<String>& paths, SandboxExtension::HandleArray&& handles)
 {
     ASSERT(paths.size() == handles.size());
 
     for (size_t i = 0; i < paths.size(); ++i) {
-        auto result = m_blobTemporaryFileSandboxExtensions.add(paths[i], SandboxExtension::create(handles[i]));
+        auto result = m_blobTemporaryFileSandboxExtensions.add(paths[i], SandboxExtension::create(WTFMove(handles[i])));
         ASSERT_UNUSED(result, result.isNewEntry);
     }
 }

Modified: trunk/Source/WebKit/StorageProcess/StorageProcess.h (225925 => 225926)


--- trunk/Source/WebKit/StorageProcess/StorageProcess.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/StorageProcess/StorageProcess.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -124,7 +124,7 @@
     void deleteWebsiteData(PAL::SessionID, OptionSet<WebsiteDataType> websiteDataTypes, std::chrono::system_clock::time_point modifiedSince, uint64_t callbackID);
     void deleteWebsiteDataForOrigins(PAL::SessionID, OptionSet<WebsiteDataType> websiteDataTypes, const Vector<WebCore::SecurityOriginData>& origins, uint64_t callbackID);
 #if ENABLE(SANDBOX_EXTENSIONS)
-    void grantSandboxExtensionsForBlobs(const Vector<String>& paths, const SandboxExtension::HandleArray&);
+    void grantSandboxExtensionsForBlobs(const Vector<String>& paths, SandboxExtension::HandleArray&&);
     void didGetSandboxExtensionsForBlobFiles(uint64_t requestID, SandboxExtension::HandleArray&&);
 #endif
 #if ENABLE(SERVICE_WORKER)

Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm (225925 => 225926)


--- trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm	2017-12-14 22:08:53 UTC (rev 225926)
@@ -3736,7 +3736,7 @@
 
                         m_page->createSandboxExtensionsIfNeeded(*fileNames, sandboxExtensionHandle, sandboxExtensionForUpload);
                         dragData->setFileNames(*fileNames);
-                        m_page->performDragOperation(*dragData, pasteboardName, sandboxExtensionHandle, sandboxExtensionForUpload);
+                        m_page->performDragOperation(*dragData, pasteboardName, WTFMove(sandboxExtensionHandle), WTFMove(sandboxExtensionForUpload));
                         delete dragData;
                         delete fileNames;
                     }
@@ -3748,7 +3748,7 @@
     }
 #endif
 
-    m_page->performDragOperation(*dragData, draggingInfo.draggingPasteboard.name, sandboxExtensionHandle, sandboxExtensionForUpload);
+    m_page->performDragOperation(*dragData, draggingInfo.draggingPasteboard.name, WTFMove(sandboxExtensionHandle), WTFMove(sandboxExtensionForUpload));
     delete dragData;
 
     return true;

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (225925 => 225926)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -1729,31 +1729,25 @@
 #if ENABLE(DRAG_SUPPORT)
 void WebPageProxy::dragEntered(DragData& dragData, const String& dragStorageName)
 {
-    SandboxExtension::Handle sandboxExtensionHandle;
-    SandboxExtension::HandleArray sandboxExtensionHandleEmptyArray;
-    performDragControllerAction(DragControllerAction::Entered, dragData, dragStorageName, sandboxExtensionHandle, sandboxExtensionHandleEmptyArray);
+    performDragControllerAction(DragControllerAction::Entered, dragData, dragStorageName, { }, { });
 }
 
 void WebPageProxy::dragUpdated(DragData& dragData, const String& dragStorageName)
 {
-    SandboxExtension::Handle sandboxExtensionHandle;
-    SandboxExtension::HandleArray sandboxExtensionHandleEmptyArray;
-    performDragControllerAction(DragControllerAction::Updated, dragData, dragStorageName, sandboxExtensionHandle, sandboxExtensionHandleEmptyArray);
+    performDragControllerAction(DragControllerAction::Updated, dragData, dragStorageName, { }, { });
 }
 
 void WebPageProxy::dragExited(DragData& dragData, const String& dragStorageName)
 {
-    SandboxExtension::Handle sandboxExtensionHandle;
-    SandboxExtension::HandleArray sandboxExtensionHandleEmptyArray;
-    performDragControllerAction(DragControllerAction::Exited, dragData, dragStorageName, sandboxExtensionHandle, sandboxExtensionHandleEmptyArray);
+    performDragControllerAction(DragControllerAction::Exited, dragData, dragStorageName, { }, { });
 }
 
-void WebPageProxy::performDragOperation(DragData& dragData, const String& dragStorageName, const SandboxExtension::Handle& sandboxExtensionHandle, const SandboxExtension::HandleArray& sandboxExtensionsForUpload)
+void WebPageProxy::performDragOperation(DragData& dragData, const String& dragStorageName, SandboxExtension::Handle&& sandboxExtensionHandle, SandboxExtension::HandleArray&& sandboxExtensionsForUpload)
 {
-    performDragControllerAction(DragControllerAction::PerformDragOperation, dragData, dragStorageName, sandboxExtensionHandle, sandboxExtensionsForUpload);
+    performDragControllerAction(DragControllerAction::PerformDragOperation, dragData, dragStorageName, WTFMove(sandboxExtensionHandle), WTFMove(sandboxExtensionsForUpload));
 }
 
-void WebPageProxy::performDragControllerAction(DragControllerAction action, DragData& dragData, const String& dragStorageName, const SandboxExtension::Handle& sandboxExtensionHandle, const SandboxExtension::HandleArray& sandboxExtensionsForUpload)
+void WebPageProxy::performDragControllerAction(DragControllerAction action, DragData& dragData, const String& dragStorageName, SandboxExtension::Handle&& sandboxExtensionHandle, SandboxExtension::HandleArray&& sandboxExtensionsForUpload)
 {
     if (!isValid())
         return;

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (225925 => 225926)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -852,7 +852,7 @@
     void dragEntered(WebCore::DragData&, const String& dragStorageName = String());
     void dragUpdated(WebCore::DragData&, const String& dragStorageName = String());
     void dragExited(WebCore::DragData&, const String& dragStorageName = String());
-    void performDragOperation(WebCore::DragData&, const String& dragStorageName, const SandboxExtension::Handle&, const SandboxExtension::HandleArray&);
+    void performDragOperation(WebCore::DragData&, const String& dragStorageName, SandboxExtension::Handle&&, SandboxExtension::HandleArray&&);
 
     void didPerformDragControllerAction(uint64_t dragOperation, bool mouseIsOverFileInput, unsigned numberOfItemsToBeAccepted, const WebCore::IntRect& insertionRect);
     void dragEnded(const WebCore::IntPoint& clientPosition, const WebCore::IntPoint& globalPosition, uint64_t operation);
@@ -1607,7 +1607,7 @@
 
     void clearLoadDependentCallbacks();
 
-    void performDragControllerAction(DragControllerAction, WebCore::DragData&, const String& dragStorageName, const SandboxExtension::Handle&, const SandboxExtension::HandleArray&);
+    void performDragControllerAction(DragControllerAction, WebCore::DragData&, const String& dragStorageName, SandboxExtension::Handle&&, SandboxExtension::HandleArray&&);
 
     void updateBackingStoreDiscardableState();
 

Modified: trunk/Source/WebKit/UIProcess/gtk/DragAndDropHandler.cpp (225925 => 225926)


--- trunk/Source/WebKit/UIProcess/gtk/DragAndDropHandler.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/UIProcess/gtk/DragAndDropHandler.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -293,9 +293,7 @@
     if (gdk_drag_context_get_selected_action(context) == GDK_ACTION_COPY)
         flags |= WebCore::DragApplicationIsCopyKeyDown;
     DragData dragData(droppingContext->selectionData.ptr(), position, convertWidgetPointToScreenPoint(m_page.viewWidget(), position), gdkDragActionToDragOperation(gdk_drag_context_get_actions(context)), static_cast<WebCore::DragApplicationFlags>(flags));
-    SandboxExtension::Handle handle;
-    SandboxExtension::HandleArray sandboxExtensionForUpload;
-    m_page.performDragOperation(dragData, String(), handle, sandboxExtensionForUpload);
+    m_page.performDragOperation(dragData, String(), { }, { });
     gtk_drag_finish(context, TRUE, FALSE, time);
     return true;
 }

Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (225925 => 225926)


--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2017-12-14 22:08:53 UTC (rev 225926)
@@ -4783,7 +4783,7 @@
         SandboxExtension::Handle sandboxExtensionHandle;
         SandboxExtension::HandleArray sandboxExtensionForUpload;
         retainedSelf->_page->createSandboxExtensionsIfNeeded(filenames, sandboxExtensionHandle, sandboxExtensionForUpload);
-        retainedSelf->_page->performDragOperation(capturedDragData, "data interaction pasteboard", sandboxExtensionHandle, sandboxExtensionForUpload);
+        retainedSelf->_page->performDragOperation(capturedDragData, "data interaction pasteboard", WTFMove(sandboxExtensionHandle), WTFMove(sandboxExtensionForUpload));
 
         retainedSelf->_visibleContentViewSnapshot = [retainedSelf snapshotViewAfterScreenUpdates:NO];
         [retainedSelf setSuppressAssistantSelectionView:YES];

Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -88,11 +88,11 @@
 
 namespace WebKit {
 
-RefPtr<InjectedBundle> InjectedBundle::create(const WebProcessCreationParameters& parameters, API::Object* initializationUserData)
+RefPtr<InjectedBundle> InjectedBundle::create(WebProcessCreationParameters& parameters, API::Object* initializationUserData)
 {
     auto bundle = adoptRef(*new InjectedBundle(parameters));
 
-    bundle->m_sandboxExtension = SandboxExtension::create(parameters.injectedBundlePathExtensionHandle);
+    bundle->m_sandboxExtension = SandboxExtension::create(WTFMove(parameters.injectedBundlePathExtensionHandle));
     if (!bundle->initialize(parameters, initializationUserData))
         return nullptr;
 

Modified: trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.h (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -74,7 +74,7 @@
 
 class InjectedBundle : public API::ObjectImpl<API::Object::Type::Bundle> {
 public:
-    static RefPtr<InjectedBundle> create(const WebProcessCreationParameters&, API::Object* initializationUserData);
+    static RefPtr<InjectedBundle> create(WebProcessCreationParameters&, API::Object* initializationUserData);
 
     ~InjectedBundle();
 

Modified: trunk/Source/WebKit/WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -60,16 +60,9 @@
 {
     ASSERT_WITH_SECURITY_IMPLICATION(m_ids.size() == m_handles.size());
     ASSERT_WITH_SECURITY_IMPLICATION(i < m_ids.size());
-    return { m_ids[i], SandboxExtension::create(m_handles[i]) };
+    return { m_ids[i], SandboxExtension::create(WTFMove(m_handles[i])) };
 }
 
-const std::pair<String, RefPtr<SandboxExtension>> MediaDeviceSandboxExtensions::operator[](size_t i) const
-{
-    ASSERT_WITH_SECURITY_IMPLICATION(m_ids.size() == m_handles.size());
-    ASSERT_WITH_SECURITY_IMPLICATION(i < m_ids.size());
-    return { m_ids[i], SandboxExtension::create(m_handles[i]) };
-}
-
 size_t MediaDeviceSandboxExtensions::size() const
 {
     return m_ids.size();

Modified: trunk/Source/WebKit/WebProcess/MediaStream/MediaDeviceSandboxExtensions.h (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/MediaStream/MediaDeviceSandboxExtensions.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/MediaStream/MediaDeviceSandboxExtensions.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -43,7 +43,6 @@
     MediaDeviceSandboxExtensions(Vector<String> ids, SandboxExtension::HandleArray&& handles);
 
     std::pair<String, RefPtr<SandboxExtension>> operator[](size_t i);
-    const std::pair<String, RefPtr<SandboxExtension>> operator[](size_t i) const;
     size_t size() const;
 
     void encode(IPC::Encoder&) const;

Modified: trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -207,10 +207,10 @@
     request->setDeviceInfo(deviceList, WTFMove(mediaDeviceIdentifierHashSalt), hasPersistentAccess);
 }
 
-void UserMediaPermissionRequestManager::grantUserMediaDeviceSandboxExtensions(const MediaDeviceSandboxExtensions& extensions)
+void UserMediaPermissionRequestManager::grantUserMediaDeviceSandboxExtensions(MediaDeviceSandboxExtensions&& extensions)
 {
     for (size_t i = 0; i < extensions.size(); i++) {
-        auto& extension = extensions[i];
+        const auto& extension = extensions[i];
         extension.second->consume();
         m_userMediaDeviceSandboxExtensions.add(extension.first, extension.second.copyRef());
     }

Modified: trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -52,7 +52,7 @@
     void cancelMediaDevicesEnumeration(WebCore::MediaDevicesEnumerationRequest&);
     void didCompleteMediaDeviceEnumeration(uint64_t, const Vector<WebCore::CaptureDevice>& deviceList, String&& deviceIdentifierHashSalt, bool originHasPersistentAccess);
 
-    void grantUserMediaDeviceSandboxExtensions(const MediaDeviceSandboxExtensions&);
+    void grantUserMediaDeviceSandboxExtensions(MediaDeviceSandboxExtensions&&);
     void revokeUserMediaDeviceSandboxExtensions(const Vector<String>&);
 
 private:

Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -197,7 +197,7 @@
         Messages::WebPasteboardProxy::GetPasteboardPathnamesForType::Reply(pathnames, sandboxExtensionsHandleArray), 0);
     ASSERT(pathnames.size() == sandboxExtensionsHandleArray.size());
     for (size_t i = 0; i < sandboxExtensionsHandleArray.size(); i++) {
-        if (RefPtr<SandboxExtension> extension = SandboxExtension::create(sandboxExtensionsHandleArray[i]))
+        if (RefPtr<SandboxExtension> extension = SandboxExtension::create(WTFMove(sandboxExtensionsHandleArray[i])))
             extension->consumePermanently();
     }
 }

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -166,7 +166,7 @@
 
     SandboxExtension::Handle sandboxExtensionHandle;
     m_page->sendSync(Messages::WebPageProxy::BackForwardGoToItem(historyItemToIDMap().get(item).itemID), Messages::WebPageProxy::BackForwardGoToItem::Reply(sandboxExtensionHandle));
-    m_page->sandboxExtensionTracker().beginLoad(m_page->mainWebFrame(), sandboxExtensionHandle);
+    m_page->sandboxExtensionTracker().beginLoad(m_page->mainWebFrame(), WTFMove(sandboxExtensionHandle));
 }
 
 HistoryItem* WebBackForwardListProxy::itemAtIndex(int itemIndex)

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -1203,13 +1203,13 @@
 }
 #endif
 
-void WebPage::loadRequest(const LoadParameters& loadParameters)
+void WebPage::loadRequest(LoadParameters&& loadParameters)
 {
     SendStopResponsivenessTimer stopper;
 
     m_pendingNavigationID = loadParameters.navigationID;
 
-    m_sandboxExtensionTracker.beginLoad(m_mainFrame.get(), loadParameters.sandboxExtensionHandle);
+    m_sandboxExtensionTracker.beginLoad(m_mainFrame.get(), WTFMove(loadParameters.sandboxExtensionHandle));
 
     // Let the InjectedBundle know we are about to start the load, passing the user data from the UIProcess
     // to all the client to set up any needed state.
@@ -1328,7 +1328,7 @@
     m_page->setDefersLoading(defersLoading);
 }
 
-void WebPage::reload(uint64_t navigationID, uint32_t reloadOptions, const SandboxExtension::Handle& sandboxExtensionHandle)
+void WebPage::reload(uint64_t navigationID, uint32_t reloadOptions, SandboxExtension::Handle&& sandboxExtensionHandle)
 {
     SendStopResponsivenessTimer stopper;
 
@@ -1335,7 +1335,7 @@
     ASSERT(!m_mainFrame->coreFrame()->loader().frameHasLoaded() || !m_pendingNavigationID);
     m_pendingNavigationID = navigationID;
 
-    m_sandboxExtensionTracker.beginLoad(m_mainFrame.get(), sandboxExtensionHandle);
+    m_sandboxExtensionTracker.beginLoad(m_mainFrame.get(), WTFMove(sandboxExtensionHandle));
     corePage()->userInputBridge().reloadFrame(m_mainFrame->coreFrame(), OptionSet<ReloadOption>::fromRaw(reloadOptions));
 }
 
@@ -3316,7 +3316,7 @@
     ASSERT_NOT_REACHED();
 }
 #else
-void WebPage::performDragControllerAction(DragControllerAction action, const WebCore::DragData& dragData, const SandboxExtension::Handle& sandboxExtensionHandle, const SandboxExtension::HandleArray& sandboxExtensionsHandleArray)
+void WebPage::performDragControllerAction(DragControllerAction action, const WebCore::DragData& dragData, SandboxExtension::Handle&& sandboxExtensionHandle, SandboxExtension::HandleArray&& sandboxExtensionsHandleArray)
 {
     if (!m_page) {
         send(Messages::WebPageProxy::DidPerformDragControllerAction(DragOperationNone, false, 0, { }));
@@ -3342,9 +3342,9 @@
     case DragControllerAction::PerformDragOperation: {
         ASSERT(!m_pendingDropSandboxExtension);
 
-        m_pendingDropSandboxExtension = SandboxExtension::create(sandboxExtensionHandle);
+        m_pendingDropSandboxExtension = SandboxExtension::create(WTFMove(sandboxExtensionHandle));
         for (size_t i = 0; i < sandboxExtensionsHandleArray.size(); i++) {
-            if (RefPtr<SandboxExtension> extension = SandboxExtension::create(sandboxExtensionsHandleArray[i]))
+            if (RefPtr<SandboxExtension> extension = SandboxExtension::create(WTFMove(sandboxExtensionsHandleArray[i])))
                 m_pendingDropExtensionsForFileUpload.append(extension);
         }
 
@@ -3613,9 +3613,9 @@
     m_userMediaPermissionRequestManager->didCompleteMediaDeviceEnumeration(userMediaID, devices, WTFMove(deviceIdentifierHashSalt), originHasPersistentAccess);
 }
 #if ENABLE(SANDBOX_EXTENSIONS)
-void WebPage::grantUserMediaDeviceSandboxExtensions(const MediaDeviceSandboxExtensions& extensions)
+void WebPage::grantUserMediaDeviceSandboxExtensions(MediaDeviceSandboxExtensions&& extensions)
 {
-    m_userMediaPermissionRequestManager->grantUserMediaDeviceSandboxExtensions(extensions);
+    m_userMediaPermissionRequestManager->grantUserMediaDeviceSandboxExtensions(WTFMove(extensions));
 }
 
 void WebPage::revokeUserMediaDeviceSandboxExtensions(const Vector<String>& extensionIDs)
@@ -3939,11 +3939,11 @@
     setPendingProvisionalSandboxExtension(WTFMove(pendingDropSandboxExtension));
 }
 
-void WebPage::SandboxExtensionTracker::beginLoad(WebFrame* frame, const SandboxExtension::Handle& handle)
+void WebPage::SandboxExtensionTracker::beginLoad(WebFrame* frame, SandboxExtension::Handle&& handle)
 {
     ASSERT_UNUSED(frame, frame->isMainFrame());
 
-    setPendingProvisionalSandboxExtension(SandboxExtension::create(handle));
+    setPendingProvisionalSandboxExtension(SandboxExtension::create(WTFMove(handle)));
 }
 
 void WebPage::SandboxExtensionTracker::setPendingProvisionalSandboxExtension(RefPtr<SandboxExtension>&& pendingProvisionalSandboxExtension)

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -658,7 +658,7 @@
 
         void invalidate();
 
-        void beginLoad(WebFrame*, const SandboxExtension::Handle& handle);
+        void beginLoad(WebFrame*, SandboxExtension::Handle&&);
         void willPerformLoadDragDestinationAction(RefPtr<SandboxExtension>&& pendingDropSandboxExtension);
         void didStartProvisionalLoad(WebFrame*);
         void didCommitProvisionalLoad(WebFrame*);
@@ -763,7 +763,7 @@
 #endif
 
 #if ENABLE(DRAG_SUPPORT) && !PLATFORM(GTK)
-    void performDragControllerAction(DragControllerAction, const WebCore::DragData&, const SandboxExtension::Handle&, const SandboxExtension::HandleArray&);
+    void performDragControllerAction(DragControllerAction, const WebCore::DragData&, SandboxExtension::Handle&&, SandboxExtension::HandleArray&&);
 #endif
 
 #if ENABLE(DRAG_SUPPORT)
@@ -1111,12 +1111,12 @@
     // Actions
     void tryClose();
     void platformDidReceiveLoadParameters(const LoadParameters&);
-    void loadRequest(const LoadParameters&);
+    void loadRequest(LoadParameters&&);
     void loadData(const LoadParameters&);
     void loadString(const LoadParameters&);
     void loadAlternateHTMLString(const LoadParameters&);
     void navigateToPDFLinkWithSimulatedClick(const String& url, WebCore::IntPoint documentPoint, WebCore::IntPoint screenPoint);
-    void reload(uint64_t navigationID, uint32_t reloadOptions, const SandboxExtension::Handle&);
+    void reload(uint64_t navigationID, uint32_t reloadOptions, SandboxExtension::Handle&&);
     void goForward(uint64_t navigationID, uint64_t);
     void goBack(uint64_t navigationID, uint64_t);
     void goToBackForwardItem(uint64_t navigationID, uint64_t);
@@ -1260,7 +1260,7 @@
 #endif
 
 #if ENABLE(MEDIA_STREAM) && ENABLE(SANDBOX_EXTENSIONS)
-    void grantUserMediaDeviceSandboxExtensions(const MediaDeviceSandboxExtensions&);
+    void grantUserMediaDeviceSandboxExtensions(MediaDeviceSandboxExtensions&&);
     void revokeUserMediaDeviceSandboxExtensions(const Vector<String>&);
 #endif
 

Modified: trunk/Source/WebKit/WebProcess/WebProcess.cpp (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/WebProcess.cpp	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/WebProcess.cpp	2017-12-14 22:08:53 UTC (rev 225926)
@@ -1195,10 +1195,10 @@
     WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility(flag);
 }
     
-void WebProcess::startMemorySampler(const SandboxExtension::Handle& sampleLogFileHandle, const String& sampleLogFilePath, const double interval)
+void WebProcess::startMemorySampler(SandboxExtension::Handle&& sampleLogFileHandle, const String& sampleLogFilePath, const double interval)
 {
 #if ENABLE(MEMORY_SAMPLER)    
-    WebMemorySampler::singleton()->start(sampleLogFileHandle, sampleLogFilePath, interval);
+    WebMemorySampler::singleton()->start(WTFMove(sampleLogFileHandle), sampleLogFilePath, interval);
 #else
     UNUSED_PARAM(sampleLogFileHandle);
     UNUSED_PARAM(sampleLogFilePath);

Modified: trunk/Source/WebKit/WebProcess/WebProcess.h (225925 => 225926)


--- trunk/Source/WebKit/WebProcess/WebProcess.h	2017-12-14 22:07:47 UTC (rev 225925)
+++ trunk/Source/WebKit/WebProcess/WebProcess.h	2017-12-14 22:08:53 UTC (rev 225926)
@@ -282,7 +282,7 @@
 
     void setEnhancedAccessibility(bool);
     
-    void startMemorySampler(const SandboxExtension::Handle&, const String&, const double);
+    void startMemorySampler(SandboxExtension::Handle&&, const String&, const double);
     void stopMemorySampler();
     
     void getWebCoreStatistics(uint64_t callbackID);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to