/// <summary> /// Retrieves the javascript protocol pdl for the specified chrome version. /// </summary> public static async Task <string> GetJavaScriptProtocolForChromeVersion(ChromeVersion chromeVersion) { var jsProtocolUrl = $"https://chromium.googlesource.com/v8/v8/+/{chromeVersion.V8VersionNumber}/src/inspector/js_protocol.pdl?format=TEXT"; using (var jsProtocolClient = new HttpClient()) { var jsProtocol64 = await jsProtocolClient.GetStringAsync(jsProtocolUrl); return(Encoding.UTF8.GetString(Convert.FromBase64String(jsProtocol64))); } }
/// <summary> /// Retrieves the python script that converts a pdl into json for the specified chrome version. /// </summary> /// <param name="chromeVersion"></param> /// <returns></returns> public static async Task <string> GetInspectorProtocolConverterPythonScript(ChromeVersion chromeVersion) { var protocolScriptUrl = $"https://chromium.googlesource.com/chromium/src/+/{chromeVersion.WebKitVersionHash}/third_party/inspector_protocol/pdl.py?format=TEXT"; using (var jsProtocolClient = new HttpClient()) { var script64 = await jsProtocolClient.GetStringAsync(protocolScriptUrl); return(Encoding.UTF8.GetString(Convert.FromBase64String(script64))); } }
/// <summary> /// Retrieves the browser protocol pdl for the specified chrome version. /// </summary> /// <remarks> /// Um, yeah. See https://github.com/cyrus-and/chrome-remote-interface/issues/10#issuecomment-146032907 /// </remarks> /// <returns></returns> public static async Task <string> GetBrowserProtocolForChromeVersion(ChromeVersion chromeVersion) { var browserProtocolUrl = $"https://chromium.googlesource.com/chromium/src/+/{chromeVersion.WebKitVersionHash}/third_party/blink/renderer/core/inspector/browser_protocol.pdl?format=TEXT"; using (var browserProtocolClient = new HttpClient()) { var browserProtocol64 = await browserProtocolClient.GetStringAsync(browserProtocolUrl); return(Encoding.UTF8.GetString(Convert.FromBase64String(browserProtocol64))); } }