From fb6c80d12ecbb99a481e1018a0d1d56c3fc4dce3 Mon Sep 17 00:00:00 2001 From: Paul Betts Date: Tue, 28 Apr 2015 12:08:31 -0700 Subject: [PATCH] Create an explicit API for setting the App User Model ID --- atom/browser/api/atom_api_app.cc | 8 ++++++++ atom/browser/api/atom_api_app.h | 1 + 2 files changed, 9 insertions(+) diff --git a/atom/browser/api/atom_api_app.cc b/atom/browser/api/atom_api_app.cc index 37cfaf64039..78de29c1fac 100644 --- a/atom/browser/api/atom_api_app.cc +++ b/atom/browser/api/atom_api_app.cc @@ -200,6 +200,13 @@ void App::SetDesktopName(const std::string& desktop_name) { #endif } +void App::SetAppUserModelId(const std::string& app_id) { +#if defined(OS_WIN) + base::string16 app_id_utf16 = base::UTF8ToUTF16(app_id); + SetCurrentProcessExplicitAppUserModelID(app_id_utf16.c_str()); +#endif +} + mate::ObjectTemplateBuilder App::GetObjectTemplateBuilder( v8::Isolate* isolate) { auto browser = base::Unretained(Browser::Get()); @@ -223,6 +230,7 @@ mate::ObjectTemplateBuilder App::GetObjectTemplateBuilder( .SetMethod("getPath", &App::GetPath) .SetMethod("resolveProxy", &App::ResolveProxy) .SetMethod("setDesktopName", &App::SetDesktopName); + .SetMethod("setAppUserModelId", &App::SetAppUserModelId); } // static diff --git a/atom/browser/api/atom_api_app.h b/atom/browser/api/atom_api_app.h index 062d2d083d2..c2f9212b7ca 100644 --- a/atom/browser/api/atom_api_app.h +++ b/atom/browser/api/atom_api_app.h @@ -61,6 +61,7 @@ class App : public mate::EventEmitter, void ResolveProxy(const GURL& url, ResolveProxyCallback callback); void SetDesktopName(const std::string& desktop_name); + void SetAppUserModelId(const std::string& app_id); DISALLOW_COPY_AND_ASSIGN(App); };