Title: [201637] trunk/Source/WebCore
- Revision
- 201637
- Author
- beid...@apple.com
- Date
- 2016-06-02 22:40:40 -0700 (Thu, 02 Jun 2016)
Log Message
Fix AtomicString regression caused by r201603.
https://bugs.webkit.org/show_bug.cgi?id=158338
Reviewed by Chris Dumez.
No new tests (Refactor, plus already caught by existing test configs).
* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::crossThreadData): Re-introduce the cross thread data concept,
but more modern and clean this time.
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::isolatedCopy): Deleted.
* platform/network/ResourceResponseBase.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (201636 => 201637)
--- trunk/Source/WebCore/ChangeLog 2016-06-03 05:38:44 UTC (rev 201636)
+++ trunk/Source/WebCore/ChangeLog 2016-06-03 05:40:40 UTC (rev 201637)
@@ -1,3 +1,22 @@
+2016-06-02 Brady Eidson <beid...@apple.com>
+
+ Fix AtomicString regression caused by r201603.
+ https://bugs.webkit.org/show_bug.cgi?id=158338
+
+ Reviewed by Chris Dumez.
+
+ No new tests (Refactor, plus already caught by existing test configs).
+
+ * loader/WorkerThreadableLoader.cpp:
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
+
+ * platform/network/ResourceResponseBase.cpp:
+ (WebCore::ResourceResponseBase::crossThreadData): Re-introduce the cross thread data concept,
+ but more modern and clean this time.
+ (WebCore::ResourceResponseBase::fromCrossThreadData):
+ (WebCore::ResourceResponseBase::isolatedCopy): Deleted.
+ * platform/network/ResourceResponseBase.h:
+
2016-06-02 Chris Dumez <cdu...@apple.com>
Drop BlobRegistryContext class as it is no longer needed
Modified: trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp (201636 => 201637)
--- trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp 2016-06-03 05:38:44 UTC (rev 201636)
+++ trunk/Source/WebCore/loader/WorkerThreadableLoader.cpp 2016-06-03 05:40:40 UTC (rev 201637)
@@ -162,9 +162,9 @@
void WorkerThreadableLoader::MainThreadBridge::didReceiveResponse(unsigned long identifier, const ResourceResponse& response)
{
Ref<ThreadableLoaderClientWrapper> protectedWorkerClientWrapper = *m_workerClientWrapper;
- m_loaderProxy.postTaskForModeToWorkerGlobalScope([protectedWorkerClientWrapper = WTFMove(protectedWorkerClientWrapper), identifier, response = response.isolatedCopy()] (ScriptExecutionContext& context) mutable {
+ m_loaderProxy.postTaskForModeToWorkerGlobalScope([protectedWorkerClientWrapper = WTFMove(protectedWorkerClientWrapper), identifier, responseData = response.crossThreadData()] (ScriptExecutionContext& context) mutable {
ASSERT_UNUSED(context, context.isWorkerGlobalScope());
- protectedWorkerClientWrapper->didReceiveResponse(identifier, response);
+ protectedWorkerClientWrapper->didReceiveResponse(identifier, ResourceResponse::fromCrossThreadData(WTFMove(responseData)));
}, m_taskMode);
}
Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp (201636 => 201637)
--- trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp 2016-06-03 05:38:44 UTC (rev 201636)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.cpp 2016-06-03 05:40:40 UTC (rev 201637)
@@ -63,23 +63,42 @@
{
}
-ResourceResponse ResourceResponseBase::isolatedCopy() const
+std::unique_ptr<ResourceResponseBase::CrossThreadData> ResourceResponseBase::crossThreadData() const
{
+ auto data = ""
+
+ data->url = ""
+ data->mimeType = mimeType().isolatedCopy();
+ data->expectedContentLength = expectedContentLength();
+ data->textEncodingName = textEncodingName().isolatedCopy();
+
+ data->httpStatusCode = httpStatusCode();
+ data->httpStatusText = httpStatusText().isolatedCopy();
+ data->httpVersion = httpVersion().isolatedCopy();
+
+ data->httpHeaderFields = httpHeaderFields().isolatedCopy();
+ data->resourceLoadTiming = m_resourceLoadTiming.isolatedCopy();
+ data->type = m_type;
+
+ return data;
+}
+
+ResourceResponse ResourceResponseBase::fromCrossThreadData(std::unique_ptr<CrossThreadData>&& data)
+{
ResourceResponse response;
- response.setURL(url().isolatedCopy());
- response.setMimeType(mimeType().isolatedCopy());
- response.setExpectedContentLength(expectedContentLength());
- response.setTextEncodingName(textEncodingName().isolatedCopy());
+ response.setURL(data->url);
+ response.setMimeType(data->mimeType);
+ response.setExpectedContentLength(data->expectedContentLength);
+ response.setTextEncodingName(data->textEncodingName);
- response.setHTTPStatusCode(httpStatusCode());
- response.setHTTPStatusText(httpStatusText().isolatedCopy());
- response.setHTTPVersion(httpVersion().isolatedCopy());
+ response.setHTTPStatusCode(data->httpStatusCode);
+ response.setHTTPStatusText(data->httpStatusText);
+ response.setHTTPVersion(data->httpVersion);
- response.lazyInit(AllFields);
- response.m_httpHeaderFields = httpHeaderFields().isolatedCopy();
- response.m_resourceLoadTiming = m_resourceLoadTiming.isolatedCopy();
- response.m_type = m_type;
+ response.m_httpHeaderFields = WTFMove(data->httpHeaderFields);
+ response.m_resourceLoadTiming = data->resourceLoadTiming;
+ response.m_type = data->type;
return response;
}
Modified: trunk/Source/WebCore/platform/network/ResourceResponseBase.h (201636 => 201637)
--- trunk/Source/WebCore/platform/network/ResourceResponseBase.h 2016-06-03 05:38:44 UTC (rev 201636)
+++ trunk/Source/WebCore/platform/network/ResourceResponseBase.h 2016-06-03 05:40:40 UTC (rev 201637)
@@ -45,8 +45,24 @@
class ResourceResponseBase {
WTF_MAKE_FAST_ALLOCATED;
public:
- ResourceResponse isolatedCopy() const;
+ enum class Type;
+ struct CrossThreadData {
+ URL url;
+ String mimeType;
+ long long expectedContentLength;
+ String textEncodingName;
+ int httpStatusCode;
+ String httpStatusText;
+ String httpVersion;
+ HTTPHeaderMap httpHeaderFields;
+ ResourceLoadTiming resourceLoadTiming;
+ Type type;
+ };
+
+ std::unique_ptr<CrossThreadData> crossThreadData() const;
+ static ResourceResponse fromCrossThreadData(std::unique_ptr<CrossThreadData>&&);
+
bool isNull() const { return m_isNull; }
WEBCORE_EXPORT bool isHTTP() const;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes