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

Unified Diff: chrome/test/webdriver/webdriver_dispatch.h

Issue 23526047: Delete old chromedriver code, and remove mongoose webserver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/webdriver/webdriver_dispatch.h
diff --git a/chrome/test/webdriver/webdriver_dispatch.h b/chrome/test/webdriver/webdriver_dispatch.h
deleted file mode 100644
index 5aa5a73e35194dfdd6c306badb1b459e33827120..0000000000000000000000000000000000000000
--- a/chrome/test/webdriver/webdriver_dispatch.h
+++ /dev/null
@@ -1,165 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_TEST_WEBDRIVER_WEBDRIVER_DISPATCH_H_
-#define CHROME_TEST_WEBDRIVER_WEBDRIVER_DISPATCH_H_
-
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "chrome/test/webdriver/commands/response.h"
-#include "third_party/mongoose/mongoose.h"
-
-namespace base {
-class DictionaryValue;
-class WaitableEvent;
-}
-
-namespace webdriver {
-
-class Command;
-class HttpResponse;
-
-namespace mongoose {
-
-typedef void (HttpCallback)(struct mg_connection* connection,
- const struct mg_request_info* request_info,
- void* user_data);
-
-struct CallbackDetails {
- CallbackDetails() {
- }
-
- CallbackDetails(const std::string &uri_regex,
- HttpCallback* func,
- void* user_data)
- : uri_regex_(uri_regex),
- func_(func),
- user_data_(user_data) {
- }
-
- std::string uri_regex_;
- HttpCallback* func_;
- void* user_data_;
-};
-
-} // namespace mongoose
-
-namespace internal {
-
-// Converts a |Response| into a |HttpResponse| to be returned to the client.
-// This function is exposed for testing.
-void PrepareHttpResponse(const Response& command_response,
- HttpResponse* const http_response);
-
-// Sends a |response| to a WebDriver command back to the client.
-// |connection| is the communication pipe to the HTTP server and
-// |request_info| contains any data sent by the user.
-void SendResponse(struct mg_connection* const connection,
- const std::string& request_method,
- const Response& response);
-
-// Parses the request info and returns whether parsing was successful. If not,
-// |response| has been modified with the error.
-bool ParseRequestInfo(const struct mg_request_info* const request_info,
- struct mg_connection* const connection,
- std::string* method,
- std::vector<std::string>* path_segments,
- base::DictionaryValue** parameters,
- Response* const response);
-
-// Allows the bulk of the implementation of |Dispatch| to be moved out of this
-// header file. Takes ownership of |command|.
-void DispatchHelper(Command* const command,
- const std::string& method,
- Response* const response);
-
-} // namespace internal
-
-// Template function for dispatching commands sent to the WebDriver REST
-// service. |CommandType| must be a subtype of |webdriver::Command|.
-template<typename CommandType>
-void Dispatch(struct mg_connection* connection,
- const struct mg_request_info* request_info,
- void* user_data) {
- std::string method;
- std::vector<std::string> path_segments;
- base::DictionaryValue* parameters = NULL;
- Response response;
- if (internal::ParseRequestInfo(request_info,
- connection,
- &method,
- &path_segments,
- &parameters,
- &response)) {
- internal::DispatchHelper(
- new CommandType(path_segments, parameters),
- method,
- &response);
- }
- internal::SendResponse(connection,
- request_info->request_method,
- response);
-}
-
-class Dispatcher {
- public:
- // Creates a new dispatcher that will register all URL callbacks with the
- // given |context|. Each callback's pattern will be prefixed with the provided
- // |root|.
- explicit Dispatcher(const std::string& root);
- ~Dispatcher();
-
- bool ProcessHttpRequest(struct mg_connection* conn,
- const struct mg_request_info* request_info);
-
- // Registers a callback for a WebDriver command using the given URL |pattern|.
- // The |CommandType| must be a subtype of |webdriver::Command|.
- template<typename CommandType>
- void Add(const std::string& pattern);
-
- // Registers a callback that will shutdown the server. When any HTTP request
- // is received at this URL |pattern|, the |shutdown_event| will be signaled.
- void AddShutdown(const std::string& pattern,
- base::WaitableEvent* shutdown_event);
-
- // Registers a callback that responds to with this server's status
- // information, as defined by the WebDriver wire protocol:
- // http://code.google.com/p/selenium/wiki/JsonWireProtocol#GET_/status.
- void AddStatus(const std::string& pattern);
-
- // Registers a callback for the given pattern that will return the current
- // WebDriver log contents.
- void AddLog(const std::string& pattern);
-
- // Registers a callback that will always respond with a
- // "HTTP/1.1 501 Not Implemented" message.
- void SetNotImplemented(const std::string& pattern);
-
- // Registers a callback that will respond for all other requests with a
- // "HTTP/1.1 403 Forbidden" message. Should be called only after registering
- // other callbacks.
- void ForbidAllOtherRequests();
-
- private:
- void AddCallback(const std::string& uri_pattern,
- webdriver::mongoose::HttpCallback callback,
- void* user_data);
-
- std::vector<webdriver::mongoose::CallbackDetails> callbacks_;
- const std::string url_base_;
-
- DISALLOW_COPY_AND_ASSIGN(Dispatcher);
-};
-
-
-template <typename CommandType>
-void Dispatcher::Add(const std::string& pattern) {
- AddCallback(url_base_ + pattern, &Dispatch<CommandType>, NULL);
-}
-
-} // namespace webdriver
-
-#endif // CHROME_TEST_WEBDRIVER_WEBDRIVER_DISPATCH_H_
« no previous file with comments | « chrome/test/webdriver/webdriver_capabilities_parser_unittest.cc ('k') | chrome/test/webdriver/webdriver_dispatch.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698