Difference between revisions of "Add an Infobar style warning for window resize/move"
(→Project Details) |
(→Project Details) |
||
Line 16: | Line 16: | ||
== Project Details == | == Project Details == | ||
'''10/01/2008''' - | '''10/01/2008''' - | ||
+ | |||
Okay, I believe here are the steps i need to do before I start coding an observer. | Okay, I believe here are the steps i need to do before I start coding an observer. | ||
One: I need to code a function to send an event call from C++ from [http://mxr.mozilla.org/mozilla-central/source/dom/src/base/nsGlobalWindow.cpp#3136 | nsGlobalWindow] much like the link shows. <br /> | One: I need to code a function to send an event call from C++ from [http://mxr.mozilla.org/mozilla-central/source/dom/src/base/nsGlobalWindow.cpp#3136 | nsGlobalWindow] much like the link shows. <br /> |
Revision as of 22:03, 1 October 2008
Contents
Name of Project
Add an Infobar style warning for window resize/move
Description
Many (poorly behaved) web sites attempt to move and/or resize your browser window. It is possible to stop this behaviour (cf. dom.disable_window_move_resize) but it would be nice to have an infobar that informed the user that a web page attempted to move/resize the window, and allow it or ignore it (default). This behaviour is similar to the current Pop-up Blocker already present in Firefox. NOTE: it is not clear whether such a feature would be accepted in the tree or if this would need to be done as an extension.
Leader(s)
Project Contributor(s)
- David Humphrey (Seriously!)
Project Details
10/01/2008 -
Okay, I believe here are the steps i need to do before I start coding an observer.
One: I need to code a function to send an event call from C++ from | nsGlobalWindow much like the link shows.
This event will probably be named something like "DOMWindowResized".
In other words the following function is required:
FireBlockedWindowResize();
Similar to the pop-up blocked, it will fire an event which will be caught by the window object.
In order to hook that event up though, I will need this line:
gBrowser.addEventListener("DOMWindowResized", gResizedWindowObserver.onWindowResized, false);
Then code gResizedWindowObserver to contain onWindowResized() which will initiate a notification window, along with all its required texts and menu options.
Now I need to know how to get the menu items to run a function to open preferences. But for release 0.1, I think the above should suffice.
09/28/2008 -
- Correction to below... browser.xul is the user interface. It runs functions found in the browser.js file, which then grabs strings from the bundle_browser object in order to display the lines of text.
09/24/2008 -
- I've found the place where infobar text is displayed, and how it is displayed.
The text can actually be found in a file "\src\browser\base\content\browser.xul". This is what I will use to define a new set of text for a resize event.
In the meantime I am still looking for a way to cause the resize event to display an infobar - bundle_browser is accessible within the browser object. It contains all the strings from browser.properties.
- by utilizing bundle_browser.GetString("NameofString") you can retrieve the string stored
- inside browser.properties, a %S signifies the browser name.
09/22/2008 -
- It is possible to trigger the event simply by writing code that resizes the window (using SetPositionAndSize I believe?)
09/21/2008 -
- Found two files which might have something to do with this:
dom\src\base\nsGlobalWindow.cpp
dom\src\base\nsGlobalWindow.h
I don't know how useful these files are yet.
- \widget\public\nsGUIEvent.h contains details on the windows_resize event
- The name of the event dealt with is called: nsSizeEvent, a class inherited from nsGUIEvent. A base event.
Project News / Updates
09/29/2008 -
- Bad news? Looks like I'll need to familiarize myself with the XPCOM API Reference if I want to be able to call Javascript code from the nsWindow.cpp..
09/21/2008 -
- For those who have trouble viewing the source code (It IS very overwhelming at first): http://mxr.mozilla.org/
09/18/2008 -
- Starting a Project Plan. Great idea Dave!
09/14/2008 -
- Created Project page for this project. Its a good reason to keep yourself up to date on the weekly schedule!
Project Plans
09/25/2008 - What to expect for 0.1 release?
- I hope to have a working infobar that displays whenever a site tries to resize the current window. Hopefully I'll have an allow option available. For future releases I will need to allow users to add sites to an exception list, and a way to set it to allow by default.
09/21/2008 -
- Now that I know the name of the event, I need to find a way to cause it to trigger an infobar.
But that's not all. These are probably the things I expect will need to be covered (from my viewpoint)
- Changes to the infobar to accomodate this
- An option to enable/disable the infobar from popping up in browser config (users know it as about:config)
- Would be nice to know what else I'd need. Anyone with information please let me know
- Reading Documentation on Mozilla's developer site. There's a lot to read: here
09/18/2008 -
- First step would be to see how infobars work in Mozilla. I need to see what triggers one, how they are displayed as well as how they can be used. If they can alter the content on a page, that would be an interesting find also.
- Would be a good idea to also look up what event handlers there are.