Bug 689623. Part 1. The display list we build for image visibility means we hit the same assertions as we hit when building the painting display list. So adjust some reftest assert counts upwards. r=mats
Bug 689623. Part 2. In nsImageLoadingContent make the discard request an optional part of UntrackImage so that we can use UntrackImage everywhere instead of RemoveImage. r=joe
Bug 689623. Part 3. In nsImageLoadingContent add a flag to TrackImage that skips the check if we have a frame so that we can use TrackImage everywhere (including FrameCreated) instead of AddImage. r=joe
Bug 689623. Part 4. Add a visible count to nsIImadeLoadingContent, and use it when locking the image. r=joe
Bug 689623. Part 5. Add mechanism to update image visibility upon some amount of scrolling. r=mats
Bug 689623. Part 6. Keep a list of visible images on the presshell and code to manage it. r=mats
Bug 689623. Part 7. Clear the list of visible images on presshells that we don't descend into while building the display list of visible images. r=mats
Bug 689623. Part 8. Add an 'unlocked draw' notification for images that are drawn when not locked so we catch any images that become visible through a means other than scrolling. r=joe,mats
Bug 689623. Part 9. Make images default to visible when they have a frame created for them. r=mats
Bug 689623. Part 10. Make all images visible in print, print preview, chrome, xul, and resource docs and don't try to keep track of which are visible or not. r=mats
Bug 689623. Part 11. Mark SVG feImage elements as visible because they don't create display items. r=mats
Bug 689623. Part 12. Assume images in popups are visible. r=mats
Bug 689623. Part 13. Disable image visibility pass on mobile and b2g. r=mats