+2015-07-09 Darin Adler <darin@apple.com>
+
+ REGRESSION (r182866): repeated prompts for password on internal Apple website using workers
+ https://bugs.webkit.org/show_bug.cgi?id=146769
+
+ Reviewed by Sam Weinig.
+
+ Not sure how to make a regression test for this. Sure would be nice to have one though.
+
+ * loader/ThreadableLoader.cpp:
+ (WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): Added. Calls through to the
+ base class copy constructor to copy data members of the base class (the lack of this was
+ the bug). Also initializes all the data members of this class.
+ (WebCore::ThreadableLoaderOptions::isolatedCopy): Changed to call the constructor above.
+
+ * loader/ThreadableLoader.h: Added new constructor.
+
2015-07-09 Chris Fleizach <cfleizach@apple.com>
AX: VoiceOver cannot get to any content in Yahoo Mail messages table
{
}
+ThreadableLoaderOptions::ThreadableLoaderOptions(const ResourceLoaderOptions& baseOptions, PreflightPolicy preflightPolicy, CrossOriginRequestPolicy crossOriginRequestPolicy, RefPtr<SecurityOrigin>&& securityOrigin, String&& initiator)
+ : ResourceLoaderOptions(baseOptions)
+ , preflightPolicy(preflightPolicy)
+ , crossOriginRequestPolicy(crossOriginRequestPolicy)
+ , securityOrigin(WTF::move(securityOrigin))
+ , initiator(WTF::move(initiator))
+{
+}
+
std::unique_ptr<ThreadableLoaderOptions> ThreadableLoaderOptions::isolatedCopy() const
{
- std::unique_ptr<ThreadableLoaderOptions> copy = std::make_unique<ThreadableLoaderOptions>();
- copy->preflightPolicy = preflightPolicy;
- copy->crossOriginRequestPolicy = crossOriginRequestPolicy;
+ RefPtr<SecurityOrigin> securityOriginCopy;
if (securityOrigin)
- copy->securityOrigin = securityOrigin->isolatedCopy();
- copy->initiator = initiator.isolatedCopy();
- return copy;
+ securityOriginCopy = securityOrigin->isolatedCopy();
+ return std::make_unique<ThreadableLoaderOptions>(*this, preflightPolicy, crossOriginRequestPolicy,
+ WTF::move(securityOriginCopy), initiator.isolatedCopy());
}
PassRefPtr<ThreadableLoader> ThreadableLoader::create(ScriptExecutionContext* context, ThreadableLoaderClient* client, const ResourceRequest& request, const ThreadableLoaderOptions& options)
PreventPreflight
};
- struct ThreadableLoaderOptions : public ResourceLoaderOptions {
+ struct ThreadableLoaderOptions : ResourceLoaderOptions {
ThreadableLoaderOptions();
+ ThreadableLoaderOptions(const ResourceLoaderOptions&, PreflightPolicy, CrossOriginRequestPolicy, RefPtr<SecurityOrigin>&&, String&& initiator);
~ThreadableLoaderOptions();
std::unique_ptr<ThreadableLoaderOptions> isolatedCopy() const;