cc: Added inline to Tile::IsReadyToDraw
[chromium-blink-merge.git] / cloud_print / service / win / service_utils.cc
blobe63f2ab3d9a557d55dfdcc9e9fcdd86523f6f9ed
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "cloud_print/service/win/service_utils.h"
6 #include "google_apis/gaia/gaia_switches.h"
8 #include <windows.h>
9 #include <security.h> // NOLINT
11 #include "base/command_line.h"
12 #include "base/strings/string_util.h"
13 #include "chrome/common/chrome_switches.h"
15 string16 GetLocalComputerName() {
16 DWORD size = 0;
17 string16 result;
18 ::GetComputerName(NULL, &size);
19 result.resize(size);
20 if (result.empty())
21 return result;
22 if (!::GetComputerName(&result[0], &size))
23 return string16();
24 result.resize(size);
25 return result;
28 string16 ReplaceLocalHostInName(const string16& user_name) {
29 static const wchar_t kLocalDomain[] = L".\\";
30 if (StartsWith(user_name, kLocalDomain, true)) {
31 return GetLocalComputerName() +
32 user_name.substr(arraysize(kLocalDomain) - 2);
34 return user_name;
37 string16 GetCurrentUserName() {
38 ULONG size = 0;
39 string16 result;
40 ::GetUserNameEx(::NameSamCompatible, NULL, &size);
41 result.resize(size);
42 if (result.empty())
43 return result;
44 if (!::GetUserNameEx(::NameSamCompatible, &result[0], &size))
45 return string16();
46 result.resize(size);
47 return result;
50 void CopyChromeSwitchesFromCurrentProcess(CommandLine* destination) {
51 static const char* const kSwitchesToCopy[] = {
52 switches::kCloudPrintServiceURL,
53 switches::kEnableLogging,
54 switches::kIgnoreUrlFetcherCertRequests,
55 switches::kLsoUrl,
56 switches::kV,
58 destination->CopySwitchesFrom(*CommandLine::ForCurrentProcess(),
59 kSwitchesToCopy,
60 arraysize(kSwitchesToCopy));