win: Use electron.app.$1 as default user model id
authorCheng Zhao <zcbenz@gmail.com>
Tue, 3 Nov 2015 07:49:37 +0000 (15:49 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Tue, 3 Nov 2015 07:50:43 +0000 (15:50 +0800)
This is to keep compatibility with old apps that don't set app user
model id explicitly.

atom/browser/browser_win.cc

index a2725b17c1f74e751780b613ae23b92038ada464..ce36d56b620c80ca8ecbd312749c4b956222a0a0 100644 (file)
@@ -15,6 +15,7 @@
 #include "base/files/file_path.h"
 #include "base/memory/scoped_ptr.h"
 #include "base/path_service.h"
+#include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/win/win_util.h"
@@ -25,6 +26,8 @@ namespace atom {
 
 namespace {
 
+const wchar_t kAppUserModelIDFormat[] = L"electron.app.$1";
+
 BOOL CALLBACK WindowsEnumerationHandler(HWND hwnd, LPARAM param) {
   DWORD target_process_id = *reinterpret_cast<DWORD*>(param);
   DWORD process_id = 0;
@@ -123,8 +126,10 @@ void Browser::SetUserTasks(const std::vector<UserTask>& tasks) {
 }
 
 PCWSTR Browser::GetAppUserModelID() {
-  if (app_user_model_id_.empty())
-    SetAppUserModelID(base::UTF8ToUTF16(GetName()));
+  if (app_user_model_id_.empty()) {
+    SetAppUserModelID(ReplaceStringPlaceholders(
+        kAppUserModelIDFormat, base::UTF8ToUTF16(GetName()), nullptr));
+  }
 
   return app_user_model_id_.c_str();
 }