I'd like to be able to add an option to the download dialog that pops-up in Firefox when starting a file download. Is it possible to do so using the new add-on SDK or do I have to do it the old way?
edit: Obviously, if the new option is selected, I need a way to know it and execute code based on it.
That's something you would use XUL overlays for. I guess that the dialog you are talking about is chrome://mozapps/content/downloads/downloads.xul - the download manager. AFAIK doing this isn't possible with the Add-on SDK, it only provides the most common UI integration points. You could create a traditional extension however, it can overlay any dialog.
There is no existing module that will help you that I know of, so you would have to create one, or wait for one to be made by someone else. But the main idea to extending browser UI is simple, and goes like this:
When the addon is loaded, scan for open windows of the type that you wish to extend.
extend the open windows by adding xul elements and javascript to the page.
listen for newly opened windows, and test that they are the type that you are looking for once they open
extend newly opened windows while your addon is active
Clean up after yourself when windows close or when your addon is disabled/uninstalled.
The last step is the most important and never matter with old school extensions which were not restartless.
Some for the built-in modules that you can look at that do this are the widget module, the context menu module, and the hotkeys module, all of which you can find here.
I've made a couple myself which are the toolbar button module, the xulkeys module, the menuitems module, and a few others, all of which you can find here.
Recently I wrote an extension do the same things. A bootstrap extension, not using addon-sdk.
I already submit it on AMO, but wait for review
https://addons.mozilla.org/en-US/firefox/addon/download-dialog-tweak/
And the source code
https://github.com/muzuiget/download_dialog_tweak
Related
I have created a webpage that runs a script that I would like to be able to open from a button on the Firefox taskbar like an extension. If this looks something like this addon layout wise that would be fine. I was hoping to open an iframe in which the page is loaded. Does an extension exist for this or is it possible to create this for personal use myself?
I'm completely new at building Firefox extensions.
Turned out to be pretty simple. You basically create a file like this and add it to the addons website which can be set to personal or public use. Done.
I created browser extension using crossrider code, we can install this extension in all 4 browsers(Chrome,IE,Firefox,Safari).After installation a icon will be displayed beside the url. If we click on that icon a popup will displayed which contains one button
1)delete/uninstall
so, what I have to do is If user click on "uninstall/delete" button then the extension will remove from the browser.How can I achieve this functionality using crossrider code.
To the best of my knowledge, extension removal by the extension itself is not supported by any browser regardless of which platform the extension is written with. So whilst the Crossrider platform tries to provide as much common functionality as possible, I'm afraid this feature is not available.
[Disclosure: I am a Crossrider employee]
Chrome extensions can remove themselves using chrome.management.uninstallSelf. This does not require any permissions.
Firefox add-ons are trusted at the same level as the browser, so it is technically possible to remove the add-on. I don't know the API from the top of my head, but you could look at the source code of the Addon Manager for inspiration.
Internet Explorer extensions are binary code. Depending on how they're implemented, they might be able to uninstall themself. If you've written a basic BHO that runs in Internet Explorer's (low-integrity) process, then you cannot fully uninstall the extension, because it cannot write to the registry, or remove files from C:\Program Files.
Safari: Extensions don't have any method to remove themselves.
More specifically, the idea is to allow the user to open Firefox, highlight a word on a web page, right click on it, and have an additional option that, when selected, calls c++ code that does something with the input string (must call C++ code, unfortunately), and displays a dialog box showing the result.
I'm still not sure if in order to implement this functionality I need to create a Firefox plugin or an extension. Can someone point me in the right direction?
Also, if someone can show me sample code in order to get me started that would be appreciated. (XPCOM, which I'm not even sure is what I should be using, seems a bit complicated for this seemingly simple project.)
You need a regular Firefox extension. It can add an item to the context menu, NPAPI plugins cannot do this. When it is clicked it can get the selected text and send it to your binary library. The best way to call functions in this library is js-ctypes, XPCOM is not required.
I've read some documentation and tutorials about developing Firefox Addons.
But never found how to do this.
I would like to make an addon that when you try to save a file (via left-click or right-click/save as) it automatically sets the to-be-created-file's name to be the same as the original file's URI. (but with some changes, like making slashes into hyphens, etc.)
Any hints on how to do this?
Thanks!
I don't believe Firefox Add-ons can change the default "save as" behavior. They could however add another option in the context menu (right click) perhaps named "save as file named with uri". You'd want to learn some JavaScript and such and look at a demo Add-on for the context menu.
Okay, so I looked at a starting point, which took me to these:
A pretty complete get up an developing guide from Mozilla. (No context menu stuff)
A XUL reference. It mentions there is a way to configure the context menu.
Some code snippets for various Mozilla developing.
A very comprehensive hello-world. Similar to #1, but it DOES cover adding actions in the context menu.
I think you can override any behaviour in Firefox - finding out the correct XPCOM call and location in the DOM tree is another matter. Have a look at Extending Firefox and Thunderbird
During web development work, I need to be able to quickly switch various config settings in Firefox. In particular I need to be able to:
1) Switch off cookies
2) Switch off javascript
3) Switch my user agent (I have the user-agent switcher add-on installed)
and then back again.
Instead of doing this manually, it would be great if i could add a "macro" button to my toolbar that I could simply click to toggle the three settings above.
Anyone know if this is possible?
Btw - Firefox Profiles doesn't really cut it. You can't dynamically switch profiles within a specific Firefox instance, which I need to be able to do.
Btw2 - I got excited when i saw Greasemonkey, Chicken Foot, but it looks like these can only automate browsing/DOM tasks, and not with firefox configuration settings.
Thanks Richard.
Because of your requirements, it'd probably best for you to make a simple add-on yourself. You could even have it add a button that goes back and forth between things.
You can disable cookies by setting the preference "network.cookie.cookieBehavior" to 2, you can turn off JavaScript by setting the preference "javascript.enabled" to false, and you can modify the user agent by changing the preference "general.useragent.extra.firefox".
To do these things, you'll need to use the preference API, which is documented here.
There are other add-ons that I think will get all the functionality you're looking for (albeit, not all in one tool).
https://addons.mozilla.org/en-US/firefox/addon/2497
https://addons.mozilla.org/en-US/firefox/addon/6527
https://addons.mozilla.org/en-US/firefox/addon/59
If you wanted to extend the functionality of any of these Add-ons, XPI files are just .zip files with a different extension. You can rename them and unpack them and find out how they do what they do, extending them, install your own customized version, etc.
The web-developer toolbar will do all the things you requested except switching the user-agent string, which can be accomplished through the UA switcher addon you already use. However it can't be macroed as far as I know, but it can be accomplished with a few mouse click.
Try iMacros.
From their site:
"Whatever you do with Firefox, iMacros can automate it."