| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/diagnostics/diagnostics_writer.h" | 5 #include "chrome/browser/diagnostics/diagnostics_writer.h" |
| 6 | 6 |
| 7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
| 8 | 8 |
| 9 #if defined(OS_POSIX) | 9 #if defined(OS_POSIX) |
| 10 #include <stdio.h> | 10 #include <stdio.h> |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 class WinConsole : public SimpleConsole { | 60 class WinConsole : public SimpleConsole { |
| 61 public: | 61 public: |
| 62 // The ctor allocates a console. This avoids having to ask the user to start | 62 // The ctor allocates a console. This avoids having to ask the user to start |
| 63 // chrome from a command prompt. | 63 // chrome from a command prompt. |
| 64 WinConsole() | 64 WinConsole() |
| 65 : std_out_(INVALID_HANDLE_VALUE), | 65 : std_out_(INVALID_HANDLE_VALUE), |
| 66 std_in_(INVALID_HANDLE_VALUE) { | 66 std_in_(INVALID_HANDLE_VALUE) { |
| 67 ::AllocConsole(); | 67 ::AllocConsole(); |
| 68 } | 68 } |
| 69 | 69 |
| 70 virtual ~WinConsole() { | 70 ~WinConsole() override { ::FreeConsole(); } |
| 71 ::FreeConsole(); | |
| 72 } | |
| 73 | 71 |
| 74 virtual bool Init() { | 72 bool Init() override { return SetIOHandles(); } |
| 75 return SetIOHandles(); | |
| 76 } | |
| 77 | 73 |
| 78 virtual bool Write(const base::string16& txt) { | 74 bool Write(const base::string16& txt) override { |
| 79 DWORD sz = txt.size(); | 75 DWORD sz = txt.size(); |
| 80 return (TRUE == ::WriteConsoleW(std_out_, txt.c_str(), sz, &sz, NULL)); | 76 return (TRUE == ::WriteConsoleW(std_out_, txt.c_str(), sz, &sz, NULL)); |
| 81 } | 77 } |
| 82 | 78 |
| 83 // Reads a string from the console. Internally it is limited to 256 | 79 // Reads a string from the console. Internally it is limited to 256 |
| 84 // characters. | 80 // characters. |
| 85 virtual void OnQuit() { | 81 void OnQuit() override { |
| 86 // Block here so the user can see the results. | 82 // Block here so the user can see the results. |
| 87 SetColor(SimpleConsole::DEFAULT); | 83 SetColor(SimpleConsole::DEFAULT); |
| 88 Write(L"Press [enter] to continue\n"); | 84 Write(L"Press [enter] to continue\n"); |
| 89 wchar_t buf[256]; | 85 wchar_t buf[256]; |
| 90 DWORD read = arraysize(buf); | 86 DWORD read = arraysize(buf); |
| 91 ::ReadConsoleW(std_in_, buf, read, &read, NULL); | 87 ::ReadConsoleW(std_in_, buf, read, &read, NULL); |
| 92 } | 88 } |
| 93 | 89 |
| 94 // Sets the foreground and background color. | 90 // Sets the foreground and background color. |
| 95 virtual bool SetColor(Color color) { | 91 bool SetColor(Color color) override { |
| 96 uint16 color_combo = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | | 92 uint16 color_combo = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | |
| 97 FOREGROUND_INTENSITY; | 93 FOREGROUND_INTENSITY; |
| 98 switch (color) { | 94 switch (color) { |
| 99 case RED: | 95 case RED: |
| 100 color_combo = FOREGROUND_RED | FOREGROUND_INTENSITY; | 96 color_combo = FOREGROUND_RED | FOREGROUND_INTENSITY; |
| 101 break; | 97 break; |
| 102 case GREEN: | 98 case GREEN: |
| 103 color_combo = FOREGROUND_GREEN | FOREGROUND_INTENSITY; | 99 color_combo = FOREGROUND_GREEN | FOREGROUND_INTENSITY; |
| 104 break; | 100 break; |
| 105 case DEFAULT: | 101 case DEFAULT: |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 result.c_str(), | 275 result.c_str(), |
| 280 outcome_code, | 276 outcome_code, |
| 281 id.c_str(), | 277 id.c_str(), |
| 282 extra.c_str())); | 278 extra.c_str())); |
| 283 } | 279 } |
| 284 } | 280 } |
| 285 return true; | 281 return true; |
| 286 } | 282 } |
| 287 | 283 |
| 288 } // namespace diagnostics | 284 } // namespace diagnostics |
| OLD | NEW |