forked from mirrors/gecko-dev
		
	Bug 1859625 Part 2: Stop sending the GetGraphicsDeviceInitData message. r=ipc-reviewers,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D192999
This commit is contained in:
		
							parent
							
								
									8272a162fb
								
							
						
					
					
						commit
						7ae9549693
					
				
					 9 changed files with 24 additions and 33 deletions
				
			
		|  | @ -5914,12 +5914,6 @@ mozilla::ipc::IPCResult ContentParent::RecvShutdownPerfStats( | |||
|   return IPC_OK(); | ||||
| } | ||||
| 
 | ||||
| mozilla::ipc::IPCResult ContentParent::RecvGetGraphicsDeviceInitData( | ||||
|     ContentDeviceData* aOut) { | ||||
|   gfxPlatform::GetPlatform()->BuildContentDeviceData(aOut); | ||||
|   return IPC_OK(); | ||||
| } | ||||
| 
 | ||||
| mozilla::ipc::IPCResult ContentParent::RecvGetOutputColorProfileData( | ||||
|     nsTArray<uint8_t>* aOutputColorProfileData) { | ||||
|   (*aOutputColorProfileData) = | ||||
|  |  | |||
|  | @ -1133,9 +1133,6 @@ class ContentParent final : public PContentParent, | |||
| 
 | ||||
|   mozilla::ipc::IPCResult RecvShutdownPerfStats(const nsACString& aPerfStats); | ||||
| 
 | ||||
|   mozilla::ipc::IPCResult RecvGetGraphicsDeviceInitData( | ||||
|       ContentDeviceData* aOut); | ||||
| 
 | ||||
|   mozilla::ipc::IPCResult RecvGetOutputColorProfileData( | ||||
|       nsTArray<uint8_t>* aOutputColorProfileData); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1330,12 +1330,6 @@ parent: | |||
|      */ | ||||
|     async ShutdownPerfStats(nsCString aPerfStats); | ||||
| 
 | ||||
|     /** | ||||
|      * Request graphics initialization information from the parent. | ||||
|      */ | ||||
|     sync GetGraphicsDeviceInitData() | ||||
|         returns (ContentDeviceData aData); | ||||
| 
 | ||||
|     /** | ||||
|      * Request a buffer containing the contents of the output color profile. | ||||
|      * If set, this is the file pointed to by | ||||
|  |  | |||
|  | @ -467,10 +467,10 @@ bool gfxPlatform::Initialized() { return !!gPlatform; } | |||
| /* static */ | ||||
| void gfxPlatform::InitChild(const ContentDeviceData& aData) { | ||||
|   MOZ_ASSERT(XRE_IsContentProcess()); | ||||
|   MOZ_RELEASE_ASSERT(!gPlatform, | ||||
|   MOZ_ASSERT(!gPlatform, | ||||
|              "InitChild() should be called before first GetPlatform()"); | ||||
|   // Make the provided initial ContentDeviceData available to the init
 | ||||
|   // routines, so they don't have to do a sync request from the parent.
 | ||||
|   // routines.
 | ||||
|   gContentDeviceInitData = &aData; | ||||
|   Init(); | ||||
|   gContentDeviceInitData = nullptr; | ||||
|  | @ -3869,20 +3869,16 @@ void gfxPlatform::DisableGPUProcess() { | |||
|   gfxVars::SetRemoteCanvasEnabled(false); | ||||
| } | ||||
| 
 | ||||
| void gfxPlatform::FetchAndImportContentDeviceData() { | ||||
| void gfxPlatform::ImportCachedContentDeviceData() { | ||||
|   MOZ_ASSERT(XRE_IsContentProcess()); | ||||
| 
 | ||||
|   if (gContentDeviceInitData) { | ||||
|     ImportContentDeviceData(*gContentDeviceInitData); | ||||
|   // Import the content device data if we've got some waiting.
 | ||||
|   if (!gContentDeviceInitData) { | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   mozilla::dom::ContentChild* cc = mozilla::dom::ContentChild::GetSingleton(); | ||||
| 
 | ||||
|   mozilla::gfx::ContentDeviceData data; | ||||
|   cc->SendGetGraphicsDeviceInitData(&data); | ||||
| 
 | ||||
|   ImportContentDeviceData(data); | ||||
|   ImportContentDeviceData(*gContentDeviceInitData); | ||||
|   gContentDeviceInitData = nullptr; | ||||
| } | ||||
| 
 | ||||
| void gfxPlatform::ImportContentDeviceData( | ||||
|  |  | |||
|  | @ -862,10 +862,10 @@ class gfxPlatform : public mozilla::layers::MemoryPressureListener { | |||
|   void InitBackendPrefs(BackendPrefsData&& aPrefsData); | ||||
| 
 | ||||
|   /**
 | ||||
|    * Content-process only. Requests device preferences from the parent process | ||||
|    * and updates any cached settings. | ||||
|    * Content-process only. Updates device preferences from the parent process, | ||||
|    * if we've received any. | ||||
|    */ | ||||
|   void FetchAndImportContentDeviceData(); | ||||
|   void ImportCachedContentDeviceData(); | ||||
|   virtual void ImportContentDeviceData( | ||||
|       const mozilla::gfx::ContentDeviceData& aData); | ||||
| 
 | ||||
|  |  | |||
|  | @ -144,6 +144,14 @@ gfxPlatformGtk::~gfxPlatformGtk() { | |||
|   gPlatformFTLibrary = nullptr; | ||||
| } | ||||
| 
 | ||||
| void gfxPlatformGtk::InitAcceleration() { | ||||
|   gfxPlatform::InitAcceleration(); | ||||
| 
 | ||||
|   if (XRE_IsContentProcess()) { | ||||
|     ImportCachedContentDeviceData(); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| void gfxPlatformGtk::InitX11EGLConfig() { | ||||
|   FeatureState& feature = gfxConfig::GetFeature(Feature::X11_EGL); | ||||
| #ifdef MOZ_X11 | ||||
|  |  | |||
|  | @ -65,6 +65,7 @@ class gfxPlatformGtk final : public gfxPlatform { | |||
|   static bool CheckVariationFontSupport(); | ||||
| 
 | ||||
|  protected: | ||||
|   void InitAcceleration() override; | ||||
|   void InitX11EGLConfig(); | ||||
|   void InitDmabufConfig(); | ||||
|   bool InitVAAPIConfig(bool aForceEnabledByUser); | ||||
|  |  | |||
|  | @ -373,6 +373,9 @@ void gfxWindowsPlatform::InitAcceleration() { | |||
| 
 | ||||
|   DeviceManagerDx::Init(); | ||||
| 
 | ||||
|   // Content processes should have received content device data from parent.
 | ||||
|   MOZ_ASSERT_IF(XRE_IsContentProcess(), GetInitContentDeviceData()); | ||||
| 
 | ||||
|   InitializeConfig(); | ||||
|   InitGPUProcessSupport(); | ||||
|   // Ensure devices initialization. SharedSurfaceANGLE and
 | ||||
|  | @ -1198,7 +1201,7 @@ void gfxWindowsPlatform::InitializeConfig() { | |||
|     InitializeANGLEConfig(); | ||||
|     InitializeD2DConfig(); | ||||
|   } else { | ||||
|     FetchAndImportContentDeviceData(); | ||||
|     ImportCachedContentDeviceData(); | ||||
|     InitializeANGLEConfig(); | ||||
|   } | ||||
| } | ||||
|  |  | |||
|  | @ -68,8 +68,6 @@ description = legacy sync IPC - please add detailed description | |||
| description = legacy sync IPC - please add detailed description | ||||
| [PContent::EndDriverCrashGuard] | ||||
| description = legacy sync IPC - please add detailed description | ||||
| [PContent::GetGraphicsDeviceInitData] | ||||
| description = Retrieve information needed to initialize the graphics device in the content process | ||||
| [PContent::GetOutputColorProfileData] | ||||
| description = Retrieve the contents of the output color profile file | ||||
| [PContent::GetFontListShmBlock] | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Brad Werth
						Brad Werth