Commit 12886969 authored by Yuzu Saijo's avatar Yuzu Saijo Committed by Commit Bot

[content] Avoid calling DeleteForCurrentDocument from destructor

This CL removes the call to DeleteForCurrentDocument from the destructor
of ManifestManagerHost.

This intends to fix a crash which happens from time to time using
RenderDocumentHostUserData.

Change-Id: I1336fb62328dcb0cf9991499f399bf3665d29b75
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2224737Reviewed-by: default avatarRakina Zata Amni <rakina@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Reviewed-by: default avatarSreeja Kamishetty <sreejakshetty@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Yuzu Saijo <yuzus@chromium.org>
Cr-Commit-Position: refs/heads/master@{#774006}
parent 5b59b2ab
......@@ -22,7 +22,7 @@ ManifestManagerHost::ManifestManagerHost(RenderFrameHost* render_frame_host)
}
ManifestManagerHost::~ManifestManagerHost() {
OnConnectionError();
DispatchPendingCallbacks();
}
void ManifestManagerHost::BindObserver(
......@@ -55,7 +55,7 @@ blink::mojom::ManifestManager& ManifestManagerHost::GetManifestManager() {
return *manifest_manager_;
}
void ManifestManagerHost::OnConnectionError() {
void ManifestManagerHost::DispatchPendingCallbacks() {
std::vector<GetManifestCallback> callbacks;
for (CallbackMap::iterator it(&callbacks_); !it.IsAtEnd(); it.Advance()) {
callbacks.push_back(std::move(*it.GetCurrentValue()));
......@@ -63,7 +63,10 @@ void ManifestManagerHost::OnConnectionError() {
callbacks_.Clear();
for (auto& callback : callbacks)
std::move(callback).Run(GURL(), blink::Manifest());
}
void ManifestManagerHost::OnConnectionError() {
DispatchPendingCallbacks();
if (GetForCurrentDocument(manifest_manager_frame_)) {
DeleteForCurrentDocument(manifest_manager_frame_);
}
......
......@@ -55,6 +55,8 @@ class ManifestManagerHost
using CallbackMap = base::IDMap<std::unique_ptr<GetManifestCallback>>;
blink::mojom::ManifestManager& GetManifestManager();
void DispatchPendingCallbacks();
void OnConnectionError();
void OnRequestManifestResponse(int request_id,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment