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

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

Issue 2743013002: Add webdriver endpoint to send custom debugger commands (Closed)
Patch Set: Adding e2e test 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
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/strings/stringprintf.h" 18 #include "base/strings/stringprintf.h"
19 #include "base/time/time.h" 19 #include "base/time/time.h"
20 #include "build/build_config.h" 20 #include "build/build_config.h"
21 #include "chrome/test/chromedriver/capabilities.h" 21 #include "chrome/test/chromedriver/capabilities.h"
22 #include "chrome/test/chromedriver/chrome/console_logger.h" 22 #include "chrome/test/chromedriver/chrome/console_logger.h"
23 #include "chrome/test/chromedriver/chrome/status.h" 23 #include "chrome/test/chromedriver/chrome/status.h"
24 #include "chrome/test/chromedriver/command_listener_proxy.h" 24 #include "chrome/test/chromedriver/command_listener_proxy.h"
25 #include "chrome/test/chromedriver/devtools_events_logger.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
28 #if defined(OS_POSIX) 29 #if defined(OS_POSIX)
29 #include <fcntl.h> 30 #include <fcntl.h>
30 #include <unistd.h> 31 #include <unistd.h>
31 #endif 32 #endif
32 33
33 34
34 namespace { 35 namespace {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 session_log->AddEntry(level, message); 124 session_log->AddEntry(level, message);
124 125
125 return true; 126 return true;
126 } 127 }
127 128
128 } // namespace 129 } // namespace
129 130
130 const char WebDriverLog::kBrowserType[] = "browser"; 131 const char WebDriverLog::kBrowserType[] = "browser";
131 const char WebDriverLog::kDriverType[] = "driver"; 132 const char WebDriverLog::kDriverType[] = "driver";
132 const char WebDriverLog::kPerformanceType[] = "performance"; 133 const char WebDriverLog::kPerformanceType[] = "performance";
134 const char WebDriverLog::kDevToolsType[] = "devtools";
133 135
134 bool WebDriverLog::NameToLevel(const std::string& name, Log::Level* out_level) { 136 bool WebDriverLog::NameToLevel(const std::string& name, Log::Level* out_level) {
135 for (size_t i = 0; i < arraysize(kNameToLevel); ++i) { 137 for (size_t i = 0; i < arraysize(kNameToLevel); ++i) {
136 if (name == kNameToLevel[i].name) { 138 if (name == kNameToLevel[i].name) {
137 *out_level = kNameToLevel[i].level; 139 *out_level = kNameToLevel[i].level;
138 return true; 140 return true;
139 } 141 }
140 } 142 }
141 return false; 143 return false;
142 } 144 }
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 capabilities.perf_logging_prefs); 272 capabilities.perf_logging_prefs);
271 // We use a proxy for |perf_log|'s |CommandListener| interface. 273 // We use a proxy for |perf_log|'s |CommandListener| interface.
272 // Otherwise, |perf_log| would be owned by both session->chrome and 274 // Otherwise, |perf_log| would be owned by both session->chrome and
273 // |session|, which would lead to memory errors on destruction. 275 // |session|, which would lead to memory errors on destruction.
274 // session->chrome will own |perf_log|, and |session| will own |proxy|. 276 // session->chrome will own |perf_log|, and |session| will own |proxy|.
275 // session->command_listeners (the proxy) will be destroyed first. 277 // session->command_listeners (the proxy) will be destroyed first.
276 CommandListenerProxy* proxy = new CommandListenerProxy(perf_log); 278 CommandListenerProxy* proxy = new CommandListenerProxy(perf_log);
277 devtools_listeners.push_back(perf_log); 279 devtools_listeners.push_back(perf_log);
278 command_listeners.push_back(proxy); 280 command_listeners.push_back(proxy);
279 } 281 }
282 } else if (type == WebDriverLog::kDevToolsType) {
283 WebDriverLog* log = new WebDriverLog(type, Log::kAll);
284 logs.push_back(log);
285 DevToolsEventsLogger* dt_events_log =
286 new DevToolsEventsLogger(log,
287 capabilities.devtools_events_logging_prefs);
288 devtools_listeners.push_back(dt_events_log);
280 } else if (type == WebDriverLog::kBrowserType) { 289 } else if (type == WebDriverLog::kBrowserType) {
281 browser_log_level = level; 290 browser_log_level = level;
282 } else if (type != WebDriverLog::kDriverType) { 291 } else if (type != WebDriverLog::kDriverType) {
283 // Driver "should" ignore unrecognized log types, per Selenium tests. 292 // Driver "should" ignore unrecognized log types, per Selenium tests.
284 // For example the Java client passes the "client" log type in the caps, 293 // For example the Java client passes the "client" log type in the caps,
285 // which the server should never provide. 294 // which the server should never provide.
286 LOG(WARNING) << "Ignoring unrecognized log type: " << type; 295 LOG(WARNING) << "Ignoring unrecognized log type: " << type;
287 } 296 }
288 } 297 }
289 // Create "browser" log -- should always exist. 298 // Create "browser" log -- should always exist.
290 WebDriverLog* browser_log = 299 WebDriverLog* browser_log =
291 new WebDriverLog(WebDriverLog::kBrowserType, browser_log_level); 300 new WebDriverLog(WebDriverLog::kBrowserType, browser_log_level);
292 logs.push_back(browser_log); 301 logs.push_back(browser_log);
293 // If the level is OFF, don't even bother listening for DevTools events. 302 // If the level is OFF, don't even bother listening for DevTools events.
294 if (browser_log_level != Log::kOff) 303 if (browser_log_level != Log::kOff)
295 devtools_listeners.push_back(new ConsoleLogger(browser_log)); 304 devtools_listeners.push_back(new ConsoleLogger(browser_log));
296 305
297 out_logs->swap(logs); 306 out_logs->swap(logs);
298 out_devtools_listeners->swap(devtools_listeners); 307 out_devtools_listeners->swap(devtools_listeners);
299 out_command_listeners->swap(command_listeners); 308 out_command_listeners->swap(command_listeners);
300 return Status(kOk); 309 return Status(kOk);
301 } 310 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698