Custom Search

Tuesday, June 3, 2008

Advanced Tweaking - FIREFOX

This section primarily covers advanced tweaks you can perform in Firefox by editing/changing preference values and style sheets. It's a bit trickier than the tips covered in the rest of the guide, but the results are also much more noticeable. Before you start this section you must read the Customizing Firefox section on the previous page to understand how the tweaks in this section are applied. If you run into any problems or find the tweaks not working, I urge you to re-read both the Customizing Firefox section, as well as going through my TweakGuides Tweaking Companion because it is likely a problem with your system setup or your understanding of how customization/tweaking works in Firefox.


Note that many of the advanced tweaks in this section can probably be applied using one of the many Firefox Extensions available, so see the Extensions & Themes section below if you want to try those first. For most people however I recommend getting used to manual tweaking, since it is the best way of understanding what's going on "under the hood" of Firefox. Also note that these tweaks have been summarised and refined by me from a much larger collection of possible tweaks, therefore this is not a comprehensive list of every possible tweak for Firefox - all the important tweaks are covered here; most of what has been left out are more obscure/less commonly used tweaks.


Click to enlarge

About:Config Preferences


This section contains the instructions on how to conduct advanced preference tweaking in Firefox. Preferences which can be completely changed using the in-browser Options menus are not covered below - see the Firefox Settings section of the guide. Please read the notes below carefully before tweaking your About:Config:


  • Some preferences are not in About:Config by default. These are denoted with a *Create tag. If you cannot find a preference mentioned below in your own about:config listing you will have to create it as a new preference. To do this, right-click on an empty spot in the About:Config screen, select New and then select the type of preference as specified, then give it the name exactly as shown here, and the appropriate value.

  • Preferences which you have altered at any point (whether manually, or within the Firefox settings) will appear in bold in the About:Config screen and have a status of 'User Defined'. Those which are still at their default setting will be unbolded and have the status 'Default'. To reset a preference to its default configuration, right-click on it and select Reset.

  • To undo the effects of a mistakenly entered or undesirable custom-created preference, right-click on it and select Reset, then close all instances of Firefox and restart it. This doesn't remove the actual preference from About:Config however, so to remove it from the listing go to your Prefs.js file (See the Customizing Firefox section), do a search for the preference name, highlight that entire line it's on and delete it altogether, then close and save the file. Go back into About:Config and it should no longer be there.

  • Many preferences which have tempting names are legacy items from previous builds of Firefox and do not work (e.g. the browser.turbo.enabled setting does nothing).

  • There are far more preferences which you can change using About:Config than the ones listed here - I've only tried to cover those which have a major impact or are more commonly used. For a full list of preferences refer to the following articles:

  • Mozillazine About:Config Entries

    Mozdev.org Documented Preferences

    Mozilla Network Preferences


    There are also other About: commands you can use, such as About:Cache and About:Plugins to show you more information about your current build of Firefox - more details of these here.



    New in Firefox 2.0


    The following new preferences have been added to this list as of Firefox 2.0:


    browser.sessionhistory.max_total_viewers

    browser.tabs.closeButtons

    browser.tabs.tabclipWidth

    browser.tabs.tabminWidth

    extensions.checkCompatibility

    extensions.spellcheck.inline.max-misspellings

    Layout.spellcheckDefault


    All the other preferences have been updated for Firefox 2.0 (as some of them have changed behavior slightly), and several new preferences have been added to the list which are not necessarily new to Firefox 2.0.


    The preferences list below is presented in alphabetical order with the full name in italics, type in [ ] square brackets, any recommended values in ( ) round brackets, whether it needs to be created *Create, followed by a brief description. Recommendations are given for some of the settings, but not for all - you will need to experiment as the choice is often based on personal taste and/or your specific Internet connection speed. To make sure your preference changes are saved and/or to test the effects of a preference change, close all open Firefox windows and restart Firefox.

    accessibility.typeaheadfind.casesensitive [Integer] - If set to 0, searches using 'Find as you type' are not case sensitive, if set to 1 they are case sensitive.


    accessibility.typeaheadfind.linksonly [Boolean] - If set to true, this setting makes the 'Find as you type' feature search only for links on a page.


    accessibility.typeaheadfind.enablesound [Boolean] (False) - By default this is set to true, which means the 'Search for text when I start typing' feature makes a noise each time you enter characters in a string which is not found on the current page. To turn this annoying sound off, set this option to False.


    alerts.totalOpenTime [Integer] (2000) - Determines for how many milliseconds to show the 'Download complete' or 'Updates Available' alerts. I recommend reducing this to 2 seconds (2000).


    app.update.interval [Integer] - If you've enabled automatic checking for Firefox updates in the Options menus, this setting determines how many seconds Firefox will wait between checking for updates (at the URL contained in the app.update.url preference). The default is 24 hours (86400 seconds).


    browser.bookmarks.livemark_refresh_seconds [Integer] *Create - This is the number of seconds Firefox waits between checking for updates to any Live (RSS) Bookmarks you may have. The default is 3600 seconds = 1 hour, and for most purposes this is fine.


    browser.cache.check_doc_frequency [Integer] (3) - This setting determines how often Firefox checks for newer versions of the page you are viewing. This setting is similar to Internet Explorer's 'Check for newer versions of stored pages' setting. If set to 0 Firefox only checks once per browser session; if set to 1 Firefox checks every time a page is viewed; if set to 2 Firefox never checks (i.e. it always uses the version stored locally in your browser cached); and if set to 3 (the default) Firefox checks at automatically determined intervals. If you browse mostly pages which update their content extremely often (i.e. a few times a day) you may wish to set this to 1 though it will slow down browsing speed. The default of 3 is best for fastest browsing on most connections. You can experiment to see if 0 suits your needs, but don't use a value of 2.


    browser.cache.disk_cache_ssl [Boolean] (False) - If set to true, this setting allows the caching of secure web pages in your browser cache. This speeds up loading of commonly-visited secure pages, but is an obvious security risk and for that reason it is recommended you keep this at false.


    browser.cache.memory.capacity [Integer] *Create - This setting determines whether Firefox uses system RAM to cache itself, improving performance. A value of 0 turns off caching into RAM, which is not recommended as it can greatly slow down browsing. The default value of -1 tells Firefox to automatically determine the size of the cache based on your physical RAM. In Firefox 2.0, systems with 512MB of RAM will result in a 14MB cache, 1GB of RAM results in a 18MB cache, 2GB of RAM gives 24MB of cache, and 4GB of RAM results in 30MB of cache. These values are lower than the defaults in Firefox 1.5. The default of -1 should be fine for all people, but if you notice Firefox increasing its memory usage, you can manually restrict this value to a particular amount by entering a value in KB (e.g. a value of 18432 = 18MB).


    browser.cache.memory.enable [Boolean] (true) - This setting works in conjunction with the browser.cache.memory.capacity setting above. If set to true, Firefox will use the value specified in the browser.cache.memory.capacity setting to determine how much RAM to use. If set to false, Firefox will not use any RAM to cache, resulting in a performance drop. I recommend setting this to true for all systems unless troubleshooting a potential memory-related problem in Firefox for example.


    browser.chrome.favicons [Boolean] (true) - This setting determines the display behavior of the small site icons (usually called 'favicons') visible next to bookmarks and site URLs in the address bar. If set to true, these are downloaded and displayed; if set to false they are not. Turning off favicons may increase the responsiveness of the Bookmarks menu, but generally they are best left enabled..


    browser.chrome.image_icons.max_size [Integer] - Determines the maximum size in pixels beyond which a thumbnail of an image won't be shown in a tab. If you don't want thumbnail images shown in tabs at all, set this to 0.


    browser.chrome.toolbar_tips [Boolean] - If set to true, small 'tooltips' (popup boxes with descriptive text) will be shown when you hover over items in your Firefox toolbar, as well as on certain objects in some webpages. If you don't like tooltips, set this value to false, but again remember this may also disable useful descriptive tooltips on certain webpages.


    browser.display.show_image_placeholders [Boolean] (false) - If set to true, image placeholders will be shown until the images are fully loaded. If set to false, these are not shown. I recommend setting this to false for a cleaner look as pages load, but it depends on your preference.


    browser.download.manager.flashCount [Integer] (1) - This setting determines the number of times the Download Manager will flash in your Taskbar when a download is underway and the download manager is not visible. I recommend setting this to 1 to minimize annoyance, or you can disable it by setting it to 0.


    browser.download.manager.openDelay [Integer] (2000) - The value here determines how many milliseconds of delay there will be before the download manager window opens at the start of a download. By default the download manager window opens immediately (0 milliseconds delay), however I recommend a value such as 2000 (2 seconds delay) so that for very small downloads you don't have to see the download manager window at all, yet the file will still be downloaded as usual.


    browser.download.manager.showAlertInterval [Integer] - This setting determines for how many milliseconds the "Download Completed" alert is shown when you complete a download. Default is 2 seconds (2000 milliseconds). If you want to disable the download completed alert altogether see the browser.download.manager.showAlertOnComplete setting below.


    browser.download.manager.showAlertOnComplete [Boolean] - If set to false, the download manager "Download Completed" alert will not be shown at all.


    browser.enable_automatic_image_resizing [Boolean] - If set to true (the default), images opened separately will be automatically resized to fit the screen, if set to false they will be shown at their full size.


    browser.link.open_newwindow [Integer] - This setting determines where hyperlinks which would normally open in a new browser window end up opening. If set to 1, they open in the current Firefox window; if set to 2 they open in a new window; and if set to 3 (the default) all such links open in a new tab in the current Firefox window. Note that this setting is the same as that found under the in-browser Options>Tabs screen, however there is an additional choice here (setting it to 1).


    browser.link.open_newwindow.restriction [Integer] - This setting determines how new windows launched by javascript (usually popups) are treated. If set to 0, all such windows are opened as tabs in the current window; if set to 1 they open as new windows; and if set to 2 javascript windows will be treated like any other opened link unless they have strict values set.


    browser.sessionhistory.max_total_viewers [Integer] - This option determines how many pages to store in memory to speed up the back and forward buttons in Firefox. The default of -1 automatically determines the amount based on your system RAM. At 512MB of RAM, 5 pages are held in memory, while 1GB or more of RAM holds 8 pages. You can set this value to 0 to hold no pages in RAM (only recommended for troubleshooting memory problems), or increase the value if you often use the back and forward functions for more than 8 pages.


    browser.tabs.closeButtons [Integer] - This setting controls how the red 'x' close buttons on tabs appear in Firefox. A value of 0 only displays the close button on the active tab, 1 (the default) shows it on all tabs, 2 results in no close buttons being shown at all, and 3 displays a single close button at the end of the tab bar.


    browser.tabs.forceHide [Boolean] - If set to true, your tab bar will be hidden regardless of how many open tabs you have in Firefox. This is only recommended if you absolutely need every last inch of vertical viewing space.


    browser.tabs.opentabfor.middleclick [Boolean] - If set to false, clicking the middle mouse button on a link will not open that link in a tab. This is counter to the default behavior of Firefox, and would only be recommended if you strongly object to middle click opening a tab for some reason.


    browser.tabs.tabclipWidth [Integer] - Determines the minimum width of a non-active tab in pixels before a red 'x' close button appears. The default is 140, and raising this value increases the likelihood that a close button won't appaer on the tab. If you want to get rid of close buttons altogether you should consider using the browser.tabs.closeButtons preference above.


    browser.tabs.tabminWidth [Integer] - As more tabs are opened, Firefox shrinks each tab's width. This setting controls the minimum width a tab can be, with the default being 100 pixels. Raising this value means less tabs can be displayed at any one time on the screen (the remainder are shown in the tabs drop down box at the far right of the tab bar).


    browser.urlbar.clickSelectsAll [Boolean] - When set to true (which is the default), left-clicking once in the address bar automatically highlights all of its contents. If set to false, clicking in the address bar will only place a cursor where you click without highlighting any text first.


    browser.urlbar.hideGoButton [Boolean] - If set to true, the green Go arrow/button next to the URL box will be removed.


    browser.xul.error_pages.enabled [Boolean] (True) - If set to true which is the default, Firefox will display a full error page when it runs into an error (such as a 'page does not exist' error). If set to false, Firefox will only bring up a small dialog box with the error messager. I recommend this setting be left at the default of True to assist in troubleshooting web problems.

    config.trim_on_minimize [Boolean] (False) *Create - This setting only works in Windows, and determines whether Firefox - much like other Windows applications - reduces its memory usage when minimized to the Taskbar. If set to true (the default), it will use less memory when minimized, which is useful for systems with low RAM and multiple open applications. However if set to false it will speed up minimizing/maximizing Firefox, as it will not constantly attempt to reduce and reclaim RAM, and this can also increase stability - thus I recommend a setting of false for most people.


    content.notify.interval [Integer] *Create - Note that for this setting to work, a new Boolean called content.notify.ontimer must be created and set to True as well. This value in microseconds (where 1000 microseconds = 1 millisecond) determines how long Firefox buffers network data before displaying it. By default this is 120000 microseconds (120 milliseconds). Lowering this setting can improve display speed in Firefox, however it will also increase CPU usage to do so. Experiment with slight drops in value to 100000 or even 50000 and see if your results are beneficial. Don't drop this value to one which is extremely low however. If in doubt, do not change this value as you are more likely to slow Firefox down than speed it up.


    content.switch.threshold [Integer] *Create - This setting determines how long Firefox waits for user input (mouse or keyboard input) before switching to a less-responsive but less system-intensive low frequency mode while loading a page. The default is 750000 microseconds, but raising this value might keep Firefox more responsive at the cost of greater system load and slightly longer page loading times. I don't recommend changing this value.


    dom.disable_window_open_feature.* [Boolean] - There are 11 settings which begin with this tag (and end with one of the following: .close, .directories, .location, .menubar, .minimizable, .personalbar, .resizable, .scrollbars, .status, .titlebar, .toolbar). These settings control the appearance elements of popup windows which you can force to be displayed. For example, if you set the dom.disable_window_open_feature.close setting to True, it will force all popup windows which open up to have a close button in the top right hand corner of the popup window. This is useful since many popup windows (mainly ads) deliberately remove such elements to prevent easy resizing/closing of their content. For that reason I recommend you set at least the .close and .resizeable settings to true.


    dom.popup_maximum [Integer] (5) - This setting determines the maximum number of simultaneous popup windows which can be open at any time to prevent the screen flooding with popups (as some malicious sites/malware can do). The default is 20, but I recommend a value such as 5 or even lower since most of the time users will only ever need 2 open legitimate popups at most on their screen at once. If you find legitimate popups being blocked, raise this value again, but never beyond 20.


    extensions.checkCompatibility [Boolean] *Create - If this option is set to true, you will be able to install and use Extensions which are formally incompatible with Firefox 2.0. In some cases this may not cause any problems, however in a large number of cases there may be odd behavior or crashes. Use this setting with caution and backup your profile before installing and using an incompatible extension.


    extensions.dss.enabled [Boolean] - If set to true, this option enables Dynamic Skin Switching (DSS). This means that whenever you install and/or switch to a new Theme in Firefox, its changes will be implemented and visible immediately, rather than having to close down all Firefox windows and relaunching Firefox. While this is handy, it can be quite buggy so if you're having problems with glitches in themes set this back to false.


    extensions.spellcheck.inline.max-misspellings [Integer] - When the built-in spell check in Firefox is enabled, this option determines the maximum number of spelling mistakes the spell checker can encounter before it gives up. The default limit is 500, and on text entry boxes with large numbers of mistakes even this can cause a prominent slowdown. Lowering the limit can make Firefox much more responsive on such pages, but obviously results in less spelling mistakes being found.


    extensions.update.interval [Integer] - If you've selected to check regularly for Extension updates, this setting determines how often to check for such updates. The default is once a day (86400 seconds) but you can increase or decrease the amount depending on whether the Extensions you currently have installed are being updated more or less regularly by the author(s).


    intl.locale.matchOS [Boolean] - This setting is used by Firefox to determine where you are located in the world. If set to True, the setting tells Firefox to use the locale you've set in your operating system as your Firefox locale. If set to false, Firefox won't check or use your OS locale.


    keyword.URL [String] - This setting determines the address to use to run searches when you type a word in the Firefox Address Bar. By default it points to Google, but entering a word in the address bar just goes to the first site Google finds (i.e. the default is the I'm Feeling Lucky search method). Instead you might want to try setting it to http://www.google.com/search?&q= which is the general Google search string. Now any time you enter a word in the address bar and press Enter it will take you to a Google page showing you the results of the search for that term. Alternatively you can use a completely different search engine of your choice.


    keyword.enabled [Boolean] (True) - By default entering a word (and not a URL) in the Firefox Address Bar is considered a Keyword, and Firefox will either look for a bookmark with the same defined keyword and launch it, or commence a search in Google to find the most likely site from that word. If you don't like this functionality you can disable it by setting this value to False. Bookmark Keywords will still function however. Disabling this setting is generally not recommended as Keywords are a unique and highly useful feature of Firefox.


    Layout.css.report_errors [Boolean] - By default Firefox reports all CSS errors in the Tools>Error Console. If you don't want CSS errors shown, set this to false.


    Layout.spellcheckDefault [Integer] - This setting controls whether the built-in spell checker is disabled (0), enabled and checking multi-line text boxes (1 - the default), or enabled and checking all text boxes (2).


    layout.word_select.eat_space_to_next_word [Boolean] - This setting determines the selection behavior when you double-click on a word on a web page. By default (True), Firefox selects the word and the white space on the right of that word. If set to False, Firefox will only select the word itself with no extra spaces. I personally prefer to have this set to False.


    layout.word_select.stop_at_punctuation [Boolean] - This setting determines whether Firefox selects the punctuation around a word when it is double-click selected. If set to True, the punctuation is not selected with the word. If set to False, additional punctuation around the word is selected as well. For example double-clicking on the word (default) in Firefox will either just select default or (default) based on this setting.


    network.cookie.cookieBehavior [Integer] (1) - This setting determines the way Firefox handles cookies. The default is 0 which allows all cookies, unless you've set your in-browser settings to block all cookies - a value of 2 for this setting. However you can change this setting to value of 1 to only allow cookies from the originating site, blocking third party (usually advertising) cookies, which should work best for most people.


    network.dnsCacheEntries [Integer] *Create - This setting determines how many entries should be held in the Firefox DNS (Domain Name System) cache. Whenever you enter a web address in Firefox, it needs to convert that text address into an IP number. It does this by looking up the name and IP number through a DNS server. By holding DNS entries in a local cache, the next time you want to go to the same site Firefox can load it up much faster. By default Firefox holds 20 entries in the cache. I recommend changing this number to match at least the number of sites you regularly browse. More importantly, check the setting below to ensure DNS entries are kept up to date.


    network.dnsCacheExpiration [Integer] *Create - This setting determines how long the cached DNS entries (as set by the network.dnsCacheEntries setting) are held before they are discarded. The default is 60 (seconds), however before changing this setting consider the pros and cons - the longer cached entries are held, the quicker your browsing may be, but the longer it may take for Firefox to be aware that a site which was temporarily considered unavailable (unresolved) is now accessible (resolved).


    network.http.max-connections [Integer] (48) - This setting determines how many simultaneous HTTP connections can be made by Firefox. The default is already 24, however for most people on moderate to fast Internet connections you can try raising this to a value like 48 or even 96 to allow for more open connections, thereby speeding up browsing multiple pages. The maximum is 65535, but remember that by raising this setting you are only raising the maximum possible number of connections. You aren't forcing Firefox to increase the actual number of connections it makes every time; if your system actually attempted to force 300 connections to open at once for example it would likely slow down to a crawl.


    network.http.max-connections-per-server [Integer] (16) - This setting determines how many simultaneous connections can be made to a single server. The default is 8, however you can increase the value for broadband connections to something like 16 or 32 to attempt to increase browsing speed. The maximum is 255, however note that raising this setting to a high value (in conjunction with a high value for the network.http.max-persistent-connections-per-.* settings below) may be construed as a DDoS (Distributed Denial of Service) attack by some servers and your connection may be refused or even permanently banned. I strongly suggest that you keep this value sane. Simply increasing the number of connections to a server doesn't necessarily make things any faster, and indeed if every Firefox user does this then overall most sites will become slower.


    network.http.max-persistent-connections-per-proxy [Integer] (8) - If you are connected to a proxy, this setting determines how many connections to keep alive at any time. The default is 4, however you can attempt a higher value such as 8 to improve browser speed. As mentioned in the settings above, raising this to a very high value will put additional stress on the proxy server and may ultimately result in slower browsing for everyone on the proxy and/or a refused connection.


    network.http.max-persistent-connections-per-server [Integer] (8) - If you are not connected to a proxy, this setting determines how many connections to a single server to keep alive at any time. The default is 2, however you can attempt a higher value such as 8 to improve browsing efficiency. The maximum possible is 255, and as mentioned in the settings above, raising this to a very high value will put stress on the particular websites you are connected to and will either result in a refused connection, or slower response times from the web page for every person trying to connect to it. Do not raise this value to one which is very high as it is inconsiderate and counter-productive if everyone does so.


    network.http.pipelining [Boolean] (True) - If set to True, this setting uses the HTTP Pipelining feature supported by some servers and proxies. This can improve browsing speeds, however because the feature is not supported by all servers you may experience problems on some sites with it enabled. I recommend setting this to True and only disabling it if you experience problems such as refused connections or unusual behavior.


    network.http.pipelining.maxrequests [Integer] (8) - This setting determines the maximum number of requests to send when using the HTTP Pipelining feature (see above). The default is 4, and the maximum possible is 8 (higher values are ignored), while a value of 1 disables pipelining. I recommend setting this to 8 and only reducing it back to 4 if you experience any problems with the Pipelining feature.


    network.http.proxy.pipelining [Boolean] (True) - If set to True, this setting enables the HTTP Pipelining feature (see network.http.pipelining above) for proxy servers. This can improve browsing speeds, however because the feature is not supported by all proxies you may experience problems. I recommend setting this to True and only disabling it if you experience such problems as refused connections, longer page loading times, or unusual behavior. Note that network.http.proxy.keep-alive must be set to true for this to work.


    network.http.redirection-limit [Integer] - This setting determines how many consecutive redirects Firefox will accept. For example if you click on an outdated link to a particular site, once arriving there you may be automatically redirected to the new address for that site. That would be one redirect. If you want to block sites which spam multiple automatic redirects (usually malicious sites), you can lower this value to 10 for example, or even less. I don't recommend disabling automatic redirection (i.e setting this to 0) as many sites use legitimate redirects, such as most Internet forums after you have posted a message. I also don't recommend raising this limit above 20.


    network.prefetch-next [Boolean] (False) - This setting determines whether to use a Firefox feature called Link Prefetching. See the Neat Stuff & Conclusion section for a practical example, and why you may want to set this preference to False.


    nglayout.initialpaint.delay [Integer] *Create - This setting determines how many milliseconds Firefox should wait before it starts to display the page contents. This brief delay allows Firefox to load and arrange the various page components as correctly as possible. The default is 250 milliseconds which isn't very long, but you can try setting this to 0 to see if it improves the responsive feel of Firefox at the expense of slightly longer load times. Some users report faster overall page load times with the default value or even higher, so experiment to see which value suits your browsing habits, and if in doubt do not create or alter this setting.


    plugin.default_plugin_disabled [Boolean] - When viewing a web page which requires a Plugin (such as Flash) Firefox will prompt the user to install this plugin. If you don't ever want to see any such prompts, set this setting to False.


    print.use_global_printsettings [Boolean] - If set to True, Firefox will use the same printer settings you chose globally for every open Firefox window. If set to False, each open Firefox window can have a separate print setting applied to it.


    privacy.popups.disable_from_plugins [Integer] - Some sites use scripts to circumvent the popup blocker and launch a popup window when you click on the page. If this preference is set to 0 it doesn't block any such popup windows; if set to 1 it limits the maximum of popups (based on the dom.popup_maximum setting - see above); and if set to 2 it blocks all popups from plugins (except for sites in your list of Allowed Sites under the Options>Contents popup Exceptions) - this is the default setting; if set to 3 blocks all popups regardless.


    privacy.popups.showBrowserMessage [Boolean] (False) - By default the first time Firefox blocks a popup (if the popup blocker is enabled in Tools>Options>Web Features) then it will ask you whether you want to display a message each time a popup is blocked. The answer you provide at that time sets the default for this setting, but you can change it at any time by editing this preference. For the sake of reducing annoyance I recommend you set this to False.


    Web pages often use CSS (Cascading Style Sheets) to define basic elements such as what color hyperlinks are, the size and type of fonts used to display text in various parts of the page, and so forth. The files UserChrome.css and UserContent.css are described in the Customizing Firefox section, but essentially they work on the same theory - they define the basic elements of the user interface and web layout presented by Firefox. UserChrome.css can be used to customize various elements of the Firefox user interface, while UserContent.css can be used to customize the appearance of web pages displayed within Firefox.


    By default neither of these files exist, and must be created in the \chrome subdirectory of your relevant Profile folder. For instructions on creating these files see the Customizing Firefox section of this guide. Alternatively you can just rename the UserChrome-example.css and/or UserContent-example.css files under that directory by removing the -example portion of the name.


    These files can be edited using a text editor such as Windows Notepad. Note that you can find a more detailed list of these types of tweaks at sites like Mozilla Firefox Tips & Tweaks. Alternatively, you can find yourself a good CSS Tutorial and learn how to generate and manipulate your very own CSS code to create the perfect customizations to suit your needs. I don't recommend editing CSS files unless you are at least familiar with how CSS works.


    Click to enlarge

    Below are a few useful tweaks which you can copy and paste into the relevant CSS file to enable different functionality:


    UserChrome.css


    Use a Custom Background Image for Toolbars


    /* Use a background image for the toolbars:
    (Substitute your image file for background.gif) */
    menubar, toolbox, toolbar, .tabbrowser-tabs {
    background-image: url("background.gif") !important;
    background-color: none !important; }


    Note the image must be in .GIF format, and be placed in the same directory as the UserChrome.css file for this tip to work.



    Change Color of Tabs


    /* Change color of active tab */
    tab{ -moz-appearance: none !important; } tab[selected="true"] {
    background-color: rgb(222,218,210) !important;
    color: black !important; }

    /* Change color of normal tabs */
    tab:not([selected="true"]) {
    background-color: rgb(200,196,188) !important;
    color: gray !important; }


    Note if you want to further change the colors used, simply edit the values shown in the rgb and color: lines. To determine new RGB values, try this RGB Color Chart. For the color values, use common words like white, black, blue etc.



    Remove Close Button from Tab Bar


    /* Remove the close button on the tab bar */
    .tabs-closebutton-box { display: none !important; }



    Remove Firefox Menu Items


    /* Remove the Go and Help menus
    (These are just examples. Try changing "Go" to "Edit" or "Bookmarks") */
    menu[label="Go"], menu[label="Help"] {
    display: none !important; }


    Note that you can remove any menu items you want by inserting their names (File, Edit, View, Go, Bookmarks, Tools or Help) in place of "Go" or "Help" above. You can also remove more than two menus items by adding more instances of menu[label=""]after the existing menu commands, as long as each is separated by a comma followed by a space.



    Display Sidebar on the Right


    /* Place the sidebar on the right edge of the window */
    window > hbox {
    direction:rtl; } window > hbox > * {
    direction:ltr; }


    If you use the Sidebar (under the View>Sidebar menu in Firefox), you can switch it from displaying on the left to the right side of the screen.



    Increase Search Bar Width


    /* Make the Search box flex wider
    (in this case 400 pixels wide) */
    #search-container, #searchbar {
    -moz-box-flex: 400 !important; }


    If you use the Web Search box in Firefox, you can increase its width to any value you wish (in pixels) by editing the value shown after -moz-box-flex setting above.



    UserContent.css


    Change Cursor for Links Which Open in New Windows


    /* Change cursor for links that open in new window */
    :link[target="_blank"], :visited[target="_blank"],
    :link[target="_new"], :visited[target="_new"] {
    cursor: crosshair; }


    This changes your default cursor to a crosshair whenever you hover over a link which opens in a new window by default.



    Block Flash Animations & Advertisements


    /* Block Flash, using a placeholder you can click to unblock a desired Flash animation. */
    /* Doesn't work for embed tags, which are less common than object tags - bug 190970 */
    object[classid$=":D27CDB6E-AE6D-11cf-96B8-444553540000"],
    object[codebase*="swflash.cab"] {
    -moz-binding: url("http://www.cs.hmc.edu/~jruderma/flash.xml#obj"); }


    This replaces all Flash advertising and Flash-based elements with a 'Click to Play' prompt. You can then play the flash animation if you wish, or you can continue to ignore it on a web page.



    Remove All Embedded Content


    /* Nuke all embedded objects, thanks to bertilow on Slashdot */
    object, embed { display: none; }


    This is a very simple but very powerful tweak which removes completely all embedded content, usually the more annoying flash, shockwave animations and so forth. The combination of this tweak and the one above can remove much of the flashing elements of web pages.


    As you can see, there is no end to the possibilities of tweaking Firefox's interface and web display capabilities. I strongly recommend that if you're interested in having a browser completely suited to your needs you try to learn some CSS, as it's not very difficult to pick up the basics.



    The next page covers a range of Extensions and Themes (Add-ons) which can perform many of the tweaks outlined above, and plenty more. These are ready-made plugins for Firefox which add additional functionality and have even greater tweaking potential, particularly for those who don't wish to tweak Firefox manually.


    60 comments:

    Tadalafil said...

    You wrote a very interesting article. And I agree with you.

    Anonymous said...

    rinh longchamp bags CvkFxx 8748
    longchamp outlet tccy http://www.longchampbagspurse.com/ longchamp outlet

    Fsxyg lhkuss longchamp handbags 7643
    longchamp outlet kulj http://www.longchamphandbagsusa.com/ longchamp outlet

    jxmw longchamp sale TrhJx paris l 1210
    longchamp outlet hahi http://www.longchampsalepurse.com/ longchamp outlet

    Fqjgr cpnfcu longchamp le pliage ncb5338
    longchamp outlet mjbt http://www.longchamplepliageus.com/ longchamp outlet

    Eqemj longchamp btnjsr
    Eue longchamp outlet yj wmf longchamp paris fjd
    Nzhfh longchamp ievd long champ bf longchamp sale diigif
    Pnk longchamp outlet rk kse longchamp paris bbm
    Mbg longchamp le pliage ug longchamp zun longchamp le pliage znu
    Ahk longchamp outlet ar zq longchamp bags y longchamp paris oah

    Anonymous said...

    I love what you guys are usually up too. This
    type of clever work and reporting! Keep up the great works guys I've added you guys to my own blogroll.
    Feel free to surf my web site ... warm winter jackets

    Anonymous said...

    fantastic post, very informative. I'm wondering why the other experts of this sector don't understand this.
    You should continue your writing. I'm sure, you've a great readers' base already!
    Here is my website ; http://www.christianlouboutinshoesblogs.com/

    Anonymous said...

    Hi everyone, it's my first pay a quick visit at this website, and paragraph is in fact fruitful designed for me, keep up posting these types of posts.
    My webpage - peep show

    Anonymous said...

    medicine generates the most effective outcomes for practically every single affected person, from premature babies to elderly cancer individuals. The digital camera follows within the footsteps a team of archeologists and launched the viewers to air max improvements in this scientific field.
    http://www.calfworld.com/blog/%E6%96%B0%E5%93%81%E5%8F%91%E5%B8%83
    http://idealnaya-para.com/1.html
    http://facemanage.com/blogs/user/Amanda9T
    http://wikiterious.com/html/userinfo.php?uid=528
    http://mr-jingles.org/index.php?do=/blog/38853/why-is-the-nike-air-max-skyline-so-cool/
    http://testerdetest.com/index.php?do=/profile-14515/info/
    http://dreamdata.info/blogs/473/1206/nike-air-max-mattress-technology
    http://newinterfaces.watershed.co.uk/nip/2007/11/05/upcoming/

    Anonymous said...

    Amazing blog! Do you have any hints for aspiring writers?
    I'm hoping to start my own website soon but I'm a little lost on everything.

    Would you propose starting with a free platform like Wordpress or go for a paid option?

    There are so many choices out there that I'm completely confused .. Any suggestions? Appreciate it!
    Stop by my page Canada Goose Norge

    Anonymous said...

    Amazing blog! Do you have any hints for aspiring writers?
    I'm hoping to start my own website soon but I'm a little lost on everything.
    Would you propose starting with a free platform
    like Wordpress or go for a paid option? There are so many choices out there that I'm completely confused .. Any suggestions? Appreciate it!
    My web page > Canada Goose Norge

    Anonymous said...

    With havin so much content do you ever run into any problems
    of plagorism or copyright infringement? My website has a lot
    of unique content I've either written myself or outsourced but it seems a lot of it is popping it up all over the internet without my permission. Do you know any ways to help prevent content from being stolen? I'd really appreciate it.
    Feel free to surf my page : canada goose uk

    Anonymous said...

    It's a shame you don't have a donate button! I'd definitely donate to this superb blog! I suppose for now i'll settle
    for book-marking and adding your RSS feed to my Google account.
    I look forward to new updates and will share this blog with my Facebook
    group. Talk soon!
    Also visit my weblog : Canada Goose

    Anonymous said...

    [url=http://www.firstboots.co.uk][img]http://www.firstboots.co.uk/images/ugg-boots.jpg alt="www.firstboots.co.uk" title="www.firstboots.co.uk"[/img][/url] baby pink uggs http://www.wholeboots.co.uk
    [url=http://www.wholeboots.co.uk/#g4q33i72n][b]ugg boots uk[/b][/url]
    [url=http://www.likeboots.co.uk/#q7t45a34n][b]uk ugg boots[/b][/url]
    [url=http://www.kindboots.co.uk/#z9x62l03v][b]ugg cheap[/b][/url]

    Anonymous said...

    Greetings from Los angeles! I'm bored to tears at work so I decided to browse your site on my iphone during lunch break. I enjoy the knowledge you provide here and can't
    wait to take a look when I get home. I'm amazed at how fast your blog loaded on my cell phone .. I'm not even using WIFI, just 3G .
    . Anyways, great site!
    My webpage nfl jerseys wholesale

    Anonymous said...

    Then you have to gently get the fan and motherboard out of the Xbox 360 case.. [url=http://www.mulberryhandbagssale.co.uk]Mulberry outlet shop[/url] Get to your local pay lake before dark so you can pick the right spot to catch your trophy catfish. [url=http://www.goosecoatsale.ca]http://www.goosecoatsale.ca[/url] Rmbwoayuu
    [url=http://www.pandorajewelryvip.co.uk]pandora Sale[/url] Yjizkozit [url=http://www.officialcanadagooseparkae.com]canada goose canada[/url] smcsfjiuk

    Anonymous said...

    This is a good tip particularly to those new to the blogosphere.
    Simple but very precise information… Appreciate your sharing this one.

    A must read article!

    Look into my weblog ... http://myplusthemes.com/

    Anonymous said...

    http://bbs.decentfloor.com/forum.php?mod=viewthread&tid=128091

    http://www.jvcyinxiangweixiu.com/viewthread.php?tid=1303178&extra=

    http://sxgcwl.com/bbs/forum.php?mod=viewthread&tid=272407

    http://likosoft.com/axelynx_wiki/index.php?title=User:Mpuauekkpbb#FT0003--spun62

    http://www.myte.com.cn/discuz/forum.php?mod=viewthread&tid=267197

    http://gccgoo.com/discuz/thread-314975-1-1.html

    http://itracdev.com/index.php/member/50484

    http://www.6ye.net/forum.php?mod=viewthread&tid=40468

    http://www.lt188.com/thread-244355-1-1.html

    http://www.xfsj-cy.com/bbs/forum.php?mod=viewthread&tid=19506

    http://www.lunlou.com/forum.php?mod=viewthread&tid=370078

    http://db588.com/forum.php?mod=viewthread&tid=203551

    http://www.baijiale.com/

    http://jlwyjzx09.com/forum.php?mod=viewthread&tid=957607

    http://www.sirenji.com/bbs/

    http://fuzhuang.site188.com/bbs/forum.php?mod=viewthread&tid=191732

    http://www.tweedrunbeijing.com/bbs/forum.php?mod=viewthread&tid=10315

    http://www.chonglove.com/home.php?mod=space&uid=14552&do=blog&id=1192

    http://www.09458.com/forum.php?mod=viewthread&tid=563419

    http://www.zizhitong.net/bbs/home.php?mod=space&uid=43125&do=blog&id=16665

    Anonymous said...

    Hi there! This blog post couldn't be written much better! Going through this post reminds me of my previous roommate! He constantly kept talking about this. I'll send this post
    to him. Fairly certain he'll have a good read. Many thanks for sharing!

    Here is my web page; Cheap Oakleys
    my web page: Cheap Oakleys

    Anonymous said...

    I do not even know the way I finished up right here, however I assumed this submit used to be good.

    I don't realize who you're however certainly you're going to a famous blogger if you aren't already.
    Cheers!

    Here is my web page: cupidsgene.com

    Anonymous said...

    I every time spent my half an hour to read this webpage's articles or reviews every day along with a cup of coffee.

    Also visit my web page ... http://sexystance.com/index.php/pauletteb

    Anonymous said...

    It is appropriate time to make some plans for the future and it's time to be happy. I've read this post and
    if I could I wish to suggest you some interesting things or tips.
    Maybe you could write next articles referring to this article.
    I desire to read more things about it!

    my blog - サングラス レイバン

    Anonymous said...

    It's a pity you don't have a donate button! I'd most certainly donate to this outstanding blog! I guess for now i'll settle for bookmarking and adding your RSS feed to my Google
    account. I look forward to new updates and will share
    this site with my Facebook group. Chat soon!

    Review my website :: ロレックスレプリカ

    Anonymous said...

    Great post.

    My web-site: 激安プラダ バッグ

    Anonymous said...

    It's going to be end of mine day, however before finish I am reading this impressive piece of writing to increase my knowledge.

    Feel free to surf to my page :: レイバンサングラス

    Anonymous said...

    Paragraph writing is also a excitement, if you know then you can write otherwise it is complicated to write.


    Also visit my web site ロレックススーパーコピー

    Anonymous said...

    Wow, amazing blog structure! How lengthy have you been blogging for?

    you made running a blog look easy. The full glance of your web site is excellent, as smartly as the content!


    Also visit my web-site: レイバンサングラス 激安

    Anonymous said...

    What's Happening i'm new to this, I stumbled upon
    this I have discovered It positively helpful and it has aided
    me out loads. I'm hoping to contribute & aid different users like its aided me. Good job.

    my web site; cheap air max 95

    Anonymous said...

    This paragraph is genuinely a nice one it assists
    new the web people, who are wishing in favor of blogging.


    Here is my web blog ... オークリー アウトレット

    Anonymous said...

    I wanted to thank you for this good read!! I certainly loved
    every bit of it. I have got you bookmarked to look at new
    stuff you post…

    Also visit my blog レイバンサングラス

    Anonymous said...

    I have learn several good stuff here. Certainly
    worth bookmarking for revisiting. I wonder how so much attempt you put to make this type of great informative website.



    My page :: オークリー激安

    Anonymous said...

    I like the helpful info you provide in your
    articles. I'll bookmark your blog and check again here frequently. I am quite certain I'll learn a lot of new stuff right here!

    Best of luck for the next!

    Also visit my blog post シャネル バッグ

    Anonymous said...

    There's certainly a great deal to know about this issue. I love all of the points you've made.


    Here is my site: coachhandbagsoutletshopx.com

    Anonymous said...

    Please let me know if you're looking for a author for your site. You have some really great posts and I believe I would be a good asset. If you ever want to take some of the load off, I'd absolutely love to write some articles for your
    blog in exchange for a link back to mine. Please send me an email if interested.

    Cheers!

    Review my blog post :: シャネルバッグ

    Anonymous said...

    I'm not sure exactly why but this blog is loading incredibly slow for me. Is anyone else having this problem or is it a issue on my end? I'll check
    back later on and see if the problem still exists.

    my blog post ... シャネル バッグ

    Anonymous said...

    Link exchange is nothing else however it is only placing the other person's webpage link on your page at proper place and other person will also do same in favor of you.

    Look at my web site: オークリーメガネ

    Anonymous said...

    beatsvivi.com directly on '08,Ogre loan company with Grammy merchandise champion practicedDre coupled with travelling animal Noel rescue group get and likewise substantiate a betters just by medical practitioner.IovineThe blend associated with marvelous woman Gaga's higher education highlight in addition to while using the tracks avant.Garde wide-ranging and attending with orange shades and tones fabricated a top ideal safe set up Dre Music inexpensivein the event the actual approach trendiness headphones make use of point which was forbidden in helping fix the complete hair style colouring is just not pandemonium,a challenge ones eyeballs relates to focused on a vanity mirror"Parce every summer season track among the us to gotten girls and boys and located that all keeping a small number of REAL AND light and portable tape-we would the dispute.application headsets


    [b][url=http://www.drebeatsgo.com]Beats By Dre Sale[/url][/b] J'ai d茅j脿 pens茅 脿 cualls r茅solutions je ne vais pas tenir, Et je sais que l'ordre des milliers durante blogueurs vont faire autant. Hier soir je suis heureux d'avoir rencontr茅 Tarquine pour los angeles premi猫re fois, D茅couvrir l. a,chicago package cach茅e l'ordre de madame stand out point t锚te-awesome coeur. J'ai remis los angeles perruque nufactured Muriell dump une happening sp茅ciale, others demandant une nouvelle fois 脿 quoi 莽a rimait tout 莽a, l. a,chicago Terre, l'ensemble des 茅toi, l'ensemble des poils, l'ensemble des roupettes.


    [b][url=http://www.beatsdrdreco.com]Beats By Dre Sale[/url][/b] everybody fancy audio products rental. mostly because of the price?i just read much audio text books and it may simply the cost too hard to buy them all. of course, Audio courses that i adore, Ones that I want to hear again and again, i buy and also have them when simple audio software selection,


    [url=http://www.petsquare.xin4u.com/forum.php?mod=viewthread&tid=398176]Hermes Scarves Online Shop[/url]

    [url=http://hrltzdb.com/bbs/forum.php?mod=viewthread&tid=666809]Hermes Belt For Kids[/url]

    [url=http://WWW.3155weiquan.com/forum.php/forum.php?mod=viewthread&tid=56154]Hermes Belt Malaysia[/url]

    [url=http://www.hwysw.com/bbs/read.php?tid=146863&ds=1]Hermes Scarves Sale[/url]

    [url=http://www.51cylc.com/forum.php?mod=viewthread&tid=56152]Hermès Tie[/url]

    Anonymous said...

    Hi there, just wanted to mention, I loved this blog post.
    It was inspiring. Keep on posting!

    Also visit my blog; サングラス オークリー

    Anonymous said...

    What's up mates, its wonderful paragraph on the topic of teachingand fully defined, keep it up all the time.

    Take a look at my web-site - オークリー

    Anonymous said...

    tはファッショナブルではない何かを身に着けることを考える

    Here is my web page - バーバリー ワンピース

    Anonymous said...

    Nike's shoes and boots are a aspect more expensive for you to that of any other brands. Focus on in want to grow to be when the difference is complete. As a result, can have a lot of energy to go ahead and on climbing hilly. They refer to the cut, clarity, carat and color. http://www.bilalmission.org/modules.php?name=Your_Account&op=userinfo&username=MariaMcma

    Take a look at my web-site; air max tn

    Anonymous said...

    あなたがシャネルの商品への
    投資の検討している
    という場合は、多
    数のオプションを
    持っている

    Feel free to surf to my web-site ... シャネル 公式

    Anonymous said...

    Nike's technology has changed with each driving day. Science and Technology of China shoe machines can not do out of this method? The newer systems use a acrylic resin casing that really is as durable as the latest bowling ball. Some Nike air max appears to be produced in 1988. http://www.bioxeo.com/moodle6/user/view.php?id=5396&course=1

    Anonymous said...

    だけでなく、ハイファッションで彼
    女の仕事のように、コ
    コシャネルはまた、コクトーのアンティゴネ
    ー(1923)とオ
    イディプス王(1937)
    とルノワールの
    ラRegleデ賭け事
    を含むいくつかの映画
    のための映画の衣
    装など、演劇の舞台
    衣装を作成しました

    Here is my web page: シャネル

    Anonymous said...

    これは、Cのあなたのバッグの中が絡み合っている方
    法ではない場合は
    、シャネルのレプリカを保持し
    ている

    Also visit my web site :: シャネル

    Anonymous said...

    Yesterday, while I was at work, my sister stole my apple ipad and tested to see if it can survive a 40 foot drop, just so
    she can be a youtube sensation. My iPad is now broken and she has 83 views.
    I know this is totally off topic but I had to share it with someone!


    Here is my blog post: レイバンメガネ

    Anonymous said...

    What's up mates, good post and fastidious arguments commented at this place, I am in fact enjoying by these.

    my webpage :: Replica Rolex Watches

    Anonymous said...

    This is the perfect website for anybody who wishes to find
    out about this topic. You know a whole lot its almost hard to
    argue with you (not that I really will need to…HaHa). You definitely put a
    brand new spin on a subject that's been discussed for years. Wonderful stuff, just wonderful!

    Look at my web site :: Replica Rolex Watches

    Anonymous said...

    I all the time used to read article in news papers but now as I am a user of web thus from now I am
    using net for articles, thanks to web.

    Also visit my web-site; http://classicalrolexwatch.xanga.com

    Anonymous said...

    Hi! I've been following your site for a long time now and finally got the courage to go ahead and give you a shout out from Houston Tx! Just wanted to say keep up the excellent work!

    Also visit my website :: http://www.2013chloeoutletshop.com

    Anonymous said...

    Hello There. I found your blog using msn. This is a really well written article.
    I will be sure to bookmark it and come back to read more of your useful information.
    Thanks for the post. I'll definitely comeback.

    My web site - www.raybansale-shop.com

    Anonymous said...

    You actually make it seem so easy with your presentation
    but I find this topic to be actually something which I think I would never understand.
    It seems too complex and very broad for me. I'm looking forward for your next post, I will try to get the hang of it!

    my webpage Christian Louboutin Pumps

    Anonymous said...

    Deflation and put some air inside of it once and for everything.
    Optimists are proactive with much less structured on other people
    for his or maybe her joy. You ought to consider the textiles
    you are in order to be use for that windowpane remedies.
    Making a prenatal nutritional is fantastic to suit your state of health.
    http://mediationworks.com/webtraining/user/view.php?id=11186&course=1

    Here is my web page :: air max cheap

    Anonymous said...

    Aw, this was a really nice post. Taking the time and actual effort to generate a good article… but what can I say… I procrastinate a whole
    lot and never manage to get anything done.

    Here is my web-site :: sexvideovoyeur.com

    Anonymous said...

    Hi there everyone, it's my first pay a quick visit at this website, and piece of writing is actually fruitful in support of me, keep up posting these types of posts.

    Here is my blog cam girls

    Anonymous said...

    I like the valuable info you provide in your articles.
    I will bookmark your blog and check again here regularly.

    I am quite certain I'll learn lots of new stuff right here! Good luck for the next!

    Feel free to surf to my web-site :: massage happy ending san antonio

    Anonymous said...

    Excellent weblog here! Additionally your site lots up very fast!

    What web host are you the usage of? Can I am getting your associate link on your host?
    I wish my web site loaded up as fast as yours lol

    Here is my homepage; Christian Louboutin Outlet

    Anonymous said...

    еxcellent points altogether, you simply receiνeԁ a new readеr.
    What may you suggest about your put up that yοu maԁe
    sοme ԁayѕ ago? Any surе?

    Check out my website: payday loans

    Anonymous said...

    I'm pretty pleased to find this website. I need to to thank you for ones time for this fantastic read!! I definitely loved every little bit of it and I have you saved to fav to check out new things in your website.

    My site ... ルブタン

    Anonymous said...

    This paragraph provides clear idea designed for the new people of blogging, that truly how to do blogging.



    Feel free to surf to my webpage: ルブタン

    Anonymous said...

    Today, I went to the beachfront with my children.
    I found a sea shell and gave it to my 4 year old
    daughter and said "You can hear the ocean if you put this to your ear." She put the shell to her ear and screamed.
    There was a hermit crab inside and it pinched her ear.
    She never wants to go back! LoL I know this is totally off topic but I had to
    tell someone!

    my homepage :: cheap nike air max shoes

    Anonymous said...

    Every brandname had a black dress in his/her
    collection. It will virtually take place found at the Freemasons' Hall, Covent Garden, in London. Hitting headwear was composed for the event by top milliner Stephen Jones. Tuxedo apparel were paired with leggings, all inside the name linked fashion and art. http://www.ovoogle.com/twit2/VVUDelori

    My web site: elasticated skirts

    Anonymous said...

    Are you interested in any kinds of hacking services?
    Feel free to contact TECHNECHHACKS@GMAIL.COM.

    For years now we’ve helped so many organizations and companies in hacking services.
    TECHNECHHACKS is a team of certified hackers that has their own specialty and they are five star rated hackers.

    We give out jobs to hackers (gurus only) to those willing to work, with or without a degree, to speed up the availability of time given to jobs!!

    Thus an online binary decoding exam will be set for those who needs employment under the teams establishment.


    we deal with the total functioning of sites like,



    + SOCIAL MEDIA (Facebook, Twitter, Instagram, Snapchat, google hangout etc.)

    + CREDIT CARDS INSTALLATION

    + WESTERN UNION TRANSFER

    + MONEY FLIPPING

    + BANK ACCOUNTS

    + IOS/OS

    + CRIMINAL RECORDS

    + SCHOOL GRADES

    + CREDIT SCORES

    + SPOUSES PHONE

    + BTC RECOVERY

    + BTC MINING


    Thus bewere of scammers because most persons are been scammed and they ended up getting all solutions to their cyber bullies and attacks by US.

    I am Jason williams one of the leading hack agent.

    PURPOSE IS TO GET YOUR JOBS DONE AT EXACTLY NEEDED TIME REQUESTED!!!



    And our WORK SUCCESS IS 100%!!!



    I’m always available for you when you need help.

    Contact or write us on:

    Technechhacks@gmail.com

    SIGNED....!

    Jason. W.