mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.8 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);
 | 
						|
 | 
						|
  ChromeBrowserContext(const ChromeBrowserContext&) = delete;
 | 
						|
  ChromeBrowserContext& operator=(const ChromeBrowserContext&) = delete;
 | 
						|
 | 
						|
  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::CreateStatus status, Profile* profile);
 | 
						|
 | 
						|
  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_;
 | 
						|
};
 | 
						|
 | 
						|
#endif  // CEF_LIBCEF_BROWSER_CHROME_CHROME_BROWSER_CONTEXT_H_
 |