Firefox/Feature Brainstorming:Content Filtering, Manipulation, and Control
« Firefox/Feature Brainstorming
Contents
- 1 General improvements
- 2 Ads
- 3 Pop-ups
- 4 Plugins
- 5 Images
- 6 Video/Flash
- 7 Audio
- 8 Tabs
- 9 General content
- 10 Advanced "Stop" for content
- 11 Script filtering
- 12 Traffic control
- 13 Content Rating
- 14 Content filtering preferences
- 15 Remove Untrusted Cookies Button
- 16 Page scroll
- 17 Clipboard
- 18 Forms
- 19 Parental control features
- 20 Cooperative/shared surfing (web service?)
- 21 Readability
- 22 Links
- 23 Semantics
- 24 Backend
- 25 Authentication
- 26 Various
- 27 Persistant alternate stylesheet usage across multiple pages on the same site
- 28 References
- 29 External Filtering Cooperation
General improvements
- All filtering should enable one-click to view blocked
- all filter strings should support regular expressions (*.someadsite.biz instead of server1.someadsite.biz and server2.someadsite.biz)
- Should be very easy to add items to white/blacklists
- ip/site
- doc/content/objects
- Upload Progress Bar
- When post contains a "File", in middle of screen it displays a progress (which needs to be accurate) with Size of Post, Speed and Expected time to upload. (This will kill bill's browser)
- In case of failure a yes no dialog box to continue to browse or reupload again.
- Implement Mode-Z, GZip or Deflat compression for POSTING.
- Intelligent compression must be enabled only if uploaded content is not zipped already.
- Partial Downloading, for example Images and content on myspace pages are annoying and too big to load and keeps whole browser frozen, in such pages, the content of image or media should download only they are in visible viewport of browser.
- FTP
- A simple html interface to existing FTP Interface, Delete button at the end
- Create Folder and Upload File (Single file) Buttons at the bottom
Ads
- Ability to filter ads
- Also, block links around ads. The whole pages shouldn't be a danger zone -- if I click somewhere blank on a web page to give my browser focus, I shouldn't be taken to the advertiser's web site.
- The ability to make an ad on a page disappear by right clicking and selecting "remove ad", and let the background image be shown instead. (Addon "Remove it permanently" does this basically. --ThomasP)
Pop-ups
- Ability to filter iframe popups (or ability to block iframe html label, a MS "standard" afaik)
- Ability to temporarily disable popups blocking by keep pressing one key like <Shift> or <Alt>, without necessity to include that page in Allowed Sites.
- Blacklist AND Whitelist of sites (This should be global where many users report bad sites opening too many popups and url/domains must be blacklisted)
- Enable Global Blacklisted sites only for popup, rest are allowed (Optional)
- Disable or enable popups in Flash by whitelist/blacklist.
- Give the user an option to 'allow popup this time only'. IE has this option.
Plugins
- Ability to filter Flash movies
- Ability to filter plugin content generally (Flash movies, Java applets; basically anything included in the page via an object, applet, or embed element)
- Ability to handle Flash content per page view* There exists extensions for blocking Flash content already. Build this into the browser natively. I would like to see some Flash content handling similar to how pop-up advertisments are handled in Mozilla version 1.5.x today. Make a dialog box for each new webpage wanting to show Flash content, with Allow, Block or Deal with later option. And this filter should otherwise block any content if enabled by the user.
- Ability to control to which extent plugins are allowed to grab the mouse. I find it disruptive that e.g. mouse wheel scrolling stops if a flash ad is "transported" underneath the mouse pointer, and the window cannot be closed with ^W anymore etc.
Images
- Better control over image blocking (i.e. a small button that appears in the corners of images you hover over which invokes the "block images from this server" operation when pressed)
- Instead of absolute blocking and non-blocking there should be size based image blocking so that one can see bullets or menu items that are images, yet blocking any other image. It may be further enhanced to detect the kind of image based on size, repetition (repeated images preferred to be kept), color tones and complexity (simple artificial images to be kept while natural and more complex to be blocked). On 'reduced images' pages, there could also be a feature to change animations to stills by picking the first or middle frame.
- A button (or keyboard shortcut) that enables those who have disabled automatic loading of images to manually load images for on a per-page basis after the HTML/text has finished loading (this would be useful for people trying to save on their download costs or download quotas).
- In the image loading exceptions, when you add a site as blocked to the exception list, you should have the ability to select whether you want no images loaded from this domain or you don't want any images at all on this site, even if loaded from external servers (i.e. Banners).
- an option to include flash movies in blocked image content from sites (more and more banner ads are flash)
- Add "Reload Image" right-click option on broken image placeholders, or "Reload all broken images" right-click on page option, when network problem creates broken images. Current behavior requires a full page refresh to load 1 broken image.
- Addition of "next image" and "previous image" buttons when viewing large images on websites that utilise thumbnails.
- The browser may point to displaying a large image. The buttons would automatically take you to 003.jpg or 001.jpg respectively without having to go back to the main page and choosing the correct thumbnail.
- ability to make a slideshow of all images on a page. This could be based on image's size, so the user could adjust to block, for example, icons to be on the slideshow;
- Prettier image resizing & scaling (Bilinear, Bicubic, anything better than Nearest Neighbor) (Bug 98971)
- Ability to rotate images by 90 degrees (preferably using "L" and "R" hotkeys.
- Displaying alternate text for an image in a tooltip when the user hovers the cursor over the image.
- Only enable tabbed navigation with the tab key and not with a single click on the linking image.(Like in IE) It now interferes with "onmouseclick".
- When viewing an image in the browser, it would be nice to have it rendered against a neutral (gray?) background, and maybe centered (instead of the current top-left-white-background approach). The same should happen for videos and similar medias.
- Ability to disable/block image rotation (ideally on a whitelist basis)
Video/Flash
- In Tools->Options->Content, there is currently a checkbox "Load images automatically". It would be good to have there a checkbox "Enable video playing by default" as well, which would enable all threads doing either flash playing or picture cycling in animated gifs on a tab. This addition is motivated by annoyance factor reasons (we could then disable all "blinking elements" globally), and for performance reasons (with many tabs open, multiple flashs tend to consume a lot of CPU time). The second aspect is possible better handled in a more comprehensive way (together with JavaScript) in the long run.
Audio
- Volume/Mute for any audio content
- This is especially necessary in an office environment when you want to mute a website quickly and don't find the OS volume control right away. (Strongly agree.)
- Sound blocking, aka Mute Button. Turned off by default, when turned on blocks all sound (flash sound too) and warns the user that the webpage is trying to make sounds (with the ability to allow sounds just this once, for this domain, etc. Like the popup blocker). Plugins that lack mute support should be paused if possible, or terminated if necessary.
- Each tab can have a sound level knob next to the "x" button that will allow users to regulate the sound output level from the page on that specific tab. extremely useful when multiple pages are playing sound and are difficult to regulate seperately due to bad coding. Also useful for very loud (or very quiet) pages which need adjustment.
- This should probably be in the context menu of the tab.
- Only sounds from currently open tab should be played. Sounds from background tabs are annoying. (Agree.)
- Brilliant idea. There should be a tab context menu item to 'allow sound from this tab even when it's in the background', so you can listen to the radio in the background if you like. If you're feeling particularly lickable, when you switch tabs, sounds should smoothly crossfade rather than switching abruptly.
- There should be a way to see which tabs are playing sound, and which not.
- (useful when you use many tabs, and one plays annoying music)
Tabs
- Ability to move a tab into its own window or other existing window.
- Tabs that open from a link on a page should be placed besides the referring page and not in the end.
Strongly agree with this. See section "URL/Tab handling" in main page also. --ThomasP
- Tiling Two Window vertically in same Browser (To see two web pages side by side to compare things). One window may have different tabs. We anyway have wide screen monitors and wide space around page is wasted mostly.
General content
- Ability to filter content generally (f.e. a interface that enables users to select and persistently hide portions of a page)
- Collapsing and expanding of sections or paragraphs as in folding editors.
- Automatic generation of page-structure trees from headers and paragraphs.
- Ability to filter content which is positioned outside of the normal flow (i.e. where the CSS "position" property is set to "absolute", "fixed", or possibly "relative"), so users can filter CSS-based popups
- Option to show an icon next to (and/or in the status bar) hyperlinks which open in a new window/tab (e.g. the icon next to external links on Wikipedia, etc).
- Sort table columns or rows by right clicking the topmost or leftmost sortable element and selecting sort criteria.
- on-demand collapse/expand hierarchical lists
- Ability to mark text in neon writing and add post its to the text. This additional information to foreign documents are hold local and may also be sent to others for information.
- Ability to format the shown html-code according to defined rules (indention, syntaxhighlighting, ...)
- Have an option on the context right click menu to reload page every X seconds/minutes, like the ReloadEvery extension.
- A small warning yellow toolbar displaying errors while loading page items, if images or Javascript or CSS etc any of them are not loaded then it displays alert (Non Modal, with close button)
- Under view/toolbar/custom, add a toolbar button that allows the user to turn on/off Javascript enabling, to replace having to do it through tools/options/content.
Advanced "Stop" for content
- Frozen mode. Stops all animated GIFs, videos, Flash, script-driven tickers and anything else that moves, flashes, or otherwise annoys. Pages can be frozen and unfrozen at any time, and the browser can be set to freeze all pages on load. (Strongly agree.)
- Opera had a great button whereby you could stop the downloads of not only graphics, but many other elements like Javascript, Java and the like. Lets now add Shockwave/flash to this as well. After the page loaded, you could then download graphics and such by another click. But I want to add, that if graphics are blocked, then a placeholder should be put on the page, in order to make it render right. Not jumbled all around.
- Right-click should be working (and yielding the browser's context menu) also over flash items. To make this viable, something like Shift or Ctrl + Right-click is to be used. (Necessary for ripping such items with the RIP addon for example.) Policy: no content should be able to dominate ergonomy- or security-related browser functionality. --ThomasP, Jan 2009
Script filtering
- Ability to filter scripts which disable browser functionality, such as scripts to hide the address bar or 'no right-click allowed' scripts. Firefox has no obligation to respect functionality-breaking scripts.
- On unresponsive script dialog which appear whenever a web page takes too long to load, because of possible failing script, button for ability to completely close the tab/window in which this website is opened.
Traffic control
- Ability to display traffic in bytes/KB/MB by page (with or without external resources), session, profile or a certain amount of time.
- Ability to limit traffic use depending on the same criteria.
Content Rating
- Content should be rated by the users, allowing the community to censor what they find unacceptable as well as grade into what is suitable for various age ranges, similar to movie ratings of IE's content advisor:
- Ratings would then collated and held in a database for all users to benefit from.
- Content rating should be 'meta-moderated', a la Slashdot.
- Content rating should be optionally selected by locale so as to favour local norms. (Or possibly only global?)
- Content should be rated by content provider, either globally for a page as a meta tag or per item as a tag attribute. The browser could then password lock parental controls that would only display content appropriate to the these settings.
- For example: There could be a meta tag: <meta name="page-rating" content="age-15" /> or an attribute: <img alt="naughty image" src="naughty_image.jpg" rating="age-18" /> or even perhaps in a file's exif data.
- In the browser preferences a parent could then specify the preferred age group of content that the browser can display. This preference could then be password locked so that the parent can control the content viewed by their children.
- The drawback of this is that it relies on the content server to rate its own content.
Content filtering preferences
- Ability to set persistent global, per-site, and per-page preferences
- We might create a "web control" panel/sidebar that displays common preferences such as font size and charset
- We should make such a panel extensible, so extensions can add additional controls to it
Remove Untrusted Cookies Button
- Under the Options > Privacy > Cookies section I propose that a button could be added which will remove all your cookies except those which are allowed in your exceptions list. I like others only except cookies from sites that I know and use on a regular basis e.g message boards, hotmail, and few retail stores that I prefer to use. However, quite often it is the case that we will browse to a website that we wouldn't normally go to and we have to enable cookies in order to use some of the sites features. This is fine, but its extremely easy to forget to disable cookies after they are need especially if you have your mind on going to other websites. It is then the case that your cookie list becomes very large and you:
- a) Have to delete them all one by one but keep the cookies you trust
- Or
- b) Remove them all with the button provided but have to log back in to all the cookie trusted sites that you allow.
- Both methods take quite a bit of time and its rather annoying. Adding a button that will remove all but your trusted cookies will eliminate such problems. And will take less than a second to complete.
Page scroll
- Ability to lock the page scroll. I may sound bizarre but I will explain how it is useful. Imagine you are editing a blog. Generally you work inside a text area. So, you use your mouse wheel to scroll inside that text area. When you reach the end, the browser always scrolls the page, so, you lost the text area out of sight and have to scroll it again to put the text area visible.
- Real smooth scrolling like Smoothwheel ([1]) does it.
- Ability to maneuver through content by use of a grab tool (able to be activated via keyboard shortcut), similar to that employed by Adobe programs such as Illustrator, Photoshop, and Reader.
Clipboard
- Ability to copy text from tables
- Content marking -- imagine you are copying data from a page where everyline is a record. So, you go forward and back, from your program and the browser, copying each line... won't be wonderful if you can mark the lines you just have processed?
- Be able to copy and paste a web table into Excel without content being all pasted into one cell. (see bug in references)
- Flexible table content selection. Ability to select adjacent cells Excel-style - either vertically or horizontally - rather then having to copy whole rows into a spreadsheet app, then copy desired segment.
Forms
- Ability to enlarge form fields
- Ability to resize textareas
- Textareas should act more "dungeon style" like most text editors - when you use the up or down arrow to move to another row, the cursor should remain in the same column or as far to the right as text allows.
- Ability to save text boxes (See defunct Scribe extension)
- Ability to enter a <tab> by some common short key
- Find (Ctrl+F) should include form elements (especially textareas)
- add an access key to the first text field
- make textareas stretch to fit their content as the user types
- allow user to filter long select fields
- select a group of checkboxes and then check one--all of them get checked
- auto-add keyboard shortcuts for radio buttons and checkboxes
- option to show password in password field
- Ability to transfer row / column data from a jsp data table to delimited file
- or to a spreadsheet.
Parental control features
- Implement a set of parental control features
- Creation of a control panel that displays a "content filtering solution" Including some features by defaults but also letting the space to add some more.
- Here are some of the features we could implement: black/white list of Websites/Words, list of several levels of filtering according to age, a line where we can choose to block the download of extension (e.g:.zip,.exe, ...), a personal data blocking system, etc...
- Something like a password protected version of the Greasemonkey script Invisibility Cloak would be very useful
porn webs,violence,rape,porn animation
- ability to navigate at the same time with other person on another place of the web
Readability
- "readability" mode (f.e. high contrast, no fixed widths)
- click and drag resize images and columns
- option to hide background image
- auto-columnize to take advantage of wide monitors
- auto-fix poorly-encoded quotation marks and apostrophes
- Font substitution: Allow users to specify font substitutions. For example, substitute Georgia whenever Times New Roman is used by a web page or CSS. This is basically the font substitution mechanism that is available in most operating systems, except just for Firefox. Doing a system-wide font substitution in this case is undesirable since I might want to use Times New Roman in other applications. But for web pages, I would like Georgia (or some other more readable font) to replace all occurrences of Times New Roman, say. (Note that this is not the same as forcing all web pages to use the fonts I specify. I still want web pages to have some freedom to choose their fonts, just not every font.)
Links
- identify the types of link targets (f.e. by prepending an icon to each link or displaying the icon in the pointer when hovering over each link)
- indicate broken, not safe for work (nsfw), and nofollow links
- option to always underline links
Semantics
(perhaps these should be in Firefox/Feature Brainstorming:Microformat Handling)
- link street addresses to a mapping site
- convert temperatures/prices to the user's preferred scale/currency
- translate content into the user's preferred language
- hide "not safe for work" (nsfw) flagged content when in "work" mode
- option to block offensive words
- convert text URLs and email addresses into links
- insert graphical smilies in place of ascii ones
Backend
- Run plugins as a independent process, that talks with firefox via a socket or something like this. If a plugin crash it doesn't take firefox with it. It also allow one to kill a locked or high load plugins and keep surfing.
- Run plugins as a independent process, so that when they leak memory, that memory will be freed when the tab or window is closed.
- Run plugins as a independent process, so that when a plugin refuses to shut down (like acroread), the browser can forcibly kill it.
- Tighten down the plugin API so that plugins have no direct access to any kind of system calls (i.e. the symbol table for plugins is carefully controlled). (X.org does this to DDX modules.) This way, things like memory management and such can be "wrapped" by Firefox to ensure that plugins are well-behaved.
- Make shortcut keys and mouse scollwheel work when the cursor hovers over a plugin area on Linux
- References
- nspluginwrapper
- See bug 156493 - "Browser should tolerate plug-in (plugin) malfunctions, like with a separate (own) process"
- See bug 78414 - "Application shortcut keys (keyboard commands such as f11, ctrl+t, ctrl+r) fail to operate when plug-in (flash, acrobat, quicktime) has focus"
Authentication
(perhaps these should be in Firefox/Feature Brainstorming:Identity)
- automatic log in to sites with stored credentials
- on-demand log in to sites with stored credentials using a consistent chrome UI (f.e. a toolbar button)
- on-demand log out of sites that identify a "log out" link
Various
- Ability to set a charset for a site
- Text-only mode
- You have the option to switch a tab between "Text Only" and "Graphical" modes, with faster downloads/rendering if browsing in text only mode
- expose an items-per-page user preference to web sites
- convert bgsound tags to embed tags so audio works in Firefox
- copy img alt attribute to title attribute so it shows up as tooltip
- set favicon (f.e. pick image on page and make it be the favicon)
- highlight search terms when going from search results page to a search result
- don't let page grab focus on load if the user has already started doing something with the page
Persistant alternate stylesheet usage across multiple pages on the same site
I would like Firefox 3 to support user-controlled alternative style sheets.
Let us assume that there is some site that offer alternative style sheets for the WWW pages it serves to the public. Let us further assume the styles to be named 'default', 'alt1' and 'alt2'. It might happen that when a user visits the site, he/she/it (further on referred to as 'she') finds that the default style does not fit her needs, but that the style 'alt1' does.
In her Firefox (1.5.0.7) she picks the alternate style from 'View -> Page Style -> alt1' and all is well. Then, she follows a link to another WWW page on the site, and she once again gets the 'default style'.
This is very irritating. When she has picked an alternative style for the top level, she of course wants that to be in effect until she changes that - for example, for some sub-tree of the site, she wants alternative style 'alt2'. As it is today, she can't get that. Even worse, if she returns to the first page, she will get (you guessed it) the default style.
Below the request is written in coorporate project:
- Firefox 3 shall support user controlled WWW page styles.
- The control shall be based on existing styles for a WWW page.
- It shall be possible to associate a WWW page address with a specific style.
- The association shall be done using regular expression.
- The regular expression shall be the extended perl-like regexps.
- In the case of multiple matches, the most specific (longest - counted by elements, not chars) match shall be used.
- A dialogue to set this up for a page shall be available from a page menu.
- The page menu shall be available from a sight-click using a three-button mouse.
References
- Flashblock remarks from bur
- A couple things from Max.e
- Text Only Mode
- Mute Functionality
- Audio Controls
- TargetAlert
- LinkAlert
- Bug 137450 - Problem copying and pasting a table from a web page to excel
- Fix Bug 13474
- Scribe
- Bug 13474
External Filtering Cooperation
External filters (e.g. PeerGuardian) block connections to certain IP addresses. Firefox doesn't know this so it will try to connect to the host for a very long time. Forgive me if these suggestions are already part of the configuration options:
- Allow user to set timeout or limit attempts to connect to a host
- Allow user to set priorities when retrying connections (e.g. more retries for html and fewer retries for embedded objects)
- Allow user to specify customized "Unable to connect" page or hide them when it applies to objects (rather than an entire page)