mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright 2022 The Chromium Embedded Framework Authors.
 | |
| // Portions copyright 2020 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.
 | |
| 
 | |
| #include "libcef/browser/alloy/dialogs/alloy_javascript_dialog_manager_delegate.h"
 | |
| 
 | |
| #include "libcef/browser/browser_host_base.h"
 | |
| 
 | |
| #include "base/logging.h"
 | |
| 
 | |
| namespace {
 | |
| 
 | |
| class AlloyJavaScriptTabModalDialogManagerDelegateDesktop
 | |
|     : public JavaScriptTabModalDialogManagerDelegateDesktop {
 | |
|  public:
 | |
|   explicit AlloyJavaScriptTabModalDialogManagerDelegateDesktop(
 | |
|       content::WebContents* web_contents)
 | |
|       : JavaScriptTabModalDialogManagerDelegateDesktop(web_contents),
 | |
|         web_contents_(web_contents) {}
 | |
| 
 | |
|   AlloyJavaScriptTabModalDialogManagerDelegateDesktop(
 | |
|       const AlloyJavaScriptTabModalDialogManagerDelegateDesktop&) = delete;
 | |
|   AlloyJavaScriptTabModalDialogManagerDelegateDesktop& operator=(
 | |
|       const AlloyJavaScriptTabModalDialogManagerDelegateDesktop&) = delete;
 | |
| 
 | |
|   // javascript_dialogs::TabModalDialogManagerDelegate methods:
 | |
|   void WillRunDialog() override {}
 | |
| 
 | |
|   void DidCloseDialog() override {}
 | |
| 
 | |
|   void SetTabNeedsAttention(bool attention) override {}
 | |
| 
 | |
|   bool IsWebContentsForemost() override {
 | |
|     if (auto browser =
 | |
|             CefBrowserHostBase::GetBrowserForContents(web_contents_)) {
 | |
|       return browser->IsVisible();
 | |
|     }
 | |
|     return false;
 | |
|   }
 | |
| 
 | |
|   bool IsApp() override { return false; }
 | |
| 
 | |
|  private:
 | |
|   // The WebContents for the tab over which the dialog will be modal. This may
 | |
|   // be different from the WebContents that requested the dialog, such as with
 | |
|   // Chrome app <webview>s.
 | |
|   raw_ptr<content::WebContents> web_contents_;
 | |
| };
 | |
| 
 | |
| }  // namespace
 | |
| 
 | |
| std::unique_ptr<JavaScriptTabModalDialogManagerDelegateDesktop>
 | |
| CreateAlloyJavaScriptTabModalDialogManagerDelegateDesktop(
 | |
|     content::WebContents* web_contents) {
 | |
|   return std::make_unique<AlloyJavaScriptTabModalDialogManagerDelegateDesktop>(
 | |
|       web_contents);
 | |
| }
 |