Remove remaining PLATFORM(CHROMIUM)-guarded code in WebCore
[WebKit-https.git] / Source / WebCore / platform / network / NetworkingContext.h
1 /*
2     Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
3
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Library General Public
6     License as published by the Free Software Foundation; either
7     version 2 of the License, or (at your option) any later version.
8
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     Library General Public License for more details.
13
14     You should have received a copy of the GNU Library General Public License
15     along with this library; see the file COPYING.LIB.  If not, write to
16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17     Boston, MA 02110-1301, USA.
18 */
19
20 #ifndef NetworkingContext_h
21 #define NetworkingContext_h
22
23 #include "NetworkStorageSession.h"
24 #include <wtf/RefCounted.h>
25 #include <wtf/RetainPtr.h>
26
27 #if PLATFORM(MAC)
28 #include <wtf/SchedulePair.h>
29 #endif
30
31 #if PLATFORM(QT)
32 #include <qglobal.h>
33 #endif
34
35 #if PLATFORM(MAC)
36 OBJC_CLASS NSOperationQueue;
37 #endif
38
39 #if PLATFORM(QT)
40 QT_BEGIN_NAMESPACE
41 class QObject;
42 class QNetworkAccessManager;
43 class QUrl;
44 QT_END_NAMESPACE
45 #endif
46
47 #if USE(SOUP)
48 typedef struct _SoupSession SoupSession;
49 #endif
50
51 namespace WebCore {
52
53 class ResourceError;
54 class ResourceRequest;
55
56 class NetworkingContext : public RefCounted<NetworkingContext> {
57 public:
58     virtual ~NetworkingContext() { }
59
60     virtual bool isValid() const { return true; }
61
62     virtual bool shouldClearReferrerOnHTTPSToHTTPRedirect() const = 0;
63
64 #if PLATFORM(MAC)
65     virtual bool needsSiteSpecificQuirks() const = 0;
66     virtual bool localFileContentSniffingEnabled() const = 0; // FIXME: Reconcile with ResourceHandle::forceContentSniffing().
67     virtual SchedulePairHashSet* scheduledRunLoopPairs() const { return 0; }
68     virtual RetainPtr<CFDataRef> sourceApplicationAuditData() const = 0;
69     virtual ResourceError blockedError(const ResourceRequest&) const = 0;
70 #endif
71
72 #if PLATFORM(MAC) || USE(CFNETWORK) || USE(SOUP)
73     virtual NetworkStorageSession& storageSession() const = 0;
74 #endif
75
76 #if PLATFORM(QT)
77     // FIXME: Wrap QNetworkAccessManager into a NetworkStorageSession to make the code cross-platform.
78     virtual QObject* originatingObject() const = 0;
79     virtual QNetworkAccessManager* networkAccessManager() const = 0;
80     virtual bool mimeSniffingEnabled() const = 0;
81     virtual bool thirdPartyCookiePolicyPermission(const QUrl&) const = 0;
82 #endif
83
84 #if PLATFORM(WIN)
85     virtual String userAgent() const = 0;
86     virtual String referrer() const = 0;
87     virtual ResourceError blockedError(const ResourceRequest&) const = 0;
88 #endif
89
90 #if USE(SOUP)
91     virtual uint64_t initiatingPageID() const = 0;
92 #endif
93
94 protected:
95     NetworkingContext() { }
96 };
97
98 }
99
100 #endif // NetworkingContext_h