Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(481)

Side by Side Diff: chrome/test/chromedriver/logging.cc

Issue 2777883003: Remove ScopedVector from chrome/test/chromedriver/ (Closed)
Patch Set: address nit from stgao@ Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/test/chromedriver/logging.h ('k') | chrome/test/chromedriver/logging_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/test/chromedriver/logging.h" 5 #include "chrome/test/chromedriver/logging.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <stdio.h> 9 #include <stdio.h>
10 10
11 #include <memory> 11 #include <memory>
12 #include <utility> 12 #include <utility>
13 13
14 #include "base/command_line.h" 14 #include "base/command_line.h"
15 #include "base/json/json_reader.h" 15 #include "base/json/json_reader.h"
16 #include "base/logging.h" 16 #include "base/logging.h"
17 #include "base/macros.h" 17 #include "base/macros.h"
18 #include "base/memory/ptr_util.h"
18 #include "base/strings/stringprintf.h" 19 #include "base/strings/stringprintf.h"
19 #include "base/time/time.h" 20 #include "base/time/time.h"
20 #include "build/build_config.h" 21 #include "build/build_config.h"
21 #include "chrome/test/chromedriver/capabilities.h" 22 #include "chrome/test/chromedriver/capabilities.h"
22 #include "chrome/test/chromedriver/chrome/console_logger.h" 23 #include "chrome/test/chromedriver/chrome/console_logger.h"
23 #include "chrome/test/chromedriver/chrome/status.h" 24 #include "chrome/test/chromedriver/chrome/status.h"
24 #include "chrome/test/chromedriver/command_listener_proxy.h" 25 #include "chrome/test/chromedriver/command_listener_proxy.h"
25 #include "chrome/test/chromedriver/performance_logger.h" 26 #include "chrome/test/chromedriver/performance_logger.h"
26 #include "chrome/test/chromedriver/session.h" 27 #include "chrome/test/chromedriver/session.h"
27 28
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 false, // enable_thread_id 265 false, // enable_thread_id
265 false, // enable_timestamp 266 false, // enable_timestamp
266 false); // enable_tickcount 267 false); // enable_tickcount
267 logging::SetLogMessageHandler(&HandleLogMessage); 268 logging::SetLogMessageHandler(&HandleLogMessage);
268 269
269 logging::LoggingSettings logging_settings; 270 logging::LoggingSettings logging_settings;
270 logging_settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; 271 logging_settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG;
271 return logging::InitLogging(logging_settings); 272 return logging::InitLogging(logging_settings);
272 } 273 }
273 274
274 Status CreateLogs(const Capabilities& capabilities, 275 Status CreateLogs(
275 const Session* session, 276 const Capabilities& capabilities,
276 ScopedVector<WebDriverLog>* out_logs, 277 const Session* session,
277 ScopedVector<DevToolsEventListener>* out_devtools_listeners, 278 std::vector<std::unique_ptr<WebDriverLog>>* out_logs,
278 ScopedVector<CommandListener>* out_command_listeners) { 279 std::vector<std::unique_ptr<DevToolsEventListener>>* out_devtools_listeners,
279 ScopedVector<WebDriverLog> logs; 280 std::vector<std::unique_ptr<CommandListener>>* out_command_listeners) {
280 ScopedVector<DevToolsEventListener> devtools_listeners; 281 std::vector<std::unique_ptr<WebDriverLog>> logs;
281 ScopedVector<CommandListener> command_listeners; 282 std::vector<std::unique_ptr<DevToolsEventListener>> devtools_listeners;
283 std::vector<std::unique_ptr<CommandListener>> command_listeners;
282 Log::Level browser_log_level = Log::kWarning; 284 Log::Level browser_log_level = Log::kWarning;
283 const LoggingPrefs& prefs = capabilities.logging_prefs; 285 const LoggingPrefs& prefs = capabilities.logging_prefs;
284 286
285 for (LoggingPrefs::const_iterator iter = prefs.begin(); 287 for (LoggingPrefs::const_iterator iter = prefs.begin();
286 iter != prefs.end(); 288 iter != prefs.end();
287 ++iter) { 289 ++iter) {
288 std::string type = iter->first; 290 std::string type = iter->first;
289 Log::Level level = iter->second; 291 Log::Level level = iter->second;
290 if (type == WebDriverLog::kPerformanceType) { 292 if (type == WebDriverLog::kPerformanceType) {
291 if (level != Log::kOff) { 293 if (level != Log::kOff) {
292 WebDriverLog* log = new WebDriverLog(type, Log::kAll); 294 logs.push_back(base::MakeUnique<WebDriverLog>(type, Log::kAll));
293 logs.push_back(log); 295 devtools_listeners.push_back(base::MakeUnique<PerformanceLogger>(
296 logs.back().get(), session, capabilities.perf_logging_prefs));
294 PerformanceLogger* perf_log = 297 PerformanceLogger* perf_log =
295 new PerformanceLogger(log, session, 298 static_cast<PerformanceLogger*>(devtools_listeners.back().get());
296 capabilities.perf_logging_prefs);
297 // We use a proxy for |perf_log|'s |CommandListener| interface. 299 // We use a proxy for |perf_log|'s |CommandListener| interface.
298 // Otherwise, |perf_log| would be owned by both session->chrome and 300 // Otherwise, |perf_log| would be owned by both session->chrome and
299 // |session|, which would lead to memory errors on destruction. 301 // |session|, which would lead to memory errors on destruction.
300 // session->chrome will own |perf_log|, and |session| will own |proxy|. 302 // session->chrome will own |perf_log|, and |session| will own |proxy|.
301 // session->command_listeners (the proxy) will be destroyed first. 303 // session->command_listeners (the proxy) will be destroyed first.
302 CommandListenerProxy* proxy = new CommandListenerProxy(perf_log); 304 command_listeners.push_back(
303 devtools_listeners.push_back(perf_log); 305 base::MakeUnique<CommandListenerProxy>(perf_log));
304 command_listeners.push_back(proxy);
305 } 306 }
306 } else if (type == WebDriverLog::kBrowserType) { 307 } else if (type == WebDriverLog::kBrowserType) {
307 browser_log_level = level; 308 browser_log_level = level;
308 } else if (type != WebDriverLog::kDriverType) { 309 } else if (type != WebDriverLog::kDriverType) {
309 // Driver "should" ignore unrecognized log types, per Selenium tests. 310 // Driver "should" ignore unrecognized log types, per Selenium tests.
310 // For example the Java client passes the "client" log type in the caps, 311 // For example the Java client passes the "client" log type in the caps,
311 // which the server should never provide. 312 // which the server should never provide.
312 LOG(WARNING) << "Ignoring unrecognized log type: " << type; 313 LOG(WARNING) << "Ignoring unrecognized log type: " << type;
313 } 314 }
314 } 315 }
315 // Create "browser" log -- should always exist. 316 // Create "browser" log -- should always exist.
316 WebDriverLog* browser_log = 317 logs.push_back(base::MakeUnique<WebDriverLog>(WebDriverLog::kBrowserType,
317 new WebDriverLog(WebDriverLog::kBrowserType, browser_log_level); 318 browser_log_level));
318 logs.push_back(browser_log);
319 // If the level is OFF, don't even bother listening for DevTools events. 319 // If the level is OFF, don't even bother listening for DevTools events.
320 if (browser_log_level != Log::kOff) 320 if (browser_log_level != Log::kOff)
321 devtools_listeners.push_back(new ConsoleLogger(browser_log)); 321 devtools_listeners.push_back(
322 base::MakeUnique<ConsoleLogger>(logs.back().get()));
322 323
323 out_logs->swap(logs); 324 out_logs->swap(logs);
324 out_devtools_listeners->swap(devtools_listeners); 325 out_devtools_listeners->swap(devtools_listeners);
325 out_command_listeners->swap(command_listeners); 326 out_command_listeners->swap(command_listeners);
326 return Status(kOk); 327 return Status(kOk);
327 } 328 }
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/logging.h ('k') | chrome/test/chromedriver/logging_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698