Skip to content

Commit 2d177bc

Browse files
committed
[dotnet] Add InsecureCertificate exception for error response handling
Related to #13580
1 parent 8405299 commit 2d177bc

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
// <copyright file="InsecureCertificateException.cs" company="WebDriver Committers">
2+
// Licensed to the Software Freedom Conservancy (SFC) under one
3+
// or more contributor license agreements. See the NOTICE file
4+
// distributed with this work for additional information
5+
// regarding copyright ownership. The SFC licenses this file
6+
// to you under the Apache License, Version 2.0 (the "License");
7+
// you may not use this file except in compliance with the License.
8+
// You may obtain a copy of the License at
9+
//
10+
// http://www.apache.org/licenses/LICENSE-2.0
11+
//
12+
// Unless required by applicable law or agreed to in writing, software
13+
// distributed under the License is distributed on an "AS IS" BASIS,
14+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
// See the License for the specific language governing permissions and
16+
// limitations under the License.
17+
// </copyright>
18+
19+
using System;
20+
using System.Runtime.Serialization;
21+
22+
namespace OpenQA.Selenium
23+
{
24+
/// <summary>
25+
/// The exception that is thrown when a frame is not found.
26+
/// </summary>
27+
[Serializable]
28+
public class InsecureCertificateException : WebDriverException
29+
{
30+
/// <summary>
31+
/// Initializes a new instance of the <see cref="InsecureCertificateException"/> class.
32+
/// </summary>
33+
public InsecureCertificateException()
34+
: base()
35+
{
36+
}
37+
38+
/// <summary>
39+
/// Initializes a new instance of the <see cref="InsecureCertificateException"/> class with
40+
/// a specified error message.
41+
/// </summary>
42+
/// <param name="message">The message that describes the error.</param>
43+
public InsecureCertificateException(string message)
44+
: base(message)
45+
{
46+
}
47+
48+
/// <summary>
49+
/// Initializes a new instance of the <see cref="InsecureCertificateException"/> class with
50+
/// a specified error message and a reference to the inner exception that is the
51+
/// cause of this exception.
52+
/// </summary>
53+
/// <param name="message">The error message that explains the reason for the exception.</param>
54+
/// <param name="innerException">The exception that is the cause of the current exception,
55+
/// or <see langword="null"/> if no inner exception is specified.</param>
56+
public InsecureCertificateException(string message, Exception innerException)
57+
: base(message, innerException)
58+
{
59+
}
60+
61+
/// <summary>
62+
/// Initializes a new instance of the <see cref="InsecureCertificateException"/> class with serialized data.
63+
/// </summary>
64+
/// <param name="info">The <see cref="SerializationInfo"/> that holds the serialized
65+
/// object data about the exception being thrown.</param>
66+
/// <param name="context">The <see cref="StreamingContext"/> that contains contextual
67+
/// information about the source or destination.</param>
68+
protected InsecureCertificateException(SerializationInfo info, StreamingContext context)
69+
: base(info, context)
70+
{
71+
}
72+
}
73+
}

dotnet/src/webdriver/WebDriver.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,9 @@ private static void UnpackAndThrowOnError(Response errorResponse, string command
802802
case WebDriverResult.DetachedShadowRoot:
803803
throw new DetachedShadowRootException(errorMessage);
804804

805+
case WebDriverResult.InsecureCertificate:
806+
throw new InsecureCertificateException(errorMessage);
807+
805808
default:
806809
throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "{0} ({1})", errorMessage, errorResponse.Status));
807810
}

0 commit comments

Comments
 (0)