mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
fix: prevent crash on Windows when closing child windows (#49901)
* guard against window destruction in min/max size checks * use weakptr to prevent hit test crash on teardown * revove web contents views during teardown * fix test failure * fix other tests
This commit is contained in:
@@ -33,7 +33,7 @@ WebContentsView::WebContentsView(v8::Isolate* isolate,
|
||||
gin_helper::Handle<WebContents> web_contents)
|
||||
: View(web_contents->inspectable_web_contents()->GetView()),
|
||||
web_contents_(isolate, web_contents.ToV8()),
|
||||
api_web_contents_(web_contents.get()) {
|
||||
api_web_contents_(web_contents->GetWeakPtr()) {
|
||||
set_delete_view(false);
|
||||
view()->SetProperty(
|
||||
views::kFlexBehaviorKey,
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include <optional>
|
||||
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/memory/weak_ptr.h"
|
||||
#include "content/public/browser/web_contents_observer.h"
|
||||
#include "shell/browser/api/electron_api_view.h"
|
||||
#include "shell/browser/draggable_region_provider.h"
|
||||
@@ -63,7 +63,7 @@ class WebContentsView : public View,
|
||||
|
||||
// Keep a reference to v8 wrapper.
|
||||
v8::Global<v8::Value> web_contents_;
|
||||
raw_ptr<api::WebContents> api_web_contents_;
|
||||
base::WeakPtr<api::WebContents> api_web_contents_;
|
||||
};
|
||||
|
||||
} // namespace electron::api
|
||||
|
||||
Reference in New Issue
Block a user