• Danyao Wang's avatar
    [Nav Experiment] Defer loading URL if web usage is not enabled. · 038bf28a
    Danyao Wang authored
    The SlimNav experiment is hitting the CHECK(_webUsageEnabled) in
    -ensureWebViewCreatedWithConfiguration when loading placeholder
    URL while web usage is disabled. One cause for this situation is when
    clearing website data while an interstitial is presented over a native
    view. WebInterstitialImpl::DontProceed() is called after web usage is
    disabled and it triggers the reload of the native view, which in turn
    triggers the placeholder load. Deferring the load fixes the problem,
    because the web view is recreated immediately after.
    
    Other causes for placeholder load when web usage is disabled exist, but
    the causes are not fully understood. This CL fixes the crashes in these
    cases as well. This should uncover behavior changes, that hopefully give
    us more details to fix the root cause later.
    
    A downstream egtest for the interstitial case is added in
    http://chrome-internal-review.googlesource.com/c/chrome/ios_internal/+/654301
    
    Bug: 865985
    Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
    Change-Id: I03d928ce82d128c2f67f36e204731576e479d497
    Reviewed-on: https://chromium-review.googlesource.com/1145725Reviewed-by: default avatarKurt Horimoto <kkhorimoto@chromium.org>
    Commit-Queue: Danyao Wang <danyao@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#577174}
    038bf28a
crw_web_controller.mm 232 KB