 752efddf89
			
		
	
	
	
	
	752efddf89* refactor: use private inheritance in CookieChangeNotifier * refactor: use private inheritance in WebViewGuestDelegate * refactor: use private inheritance in UsbChooserController * refactor: use private inheritance in DesktopCapturer * refactor: use private inheritance in Browser * refactor: use private inheritance in WebContentsZoomController * refactor: use private inheritance in FrameSubscriber * refactor: use private inheritance in AutofillAgent * refactor: use private inheritance in HidChooserController * refactor: use private inheritance in PepperHelper * refactor: use private inheritance in AutofillPopup * refactor: use private inheritance in SerialChooserController * refactor: use private inheritance in MediaCaptureDevicesDispatcher * refactor: use private inheritance in electron::api::View * refactor: use private inheritance in AutofillDriverFactory * refactor: use private inheritance in GPUInfoManager * refactor: use private inheritance in SavePageHandler * refactor: use private inheritance in GlobalShortcut * refactor: use private inheritance in ElectronRenderFrameObserver
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (c) 2017 GitHub, Inc.
 | |
| // Use of this source code is governed by the MIT license that can be
 | |
| // found in the LICENSE file.
 | |
| 
 | |
| #ifndef ELECTRON_SHELL_RENDERER_ELECTRON_RENDER_FRAME_OBSERVER_H_
 | |
| #define ELECTRON_SHELL_RENDERER_ELECTRON_RENDER_FRAME_OBSERVER_H_
 | |
| 
 | |
| #include <string>
 | |
| 
 | |
| #include "content/public/renderer/render_frame_observer.h"
 | |
| #include "ipc/ipc_platform_file.h"
 | |
| #include "third_party/blink/public/web/web_local_frame.h"
 | |
| 
 | |
| namespace electron {
 | |
| 
 | |
| class RendererClientBase;
 | |
| 
 | |
| // Helper class to forward the messages to the client.
 | |
| class ElectronRenderFrameObserver : private content::RenderFrameObserver {
 | |
|  public:
 | |
|   ElectronRenderFrameObserver(content::RenderFrame* frame,
 | |
|                               RendererClientBase* renderer_client);
 | |
| 
 | |
|   // disable copy
 | |
|   ElectronRenderFrameObserver(const ElectronRenderFrameObserver&) = delete;
 | |
|   ElectronRenderFrameObserver& operator=(const ElectronRenderFrameObserver&) =
 | |
|       delete;
 | |
| 
 | |
|  private:
 | |
|   // content::RenderFrameObserver:
 | |
|   void DidClearWindowObject() override;
 | |
|   void DidInstallConditionalFeatures(v8::Handle<v8::Context> context,
 | |
|                                      int world_id) override;
 | |
|   void WillReleaseScriptContext(v8::Local<v8::Context> context,
 | |
|                                 int world_id) override;
 | |
|   void OnDestruct() override;
 | |
|   void DidMeaningfulLayout(blink::WebMeaningfulLayout layout_type) override;
 | |
| 
 | |
|   [[nodiscard]] bool ShouldNotifyClient(int world_id) const;
 | |
| 
 | |
|   void CreateIsolatedWorldContext();
 | |
|   void OnTakeHeapSnapshot(IPC::PlatformFileForTransit file_handle,
 | |
|                           const std::string& channel);
 | |
| 
 | |
|   bool has_delayed_node_initialization_ = false;
 | |
|   content::RenderFrame* render_frame_;
 | |
|   RendererClientBase* renderer_client_;
 | |
| };
 | |
| 
 | |
| }  // namespace electron
 | |
| 
 | |
| #endif  // ELECTRON_SHELL_RENDERER_ELECTRON_RENDER_FRAME_OBSERVER_H_
 |