fix: crash when unloading some WebViews (#40400)
This commit is contained in:
parent
f501dabc80
commit
5b18d90597
1 changed files with 7 additions and 8 deletions
|
@ -40,10 +40,6 @@ void WebViewGuestDelegate::AttachToIframe(
|
||||||
|
|
||||||
content::WebContents* guest_web_contents = api_web_contents_->web_contents();
|
content::WebContents* guest_web_contents = api_web_contents_->web_contents();
|
||||||
|
|
||||||
// Force a refresh of the webPreferences so that OverrideWebkitPrefs runs on
|
|
||||||
// the new web contents before the renderer process initializes.
|
|
||||||
// guest_web_contents->NotifyPreferencesChanged();
|
|
||||||
|
|
||||||
// Attach this inner WebContents |guest_web_contents| to the outer
|
// Attach this inner WebContents |guest_web_contents| to the outer
|
||||||
// WebContents |embedder_web_contents|. The outer WebContents's
|
// WebContents |embedder_web_contents|. The outer WebContents's
|
||||||
// frame |embedder_frame| hosts the inner WebContents.
|
// frame |embedder_frame| hosts the inner WebContents.
|
||||||
|
@ -76,15 +72,18 @@ content::WebContents* WebViewGuestDelegate::GetOwnerWebContents() {
|
||||||
void WebViewGuestDelegate::OnZoomChanged(
|
void WebViewGuestDelegate::OnZoomChanged(
|
||||||
const WebContentsZoomController::ZoomChangedEventData& data) {
|
const WebContentsZoomController::ZoomChangedEventData& data) {
|
||||||
if (data.web_contents == GetOwnerWebContents()) {
|
if (data.web_contents == GetOwnerWebContents()) {
|
||||||
|
auto* zoom_controller = api_web_contents_->GetZoomController();
|
||||||
if (data.temporary) {
|
if (data.temporary) {
|
||||||
api_web_contents_->GetZoomController()->SetTemporaryZoomLevel(
|
zoom_controller->SetTemporaryZoomLevel(data.new_zoom_level);
|
||||||
data.new_zoom_level);
|
|
||||||
} else {
|
} else {
|
||||||
api_web_contents_->GetZoomController()->SetZoomLevel(data.new_zoom_level);
|
if (blink::PageZoomValuesEqual(data.new_zoom_level,
|
||||||
|
zoom_controller->GetZoomLevel()))
|
||||||
|
return;
|
||||||
|
zoom_controller->SetZoomLevel(data.new_zoom_level);
|
||||||
}
|
}
|
||||||
// Change the default zoom factor to match the embedders' new zoom level.
|
// Change the default zoom factor to match the embedders' new zoom level.
|
||||||
double zoom_factor = blink::PageZoomLevelToZoomFactor(data.new_zoom_level);
|
double zoom_factor = blink::PageZoomLevelToZoomFactor(data.new_zoom_level);
|
||||||
api_web_contents_->GetZoomController()->SetDefaultZoomFactor(zoom_factor);
|
zoom_controller->SetDefaultZoomFactor(zoom_factor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue