<blockquote>More useful/helpful set of network error pages that offer tools helping users get to a useful end point via search, analysis of Places DB, or automatic redirects/reloads.</blockquote>
= Status Project steps =* '''String Freeze for Beta 4''': Mar 19, 2009* '''Code Freeze for Beta 4''': April 6, 2009
* Opened a Open initial bug for 404 handling<br><br>*: [[Image:250px-Pictogram voting keep.svg.png|20px]] '''Completed:''' [https://bugzilla.mozilla.org/show_bug.cgi?id=482874. Also: Bug 482874] and [httphttps://bugzilla.mozilla.org/show_bug.cgi?id=484313 Bug 484313] (DTD changes).
* Completed the Create experimental 404 extension and sent send it out for comments<br><br>*:[[Image:250px-Pictogram voting keep.svg.png|20px]] '''Completed,''' comments were:
** Works well for simulated small errors in URLs
** Hard to say how well it works for real errors in the wild.
** Drawing alternatives from the Places DB looks like a practical tool we can use for suggesting alternatives.
* Discussions Discuss with Google Link Doctor team are ongoing<br><br>** Follow :[[Image:250px-Pictogram voting wait.svg.png|20px]] '''In progress,''' next: follow up on experimental access to the service.
* Discussed Discuss possible 404 implementation with bzbarsky and others<br><br>*:[[Image:250px-Pictogram voting keep.svg.png|20px]] '''Completed,''' comments were:
** 404 interception unified with the existing error handling architecture is too deep a change to make for 3.1.
** A less intrusive approach similar to the one the experimental 404 extension uses may be possible -- need to investigate further.
* Discussed UI design with jborissImplement Levenshtein Distance algorithm in C++<br><br>*:[[Image:250px-Pictogram voting keep. She has a blog post on svg.png|20px]] '''Completed'''** Followup: Plug algorithm into Firefox+Sqlite, providing better performance and accuracy compared to the subject at httpapproach used in the extension.<br><br>**:[[Image://jboriss.wordpress250px-Pictogram voting wait.com/2009/03/10/improving-everyones-favorite-feature-404/svg.png|20px]] '''In progress'''
* Implemented Levenshtein Distance algorithm in C++, but have not plugged it into Firefox+Sqlite yet. Should provide better performance and accuracy compared to the approach used in the extension. * Proposed a plan for actual implementation <br><br>*:[[Image:250px-- Pictogram voting wait.svg.png|20px]] '''In progress,''' see below.
= Proposed Plan =
* Target '''We're targeting two error types:'''** # 404 errors.** # DnsNotFound errors.
* '''Tools to draw on:'''** # Places alternatives: Places DB + Edit Distance -- can be called automatically.**#* Good for errors on URLs that the user has visited before**#* Might be especially useful for misspelled hostnames.** # Google Link Doctor**#* Assuming partner issues are worked out with Google.**#* Can't be called automatically for privacy reasons.**#* Available with one click (similar to pre-loaded Google search box)** # Other easy to implement tools**#* common transformations (www..example.com --> www.example.com, etc.)**#* pre-loaded search box**#* etc.
** =404 redirection= ==Design scope==*Will use 404-specific error page for 3.1 rather than trying to re-use the generic network error page. The goal is to give the user better indication of the problem and provide tools for next steps if needed.** do Will not redirect obvious custom server error pages*** when . To this end, we do redirect, original error page is available at one click.*** 'd like to use some a heuristic beyond simple page size for identifying default 404 pages. Possibilities:**** compare # Compare to standard Apache and IIS 404 pages, possibly fuzzy (use edit distanceistance?)**** use # Use EndDocumentLoad (or other event) + redirect*# Implement listener in C++, should be able to access 404 status directly from dcument.*** can't do deep # <s>Deep docshell changes </s> (Not possible for 3.1}*Will allow original error page to be available at one click**** should Will unify with existing error page architecture in v.next. ==Open questions==*Which tools will be provided?*Should indication that the error is "404" be provided in the first screen?** similar Is it possible to link to how a page with more information about the Friendly Error extension works nowproblem?*How many alternatives should be shown, and how closely should those match user input?*** implement listener in C++, What distinction should be able to access 404 status directly drawn from document.the user's perspective between this and a DnsNotFound error?*** use Problem: The 404 specific error page for 3can't be a chrome page, since that could expose us to privilege escalation attacks piggy-backed on XSS attacks.<br><br>*:[[Image:250px-Pictogram voting keep.svg.1 rather than trying png|20px]] '''Solution:''' Use an about: URL to re-use access the generic network 404 error page.**** more design flexibility**** easier to get in before string freeze**** unify with generic network error page in v.next==Resources==*****===Sketches:===
<gallery>
Image:Linkdoctor places 404.png|A near match has been found (http://www.americas.com) along with the level above (http://news.bbc.co.uk), either via Places or Google
</gallery>
===Notes===
==Most current design==
** =DnsNotFound:= ==Design scope==*** Extend existing Will use the DnsNotFound error page with alternatives drawn from Places.to give the user better indication of the problem and provide tools for next steps if needed*** Add Will provide the user tools via one-click access to Google Link Doctor.*Will provide the user with better link options with data drawn from Places ==Open questions==** Other Which tools.will be provided?*Should indication that the error is "DnsNotFound" be provided in the first screen?** Improved designIs it possible to link to a page with more information about the problem?*****Sketches:How many alternatives should be shown, and how closely should those match user input?**** May What distinction should be constrained by drawn from the generic network user's perspective between this and a 404 error page architecture.? ==Resources=====Sketches===
<gallery>
Image:Dns error 1 suggestion.png|A suggestion is found, via Google or Places, and search is provided
Image:Dns error 2 suggestions.png|Two suggestions might be given if two are clear strong matches
</gallery>
** Constraints*** String Freeze for Beta 4: Mar 19, 2009*** Code Freeze for Beta 4: April 6, 2009 * Security Issues** Our 404 error page can't be a chrome page, since that could expose us to privilege escalation attacks piggy-backed on XSS attacks.*** Solution: Use an about: URL to access the 404 error page.===Notes===
==Most current design==