fix: don't expose nativeTheme in the renderer process (#20139)
Exposing these in the renderer didn't make sense as they weren't backed by the same instance / value store. This API should be browser only especially now that we have nativeTheme.themeSource. Exposing in //common was a mistake from the beginning.
This commit is contained in:
parent
999f7df158
commit
660e566201
9 changed files with 11 additions and 14 deletions
65
shell/browser/api/atom_api_native_theme.h
Normal file
65
shell/browser/api/atom_api_native_theme.h
Normal file
|
@ -0,0 +1,65 @@
|
|||
// Copyright (c) 2019 Slack Technologies, Inc.
|
||||
// Use of this source code is governed by the MIT license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef SHELL_BROWSER_API_ATOM_API_NATIVE_THEME_H_
|
||||
#define SHELL_BROWSER_API_ATOM_API_NATIVE_THEME_H_
|
||||
|
||||
#include "native_mate/handle.h"
|
||||
#include "shell/browser/api/event_emitter.h"
|
||||
#include "ui/native_theme/native_theme.h"
|
||||
#include "ui/native_theme/native_theme_observer.h"
|
||||
|
||||
namespace electron {
|
||||
|
||||
namespace api {
|
||||
|
||||
class NativeTheme : public mate::EventEmitter<NativeTheme>,
|
||||
public ui::NativeThemeObserver {
|
||||
public:
|
||||
static v8::Local<v8::Value> Create(v8::Isolate* isolate);
|
||||
|
||||
static void BuildPrototype(v8::Isolate* isolate,
|
||||
v8::Local<v8::FunctionTemplate> prototype);
|
||||
|
||||
protected:
|
||||
NativeTheme(v8::Isolate* isolate, ui::NativeTheme* theme);
|
||||
~NativeTheme() override;
|
||||
|
||||
void SetThemeSource(ui::NativeTheme::ThemeSource override);
|
||||
#if defined(OS_MACOSX)
|
||||
void UpdateMacOSAppearanceForOverrideValue(
|
||||
ui::NativeTheme::ThemeSource override);
|
||||
#endif
|
||||
ui::NativeTheme::ThemeSource GetThemeSource() const;
|
||||
bool ShouldUseDarkColors();
|
||||
bool ShouldUseHighContrastColors();
|
||||
bool ShouldUseInvertedColorScheme();
|
||||
|
||||
// ui::NativeThemeObserver:
|
||||
void OnNativeThemeUpdated(ui::NativeTheme* theme) override;
|
||||
|
||||
private:
|
||||
ui::NativeTheme* theme_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(NativeTheme);
|
||||
};
|
||||
|
||||
} // namespace api
|
||||
|
||||
} // namespace electron
|
||||
|
||||
namespace mate {
|
||||
|
||||
template <>
|
||||
struct Converter<ui::NativeTheme::ThemeSource> {
|
||||
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
||||
const ui::NativeTheme::ThemeSource& val);
|
||||
static bool FromV8(v8::Isolate* isolate,
|
||||
v8::Local<v8::Value> val,
|
||||
ui::NativeTheme::ThemeSource* out);
|
||||
};
|
||||
|
||||
} // namespace mate
|
||||
|
||||
#endif // SHELL_BROWSER_API_ATOM_API_NATIVE_THEME_H_
|
Loading…
Add table
Add a link
Reference in a new issue