Commit 8ec868fc authored by Olivier Robin's avatar Olivier Robin Committed by Commit Bot

Use WeakPtr when loading offline page

Bug: 1111307
Change-Id: Ied4969e60772cf0574cd22c02c0e6688fd89acba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2332438
Commit-Queue: Olivier Robin <olivierrobin@chromium.org>
Reviewed-by: default avatarSylvain Defresne <sdefresne@chromium.org>
Auto-Submit: Olivier Robin <olivierrobin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#793596}
parent d37478f0
......@@ -134,6 +134,11 @@ class OfflinePageTabHelper : public web::WebStateUserData<OfflinePageTabHelper>,
bool navigation_is_renderer_initiated_ = false;
WEB_STATE_USER_DATA_KEY_DECL();
// Member variables should appear before the WeakPtrFactory, to ensure
// that any WeakPtrs to OfflinePageTabHelper are invalidated before its
// members variable's destructors are executed, rendering them invalid.
base::WeakPtrFactory<OfflinePageTabHelper> weak_factory_{this};
};
#endif // IOS_CHROME_BROWSER_READING_LIST_OFFLINE_PAGE_TAB_HELPER_H_
......@@ -289,9 +289,9 @@ void OfflinePageTabHelper::PresentOfflinePageForOnlineUrl(const GURL& url) {
{base::MayBlock(), base::TaskPriority::USER_BLOCKING,
base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
base::BindOnce(&GetOfflineData, offline_root, offline_path),
base::BindOnce(&OfflinePageTabHelper::LoadData, base::Unretained(this),
last_navigation_started_, entry_url,
offline_path.Extension()));
base::BindOnce(&OfflinePageTabHelper::LoadData,
weak_factory_.GetWeakPtr(), last_navigation_started_,
entry_url, offline_path.Extension()));
}
bool OfflinePageTabHelper::HasDistilledVersionForOnlineUrl(
......
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