It seems to me html5 can take care of #1 and #2 just fine. I don't know how html5 handles #3, but I don't use those much anyway and would rather block (and optionally view) those type of contents.