From 79c3377cd7b7f525b68caf23f77d6ddf4438660a Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 25 Jun 2014 09:05:10 +0800 Subject: [PATCH] Show chromium's version in user agent, fixes #428. --- atom/browser/native_window.cc | 6 ++++-- atom/common/chrome_version.h | 14 ++++++++++++++ script/bootstrap.py | 17 +++++++++++++++++ script/chrome_version.h.in | 14 ++++++++++++++ 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 atom/common/chrome_version.h create mode 100644 script/chrome_version.h.in diff --git a/atom/browser/native_window.cc b/atom/browser/native_window.cc index fc907af67a82..6b1ccd6ce954 100644 --- a/atom/browser/native_window.cc +++ b/atom/browser/native_window.cc @@ -16,6 +16,7 @@ #include "atom/browser/window_list.h" #include "atom/common/api/api_messages.h" #include "atom/common/atom_version.h" +#include "atom/common/chrome_version.h" #include "atom/common/native_mate_converters/image_converter.h" #include "atom/common/native_mate_converters/file_path_converter.h" #include "atom/common/options_switches.h" @@ -99,9 +100,10 @@ NativeWindow::NativeWindow(content::WebContents* web_contents, // Override the user agent to contain application and atom-shell's version. Browser* browser = Browser::Get(); std::string product_name = base::StringPrintf( - "%s/%s Atom-Shell/" ATOM_VERSION_STRING, + "%s/%s Chrome/%s Atom-Shell/" ATOM_VERSION_STRING, browser->GetName().c_str(), - browser->GetVersion().c_str()); + browser->GetVersion().c_str(), + CHROME_VERSION_STRING); web_contents->GetMutableRendererPrefs()->user_agent_override = webkit_glue::BuildUserAgentFromProduct(product_name); diff --git a/atom/common/chrome_version.h b/atom/common/chrome_version.h new file mode 100644 index 000000000000..fcbf46850b71 --- /dev/null +++ b/atom/common/chrome_version.h @@ -0,0 +1,14 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +// This file is generated by script/bootstrap.py, you should never modify it +// by hand. + +#ifndef ATOM_COMMON_CHROME_VERSION_H_ +#define ATOM_COMMON_CHROME_VERSION_H_ + +#define CHROME_VERSION_STRING "31.0.1650.57" +#define CHROME_VERSION "v" CHROME_VERSION_STRING + +#endif // ATOM_COMMON_CHROME_VERSION_H_ diff --git a/script/bootstrap.py b/script/bootstrap.py index 87e5b9e046a0..fb32a9758c48 100755 --- a/script/bootstrap.py +++ b/script/bootstrap.py @@ -28,6 +28,7 @@ def main(): if sys.platform in ['win32', 'cygwin']: install_runas() + create_chrome_version_h() touch_config_gypi() update_atom_shell() @@ -81,6 +82,22 @@ def install_runas(): execute([NPM, 'install', 'runas']) +def create_chrome_version_h(): + version_file = os.path.join(SOURCE_ROOT, 'vendor', 'brightray', 'vendor', + 'libchromiumcontent', 'VERSION') + target_file = os.path.join(SOURCE_ROOT, 'atom', 'common', 'chrome_version.h') + template_file = os.path.join(SOURCE_ROOT, 'script', 'chrome_version.h.in') + + with open(version_file, 'r') as f: + version = f.read() + with open(template_file, 'r') as f: + template = f.read() + with open(target_file, 'w+') as f: + content = template.replace('{PLACEHOLDER}', version.strip()) + if f.read() != content: + f.write(content) + + def touch_config_gypi(): config_gypi = os.path.join(SOURCE_ROOT, 'vendor', 'node', 'config.gypi') with open(config_gypi, 'w+') as f: diff --git a/script/chrome_version.h.in b/script/chrome_version.h.in new file mode 100644 index 000000000000..b048874fde8f --- /dev/null +++ b/script/chrome_version.h.in @@ -0,0 +1,14 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +// This file is generated by script/bootstrap.py, you should never modify it +// by hand. + +#ifndef ATOM_COMMON_CHROME_VERSION_H_ +#define ATOM_COMMON_CHROME_VERSION_H_ + +#define CHROME_VERSION_STRING "{PLACEHOLDER}" +#define CHROME_VERSION "v" CHROME_VERSION_STRING + +#endif // ATOM_COMMON_CHROME_VERSION_H_