Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ExtendedProcessFailedEventArgs.md #3824

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

vbryh-msft
Copy link
Contributor

No description provided.

@david-risney david-risney added the API Proposal Review WebView2 API Proposal for review. label Sep 28, 2023
specs/ExtendedProcessFailedEventArgs.md Outdated Show resolved Hide resolved
specs/ExtendedProcessFailedEventArgs.md Outdated Show resolved Hide resolved
specs/ExtendedProcessFailedEventArgs.md Outdated Show resolved Hide resolved
specs/ExtendedProcessFailedEventArgs.md Outdated Show resolved Hide resolved
specs/ExtendedProcessFailedEventArgs.md Outdated Show resolved Hide resolved
specs/ExtendedProcessFailedEventArgs.md Show resolved Hide resolved
specs/ExtendedProcessFailedEventArgs.md Outdated Show resolved Hide resolved
specs/ExtendedProcessFailedEventArgs.md Outdated Show resolved Hide resolved
@vbryh-msft vbryh-msft changed the base branch from ExtendedProcessFailedEventArgs to main September 28, 2023 21:24
int exit_code;
CHECK_FAILURE(args->get_ExitCode(&exit_code));

if (exit_code == -1073740760 /*STATUS_INVALID_IMAGE_HASH*/) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FailureSourceModulePath doesn't appear to be specific to STATUS_INVALID_IMAGE_HASH or Windows Code Integrity. Is the expectation that this string could be populated in other failure cases, but STATUS_INVALID_IMAGE_HASH is the only case when we're currently promising it will always be populated?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes that is exactly what I was thinking.


# Examples

```c#
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the leading spaces here to let the backticks get interpreted correctly so this shows as a formatted code block.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix.


```
[uuid(a9fc1af8-f934-4f0f-a788-7be0808c329b), object, pointer_default(unique)]
interface ICoreWebView2ProcessFailedEventArgs : IUnknown {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Um, we already have a ICoreWebView2ProcessFailedEventArgs. and even a ICoreWebView2ProcessFailedEventArgs2. Shouldn't this be ICoreWebView2ProcessFailedEventArgs3?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix. Yes, should be ICoreWebView2ProcessFailedEventArgs3 and it should be derived from ICoreWebView2ProcessFailedEventArgs2

/// - It has an invalid or missing signature that does
/// not match the publisher or signer of the file.
/// - It has been tampered with or corrupted by malware or other software.
/// - It has been blocklisted by an administrator or a security policy.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/// - It has been blocklisted by an administrator or a security policy.
/// - It has been blocked by an administrator or a security policy.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix.

-> HRESULT {
wil::com_ptr<ICoreWebView2ProcessFailedEventArgs> args = argsRaw;
int exit_code;
CHECK_FAILURE(args->get_ExitCode(&exit_code));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

get_ExitCode is a method on ICoreWebView2ProcessFailedEventArgs2, so would have to QI to it first.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix.

if (e.ExitCode == -1073740760 /*STATUS_INVALID_IMAGE_HASH*/)
{
// If the process crashed because of STATUS_INVALID_IMAGE_HASH,
// then we want to log to our app's telemetry the name of the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit:

Suggested change
// then we want to log to our app's telemetry the name of the
// then we want to log to our app's telemetry the path of the

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix.

/// The webview2 process which tried to load the DLL will fail with
/// exit code STATUS_INVALID_IMAGE_HASH(-1073740760).
/// A file can fail integrity check for various
/// reasons, such as:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May be out of scope, but will the developer ever need to know the more specific reason?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe this is required and we can look into adding it if necessary in the future. @vbryh-msft or @aluhrs13 can comment otherwise.

int exit_code;
CHECK_FAILURE(args->get_ExitCode(&exit_code));

if (exit_code == -1073740760 /*STATUS_INVALID_IMAGE_HASH*/) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes that is exactly what I was thinking.

-> HRESULT {
wil::com_ptr<ICoreWebView2ProcessFailedEventArgs> args = argsRaw;
int exit_code;
CHECK_FAILURE(args->get_ExitCode(&exit_code));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix.

if (e.ExitCode == -1073740760 /*STATUS_INVALID_IMAGE_HASH*/)
{
// If the process crashed because of STATUS_INVALID_IMAGE_HASH,
// then we want to log to our app's telemetry the name of the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix.


# Examples

```c#
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix.


```
[uuid(a9fc1af8-f934-4f0f-a788-7be0808c329b), object, pointer_default(unique)]
interface ICoreWebView2ProcessFailedEventArgs : IUnknown {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix. Yes, should be ICoreWebView2ProcessFailedEventArgs3 and it should be derived from ICoreWebView2ProcessFailedEventArgs2

/// The webview2 process which tried to load the DLL will fail with
/// exit code STATUS_INVALID_IMAGE_HASH(-1073740760).
/// A file can fail integrity check for various
/// reasons, such as:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe this is required and we can look into adding it if necessary in the future. @vbryh-msft or @aluhrs13 can comment otherwise.

/// - It has an invalid or missing signature that does
/// not match the publisher or signer of the file.
/// - It has been tampered with or corrupted by malware or other software.
/// - It has been blocklisted by an administrator or a security policy.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API Proposal Review WebView2 API Proposal for review.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants