Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Unified Diff: headless/lib/browser/headless_browser_context.h

Issue 1430673002: Headless demo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Better javascript Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « headless/app/headless_shell.cc ('k') | headless/lib/browser/headless_browser_context.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: headless/lib/browser/headless_browser_context.h
diff --git a/headless/lib/browser/headless_browser_context.h b/headless/lib/browser/headless_browser_context.h
new file mode 100644
index 0000000000000000000000000000000000000000..30aaf817595c4a6b2f36d480378ee5e22bbd3284
--- /dev/null
+++ b/headless/lib/browser/headless_browser_context.h
@@ -0,0 +1,92 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef HEADLESS_LIB_BROWSER_HEADLESS_BROWSER_CONTEXT_H_
+#define HEADLESS_LIB_BROWSER_HEADLESS_BROWSER_CONTEXT_H_
+
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/content_browser_client.h"
+#include "content/public/browser/resource_context.h"
+#include "headless/lib/browser/headless_url_request_context_getter.h"
+#include "base/files/file_path.h"
+
+namespace headless {
+
+class HeadlessBrowserContext : public content::BrowserContext {
+ public:
+ HeadlessBrowserContext();
+ ~HeadlessBrowserContext() override;
+
+ // BrowserContext implementation
+ scoped_ptr<content::ZoomLevelDelegate> CreateZoomLevelDelegate(
+ const base::FilePath& partition_path) override;
+ base::FilePath GetPath() const override;
+ bool IsOffTheRecord() const override;
+ net::URLRequestContextGetter* GetRequestContext() override;
+ net::URLRequestContextGetter* GetRequestContextForRenderProcess(
+ int renderer_child_id) override;
+ net::URLRequestContextGetter* GetMediaRequestContext() override;
+ net::URLRequestContextGetter* GetMediaRequestContextForRenderProcess(
+ int renderer_child_id) override;
+ net::URLRequestContextGetter* GetMediaRequestContextForStoragePartition(
+ const base::FilePath& partition_path,
+ bool in_memory) override;
+ content::ResourceContext* GetResourceContext() override;
+ content::DownloadManagerDelegate* GetDownloadManagerDelegate() override;
+ content::BrowserPluginGuestManager* GetGuestManager() override;
+ storage::SpecialStoragePolicy* GetSpecialStoragePolicy() override;
+ content::PushMessagingService* GetPushMessagingService() override;
+ content::SSLHostStateDelegate* GetSSLHostStateDelegate() override;
+ content::PermissionManager* GetPermissionManager() override;
+ content::BackgroundSyncController* GetBackgroundSyncController() override;
+
+
+ net::URLRequestContextGetter* CreateRequestContext(
+ content::ProtocolHandlerMap* protocol_handlers,
+ content::URLRequestInterceptorScopedVector request_interceptors);
+ private:
+ // Contains URLRequestContextGetter required for resource loading.
+ class HeadlessResourceContext : public content::ResourceContext {
+ public:
+ HeadlessResourceContext();
+ ~HeadlessResourceContext() override;
+
+ // ResourceContext implementation:
+ net::HostResolver* GetHostResolver() override;
+ net::URLRequestContext* GetRequestContext() override;
+
+ void set_url_request_context_getter(HeadlessURLRequestContextGetter* getter) {
+ getter_ = getter;
+ }
+
+ private:
+ HeadlessURLRequestContextGetter* getter_;
+
+ DISALLOW_COPY_AND_ASSIGN(HeadlessResourceContext);
+ };
+
+ // Used by HeadlessBrowserContext to initiate and set different types of
+ // URLRequestContextGetter.
+ virtual HeadlessURLRequestContextGetter* CreateURLRequestContextGetter(
+ content::ProtocolHandlerMap* protocol_handlers,
+ content::URLRequestInterceptorScopedVector request_interceptors);
+
+ void set_url_request_context_getter(HeadlessURLRequestContextGetter* getter) {
+ url_request_getter_ = getter;
+ }
+
+ // Performs initialization of the ShellBrowserContext while IO is still
+ // allowed on the current thread.
+ void InitWhileIOAllowed();
+
+ base::FilePath path_;
+ scoped_ptr<HeadlessResourceContext> resource_context_;
+ scoped_refptr<HeadlessURLRequestContextGetter> url_request_getter_;
+
+ DISALLOW_COPY_AND_ASSIGN(HeadlessBrowserContext);
+};
+
+} // namespace headless
+
+#endif // HEADLESS_LIB_BROWSER_HEADLESS_BROWSER_CONTEXT_H_
« no previous file with comments | « headless/app/headless_shell.cc ('k') | headless/lib/browser/headless_browser_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698