mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright 2020 The Chromium Embedded Framework 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_CHROME_CHROME_BROWSER_CONTEXT_H_
 | |
| #define CEF_LIBCEF_BROWSER_CHROME_CHROME_BROWSER_CONTEXT_H_
 | |
| #pragma once
 | |
| 
 | |
| #include "libcef/browser/browser_context.h"
 | |
| 
 | |
| #include "base/memory/weak_ptr.h"
 | |
| #include "chrome/browser/profiles/profile_manager.h"
 | |
| #include "chrome/browser/profiles/profile_observer.h"
 | |
| 
 | |
| class ScopedProfileKeepAlive;
 | |
| 
 | |
| // See CefBrowserContext documentation for usage. Only accessed on the UI thread
 | |
| // unless otherwise indicated.
 | |
| class ChromeBrowserContext : public CefBrowserContext, public ProfileObserver {
 | |
|  public:
 | |
|   explicit ChromeBrowserContext(const CefRequestContextSettings& settings);
 | |
| 
 | |
|   void InitializeAsync(base::OnceClosure initialized_cb);
 | |
| 
 | |
|   // CefBrowserContext overrides.
 | |
|   content::BrowserContext* AsBrowserContext() override;
 | |
|   Profile* AsProfile() override;
 | |
|   bool IsInitialized() const override;
 | |
|   void StoreOrTriggerInitCallback(base::OnceClosure callback) override;
 | |
|   void Shutdown() override;
 | |
| 
 | |
|   // ProfileObserver overrides.
 | |
|   void OnProfileWillBeDestroyed(Profile* profile) override;
 | |
| 
 | |
|  private:
 | |
|   ~ChromeBrowserContext() override;
 | |
| 
 | |
|   void ProfileCreated(Profile* profile, Profile::CreateStatus status);
 | |
| 
 | |
|   base::OnceClosure initialized_cb_;
 | |
|   Profile* profile_ = nullptr;
 | |
|   bool should_destroy_ = false;
 | |
| 
 | |
|   bool destroyed_ = false;
 | |
|   std::unique_ptr<ScopedProfileKeepAlive> profile_keep_alive_;
 | |
| 
 | |
|   std::vector<base::OnceClosure> init_callbacks_;
 | |
| 
 | |
|   base::WeakPtrFactory<ChromeBrowserContext> weak_ptr_factory_;
 | |
| 
 | |
|   DISALLOW_COPY_AND_ASSIGN(ChromeBrowserContext);
 | |
| };
 | |
| 
 | |
| #endif  // CEF_LIBCEF_BROWSER_CHROME_CHROME_BROWSER_CONTEXT_H_
 |