### Preflight Checklist

- [X] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
- [X] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
- [X] I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a feature request that matches the one I want to file, without success.

### Electron Version

13.1.9

### What operating system are you using?

Windows

### Operating System Version

Windows 10

### What arch are you using?

x64

### Last Known Working Electron version

n/a

### Expected Behavior

the leave-html-full-screen event is emitted upon exiting the webview's fullscreen when pressing the ESC key. Clicking out of fullscreen eimts properly.

### Actual Behavior

The leave-html-full-screen event is not emitted upon exiting the webview's fullscreen when pressing the ESC key. Clicking out of fullscreen emits properly.

### Testcase Gist URL

_No response_

### Additional Information

In addition, I am not sure about other electron users, however I was personally utilizing the webview fullscreen behavior characterized in 3.1.6, and subsequently "fixed" in 3.1.7 and 3.1.8 per the following PRs

https://github.com/electron/electron/pull/30128

https://github.com/electron/electron/pull/29987

Upon clicking a fullscreen Webview button, I would like my app to enter fullscreen, while the webview would enter fullscreen in its containing element, as seen prior to the integration of these PRs. Is there a clean way of entering this view instead while staying up to date with the electron version?

shell/browser/api/electron_api_web_contents.cc
}
#if !defined(OS_MAC)
   If the view's renderer is suspended this may fail on Windows/Linux -
   bail if so. See CopyFromSurface in
   content/public/browser/render_widget_host_view.h.
  auto* rfh = ontents()->GetMainFrame();
  if (rfh &&
      rfh->GetVisibilityState() == blink::mojom::PageVisibilityState::kHidden) {
    promise.Resolve(gfx::Image());
    return handle;
  }
#endif   defined(OS_MAC)
   Capture full page if user doesn't specify a |rect|.
  const gfx::Size view_size =
      rect.IsEmpty() ? view->GetViewBounds().size() : rect.size();
   By default, the requested bitmap size is the view size in screen
   coordinates.  However, if there's more pixel detail available on the
   current system, increase the requested bitmap size to capture it all.
  gfx::Size bitmap_size = view_size;
  const gfx::NativeView native_view = view->GetNativeView();
  const float scale = display::Screen::GetScreen()
                          ->GetDisplayNearestView(native_view)
                          .device_scale_factor();
  if (scale > 1.0f)
    bitmap_size = gfx::ScaleToCeiledSize(view_size, scale);
  view->CopyFromSurface(gfx::Rect(rect.origin(), view_size), bitmap_size,
                        base::BindOnce(&OnCapturePageDone, std::move(promise)));
  return handle;
}
void WebContents::IncrementCapturerCount(gin::Arguments* args) {