Bug 147135 - Web Inspector: AppCache manifest 404 doesn't produce errors in console, manifest resource request always loading indicator
Summary: Web Inspector: AppCache manifest 404 doesn't produce errors in console, manif...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Web Inspector (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Joseph Pecoraro
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2015-07-20 19:09 PDT by Joseph Pecoraro
Modified: 2015-07-22 14:37 PDT (History)
11 users (show)

See Also:


Attachments
[PATCH] Proposed Fix (11.73 KB, patch)
2015-07-20 19:28 PDT, Joseph Pecoraro
ap: review+
Details | Formatted Diff | Diff
[PATCH] Proposed Fix (12.94 KB, patch)
2015-07-21 11:55 PDT, Joseph Pecoraro
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Joseph Pecoraro 2015-07-20 19:09:29 PDT
* SUMMARY
AppCache manifest 404 doesn't produce errors in console, manifest resource request always loading indicator 

* STEPS TO REPRODUCE
1. Inspect a page with <html manifest="does-not-exist.manifest">
  => no errors in Web Inspector about AppCache manifest failure
2. Reload
  => manifest request is shown, but never completes, always shows loading indicator
Comment 1 Joseph Pecoraro 2015-07-20 19:09:47 PDT
<rdar://problem/21905830>
Comment 2 Joseph Pecoraro 2015-07-20 19:28:56 PDT
Created attachment 257155 [details]
[PATCH] Proposed Fix
Comment 3 Alexey Proskuryakov 2015-07-20 20:15:46 PDT
Comment on attachment 257155 [details]
[PATCH] Proposed Fix

View in context: https://bugs.webkit.org/attachment.cgi?id=257155&action=review

> LayoutTests/http/tests/appcache/abort-cache-ondownloading-manifest-404-expected.txt:1
> +CONSOLE MESSAGE: Application Cache manifest could not be fetched.

I'm worried about the extra logging making the tests flaky. Appcache fetching is very asynchronous, and we already have tests that flakily fail because of that:

https://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK2%20(Tests)/r187025%20(13213)/http/tests/appcache/abort-cache-ondownloading-resource-404-diff.txt
https://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK2%20(Tests)/r187025%20(13213)/http/tests/appcache/abort-cache-onchecking-manifest-404-diff.txt
https://build.webkit.org/results/Apple%20Yosemite%20(Leaks)/r187030%20(2399)/http/tests/security/appcache-in-private-browsing-diff.txt

What due diligence did you perform?

> Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp:495
> +    DocumentLoader* loader = m_frame->loader().documentLoader();

The loader variable doesn't seem to be used again, I'd just put the computation at call site.

> Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp:661
> +        m_frame->document()->addConsoleMessage(MessageSource::AppCache, MessageLevel::Error, ASCIILiteral("Application Cache manifest could not be fetched."));

Why not tell the exact reason why? Console messages don't have to be cryptic.

> Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp:671
> +        m_frame->document()->addConsoleMessage(MessageSource::AppCache, MessageLevel::Error, ASCIILiteral("Application Cache manifest could not be fetched."));

Ditto (even though it's existing code).
Comment 4 Joseph Pecoraro 2015-07-21 11:46:40 PDT
(In reply to comment #3)
> Comment on attachment 257155 [details]
> [PATCH] Proposed Fix
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=257155&action=review
> 
> > LayoutTests/http/tests/appcache/abort-cache-ondownloading-manifest-404-expected.txt:1
> > +CONSOLE MESSAGE: Application Cache manifest could not be fetched.
> 
> I'm worried about the extra logging making the tests flaky. Appcache
> fetching is very asynchronous, and we already have tests that flakily fail
> because of that:
> 
> https://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK2%20(Tests)/
> r187025%20(13213)/http/tests/appcache/abort-cache-ondownloading-resource-404-
> diff.txt
> https://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK2%20(Tests)/
> r187025%20(13213)/http/tests/appcache/abort-cache-onchecking-manifest-404-
> diff.txt
> https://build.webkit.org/results/Apple%20Yosemite%20(Leaks)/r187030%20(2399)/
> http/tests/security/appcache-in-private-browsing-diff.txt
> 
> What due diligence did you perform?

That kinda stinks, I'm not sure why that would happen, these logs are synchronous from the operation that caused them. Maybe we should disable CONSOLE MESSAGE logs in these tests?

When I run the tests locally they all always pass. When I start --iteration=2 one test times out. When I do --iterations=3 a few tests have issues but I can't get all their failures:

    shell> ./Tools/Scripts/run-webkit-tests --release --no-retry-failures LayoutTests/http/tests/appcache --iterations=3
    ...
    Found 80 tests; running 78 (3 times each: --repeat-each=1 --iterations=3), skipping 2.
    Running 1 WebKitTestRunner.     

    [94/234] http/tests/appcache/deferred-events-delete-while-raising.html failed unexpectedly (text diff)
    [155/234] http/tests/appcache/x-frame-options-prevents-framing.php failed unexpectedly (test timed out, text diff)
    [173/234] http/tests/appcache/deferred-events.html failed unexpectedly (text diff)
                                                                                         
    231 tests ran as expected, 3 didn't:
    ...
    Regressions: Unexpected text-only failures (1)
      http/tests/appcache/deferred-events.html [ Failure ]

None of the failures however seem to be the new logs I added.

Likewise --repeat-each=3 passes all tests but the (http/tests/appcache/x-frame-options-prevents-framing.php) timeout which always seems to happen in iterations=2.
Comment 5 Joseph Pecoraro 2015-07-21 11:55:16 PDT
Created attachment 257189 [details]
[PATCH] Proposed Fix

Addressed comments.
Comment 6 WebKit Commit Bot 2015-07-22 14:37:24 PDT
Comment on attachment 257189 [details]
[PATCH] Proposed Fix

Clearing flags on attachment: 257189

Committed r187185: <http://trac.webkit.org/changeset/187185>
Comment 7 WebKit Commit Bot 2015-07-22 14:37:26 PDT
All reviewed patches have been landed.  Closing bug.