 0203bd3305
			
		
	
	
	
	
	0203bd3305* refactor: use base::Contains() in KeyWeakMap::Has() * refactor: use base::Contains() in WebRequest::RequestFilter::MatchesType() * refactor: use base::Contains() in BaseWindow::AddBrowserView() * refactor: use base::Contains() in DeepFreeze() * refactor: use base::Contains() in Clipboard::Read() * Revert "refactor: use base::Contains() in BaseWindow::AddBrowserView()" This reverts commit 60152359d3978451ebdd7c8eed602c2fb8a9cafa. * refactor: use base::Contains() in BaseWindow::AddBrowserView() * refactor: use base::Contains() in IsDevToolsFileSystemAdded() * refactor: use base::Contains() in MessagePort::DisentanglePorts() * refactor: use base::Contains() in PowerSaveBlocker::IsStarted() * refactor: use base::Contains() in SpellCheckClient::OnSpellCheckDone() * refactor: use base::Contains() in ShowTaskDialogWstr() * refactor: use base::Contains() in PrintViewManagerElectron::ScriptedPrint() * refactor: use base::Contains() in PrintViewManagerElectron::DidGetPrintedPagesCount() * refactor: use base::Contains() in NativeWindow::AddDraggableRegionProvider() * refactor: use base::Contains() in ElectronBindings::ActivateUVLoop() * refactor: use base::Contains() in NativeWindowViews::IsVisibleOnAllWorkspaces() * refactor: use base::Contains() in HidChooserController::OnDeviceAdded() * refactor: use base::Contains() in ElectronSandboxedRendererClient::WillReleaseScriptContext() * refactor: use base::Contains() in ElectronRendererClient::WillDestroyWorkerContextOnWorkerThread() * refactor: use base::Contains() in GlobalShortcut::OnKeyPressed()
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (c) 2015 GitHub, Inc.
 | |
| // Use of this source code is governed by the MIT license that can be
 | |
| // found in the LICENSE file.
 | |
| 
 | |
| #ifndef ELECTRON_SHELL_BROWSER_API_ELECTRON_API_POWER_SAVE_BLOCKER_H_
 | |
| #define ELECTRON_SHELL_BROWSER_API_ELECTRON_API_POWER_SAVE_BLOCKER_H_
 | |
| 
 | |
| #include <map>
 | |
| 
 | |
| #include "gin/handle.h"
 | |
| #include "gin/object_template_builder.h"
 | |
| #include "gin/wrappable.h"
 | |
| #include "mojo/public/cpp/bindings/remote.h"
 | |
| #include "services/device/public/mojom/wake_lock.mojom.h"
 | |
| 
 | |
| namespace electron::api {
 | |
| 
 | |
| class PowerSaveBlocker : public gin::Wrappable<PowerSaveBlocker> {
 | |
|  public:
 | |
|   static gin::Handle<PowerSaveBlocker> Create(v8::Isolate* isolate);
 | |
| 
 | |
|   // gin::Wrappable
 | |
|   gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
 | |
|       v8::Isolate* isolate) override;
 | |
| 
 | |
|   static gin::WrapperInfo kWrapperInfo;
 | |
| 
 | |
|   // disable copy
 | |
|   PowerSaveBlocker(const PowerSaveBlocker&) = delete;
 | |
|   PowerSaveBlocker& operator=(const PowerSaveBlocker&) = delete;
 | |
| 
 | |
|  protected:
 | |
|   explicit PowerSaveBlocker(v8::Isolate* isolate);
 | |
|   ~PowerSaveBlocker() override;
 | |
| 
 | |
|  private:
 | |
|   void UpdatePowerSaveBlocker();
 | |
|   int Start(device::mojom::WakeLockType type);
 | |
|   bool Stop(int id);
 | |
|   bool IsStarted(int id) const;
 | |
| 
 | |
|   device::mojom::WakeLock* GetWakeLock();
 | |
| 
 | |
|   // Current wake lock level.
 | |
|   device::mojom::WakeLockType current_lock_type_;
 | |
| 
 | |
|   // Whether the wake lock is currently active.
 | |
|   bool is_wake_lock_active_ = false;
 | |
| 
 | |
|   // Map from id to the corresponding blocker type for each request.
 | |
|   using WakeLockTypeMap = std::map<int, device::mojom::WakeLockType>;
 | |
|   WakeLockTypeMap wake_lock_types_;
 | |
| 
 | |
|   mojo::Remote<device::mojom::WakeLock> wake_lock_;
 | |
| };
 | |
| 
 | |
| }  // namespace electron::api
 | |
| 
 | |
| #endif  // ELECTRON_SHELL_BROWSER_API_ELECTRON_API_POWER_SAVE_BLOCKER_H_
 |