26
26
#include "base/files/file_path.h"
27
27
#include "base/memory/ref_counted.h"
28
28
#include "base/memory/scoped_ptr.h"
29
#include "base/memory/weak_ptr.h"
30
29
#include "net/base/static_cookie_policy.h"
32
31
#include "qt/core/glue/oxide_qt_web_context_adapter.h"
34
33
#include "shared/browser/oxide_browser_context.h"
34
#include "shared/browser/oxide_browser_context_delegate.h"
42
42
class BrowserContextDelegate;
43
43
struct ConstructProperties;
44
class RenderWidgetHostViewDelegateFactory;
45
class WebContextAdapterPrivate FINAL :
46
public base::SupportsWeakPtr<WebContextAdapterPrivate> {
46
class WebContextAdapterPrivate FINAL : public oxide::BrowserContextDelegate {
48
48
~WebContextAdapterPrivate();
50
50
static WebContextAdapterPrivate* get(WebContextAdapter* adapter);
52
WebContextAdapter::IOThreadDelegate* GetIOThreadDelegate() const;
54
oxide::BrowserContext* context() { return context_; }
51
static WebContextAdapterPrivate* FromBrowserContext(
52
oxide::BrowserContext* context);
54
WebContextAdapter* adapter() const { return adapter_; }
55
oxide::BrowserContext* context() const { return context_; }
57
friend class BrowserContextDelegate;
58
58
friend class WebContextAdapter;
60
60
struct ConstructProperties {
61
ConstructProperties();
61
63
std::string product;
62
64
std::string user_agent;
63
65
base::FilePath data_path;
64
66
base::FilePath cache_path;
65
67
std::string accept_langs;
66
68
net::StaticCookiePolicy::Type cookie_policy;
69
bool popup_blocker_enabled;
72
static WebContextAdapterPrivate* Create(
73
WebContextAdapter* adapter,
74
WebContextAdapter::IOThreadDelegate* io_delegate,
75
RenderWidgetHostViewDelegateFactory* view_factory);
69
76
WebContextAdapterPrivate(WebContextAdapter* adapter,
70
WebContextAdapter::IOThreadDelegate* io_delegate);
77
WebContextAdapter::IOThreadDelegate* io_delegate,
78
RenderWidgetHostViewDelegateFactory* view_factory);
74
WebContextAdapter* adapter;
83
// oxide::BrowserContextDelegate
84
int OnBeforeURLRequest(net::URLRequest* request,
85
const net::CompletionCallback& callback,
87
int OnBeforeSendHeaders(net::URLRequest* request,
88
const net::CompletionCallback& callback,
89
net::HttpRequestHeaders* headers) FINAL;
90
oxide::StoragePermission CanAccessStorage(
92
const GURL& first_party_url,
94
oxide::StorageType type) FINAL;
95
bool GetUserAgentOverride(const GURL& url,
96
std::string* user_agent) FINAL;
98
WebContextAdapter* adapter_;
99
scoped_ptr<WebContextAdapter::IOThreadDelegate> io_thread_delegate_;
100
scoped_ptr<RenderWidgetHostViewDelegateFactory> view_factory_;
76
102
ScopedBrowserContext context_;
77
103
scoped_ptr<ConstructProperties> construct_props_;
78
scoped_refptr<BrowserContextDelegate> context_delegate_;
80
105
DISALLOW_COPY_AND_ASSIGN(WebContextAdapterPrivate);