| Index: chrome/test/webdriver/webdriver_capabilities_parser.h
|
| diff --git a/chrome/test/webdriver/webdriver_capabilities_parser.h b/chrome/test/webdriver/webdriver_capabilities_parser.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5b2bf2f1ccd9b359ea3dc2c5d5f37263b15c386d
|
| --- /dev/null
|
| +++ b/chrome/test/webdriver/webdriver_capabilities_parser.h
|
| @@ -0,0 +1,109 @@
|
| +// Copyright (c) 2011 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_CAPABILITIES_PARSER_H_
|
| +#define CHROME_TEST_WEBDRIVER_WEBDRIVER_CAPABILITIES_PARSER_H_
|
| +#pragma once
|
| +
|
| +#include <string>
|
| +#include <vector>
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "base/command_line.h"
|
| +#include "base/file_path.h"
|
| +
|
| +namespace base {
|
| +class DictionaryValue;
|
| +class Value;
|
| +}
|
| +
|
| +namespace webdriver {
|
| +
|
| +class Error;
|
| +
|
| +// Contains all the capabilities that a user may request when starting a
|
| +// new session.
|
| +struct Capabilities {
|
| + Capabilities();
|
| + ~Capabilities();
|
| +
|
| + // Command line to use for starting Chrome.
|
| + CommandLine command;
|
| +
|
| + // Channel ID to use for connecting to an already running Chrome.
|
| + std::string channel;
|
| +
|
| + // Whether the lifetime of the started Chrome browser process should be
|
| + // bound to ChromeDriver's process. If true, Chrome will not quit if
|
| + // ChromeDriver dies.
|
| + bool detach;
|
| +
|
| + // List of paths for extensions to install on startup.
|
| + std::vector<FilePath> extensions;
|
| +
|
| + // Whether Chrome should not block when loading.
|
| + bool load_async;
|
| +
|
| + // Whether Chrome should simulate input events using OS APIs instead of
|
| + // WebKit APIs.
|
| + bool native_events;
|
| +
|
| + // Path to a custom profile to use.
|
| + FilePath profile;
|
| +
|
| + // Whether ChromeDriver should log verbosely.
|
| + bool verbose;
|
| +};
|
| +
|
| +// Parses the given capabilities dictionary to produce a |Capabilities|
|
| +// instance.
|
| +// See webdriver's desired capabilities for more info.
|
| +class CapabilitiesParser {
|
| + public:
|
| + // Create a new parser. |capabilities_dict| is the dictionary for all
|
| + // of the user's desired capabilities. |root_path| is the root directory
|
| + // to use for writing any necessary files to disk. This function will not
|
| + // create it or delete it. All files written to disk will be placed in
|
| + // this directory.
|
| + CapabilitiesParser(const base::DictionaryValue* capabilities_dict,
|
| + const FilePath& root_path,
|
| + Capabilities* capabilities);
|
| + ~CapabilitiesParser();
|
| +
|
| + // Parses the capabilities. May return an error.
|
| + Error* Parse();
|
| +
|
| + private:
|
| + Error* ParseArgs(const base::Value* option);
|
| + Error* ParseBinary(const base::Value* option);
|
| + Error* ParseChannel(const base::Value* option);
|
| + Error* ParseDetach(const base::Value* option);
|
| + Error* ParseExtensions(const base::Value* option);
|
| + Error* ParseLoadAsync(const base::Value* option);
|
| + Error* ParseNativeEvents(const base::Value* option);
|
| + Error* ParseProfile(const base::Value* option);
|
| + Error* ParseVerbose(const base::Value* option);
|
| + // Decodes the given base64-encoded string and writes it to disk, optionally
|
| + // unzipping it afterwards. |path| will be set to the end file.
|
| + // On failure, false will be returned and |error_msg| will be set.
|
| + bool DecodeAndWriteFile(const std::string& base64,
|
| + bool unzip,
|
| + FilePath* path,
|
| + std::string* error_msg);
|
| +
|
| + // The capabilities dictionary to parse.
|
| + const base::DictionaryValue* dict_;
|
| +
|
| + // The root directory under which to write all files.
|
| + const FilePath root_;
|
| +
|
| + // A pointer to the capabilities to modify while parsing.
|
| + Capabilities* caps_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(CapabilitiesParser);
|
| +};
|
| +
|
| +} // namespace webdriver
|
| +
|
| +#endif // CHROME_TEST_WEBDRIVER_WEBDRIVER_CAPABILITIES_PARSER_H_
|
|
|