mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2024-12-13 18:16:20 +01:00
a23e845244
This change removes cookie and request handler functionality that will not supported by the NetworkService. Specifically, it is no longer possible to change cookie storage locations at runime by returning a different CefCookieManager for an already initialized CefRequestContext. After this change you will need to use a separate CefRequestContext when creating a CefBrowser if you require separate cookie storage. The following methods have been removed: - CefCookieManager::CreateManager - CefCookieManager::GetBlockingManager - CefCookieManager::SetStoragePath - CefRequestContextHandler::GetCookieManager The following methods have been renamed: - CefRequestContext::GetDefaultCookieManager to GetCookieManager. This change substantially simplifies the network implementation in CEF because it is no longer necessary to proxy objects that are normally owned by Chromium. Chromium patches that are no longer necessary will be removed as a follow-up commit. To test: Verify that `ceftests --gtest_filter=-PluginTest.*` pass with NetworkService disabled. Plugin tests will be fixed in a follow-up commit.
112 lines
3.6 KiB
C++
112 lines
3.6 KiB
C++
// Copyright (c) 2011 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 CEF_LIBCEF_BROWSER_BROWSER_MAIN_H_
|
|
#define CEF_LIBCEF_BROWSER_BROWSER_MAIN_H_
|
|
#pragma once
|
|
|
|
#include "libcef/browser/net/url_request_context_getter.h"
|
|
#include "libcef/browser/request_context_impl.h"
|
|
|
|
#include "base/macros.h"
|
|
#include "base/strings/string_piece.h"
|
|
#include "build/build_config.h"
|
|
#include "components/prefs/pref_service.h"
|
|
#include "content/public/browser/browser_main_parts.h"
|
|
#include "net/url_request/url_request_context_getter.h"
|
|
|
|
namespace content {
|
|
struct MainFunctionParams;
|
|
}
|
|
|
|
namespace extensions {
|
|
class ExtensionsBrowserClient;
|
|
class ExtensionsClient;
|
|
} // namespace extensions
|
|
|
|
#if defined(USE_AURA)
|
|
namespace wm {
|
|
class WMState;
|
|
}
|
|
#endif
|
|
|
|
class CefDevToolsDelegate;
|
|
class ChromeBrowserMainExtraParts;
|
|
|
|
class CefBrowserMainParts : public content::BrowserMainParts {
|
|
public:
|
|
explicit CefBrowserMainParts(const content::MainFunctionParams& parameters);
|
|
~CefBrowserMainParts() override;
|
|
|
|
// Add additional ChromeBrowserMainExtraParts.
|
|
void AddParts(ChromeBrowserMainExtraParts* parts);
|
|
|
|
int PreEarlyInitialization() override;
|
|
void PostEarlyInitialization() override;
|
|
void ToolkitInitialized() override;
|
|
void PreMainMessageLoopStart() override;
|
|
void PostMainMessageLoopStart() override;
|
|
int PreCreateThreads() override;
|
|
void ServiceManagerConnectionStarted(
|
|
content::ServiceManagerConnection* connection) override;
|
|
void PreMainMessageLoopRun() override;
|
|
void PostMainMessageLoopRun() override;
|
|
void PostDestroyThreads() override;
|
|
|
|
// Additional stages for ChromeBrowserMainExtraParts. These stages are called
|
|
// in order from PreMainMessageLoopRun(). See implementation for details.
|
|
void PreProfileInit();
|
|
void PostProfileInit();
|
|
void PreBrowserStart();
|
|
void PostBrowserStart();
|
|
|
|
CefRefPtr<CefRequestContextImpl> request_context() const {
|
|
return global_request_context_;
|
|
}
|
|
CefDevToolsDelegate* devtools_delegate() const { return devtools_delegate_; }
|
|
|
|
scoped_refptr<base::SingleThreadTaskRunner> background_task_runner() const {
|
|
return background_task_runner_;
|
|
}
|
|
scoped_refptr<base::SingleThreadTaskRunner> user_visible_task_runner() const {
|
|
return user_visible_task_runner_;
|
|
}
|
|
scoped_refptr<base::SingleThreadTaskRunner> user_blocking_task_runner()
|
|
const {
|
|
return user_blocking_task_runner_;
|
|
}
|
|
|
|
private:
|
|
#if defined(OS_WIN)
|
|
void PlatformInitialize();
|
|
#endif // defined(OS_WIN)
|
|
|
|
CefRefPtr<CefRequestContextImpl> global_request_context_;
|
|
CefDevToolsDelegate* devtools_delegate_; // Deletes itself.
|
|
|
|
std::unique_ptr<extensions::ExtensionsClient> extensions_client_;
|
|
std::unique_ptr<extensions::ExtensionsBrowserClient>
|
|
extensions_browser_client_;
|
|
|
|
// Blocking task runners exposed via CefTaskRunner. For consistency with
|
|
// previous named thread behavior always execute all pending tasks before
|
|
// shutdown (e.g. to make sure critical data is saved to disk).
|
|
// |background_task_runner_| is also passed to SQLitePersistentCookieStore.
|
|
scoped_refptr<base::SingleThreadTaskRunner> background_task_runner_;
|
|
scoped_refptr<base::SingleThreadTaskRunner> user_visible_task_runner_;
|
|
scoped_refptr<base::SingleThreadTaskRunner> user_blocking_task_runner_;
|
|
|
|
#if defined(USE_AURA)
|
|
std::unique_ptr<wm::WMState> wm_state_;
|
|
#endif
|
|
|
|
// Vector of additional ChromeBrowserMainExtraParts.
|
|
// Parts are deleted in the inverse order they are added.
|
|
std::vector<ChromeBrowserMainExtraParts*> chrome_extra_parts_;
|
|
|
|
DISALLOW_COPY_AND_ASSIGN(CefBrowserMainParts);
|
|
};
|
|
|
|
#endif // CEF_LIBCEF_BROWSER_BROWSER_MAIN_H_
|