| Differences between
and this patch
- a/Source/WebCore/ChangeLog +71 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2013-01-14  Marja Hölttä  <marja@chromium.org>
2
3
        Take referrer policy into account when clearing the referrer header
4
        https://bugs.webkit.org/show_bug.cgi?id=86000
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        The referrer should only be cleared when doing a https -> http redirect,
9
        if the policy is "default". Otherwise the referrer should be left intact.
10
11
        In order to do that, added a function for checking the policy in
12
        NetworkingContext, and stored the NetworkingContext in ResourceHandle
13
        (like some ports already did).
14
15
        Test: http/tests/security/referrer-policy-redirect-link.html
16
17
        * loader/FrameNetworkingContext.h:
18
        (WebCore::FrameNetworkingContext::shouldClearReferrerPolicyOnHttpsToHttpRedirect):
19
        (FrameNetworkingContext):
20
        * platform/network/BlobResourceHandle.cpp:
21
        (WebCore::BlobResourceHandle::BlobResourceHandle):
22
        * platform/network/NetworkingContext.h:
23
        (WebCore::NetworkingContext::shouldClearReferrerPolicyOnHttpsToHttpRedirect):
24
        (NetworkingContext):
25
        * platform/network/ResourceHandle.cpp:
26
        (WebCore::ResourceHandle::ResourceHandle):
27
        (WebCore::ResourceHandle::create):
28
        (WebCore::ResourceHandle::context):
29
        (WebCore):
30
        * platform/network/ResourceHandle.h:
31
        (ResourceHandle):
32
        * platform/network/ResourceHandleInternal.h:
33
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
34
        (ResourceHandleInternal):
35
        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
36
        (WebCore::ResourceHandle::start):
37
        (WebCore::ResourceHandle::loadResourceSynchronously):
38
        * platform/network/cf/ResourceHandleCFNet.cpp:
39
        (WebCore::willSendRequest):
40
        (WebCore::ResourceHandle::start):
41
        * platform/network/chromium/ResourceHandle.cpp:
42
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
43
        (WebCore::ResourceHandle::ResourceHandle):
44
        (WebCore::ResourceHandle::create):
45
        (WebCore::ResourceHandle::context):
46
        (WebCore):
47
        (WebCore::ResourceHandle::start):
48
        * platform/network/chromium/ResourceHandleInternal.h:
49
        (WebCore):
50
        (ResourceHandleInternal):
51
        (WebCore::ResourceHandleInternal::context):
52
        * platform/network/curl/ResourceHandleCurl.cpp:
53
        (WebCore::ResourceHandle::start):
54
        (WebCore::ResourceHandle::loadResourceSynchronously):
55
        * platform/network/mac/ResourceHandleMac.mm:
56
        (WebCore::ResourceHandle::start):
57
        (WebCore::ResourceHandle::loadResourceSynchronously):
58
        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
59
        * platform/network/qt/QNetworkReplyHandler.cpp:
60
        (WebCore::QNetworkReplyHandler::redirect):
61
        * platform/network/qt/ResourceHandleQt.cpp:
62
        (WebCore::ResourceHandle::start):
63
        (WebCore::ResourceHandle::loadResourceSynchronously):
64
        * platform/network/soup/ResourceHandleSoup.cpp:
65
        (WebCore::doRedirect):
66
        (WebCore::ResourceHandle::start):
67
        (WebCore::ResourceHandle::loadResourceSynchronously):
68
        * platform/network/win/ResourceHandleWin.cpp:
69
        (WebCore::ResourceHandle::start):
70
        (WebCore::ResourceHandle::loadResourceSynchronously):
71
1
2013-01-11  Antoine Quint  <graouts@apple.com>
72
2013-01-11  Antoine Quint  <graouts@apple.com>
2
73
3
        Web Inspector: Option+Click on Node Expander Doesn't Work the First Time
74
        Web Inspector: Option+Click on Node Expander Doesn't Work the First Time
- a/Source/WebCore/loader/FrameNetworkingContext.h +7 lines
Lines 20-27 a/Source/WebCore/loader/FrameNetworkingContext.h_sec1
20
#ifndef FrameNetworkingContext_h
20
#ifndef FrameNetworkingContext_h
21
#define FrameNetworkingContext_h
21
#define FrameNetworkingContext_h
22
22
23
#include "Document.h"
23
#include "Frame.h"
24
#include "Frame.h"
24
#include "NetworkingContext.h"
25
#include "NetworkingContext.h"
26
#include "ReferrerPolicy.h"
25
27
26
namespace WebCore {
28
namespace WebCore {
27
29
Lines 32-37 public: a/Source/WebCore/loader/FrameNetworkingContext.h_sec2
32
        m_frame = 0;
34
        m_frame = 0;
33
    }
35
    }
34
36
37
    virtual bool shouldClearReferrerPolicyOnHttpsToHttpRedirect() const
38
    {
39
        return m_frame->document()->referrerPolicy() == ReferrerPolicyDefault;
40
    }
41
35
protected:
42
protected:
36
    explicit FrameNetworkingContext(Frame* frame)
43
    explicit FrameNetworkingContext(Frame* frame)
37
        : m_frame(frame)
44
        : m_frame(frame)
- a/Source/WebCore/platform/network/BlobResourceHandle.cpp -3 / +1 lines
Lines 40-46 a/Source/WebCore/platform/network/BlobResourceHandle.cpp_sec1
40
#include "FileSystem.h"
40
#include "FileSystem.h"
41
#include "HTTPParsers.h"
41
#include "HTTPParsers.h"
42
#include "KURL.h"
42
#include "KURL.h"
43
#include "NetworkingContext.h"
44
#include "ResourceError.h"
43
#include "ResourceError.h"
45
#include "ResourceHandleClient.h"
44
#include "ResourceHandleClient.h"
46
#include "ResourceRequest.h"
45
#include "ResourceRequest.h"
Lines 142-148 void BlobResourceHandle::loadResourceSynchronously(PassRefPtr<BlobStorageData> b a/Source/WebCore/platform/network/BlobResourceHandle.cpp_sec2
142
}
141
}
143
142
144
BlobResourceHandle::BlobResourceHandle(PassRefPtr<BlobStorageData> blobData, const ResourceRequest& request, ResourceHandleClient* client, bool async)
143
BlobResourceHandle::BlobResourceHandle(PassRefPtr<BlobStorageData> blobData, const ResourceRequest& request, ResourceHandleClient* client, bool async)
145
    : ResourceHandle(request, client, false, false)
144
    : ResourceHandle(request, client, false, false, 0)
146
    , m_blobData(blobData)
145
    , m_blobData(blobData)
147
    , m_async(async)
146
    , m_async(async)
148
    , m_errorCode(0)
147
    , m_errorCode(0)
Lines 636-639 void BlobResourceHandle::notifyFinish() a/Source/WebCore/platform/network/BlobResourceHandle.cpp_sec3
636
} // namespace WebCore
635
} // namespace WebCore
637
636
638
#endif // ENABLE(BLOB)
637
#endif // ENABLE(BLOB)
639
- a/Source/WebCore/platform/network/NetworkingContext.h +2 lines
Lines 65-70 public: a/Source/WebCore/platform/network/NetworkingContext.h_sec1
65
65
66
    virtual bool isValid() const { return true; }
66
    virtual bool isValid() const { return true; }
67
67
68
    virtual bool shouldClearReferrerPolicyOnHttpsToHttpRedirect() const { return true; }
69
68
#if PLATFORM(CHROMIUM)
70
#if PLATFORM(CHROMIUM)
69
    // FIXME: Wrap WebCookieJar into a NetworkStorageSession to make the code cross-platform.
71
    // FIXME: Wrap WebCookieJar into a NetworkStorageSession to make the code cross-platform.
70
    virtual WebKit::WebCookieJar* cookieJar() const = 0;
72
    virtual WebKit::WebCookieJar* cookieJar() const = 0;
- a/Source/WebCore/platform/network/ResourceHandle.cpp -4 / +9 lines
Lines 53-60 void ResourceHandle::registerBuiltinConstructor(const AtomicString& protocol, Re a/Source/WebCore/platform/network/ResourceHandle.cpp_sec1
53
    builtinResourceHandleConstructorMap().add(protocol, constructor);
53
    builtinResourceHandleConstructorMap().add(protocol, constructor);
54
}
54
}
55
55
56
ResourceHandle::ResourceHandle(const ResourceRequest& request, ResourceHandleClient* client, bool defersLoading, bool shouldContentSniff)
56
ResourceHandle::ResourceHandle(const ResourceRequest& request, ResourceHandleClient* client, bool defersLoading, bool shouldContentSniff, NetworkingContext* context)
57
    : d(adoptPtr(new ResourceHandleInternal(this, request, client, defersLoading, shouldContentSniff && shouldContentSniffURL(request.url()))))
57
    : d(adoptPtr(new ResourceHandleInternal(this, request, client, defersLoading, shouldContentSniff && shouldContentSniffURL(request.url()), context)))
58
{
58
{
59
    if (!request.url().isValid()) {
59
    if (!request.url().isValid()) {
60
        scheduleFailure(InvalidURLFailure);
60
        scheduleFailure(InvalidURLFailure);
Lines 74-85 PassRefPtr<ResourceHandle> ResourceHandle::create(NetworkingContext* context, co a/Source/WebCore/platform/network/ResourceHandle.cpp_sec2
74
    if (protocolMapItem != builtinResourceHandleConstructorMap().end())
74
    if (protocolMapItem != builtinResourceHandleConstructorMap().end())
75
        return protocolMapItem->value(request, client);
75
        return protocolMapItem->value(request, client);
76
76
77
    RefPtr<ResourceHandle> newHandle(adoptRef(new ResourceHandle(request, client, defersLoading, shouldContentSniff)));
77
    RefPtr<ResourceHandle> newHandle(adoptRef(new ResourceHandle(request, client, defersLoading, shouldContentSniff, context)));
78
78
79
    if (newHandle->d->m_scheduledFailureType != NoFailure)
79
    if (newHandle->d->m_scheduledFailureType != NoFailure)
80
        return newHandle.release();
80
        return newHandle.release();
81
81
82
    if (newHandle->start(context))
82
    if (newHandle->start())
83
        return newHandle.release();
83
        return newHandle.release();
84
84
85
    return 0;
85
    return 0;
Lines 128-133 ResourceRequest& ResourceHandle::firstRequest() a/Source/WebCore/platform/network/ResourceHandle.cpp_sec3
128
    return d->m_firstRequest;
128
    return d->m_firstRequest;
129
}
129
}
130
130
131
NetworkingContext* ResourceHandle::context() const
132
{
133
    return d->m_context.get();
134
}
135
131
const String& ResourceHandle::lastHTTPMethod() const
136
const String& ResourceHandle::lastHTTPMethod() const
132
{
137
{
133
    return d->m_lastHTTPMethod;
138
    return d->m_lastHTTPMethod;
- a/Source/WebCore/platform/network/ResourceHandle.h -2 / +4 lines
Lines 199-204 public: a/Source/WebCore/platform/network/ResourceHandle.h_sec1
199
199
200
    void fireFailure(Timer<ResourceHandle>*);
200
    void fireFailure(Timer<ResourceHandle>*);
201
201
202
    NetworkingContext* context() const;
203
202
    using RefCounted<ResourceHandle>::ref;
204
    using RefCounted<ResourceHandle>::ref;
203
    using RefCounted<ResourceHandle>::deref;
205
    using RefCounted<ResourceHandle>::deref;
204
206
Lines 214-220 public: a/Source/WebCore/platform/network/ResourceHandle.h_sec2
214
    static void registerBuiltinConstructor(const AtomicString& protocol, BuiltinConstructor);
216
    static void registerBuiltinConstructor(const AtomicString& protocol, BuiltinConstructor);
215
217
216
protected:
218
protected:
217
    ResourceHandle(const ResourceRequest&, ResourceHandleClient*, bool defersLoading, bool shouldContentSniff);
219
    ResourceHandle(const ResourceRequest&, ResourceHandleClient*, bool defersLoading, bool shouldContentSniff, NetworkingContext*);
218
220
219
private:
221
private:
220
    enum FailureType {
222
    enum FailureType {
Lines 227-233 private: a/Source/WebCore/platform/network/ResourceHandle.h_sec3
227
229
228
    void scheduleFailure(FailureType);
230
    void scheduleFailure(FailureType);
229
231
230
    bool start(NetworkingContext*);
232
    bool start();
231
233
232
    virtual void refAuthenticationClient() { ref(); }
234
    virtual void refAuthenticationClient() { ref(); }
233
    virtual void derefAuthenticationClient() { deref(); }
235
    virtual void derefAuthenticationClient() { deref(); }
- a/Source/WebCore/platform/network/ResourceHandleInternal.h -3 / +3 lines
Lines 83-95 namespace WebCore { a/Source/WebCore/platform/network/ResourceHandleInternal.h_sec1
83
    class ResourceHandleInternal {
83
    class ResourceHandleInternal {
84
        WTF_MAKE_NONCOPYABLE(ResourceHandleInternal); WTF_MAKE_FAST_ALLOCATED;
84
        WTF_MAKE_NONCOPYABLE(ResourceHandleInternal); WTF_MAKE_FAST_ALLOCATED;
85
    public:
85
    public:
86
        ResourceHandleInternal(ResourceHandle* loader, const ResourceRequest& request, ResourceHandleClient* c, bool defersLoading, bool shouldContentSniff)
86
        ResourceHandleInternal(ResourceHandle* loader, const ResourceRequest& request, ResourceHandleClient* c, bool defersLoading, bool shouldContentSniff, NetworkingContext* context)
87
            : m_client(c)
87
            : m_client(c)
88
            , m_firstRequest(request)
88
            , m_firstRequest(request)
89
            , m_lastHTTPMethod(request.httpMethod())
89
            , m_lastHTTPMethod(request.httpMethod())
90
            , status(0)
90
            , status(0)
91
            , m_defersLoading(defersLoading)
91
            , m_defersLoading(defersLoading)
92
            , m_shouldContentSniff(shouldContentSniff)
92
            , m_shouldContentSniff(shouldContentSniff)
93
            , m_context(context)
93
#if USE(CFNETWORK)
94
#if USE(CFNETWORK)
94
            , m_connection(0)
95
            , m_connection(0)
95
#endif
96
#endif
Lines 152-157 namespace WebCore { a/Source/WebCore/platform/network/ResourceHandleInternal.h_sec2
152
153
153
        bool m_defersLoading;
154
        bool m_defersLoading;
154
        bool m_shouldContentSniff;
155
        bool m_shouldContentSniff;
156
        RefPtr<NetworkingContext> m_context;
155
#if USE(CFNETWORK)
157
#if USE(CFNETWORK)
156
        RetainPtr<CFURLConnectionRef> m_connection;
158
        RetainPtr<CFURLConnectionRef> m_connection;
157
#endif
159
#endif
Lines 202-208 namespace WebCore { a/Source/WebCore/platform/network/ResourceHandleInternal.h_sec3
202
        char* m_buffer;
204
        char* m_buffer;
203
        unsigned long m_bodySize;
205
        unsigned long m_bodySize;
204
        unsigned long m_bodyDataSent;
206
        unsigned long m_bodyDataSent;
205
        RefPtr<NetworkingContext> m_context;
206
        SoupSession* soupSession();
207
        SoupSession* soupSession();
207
        int m_redirectCount;
208
        int m_redirectCount;
208
#endif
209
#endif
Lines 214-220 namespace WebCore { a/Source/WebCore/platform/network/ResourceHandleInternal.h_sec4
214
#endif
215
#endif
215
#if PLATFORM(QT)
216
#if PLATFORM(QT)
216
        QNetworkReplyHandler* m_job;
217
        QNetworkReplyHandler* m_job;
217
        RefPtr<NetworkingContext> m_context;
218
#endif
218
#endif
219
219
220
#if PLATFORM(MAC)
220
#if PLATFORM(MAC)
- a/Source/WebCore/platform/network/blackberry/ResourceHandleBlackBerry.cpp -3 / +3 lines
Lines 107-115 void ResourceHandle::platformSetDefersLoading(bool defersLoading) a/Source/WebCore/platform/network/blackberry/ResourceHandleBlackBerry.cpp_sec1
107
    NetworkManager::instance()->setDefersLoading(this, defersLoading);
107
    NetworkManager::instance()->setDefersLoading(this, defersLoading);
108
}
108
}
109
109
110
bool ResourceHandle::start(NetworkingContext* context)
110
bool ResourceHandle::start()
111
{
111
{
112
    if (!context || !context->isValid())
112
    if (!d->m_context || !d->m_context->isValid())
113
        return false;
113
        return false;
114
114
115
    // FIXME: clean up use of Frame now that we have NetworkingContext (see RIM Bug #1515)
115
    // FIXME: clean up use of Frame now that we have NetworkingContext (see RIM Bug #1515)
Lines 156-162 void ResourceHandle::loadResourceSynchronously(NetworkingContext* context, const a/Source/WebCore/platform/network/blackberry/ResourceHandleBlackBerry.cpp_sec2
156
    bool defersLoading = false;
156
    bool defersLoading = false;
157
    bool shouldContentSniff = false;
157
    bool shouldContentSniff = false;
158
158
159
    RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, &syncLoader, defersLoading, shouldContentSniff));
159
    RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, &syncLoader, defersLoading, shouldContentSniff, context));
160
    NetworkManager::instance()->startJob(playerId, handle, frame, defersLoading);
160
    NetworkManager::instance()->startJob(playerId, handle, frame, defersLoading);
161
161
162
    const double syncLoadTimeOut = 60; // seconds
162
    const double syncLoadTimeOut = 60; // seconds
- a/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp -5 / +4 lines
Lines 184-190 static CFURLRequestRef willSendRequest(CFURLConnectionRef conn, CFURLRequestRef a/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp_sec1
184
        request = cfRequest;
184
        request = cfRequest;
185
185
186
    // Should not set Referer after a redirect from a secure resource to non-secure one.
186
    // Should not set Referer after a redirect from a secure resource to non-secure one.
187
    if (!request.url().protocolIs("https") && protocolIs(request.httpReferrer(), "https"))
187
    if (!request.url().protocolIs("https") && protocolIs(request.httpReferrer(), "https") && handle->context()->shouldClearReferrerPolicyOnHttpsToHttpRedirect())
188
        request.clearHTTPReferrer();
188
        request.clearHTTPReferrer();
189
189
190
    handle->willSendRequest(request, cfRedirectResponse);
190
    handle->willSendRequest(request, cfRedirectResponse);
Lines 496-509 void ResourceHandle::createCFURLConnection(bool shouldUseCredentialStorage, bool a/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp_sec2
496
    d->m_connection.adoptCF(CFURLConnectionCreateWithProperties(0, request.get(), reinterpret_cast<CFURLConnectionClient*>(&client), connectionProperties.get()));
496
    d->m_connection.adoptCF(CFURLConnectionCreateWithProperties(0, request.get(), reinterpret_cast<CFURLConnectionClient*>(&client), connectionProperties.get()));
497
}
497
}
498
498
499
bool ResourceHandle::start(NetworkingContext* context)
499
bool ResourceHandle::start()
500
{
500
{
501
    if (!context)
501
    if (!d->m_context)
502
        return false;
502
        return false;
503
503
504
    // If NetworkingContext is invalid then we are no longer attached to a Page,
504
    // If NetworkingContext is invalid then we are no longer attached to a Page,
505
    // this must be an attempted load from an unload handler, so let's just block it.
505
    // this must be an attempted load from an unload handler, so let's just block it.
506
    if (!context->isValid())
506
    if (!d->m_context->isValid())
507
        return false;
507
        return false;
508
508
509
    d->m_storageSession = context->storageSession().platformSession();
509
    d->m_storageSession = context->storageSession().platformSession();
Lines 924-927 void ResourceHandle::handleDataArray(CFArrayRef dataArray) a/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp_sec3
924
#endif
924
#endif
925
925
926
} // namespace WebCore
926
} // namespace WebCore
927
- a/Source/WebCore/platform/network/chromium/ResourceHandle.cpp -10 / +13 lines
Lines 52-62 using namespace WebKit; a/Source/WebCore/platform/network/chromium/ResourceHandle.cpp_sec1
52
namespace WebCore {
52
namespace WebCore {
53
53
54
// ResourceHandleInternal -----------------------------------------------------
54
// ResourceHandleInternal -----------------------------------------------------
55
ResourceHandleInternal::ResourceHandleInternal(const ResourceRequest& request, ResourceHandleClient* client)
55
ResourceHandleInternal::ResourceHandleInternal(const ResourceRequest& request, ResourceHandleClient* client, NetworkingContext* context)
56
    : m_request(request)
56
    : m_request(request)
57
    , m_owner(0)
57
    , m_owner(0)
58
    , m_client(client)
58
    , m_client(client)
59
    , m_state(ConnectionStateNew)
59
    , m_state(ConnectionStateNew)
60
    , m_context(context)
60
{
61
{
61
}
62
}
62
63
Lines 173-183 ResourceHandleInternal* ResourceHandleInternal::FromResourceHandle(ResourceHandl a/Source/WebCore/platform/network/chromium/ResourceHandle.cpp_sec2
173
174
174
// ResourceHandle -------------------------------------------------------------
175
// ResourceHandle -------------------------------------------------------------
175
176
176
ResourceHandle::ResourceHandle(const ResourceRequest& request,
177
ResourceHandle::ResourceHandle(const ResourceRequest& request, ResourceHandleClient* client, bool defersLoading, bool shouldContentSniff, NetworkingContext* context)
177
                               ResourceHandleClient* client,
178
    : d(adoptPtr(new ResourceHandleInternal(request, client, context)))
178
                               bool defersLoading,
179
                               bool shouldContentSniff)
180
    : d(adoptPtr(new ResourceHandleInternal(request, client)))
181
{
179
{
182
    d->setOwner(this);
180
    d->setOwner(this);
183
181
Lines 191-199 PassRefPtr<ResourceHandle> ResourceHandle::create(NetworkingContext* context, a/Source/WebCore/platform/network/chromium/ResourceHandle.cpp_sec3
191
                                                  bool shouldContentSniff)
189
                                                  bool shouldContentSniff)
192
{
190
{
193
    RefPtr<ResourceHandle> newHandle = adoptRef(new ResourceHandle(
191
    RefPtr<ResourceHandle> newHandle = adoptRef(new ResourceHandle(
194
        request, client, defersLoading, shouldContentSniff));
192
        request, client, defersLoading, shouldContentSniff, context));
195
193
196
    if (newHandle->start(context))
194
    if (newHandle->start())
197
        return newHandle.release();
195
        return newHandle.release();
198
196
199
    return 0;
197
    return 0;
Lines 204-209 ResourceRequest& ResourceHandle::firstRequest() a/Source/WebCore/platform/network/chromium/ResourceHandle.cpp_sec4
204
    return d->request();
202
    return d->request();
205
}
203
}
206
204
205
NetworkingContext* ResourceHandle::context() const
206
{
207
    return d->context();
208
}
209
207
ResourceHandleClient* ResourceHandle::client() const
210
ResourceHandleClient* ResourceHandle::client() const
208
{
211
{
209
    return d->client();
212
    return d->client();
Lines 219-227 void ResourceHandle::setDefersLoading(bool value) a/Source/WebCore/platform/network/chromium/ResourceHandle.cpp_sec5
219
    d->setDefersLoading(value);
222
    d->setDefersLoading(value);
220
}
223
}
221
224
222
bool ResourceHandle::start(NetworkingContext* context)
225
bool ResourceHandle::start()
223
{
226
{
224
    if (!context)
227
    if (!d->context())
225
        return false;
228
        return false;
226
229
227
    d->start();
230
    d->start();
- a/Source/WebCore/platform/network/chromium/ResourceHandleInternal.h -1 / +5 lines
Lines 38-49 a/Source/WebCore/platform/network/chromium/ResourceHandleInternal.h_sec1
38
38
39
namespace WebCore {
39
namespace WebCore {
40
40
41
class NetworkingContext;
41
class ResourceHandle;
42
class ResourceHandle;
42
class ResourceHandleClient;
43
class ResourceHandleClient;
43
44
44
class ResourceHandleInternal : public WebKit::WebURLLoaderClient {
45
class ResourceHandleInternal : public WebKit::WebURLLoaderClient {
45
public:
46
public:
46
    ResourceHandleInternal(const ResourceRequest&, ResourceHandleClient*);
47
    ResourceHandleInternal(const ResourceRequest&, ResourceHandleClient*, NetworkingContext*);
47
48
48
    virtual ~ResourceHandleInternal() { }
49
    virtual ~ResourceHandleInternal() { }
49
50
Lines 78-83 public: a/Source/WebCore/platform/network/chromium/ResourceHandleInternal.h_sec2
78
    ResourceHandleClient* client() const { return m_client; }
79
    ResourceHandleClient* client() const { return m_client; }
79
    void setClient(ResourceHandleClient* client) { m_client = client; }
80
    void setClient(ResourceHandleClient* client) { m_client = client; }
80
    WebKit::WebURLLoader* loader() const { return m_loader.get(); }
81
    WebKit::WebURLLoader* loader() const { return m_loader.get(); }
82
    NetworkingContext* context() const { return m_context.get(); }
81
83
82
    static ResourceHandleInternal* FromResourceHandle(ResourceHandle*);
84
    static ResourceHandleInternal* FromResourceHandle(ResourceHandle*);
83
85
Lines 90-95 private: a/Source/WebCore/platform/network/chromium/ResourceHandleInternal.h_sec3
90
    // Used for sanity checking to make sure we don't experience illegal state
92
    // Used for sanity checking to make sure we don't experience illegal state
91
    // transitions.
93
    // transitions.
92
    ConnectionState m_state;
94
    ConnectionState m_state;
95
96
    RefPtr<NetworkingContext> m_context;
93
};
97
};
94
98
95
} // namespace WebCore
99
} // namespace WebCore
- a/Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp -3 / +3 lines
Lines 96-109 ResourceHandle::~ResourceHandle() a/Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp_sec1
96
    cancel();
96
    cancel();
97
}
97
}
98
98
99
bool ResourceHandle::start(NetworkingContext* context)
99
bool ResourceHandle::start()
100
{
100
{
101
    // The frame could be null if the ResourceHandle is not associated to any
101
    // The frame could be null if the ResourceHandle is not associated to any
102
    // Frame, e.g. if we are downloading a file.
102
    // Frame, e.g. if we are downloading a file.
103
    // If the frame is not null but the page is null this must be an attempted
103
    // If the frame is not null but the page is null this must be an attempted
104
    // load from an unload handler, so let's just block it.
104
    // load from an unload handler, so let's just block it.
105
    // If both the frame and the page are not null the context is valid.
105
    // If both the frame and the page are not null the context is valid.
106
    if (context && !context->isValid())
106
    if (d->m_context && !d->m_context->isValid())
107
        return false;
107
        return false;
108
108
109
    ResourceHandleManager::sharedInstance()->add(this);
109
    ResourceHandleManager::sharedInstance()->add(this);
Lines 175-181 bool ResourceHandle::loadsBlocked() a/Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp_sec2
175
void ResourceHandle::loadResourceSynchronously(NetworkingContext*, const ResourceRequest& request, StoredCredentials storedCredentials, ResourceError& error, ResourceResponse& response, Vector<char>& data)
175
void ResourceHandle::loadResourceSynchronously(NetworkingContext*, const ResourceRequest& request, StoredCredentials storedCredentials, ResourceError& error, ResourceResponse& response, Vector<char>& data)
176
{
176
{
177
    WebCoreSynchronousLoader syncLoader;
177
    WebCoreSynchronousLoader syncLoader;
178
    RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, &syncLoader, true, false));
178
    RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, &syncLoader, true, false, context));
179
179
180
    ResourceHandleManager* manager = ResourceHandleManager::sharedInstance();
180
    ResourceHandleManager* manager = ResourceHandleManager::sharedInstance();
181
181
- a/Source/WebCore/platform/network/mac/ResourceHandleMac.mm -11 / +11 lines
Lines 218-236 void ResourceHandle::createNSURLConnection(id delegate, bool shouldUseCredential a/Source/WebCore/platform/network/mac/ResourceHandleMac.mm_sec1
218
218
219
}
219
}
220
220
221
bool ResourceHandle::start(NetworkingContext* context)
221
bool ResourceHandle::start()
222
{
222
{
223
    if (!context)
223
    if (!d->m_context)
224
        return false;
224
        return false;
225
225
226
    BEGIN_BLOCK_OBJC_EXCEPTIONS;
226
    BEGIN_BLOCK_OBJC_EXCEPTIONS;
227
227
228
    // If NetworkingContext is invalid then we are no longer attached to a Page,
228
    // If NetworkingContext is invalid then we are no longer attached to a Page,
229
    // this must be an attempted load from an unload event handler, so let's just block it.
229
    // this must be an attempted load from an unload event handler, so let's just block it.
230
    if (!context->isValid())
230
    if (!d->m_context->isValid())
231
        return false;
231
        return false;
232
232
233
    d->m_storageSession = context->storageSession().platformSession();
233
    d->m_storageSession = d->m_context->storageSession().platformSession();
234
234
235
    ASSERT(!d->m_proxy);
235
    ASSERT(!d->m_proxy);
236
    d->m_proxy.adoptNS(wkCreateNSURLConnectionDelegateProxy());
236
    d->m_proxy.adoptNS(wkCreateNSURLConnectionDelegateProxy());
Lines 238-253 bool ResourceHandle::start(NetworkingContext* context) a/Source/WebCore/platform/network/mac/ResourceHandleMac.mm_sec2
238
238
239
    bool shouldUseCredentialStorage = !client() || client()->shouldUseCredentialStorage(this);
239
    bool shouldUseCredentialStorage = !client() || client()->shouldUseCredentialStorage(this);
240
240
241
    d->m_needsSiteSpecificQuirks = context->needsSiteSpecificQuirks();
241
    d->m_needsSiteSpecificQuirks = d->m_context->needsSiteSpecificQuirks();
242
242
243
    createNSURLConnection(
243
    createNSURLConnection(
244
        d->m_proxy.get(),
244
        d->m_proxy.get(),
245
        shouldUseCredentialStorage,
245
        shouldUseCredentialStorage,
246
        shouldRelaxThirdPartyCookiePolicy(context, firstRequest().url()),
246
        shouldRelaxThirdPartyCookiePolicy(d->m_context.get(), firstRequest().url()),
247
        d->m_shouldContentSniff || context->localFileContentSniffingEnabled());
247
        d->m_shouldContentSniff || d->m_context->localFileContentSniffingEnabled());
248
248
249
    bool scheduled = false;
249
    bool scheduled = false;
250
    if (SchedulePairHashSet* scheduledPairs = context->scheduledRunLoopPairs()) {
250
    if (SchedulePairHashSet* scheduledPairs = d->m_context->scheduledRunLoopPairs()) {
251
        SchedulePairHashSet::iterator end = scheduledPairs->end();
251
        SchedulePairHashSet::iterator end = scheduledPairs->end();
252
        for (SchedulePairHashSet::iterator it = scheduledPairs->begin(); it != end; ++it) {
252
        for (SchedulePairHashSet::iterator it = scheduledPairs->begin(); it != end; ++it) {
253
            if (NSRunLoop *runLoop = (*it)->nsRunLoop()) {
253
            if (NSRunLoop *runLoop = (*it)->nsRunLoop()) {
Lines 257-263 bool ResourceHandle::start(NetworkingContext* context) a/Source/WebCore/platform/network/mac/ResourceHandleMac.mm_sec3
257
        }
257
        }
258
    }
258
    }
259
259
260
    if (NSOperationQueue *operationQueue = context->scheduledOperationQueue()) {
260
    if (NSOperationQueue *operationQueue = d->m_context->scheduledOperationQueue()) {
261
        ASSERT(!scheduled);
261
        ASSERT(!scheduled);
262
        [connection() setDelegateQueue:operationQueue];
262
        [connection() setDelegateQueue:operationQueue];
263
        scheduled = true;
263
        scheduled = true;
Lines 381-387 void ResourceHandle::loadResourceSynchronously(NetworkingContext* context, const a/Source/WebCore/platform/network/mac/ResourceHandleMac.mm_sec4
381
    OwnPtr<WebCoreSynchronousLoaderClient> client = WebCoreSynchronousLoaderClient::create();
381
    OwnPtr<WebCoreSynchronousLoaderClient> client = WebCoreSynchronousLoaderClient::create();
382
    client->setAllowStoredCredentials(storedCredentials == AllowStoredCredentials);
382
    client->setAllowStoredCredentials(storedCredentials == AllowStoredCredentials);
383
383
384
    RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, client.get(), false /*defersLoading*/, true /*shouldContentSniff*/));
384
    RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, client.get(), false /*defersLoading*/, true /*shouldContentSniff*/, context));
385
385
386
    handle->d->m_storageSession = context->storageSession().platformSession();
386
    handle->d->m_storageSession = context->storageSession().platformSession();
387
387
Lines 668-674 - (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSUR a/Source/WebCore/platform/network/mac/ResourceHandleMac.mm_sec5
668
    ResourceRequest request = newRequest;
668
    ResourceRequest request = newRequest;
669
669
670
    // Should not set Referer after a redirect from a secure resource to non-secure one.
670
    // Should not set Referer after a redirect from a secure resource to non-secure one.
671
    if (!request.url().protocolIs("https") && protocolIs(request.httpReferrer(), "https"))
671
    if (!request.url().protocolIs("https") && protocolIs(request.httpReferrer(), "https") && m_handle->context()->shouldClearReferrerPolicyOnHttpsToHttpRedirect())
672
        request.clearHTTPReferrer();
672
        request.clearHTTPReferrer();
673
673
674
    m_handle->willSendRequest(request, redirectResponse);
674
    m_handle->willSendRequest(request, redirectResponse);
- a/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp -1 / +1 lines
Lines 647-653 void QNetworkReplyHandler::redirect(ResourceResponse& response, const QUrl& redi a/Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp_sec1
647
    newRequest.setURL(newUrl);
647
    newRequest.setURL(newUrl);
648
648
649
    // Should not set Referer after a redirect from a secure resource to non-secure one.
649
    // Should not set Referer after a redirect from a secure resource to non-secure one.
650
    if (!newRequest.url().protocolIs("https") && protocolIs(newRequest.httpReferrer(), "https"))
650
    if (!newRequest.url().protocolIs("https") && protocolIs(newRequest.httpReferrer(), "https") && m_resourceHandle->context()->shouldClearReferrerPolicyOnHttpsToHttpRedirect())
651
        newRequest.clearHTTPReferrer();
651
        newRequest.clearHTTPReferrer();
652
652
653
    client->willSendRequest(m_resourceHandle, newRequest, response);
653
    client->willSendRequest(m_resourceHandle, newRequest, response);
- a/Source/WebCore/platform/network/qt/ResourceHandleQt.cpp -5 / +3 lines
Lines 90-100 ResourceHandle::~ResourceHandle() a/Source/WebCore/platform/network/qt/ResourceHandleQt.cpp_sec1
90
        cancel();
90
        cancel();
91
}
91
}
92
92
93
bool ResourceHandle::start(NetworkingContext* context)
93
bool ResourceHandle::start()
94
{
94
{
95
    // If NetworkingContext is invalid then we are no longer attached to a Page,
95
    // If NetworkingContext is invalid then we are no longer attached to a Page,
96
    // this must be an attempted load from an unload event handler, so let's just block it.
96
    // this must be an attempted load from an unload event handler, so let's just block it.
97
    if (context && !context->isValid())
97
    if (d->m_context && !d->m_context->isValid())
98
        return false;
98
        return false;
99
99
100
    if (!d->m_user.isEmpty() || !d->m_pass.isEmpty()) {
100
    if (!d->m_user.isEmpty() || !d->m_pass.isEmpty()) {
Lines 106-112 bool ResourceHandle::start(NetworkingContext* context) a/Source/WebCore/platform/network/qt/ResourceHandleQt.cpp_sec2
106
        d->m_firstRequest.setURL(urlWithCredentials);
106
        d->m_firstRequest.setURL(urlWithCredentials);
107
    }
107
    }
108
108
109
    getInternal()->m_context = context;
110
    ResourceHandleInternal *d = getInternal();
109
    ResourceHandleInternal *d = getInternal();
111
    d->m_job = new QNetworkReplyHandler(this, QNetworkReplyHandler::AsynchronousLoad, d->m_defersLoading);
110
    d->m_job = new QNetworkReplyHandler(this, QNetworkReplyHandler::AsynchronousLoad, d->m_defersLoading);
112
    return true;
111
    return true;
Lines 134-140 void ResourceHandle::loadResourceSynchronously(NetworkingContext* context, const a/Source/WebCore/platform/network/qt/ResourceHandleQt.cpp_sec3
134
    }
133
    }
135
#endif
134
#endif
136
    WebCoreSynchronousLoader syncLoader(error, response, data);
135
    WebCoreSynchronousLoader syncLoader(error, response, data);
137
    RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, &syncLoader, true, false));
136
    RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, &syncLoader, true, false, context));
138
137
139
    ResourceHandleInternal* d = handle->getInternal();
138
    ResourceHandleInternal* d = handle->getInternal();
140
    if (!d->m_user.isEmpty() || !d->m_pass.isEmpty()) {
139
    if (!d->m_user.isEmpty() || !d->m_pass.isEmpty()) {
Lines 145-151 void ResourceHandle::loadResourceSynchronously(NetworkingContext* context, const a/Source/WebCore/platform/network/qt/ResourceHandleQt.cpp_sec4
145
        urlWithCredentials.setPass(d->m_pass);
144
        urlWithCredentials.setPass(d->m_pass);
146
        d->m_firstRequest.setURL(urlWithCredentials);
145
        d->m_firstRequest.setURL(urlWithCredentials);
147
    }
146
    }
148
    d->m_context = context;
149
147
150
    // starting in deferred mode gives d->m_job the chance of being set before sending the request.
148
    // starting in deferred mode gives d->m_job the chance of being set before sending the request.
151
    d->m_job = new QNetworkReplyHandler(handle.get(), QNetworkReplyHandler::SynchronousLoad, true);
149
    d->m_job = new QNetworkReplyHandler(handle.get(), QNetworkReplyHandler::SynchronousLoad, true);
- a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp -8 / +5 lines
Lines 455-461 static void doRedirect(ResourceHandle* handle) a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp_sec1
455
    }
455
    }
456
456
457
    // Should not set Referer after a redirect from a secure resource to non-secure one.
457
    // Should not set Referer after a redirect from a secure resource to non-secure one.
458
    if (!newURL.protocolIs("https") && protocolIs(request.httpReferrer(), "https"))
458
    if (!newURL.protocolIs("https") && protocolIs(request.httpReferrer(), "https") && handle->context()->shouldClearReferrerPolicyOnHttpsToHttpRedirect())
459
        request.clearHTTPReferrer();
459
        request.clearHTTPReferrer();
460
460
461
    d->m_user = newURL.user();
461
    d->m_user = newURL.user();
Lines 1000-1006 static bool createSoupRequestAndMessageForHandle(ResourceHandle* handle, const R a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp_sec2
1000
    return true;
1000
    return true;
1001
}
1001
}
1002
1002
1003
bool ResourceHandle::start(NetworkingContext* context)
1003
bool ResourceHandle::start()
1004
{
1004
{
1005
    ASSERT(!d->m_soupMessage);
1005
    ASSERT(!d->m_soupMessage);
1006
1006
Lines 1009-1020 bool ResourceHandle::start(NetworkingContext* context) a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp_sec3
1009
    // If the frame is not null but the page is null this must be an attempted
1009
    // If the frame is not null but the page is null this must be an attempted
1010
    // load from an unload handler, so let's just block it.
1010
    // load from an unload handler, so let's just block it.
1011
    // If both the frame and the page are not null the context is valid.
1011
    // If both the frame and the page are not null the context is valid.
1012
    if (context && !context->isValid())
1012
    if (d_>m_context && !d->m_context->isValid())
1013
        return false;
1013
        return false;
1014
1014
1015
    // Used to set the keep track of custom SoupSessions for ports that support it (EFL).
1016
    d->m_context = context;
1017
1018
    // Only allow the POST and GET methods for non-HTTP requests.
1015
    // Only allow the POST and GET methods for non-HTTP requests.
1019
    const ResourceRequest& request = firstRequest();
1016
    const ResourceRequest& request = firstRequest();
1020
    bool isHTTPFamilyRequest = request.url().protocolIsInHTTPFamily();
1017
    bool isHTTPFamilyRequest = request.url().protocolIsInHTTPFamily();
Lines 1030-1036 bool ResourceHandle::start(NetworkingContext* context) a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp_sec4
1030
        return true;
1027
        return true;
1031
    }
1028
    }
1032
1029
1033
    setSoupRequestInitiatingPageIDFromNetworkingContext(d->m_soupRequest.get(), context);
1030
    setSoupRequestInitiatingPageIDFromNetworkingContext(d->m_soupRequest.get(), d->m_context.get());
1034
1031
1035
    // Send the request only if it's not been explicitly deferred.
1032
    // Send the request only if it's not been explicitly deferred.
1036
    if (!d->m_defersLoading)
1033
    if (!d->m_defersLoading)
Lines 1279-1285 void ResourceHandle::loadResourceSynchronously(NetworkingContext* context, const a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp_sec5
1279
        return;                    // we want to avoid accidentally going into an infinite loop of requests.
1276
        return;                    // we want to avoid accidentally going into an infinite loop of requests.
1280
1277
1281
    WebCoreSynchronousLoader syncLoader(error, response, sessionFromContext(context), data);
1278
    WebCoreSynchronousLoader syncLoader(error, response, sessionFromContext(context), data);
1282
    RefPtr<ResourceHandle> handle = create(context, request, &syncLoader, false /*defersLoading*/, false /*shouldContentSniff*/);
1279
    RefPtr<ResourceHandle> handle = create(context, request, &syncLoader, false /*defersLoading*/, false /*shouldContentSniff*/, context);
1283
    if (!handle)
1280
    if (!handle)
1284
        return;
1281
        return;
1285
1282
- a/Source/WebCore/platform/network/win/ResourceHandleWin.cpp -4 / +4 lines
Lines 265-271 bool ResourceHandle::onRequestComplete() a/Source/WebCore/platform/network/win/ResourceHandleWin.cpp_sec1
265
    return false;
265
    return false;
266
}
266
}
267
267
268
bool ResourceHandle::start(NetworkingContext* context)
268
bool ResourceHandle::start()
269
{
269
{
270
    if (firstRequest().url().isLocalFile() || firstRequest().url().protocolIsData()) {
270
    if (firstRequest().url().isLocalFile() || firstRequest().url().protocolIsData()) {
271
        ref(); // balanced by deref in fileLoadTimer
271
        ref(); // balanced by deref in fileLoadTimer
Lines 277-283 bool ResourceHandle::start(NetworkingContext* context) a/Source/WebCore/platform/network/win/ResourceHandleWin.cpp_sec2
277
    }
277
    }
278
278
279
    if (!d->m_internetHandle)
279
    if (!d->m_internetHandle)
280
        d->m_internetHandle = asynchronousInternetHandle(context->userAgent());
280
        d->m_internetHandle = asynchronousInternetHandle(d->m_context->userAgent());
281
281
282
    if (!d->m_internetHandle)
282
    if (!d->m_internetHandle)
283
        return false;
283
        return false;
Lines 419-428 void ResourceHandle::loadResourceSynchronously(NetworkingContext* context, const a/Source/WebCore/platform/network/win/ResourceHandleWin.cpp_sec3
419
    UNUSED_PARAM(storedCredentials);
419
    UNUSED_PARAM(storedCredentials);
420
420
421
    WebCoreSynchronousLoader syncLoader(error, response, data, request.httpUserAgent());
421
    WebCoreSynchronousLoader syncLoader(error, response, data, request.httpUserAgent());
422
    ResourceHandle handle(request, &syncLoader, true, false);
422
    ResourceHandle handle(request, &syncLoader, true, false, context);
423
423
424
    handle.setSynchronousInternetHandle(syncLoader.internetHandle());
424
    handle.setSynchronousInternetHandle(syncLoader.internetHandle());
425
    handle.start(context);
425
    handle.start();
426
}
426
}
427
427
428
void ResourceHandle::setSynchronousInternetHandle(HINTERNET internetHandle)
428
void ResourceHandle::setSynchronousInternetHandle(HINTERNET internetHandle)
- a/LayoutTests/ChangeLog +17 lines
Lines 1-3 a/LayoutTests/ChangeLog_sec1
1
2013-01-14  Marja Hölttä  <marja@chromium.org>
2
3
        Take referrer policy into account when clearing the referrer header
4
        https://bugs.webkit.org/show_bug.cgi?id=86000
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Unskip http/tests/security/referrer-policy-redirect-link.html
9
10
        On wk2, the test still fails, as it requires HTTPS support
11
12
        * platform/gtk/TestExpectations:
13
        * platform/mac/TestExpectations:
14
        * platform/qt/TestExpectations:
15
        * platform/win/TestExpectations:
16
        * platform/wk2/TestExpectations:
17
1
2013-01-11  Antoine Quint  <graouts@apple.com>
18
2013-01-11  Antoine Quint  <graouts@apple.com>
2
19
3
        Web Inspector: Option+Click on Node Expander Doesn't Work the First Time
20
        Web Inspector: Option+Click on Node Expander Doesn't Work the First Time
- a/LayoutTests/platform/gtk/TestExpectations -3 lines
Lines 1206-1214 webkit.org/b/85689 fast/animation/request-animation-frame-disabled.html [ Skip ] a/LayoutTests/platform/gtk/TestExpectations_sec1
1206
# Started failing after it was added in r116473
1206
# Started failing after it was added in r116473
1207
webkit.org/b/85969 http/tests/loading/post-in-iframe-with-back-navigation.html [ Failure ]
1207
webkit.org/b/85969 http/tests/loading/post-in-iframe-with-back-navigation.html [ Failure ]
1208
1208
1209
# Started failing after it was added in r116563
1210
webkit.org/b/86061 http/tests/security/referrer-policy-redirect-link.html [ Failure ]
1211
1212
webkit.org/b/85308 [ Release ] ietestcenter/css3/valuesandunits/units-000.htm [ ImageOnlyFailure ]
1209
webkit.org/b/85308 [ Release ] ietestcenter/css3/valuesandunits/units-000.htm [ ImageOnlyFailure ]
1213
webkit.org/b/85310 ietestcenter/css3/valuesandunits/units-010.htm [ ImageOnlyFailure ]
1210
webkit.org/b/85310 ietestcenter/css3/valuesandunits/units-010.htm [ ImageOnlyFailure ]
1214
1211
- a/LayoutTests/platform/mac/TestExpectations -3 lines
Lines 757-765 media/video-played-reset.html a/LayoutTests/platform/mac/TestExpectations_sec1
757
# https://bugs.webkit.org/show_bug.cgi?id=85969
757
# https://bugs.webkit.org/show_bug.cgi?id=85969
758
http/tests/loading/post-in-iframe-with-back-navigation.html
758
http/tests/loading/post-in-iframe-with-back-navigation.html
759
759
760
# https://bugs.webkit.org/show_bug.cgi?id=86000
761
http/tests/security/referrer-policy-redirect-link.html
762
763
# Inspector only supports evaluation in content script world with v8, see https://bugs.webkit.org/show_bug.cgi?id=85709
760
# Inspector only supports evaluation in content script world with v8, see https://bugs.webkit.org/show_bug.cgi?id=85709
764
inspector/extensions/extensions-eval-content-script.html
761
inspector/extensions/extensions-eval-content-script.html
765
inspector/extensions/extensions-audits-content-script.html
762
inspector/extensions/extensions-audits-content-script.html
- a/LayoutTests/platform/qt/TestExpectations -3 lines
Lines 1815-1823 fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html a/LayoutTests/platform/qt/TestExpectations_sec1
1815
security/block-test-no-port.html
1815
security/block-test-no-port.html
1816
security/block-test.html
1816
security/block-test.html
1817
1817
1818
# https://bugs.webkit.org/show_bug.cgi?id=86000
1819
http/tests/security/referrer-policy-redirect-link.html
1820
1821
# ============================================================================= #
1818
# ============================================================================= #
1822
# failing tables tests
1819
# failing tables tests
1823
# ============================================================================= #
1820
# ============================================================================= #
- a/LayoutTests/platform/win/TestExpectations -3 lines
Lines 1808-1816 inspector/styles/override-screen-size.html a/LayoutTests/platform/win/TestExpectations_sec1
1808
# https://bugs.webkit.org/show_bug.cgi?id=85689
1808
# https://bugs.webkit.org/show_bug.cgi?id=85689
1809
fast/animation/request-animation-frame-disabled.html
1809
fast/animation/request-animation-frame-disabled.html
1810
1810
1811
# https://bugs.webkit.org/show_bug.cgi?id=86000
1812
http/tests/security/referrer-policy-redirect-link.html
1813
1814
# Inspector only supports evaluation in content script world with v8, see https://bugs.webkit.org/show_bug.cgi?id=85709
1811
# Inspector only supports evaluation in content script world with v8, see https://bugs.webkit.org/show_bug.cgi?id=85709
1815
inspector/extensions/extensions-eval-content-script.html 
1812
inspector/extensions/extensions-eval-content-script.html 
1816
inspector/extensions/extensions-audits-content-script.html
1813
inspector/extensions/extensions-audits-content-script.html
- a/LayoutTests/platform/wk2/TestExpectations -5 / +1 lines
Lines 317-322 http/tests/cache/history-only-cached-subresource-loads-max-age-https.html a/LayoutTests/platform/wk2/TestExpectations_sec1
317
http/tests/security/referrer-policy-https-always.html
317
http/tests/security/referrer-policy-https-always.html
318
http/tests/security/referrer-policy-https-origin.html
318
http/tests/security/referrer-policy-https-origin.html
319
http/tests/security/referrer-policy-redirect.html
319
http/tests/security/referrer-policy-redirect.html
320
http/tests/security/referrer-policy-redirect-link.html
320
http/tests/security/referrer-policy-https-never.html
321
http/tests/security/referrer-policy-https-never.html
321
http/tests/security/referrer-policy-https-default.html
322
http/tests/security/referrer-policy-https-default.html
322
323
Lines 338-348 fast/selectors/selection-window-inactive.html a/LayoutTests/platform/wk2/TestExpectations_sec2
338
# autoZoomPageToFitWidth().
339
# autoZoomPageToFitWidth().
339
inspector/styles/override-screen-size.html
340
inspector/styles/override-screen-size.html
340
341
341
# The network stack unconditionally strips the header on transitions from
342
# secure to insecure. It should take the referrer policy into account instead.
343
# https://bugs.webkit.org/show_bug.cgi?id=86000
344
http/tests/security/referrer-policy-redirect-link.html
345
346
# css3-conditionals support is not yet enabled.
342
# css3-conditionals support is not yet enabled.
347
webkit.org/b/86146 css3/supports.html
343
webkit.org/b/86146 css3/supports.html
348
344

Return to Bug 86000