Path: blob/trunk/dotnet/src/webdriver/DevTools/DevToolsExtensionMethods.cs
2887 views
// <copyright file="DevToolsExtensionMethods.cs" company="Selenium Committers"> // Licensed to the Software Freedom Conservancy (SFC) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The SFC licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. // </copyright> namespace OpenQA.Selenium.DevTools; /// <summary> /// Provides extension methods for translation to and from the Chrome DevTools Protocol data structures. /// </summary> public static class DevToolsExtensionMethods { ///// <summary> ///// Translates a <see cref="Cookie"/> to the format to use with the Chrome DevTools Protocol cookie ///// manipulation methods. ///// </summary> ///// <param name="cookie">The <see cref="Cookie"/> to translate.</param> ///// <returns>A command settings object suitable for use with the Chromium DevTools Protocol manipulation methods.</returns> //public static Network.SetCookieCommandSettings ToDevToolsSetCookieCommandSettings(this Cookie cookie) //{ // Network.SetCookieCommandSettings commandSettings = new Network.SetCookieCommandSettings(); // commandSettings.Name = cookie.Name; // commandSettings.Value = cookie.Value; // commandSettings.Domain = cookie.Domain; // commandSettings.Path = cookie.Path; // commandSettings.HttpOnly = cookie.IsHttpOnly; // commandSettings.Secure = cookie.Secure; // commandSettings.Expires = cookie.ExpirySeconds; // return commandSettings; //} ///// <summary> ///// Converts an array of Chrome DevTools Protocol cookie objects to a list of Selenium <see cref="Cookie"/> objects. ///// </summary> ///// <param name="cookies">The array of Chrome DevTools Protocol cookies to convert.</param> ///// <returns>A ReadOnlyCollection of <see cref="Cookie"/> objects.</returns> //public static ReadOnlyCollection<Cookie> ToSeleniumCookies(this Network.Cookie[] cookies) //{ // List<Cookie> seleniumCookies = new List<Cookie>(); // foreach(var cookie in cookies) // { // seleniumCookies.Add(cookie.ToSeleniumCookie()); // } // return seleniumCookies.AsReadOnly(); //} ///// <summary> ///// Converts a Chrome DevTools Protocol cookie object to a Selenium <see cref="Cookie"/> objects. ///// </summary> ///// <param name="cookies">The Chrome DevTools Protocol cookie to convert.</param> ///// <returns>A Selenium <see cref="Cookie"/> object.</returns> //public static Cookie ToSeleniumCookie(this Network.Cookie cookie) //{ // Dictionary<string, object> cookieValues = new Dictionary<string, object>(); // cookieValues["name"] = cookie.Name; // cookieValues["value"] = cookie.Value; // cookieValues["domain"] = cookie.Domain; // cookieValues["path"] = cookie.Path; // cookieValues["httpOnly"] = cookie.HttpOnly; // cookieValues["secure"] = cookie.Secure; // DateTime ? expires = null; // if (!cookie.Secure) // { // cookieValues["expiry"] = cookie.Expires; // } // Cookie seleniumCookie = Cookie.FromDictionary(cookieValues); // return seleniumCookie; //} }