feat: add transparency checking to nativeTheme (#43137)
		
	feat: add transparency checking to nativeTheme
This commit is contained in:
		
					parent
					
						
							
								8e21aad444
							
						
					
				
			
			
				commit
				
					
						832090d01c
					
				
			
		
					 4 changed files with 18 additions and 1 deletions
				
			
		|  | @ -72,3 +72,7 @@ or is being instructed to use an inverted color scheme. | ||||||
| 
 | 
 | ||||||
| A `boolean` indicating whether Chromium is in forced colors mode, controlled by system accessibility settings. | A `boolean` indicating whether Chromium is in forced colors mode, controlled by system accessibility settings. | ||||||
| Currently, Windows high contrast is the only system setting that triggers forced colors mode. | Currently, Windows high contrast is the only system setting that triggers forced colors mode. | ||||||
|  | 
 | ||||||
|  | ### `nativeTheme.prefersReducedTransparency` _Readonly_ | ||||||
|  | 
 | ||||||
|  | A `boolean` that indicates the whether the user has chosen via system accessibility settings to reduce transparency at the OS level. | ||||||
|  |  | ||||||
|  | @ -68,6 +68,10 @@ bool NativeTheme::InForcedColorsMode() { | ||||||
|   return ui_theme_->InForcedColorsMode(); |   return ui_theme_->InForcedColorsMode(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | bool NativeTheme::GetPrefersReducedTransparency() { | ||||||
|  |   return ui_theme_->GetPrefersReducedTransparency(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| #if BUILDFLAG(IS_MAC) | #if BUILDFLAG(IS_MAC) | ||||||
| const CFStringRef WhiteOnBlack = CFSTR("whiteOnBlack"); | const CFStringRef WhiteOnBlack = CFSTR("whiteOnBlack"); | ||||||
| const CFStringRef UniversalAccessDomain = CFSTR("com.apple.universalaccess"); | const CFStringRef UniversalAccessDomain = CFSTR("com.apple.universalaccess"); | ||||||
|  | @ -108,7 +112,9 @@ gin::ObjectTemplateBuilder NativeTheme::GetObjectTemplateBuilder( | ||||||
|                    &NativeTheme::ShouldUseHighContrastColors) |                    &NativeTheme::ShouldUseHighContrastColors) | ||||||
|       .SetProperty("shouldUseInvertedColorScheme", |       .SetProperty("shouldUseInvertedColorScheme", | ||||||
|                    &NativeTheme::ShouldUseInvertedColorScheme) |                    &NativeTheme::ShouldUseInvertedColorScheme) | ||||||
|       .SetProperty("inForcedColorsMode", &NativeTheme::InForcedColorsMode); |       .SetProperty("inForcedColorsMode", &NativeTheme::InForcedColorsMode) | ||||||
|  |       .SetProperty("prefersReducedTransparency", | ||||||
|  |                    &NativeTheme::GetPrefersReducedTransparency); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char* NativeTheme::GetTypeName() { | const char* NativeTheme::GetTypeName() { | ||||||
|  |  | ||||||
|  | @ -46,6 +46,7 @@ class NativeTheme : public gin::Wrappable<NativeTheme>, | ||||||
|   bool ShouldUseHighContrastColors(); |   bool ShouldUseHighContrastColors(); | ||||||
|   bool ShouldUseInvertedColorScheme(); |   bool ShouldUseInvertedColorScheme(); | ||||||
|   bool InForcedColorsMode(); |   bool InForcedColorsMode(); | ||||||
|  |   bool GetPrefersReducedTransparency(); | ||||||
| 
 | 
 | ||||||
|   // ui::NativeThemeObserver:
 |   // ui::NativeThemeObserver:
 | ||||||
|   void OnNativeThemeUpdated(ui::NativeTheme* theme) override; |   void OnNativeThemeUpdated(ui::NativeTheme* theme) override; | ||||||
|  |  | ||||||
|  | @ -105,4 +105,10 @@ describe('nativeTheme module', () => { | ||||||
|       expect(nativeTheme.inForcedColorsMode).to.be.a('boolean'); |       expect(nativeTheme.inForcedColorsMode).to.be.a('boolean'); | ||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
|  | 
 | ||||||
|  |   describe('nativeTheme.prefersReducesTransparency', () => { | ||||||
|  |     it('returns a boolean', () => { | ||||||
|  |       expect(nativeTheme.prefersReducedTransparency).to.be.a('boolean'); | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
| }); | }); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Shelley Vohr
				Shelley Vohr