Tampermonkey® by Jan Biniok

Recent Changes

Addressed occasional failures in script registration in userScript dynamic mode
Fixed an GM_registerMenuCommand issue with non-letter accessKeys
Fixed another GM_xmlhttpRequest cookie issue
Fixed badge icon
Fixed an GM_xmlhttpRequest issues with non-ASCII header values
Fixed support for script installation via drag-and-drop in any browser tab
Speeded up UserScripts Dynamic Mode to support real document_start
Made @sandbox DOM mode work again
Fixed another GM_xmlhttpRequest cookie issue
Switched to Manifest V3
Enabled GM_cookie for all versions (HttpOnly cookie access still only at the beta versions)
Added partitionKey support to GM_cookie
Added cookiePartition support to GM_xmlhttpRequest
Added a warning message when a script without @include and @match entry is saved the first time
Fixed storage change listeners after clicking a download link
Fixed issues with GM_registerMenuCommand if the command was registered multiple times (e.g. from different frames)
Show an error icon at scripts without any @include and @match entry
Manifest v3 requires a different workflow when installing a userscript
Note: you can restore the old behavior, by changing Userscript URL detection to Legacy
Updated Italian translation | thanks to bovirus
Updated Japanese translation | thanks to shirayuki
Updated Portuguese-Brazil translation | thanks to igorruckert
Known Issues
GM_webRequest is not (yet) supported in Manifest V3
GM_xhr fires only one progress event (you can use responseType stream for now)
In UserScript API Dynamic mode scripts that are using a RegExp @require cause overhead by being injected into every frame
It will soon be necessary to enable developer mode to run userscripts via Tampermonkey.
Instructions on how to enable it can be found here.
This release includes significant updates for future Manifest V3 compatibility. Please report any issues here.
Introduced a permission editor for enhanced management of host permissions
Updated GM_download to make the name parameter optional and implemented extraction from the response headers
Removed use of deprecated DOMNodeInserted and MutationEvent events
Updated Italian translation | thanks to bovirus
Updated Portuguese-Brazil translation | thanks to igorruckert
Updated GM_download to initiate downloads in parallel again
Resolved a failure when accessing xhr.responseXML of HTTP responses
Repaired the 'Sync Now' button
Corrected the 'Save To Disk' button in the editor
Implemented anonymous requests for WebDAV to prevent overwriting of browser sessions
Fixed WebDAV-based sync in cases of unexpected existing folder structures
Reworked to reduce some authentication requests
Updated Danish translation | thanks to jhertel
Updated Chinese (simplified) translation | thanks to PaperStrike
Resolved issue with GM_notification url property when no onclick listener is set
No longer displaying script modification conflict warnings when there's no conflict
Resolved an issue with Instant Injection mode when a script requires a local file
Addressed problems related to script installation from certain Gitlab URLs
Removed warning about script updates being disabled upon script modification
Restored application of custom CSS to installation pages
Resolved quirks in the darker theme
Corrected 'replace all' functionality in code editor for certain strings
Adjusted popup menu behavior when the page is viewed as a 'shortcut'
Updated Russian translation | thanks to adem4ik
Updated Vietnamese translation | thanks to IoeCmcomc
Updated Japanese translation | thanks to maboroshin and shirayuki
Updated Italian translation | thanks to bovirus
Known Issues
GM_download starts downloads serialized
Content-security-policy (CSP) directives are no longer relaxed by default
  • Script injection should function as expected, but some userscripts may rely on a relaxed CSP
  • The previous behavior can be reinstated by setting 'Modify existing content security policy (CSP) headers' to 'Yes'
Warning message 'Tabs cannot be edited right now' has been suppressed
Resolved several internal issues that could potentially cause crashes
Refactored version number parser to support ISO format dates
Note: As a result of this change, 1.0-0.3 is now considered a lower version number than 1.0
Fixed window.showDirectoryPicker
Introduced GM_notification tag to overwrite existing notifications
Added GM_notification url property to open a new tab on click (can be cancelled by onClick event via preventDefault)
Notifications now automatically close when the userscript unloads and neither a url nor a tag was specified
Added GM_registerMenuCommand id parameter to update existing commands
Introduced GM_registerMenuCommand title parameter
Added an option to GM_registerMenuCommand to prevent automatic popup closure on click
Fixed GM_download to prevent onload from firing too frequently
Performed rework related to Instant Navigation
User-defined globals are now accepted in ESLint configuration
Enhanced sandbox window addEventListener to support EventListenerObjects
Added script version number when saving a script to disk
Locally modified scripts will not be updated automatically, but can now be reverted through a manual update and confirmation
Fixed GM_xmlhttpRequest FormData key-value order
Adjusted ESLint to allow top-level await
Resolved BSD issue due to incorrect getPlatformInfo response
New GreasyFork script URLs are now detected
Sync now and sync reset are only enabled after changes have been saved
Fixed script search badge mode to display accurate numbers
Tabs can now be scrolled horizontally when there are too many tabs
Search-as-you-type always starts from the current position
Updated Italian translation | thanks to bovirus
Updated Portuguese-Brazil translation | thanks to igorruckert
Updated Japanese translation | thanks to shirayuki
Updated Russian translation | thanks to ACherepkov1989
Updated Turkish translation | thanks to selimsumlu
Updated Chinese (traditional) translation | thanks to 5idereal
Updated French translation | thanks to Juknum
Known Issues
Instant injection mode is currently incompatible with scripts that require local files
A crash may occur when 'Always use Private Browsing Mode' is enabled in Firefox. It is recommended to either disable this setting or downgrade to version 4.19.0
Introduced support for userscript editing at vscode.dev with the Tampermonkey Editors extension
Enabled downloading of cloud backups
Resolved issue with active script count when an embedded frame is removed
Corrected automatic detection mode of the option 'Add GM functions to this or window'
Fixed disappearing 'Yes' value of the 'Modify existing content security policy headers' option
Corrected GM.download(url, name) functionality
Fixed GM_setValue for binary content
Resolved issue with broken userscript link in stack trace
Fixed multiple execution of menu command listeners
Ensured GM_deleteValue deletes values in the background
Enhanced the storage editor to display undefined values
Resolved issues caused by document.write
Performed internal cleanup and rework in preparation for manifest v3
Improved visualization of blacklisted scripts
Updated ESLint to version 8.32.0
Resolved issue with active script count not resetting on tab reloads
Meet Tam, your new assistant for getting started
Display more site icons per script
Search within the editor as you type
Ensure editor search results are scrolled into view
Add confirmation for script deletion in the dashboard when trash is disabled
Ensure TamperDAV script change detection works regardless of boot order
For WebDAV usage, append a trailing slash to collection names as per the specification
Resolve issues related to enabling and disabling sync
Localized extension name and description
Updated Italian translation | thanks to bovirus
Updated Japanese translation | thanks to shirayuki
Updated Chinese (simplified) translation | thanks to gin3715
Updated Russian translation | thanks to Tyemak
Updated Danish translation | thanks to jhertel
Added experimental GM_info.userAgentData with all properties of NavigatorUAData and some "high entropy" values
If you encounter unreliable script injection after this update, then please check this FAQ entry.
Fix GM_unregisterMenuCommand
Fix GM.saveTab
Make @sandbox always default to raw
Make console methods enumerable again
Disable wrappedJSObject compatibility option by default
Internal rework and cleanup
Avoid showing a warning message at many tabs
Fix an issue that script updates were disabled on sync triggered change imports
Chrome >= 71, Firefox >= 65
Experimental @sandbox support with possible values 'raw', 'JavaScript' and 'DOM'
  • 'raw' access means that a script for compatibility reasons always needs to run in page context. At the moment this mode is the default if @sandbox is omitted.
  • 'JavaScript' access mode means that this script needs unsafeWindow access. At Firefox a special context is created which should also bypass all remaining CSP issues. Execution in page context is used as fallback at other browsers.
  • 'DOM' access mode means that the script only needs DOM and no direct unsafeWindow access. If enabled these scripts are executed inside the extension context or at any other enabled context otherwise.
Add an option to configure available sandbox modes
Warning: Any option that enables 'DOM' mode is potentially unsecure. Userscripts that run in extension context have almost full extension permissions and can even modify and install new userscripts.
Remove document.addEventListener('DOMContentLoaded', ...) delayed event dispatching for document-start scripts executed later than the event
Remove toSource object prototype compat option
Allow GM_xhr streams to be canceled
Add GM_xhr.upload.onprogress support
Add some more entries to the download file extension whitelist
Add GM_download.details.conflictAction (works only in browser API mode)
Fix @resource SVG handling
Add some more editor shortcuts
Remove GM_setTab in favor of the documented GM_saveTab call
Allow script tabs to be closed via middle mouse click
Add a close button to the header of some more dialogs
Fix script toggle element if darker theme is enabled
Add Macedonian translation | thanks to EntityPlantt
Add Hellenic (Greek) translation | thanks to panos78
Update Chinese (simplified) translation | thanks to iskandarma
Update Portuguese-Brazil translation | thanks to DavidBrazSan
Update Russian translation | thanks to vanja-san
Add an access token revoke button to some more cloud storage types
Note: make sure to sign out from the service first if you want to login with another account.
Show script sync log messages at the settings page
Dropbox: avoid upload of identical content
Fix issues with heavily increased page loading time caused by some scripts or @requires
Allow drag and drop inside the editor again
Update Chinese (traditional) translation | thanks to SiderealArt
Update Italian translation | thanks to bovirus
Update Danish translation | thanks to will2022
Sandbox improvements
Improved compatibility for userstyles installed as userscript
Add an option to control whether to bind GM API functions to the userscript's execution context and sandbox window (and do it by default only if necessary)
Details: Enabling this makes it very easy for a userscript to accidentally leak its granted powers to the page
Treat @include a little bit more like @match if :// is present and add an option to control @include's behavior
Details: Many script developers expect @include *://tmnk.net/* to match pages at tmnk.net only, but it also matches https://example.com/?http://tmnk.net/.
To improve this, @includes that contain a :// are now interpreted a little bit different. Every * before :// now only matches the URL scheme. Also, if :// is directly followed by a * or a / somewhere, then the first * or all until / are applied to the hostname only.
Fix encoding of userscript file and URL imports
External @require and @resource content is not updated by default anymore unless the script was updated
Show script and external resources size in dashboard
Show last updated time as relative time if within 4 weeks or as absolute date otherwise
Fix darker theme quirk
Fix favicons with transparent background
Improve editor menu if advanced editor is disabled
Allow userscript installation via drag and drop to options page also in case local file access is disabled
Fix script positioning via drag and drop
Decrease extension size by removing jQuery dependency
Fix prototype confusion in sandbox mode
Fix GM_getValue and GM_xmlhttpRequest response prototype confusion
Fix GM_setValue and include enumerable array values of the prototype chain as well
Fix sandbox window to have Object prototype methods agin
Fix custom ESLint config
Add known globals to editor auto-suggestion again
Make @connect * work with requests to IPs and hostnames (like localhost) again
Update Turkish translation | thanks to Tmp341
Make trash configurable (on/off/session only)
GM_xmlhttpRequest.responseType 'stream' support
Improve GM_xmlhttpRequest event timings and make response readable on request errors as well
Fix GM_xmlhttpRequest to forward status and statusText in fetch mode once available
Fix cookie overwriting in anonymous GM_xmlhttpRequest mode
Allow GM_getValue to return undefined as value
Improve JavaScript scriptlet support via @unwrap tag
Make GM_notification.highlight focus the window as well
Add MouseEvent/KeyboardEvent argument to GM_registerMenuCommand callbacks
Add a focus method to the return value of GM_openInTab
Add a global and a per script setting to choose whether to run in incognito tabs
Add some more audio formats to the download file extension whitelist
Use up to ES2022 for linting if supported by the browser
Update ESLint
Add more second level domains (for .tld)
Always log an error at the page console if a @require or @resource couldn't be loaded
Fix several issues with older browser versions
Fix issues caused by extremely delayed setTimeout(..., 0) calls
Fix some userscript injection issues
Make cloud service re-authentication without user intervention less disturbing
Show an internal notification in case of an available extension update only*
* this will only affect the next update, sorry
Fix some rare exceptions happening in the wild
Sandbox improvements
Internal rework and cleanup
Shift key + mouse click based multi select
Dark mode improvements
Prefer an explicit set @name:en over @name
Show localized userscript name and description if available where possible
Update page title if script is renamed by save
Keep CRLF line endings on edit
Make import from URL support zip, JSON and plain userscript files
Replace worker based image cache to avoid problems at some browsers
Use higher resolution if Google's favicons service is used
Fix opening of zero byte externals
Use eslint-plugin-userscripts to highlight userscript header issues
Fix storage 'Reload' button and add 'Reset'
Fix ESLint to allow top-level await
Add a button to force a sync
WebDAV improvements
Fix unnecessary repeated exports
Trigger sync on move to trash
Fix TamperDAV double sync issue
Update Russian translation | thanks to wvxwxvw
Update Chinese (traditional) translation | thanks to ndbiaw and SiderealArt
Update Chinese (simplified) translation | thanks to xiaopangju and dnknn
Update Italian translation | thanks to bovirus
Update French translation | thanks to omerien
Update Portuguese-Brazil translation | thanks to igorruckert
Update Hindi translation | thanks to Yash-Singh1
Update Japanese translation | thanks to shirayuki
Speed up script execution check
Fix a continuing script execution problem of scripts running on browser start
Fix GM.notification(text, title, image, onclick)
Fix GM_notification sometimes not using the given image
Fix GM_setStyle/GM_addElement of document-start scripts in case of very early script execution
Fix a sandbox issue which caused DOMContentLoaded being fired after the load event
Fix GM_xmlhttpRequest authentication via user and password (including fetch mode)
Fix responseText property if GM_xmlhttpRequest.responseType was set
Fix sometimes failing access to response when GM_xmlhttpRequest.responseType is set to 'document'
Fix factory reset
Internal rework
Support Chrome down to version 64 again
Kiwi Browser
Workaround missing functionality which caused an internal crash
Fix minor darker theme quirk
Fix tab layout issue at very high zoom-levels at MacOS and Windows
Update Portuguese-Brazil translation | thanks to igorruckert
Update Russian translation | thanks to wvxwxvw
Update Vietnamese translation | thanks to IoeCmcomc
Update Chinese (simplified) translation | thanks to CaveNightingale, Vstory and xiaopangju
Update Russian translation | thanks to vanja-san
Update French translation | thanks to omerien
Update Italian translation | thanks to bovirus
Userscript Search integration
(search on popup menu entry click, on popup menu open or always)
Improve topbar announcements to not hide existing messages
@antifeature support
Speed up extension storage operations
Sandbox fixes
Speed up injection
Fix instant mode in case something prevents the injected cookie or blob objectURL from being read
Speed up and fix handling of large GM_xmlhttpRequest responses
GM_xmlhttpRequest data might be available at readyState 3 now
Fix GM_download calls in non-native mode if executed too quickly one after the other
Add option whether to import script data and/or externals
Fix SHA-256 calculation for sub-resource integration (SRI) check of some files
Add Userscript menu commands to the page's context menu
@run-at context-menu scripts now require a @require or @match statement (like all other scripts)
Update CodeMirror editor to version 5.58.2
Update JSZip to 3.5.0
Improve search bar to not hide script content
Add option to automatically highlight selected or hovered words
Fix the 'Find Next' button after search was opened
Fix flashing layout shift if an @include's favicon can't be loaded
Remember the last chosen cloud storage at the 'Utilities' tab
Make the 'Dashboard' item's alt action (Ctrl+Click, middle or right mouse click) open it with the current tab's URL as filter
Add script trash
Add script removal entry to popup menu
Add a default @icon tag showing the domain's favicon if a URL is available
Add an option to add the current domain to the blacklisted pages list
Add a reload button to the script storage tab
Update darker theme | thanks to narcolepticinsomniac
Add Danish translation | thanks to will2022
Update Italian translation | thanks to bovirus
Update Japanese translation | thanks to shirayuki
Update Turkish translation | thanks to Tmp341
Update Portuguese-Brazil translation | thanks to igorruckert
Update Chinese (simplified) translation | thanks to xiaopangju
Update Chinese (traditional) translation | thanks to asthzh
Update Chinese (simplified) translation | thanks to ff98sha
Various improvements
Top-level await support
Allow experimental GM_addElement to operate on shadow DOM
Fix script export if many or large scripts are installed
Make @match hostname and scheme case insensitive by default
Disable automatic script update on script modification
Fix '@run-at context-menu' at some pages and after scripts were enable or disabled
GM_xmlhttpRequest: Fix exceptions related to responseType 'document' and 'text'
GM_xmlhttpRequest: Fix fetch-based GM_xmlhttpRequest.details.revalidate
GM_xmlhttpRequest: Make limited host permissions work for redirected GM_xmlhttpRequest requests
GM_xmlhttpRequest: Implement timeout for fetch-based (i.e. anonymous) requests
Fix GM_xmlhttpRequest.abort and GM_download.abort
Fix setting GM_download.details.headers
Fix GM.setClipboard
Fix GM_deleteValue
Fix GM.notification promise never being resolved
Improve @connect permission request handling
Add .co.za to .tld list
Update ESLint
Use ES2020 for linting if supported by browser
Experimental window.onurlchange support for single-page applications
Replace experimental GM_addScript by GM_addElement support to workaround page CSP issues
Show incognito mode warning at script installation and import pages as well
Allow tab size configuration
Add script update item to editor file menu
Dark theme update
'Darker' theme update
Improve OneDrive request error handling
Fix Yandex.Disk authentication
Update Arabic translation | thanks to naqqo6i
Update Indonesian translation | thanks to ReksaTresna
Update Japanese translation | thanks to shirayuki
Update Vietnamese translation | thanks to IoeCmcomc
Update Ukrainian translation | thanks to toplinden
Chrome >= 59
Add ESLint rule id to error messages
Update ESLint
Allow to derive custom linter config from eslint:recommended
GM_xmlhttpRequest: onloadend support
GM_xmlhttpRequest: Fix overrideMimeType of anonymous requests
GM_xmlhttpRequest: Fix protocol-relative URLs
GM_xmlhttpRequest: Fix reported status of requests in progress
Fix GM.getTab and GM.getTabs
Add robustness to sandbox creation
Allow plain scripts to be imported via file import as well
Allow scripts to be recognized more easily at the developer tools
Fix an issue that user *cludes caused script update confirmation dialogs
Internal cleanup and speedup
Speed up script search
Fix several editor search issues
Add script version to tab description
Improve popup menu layout when warnings or hints are shown
Fix an popup menu issue when GM_registerMenuCommand is executed
Allow scripts to be removed via editor menu
'Darker' theme update
Change backup file name to avoid character issues with some WebDAV servers
Fix an issue that some remote source code changes were not applied correctly
Accept more WebDAV server URLs formats
Fix WebDAV credentials being used for import and export
Update Serbian translation | thanks to zoranzoki21
Update Japanese translation | thanks to shirayuki
Update Chinese (traditional) translation | thanks to austin-chang
Update Italian translation | thanks to bovirus
Update Indonesian translation | thanks to Azhe403
Update Portuguese-Brazil translation | thanks to igorruckert
Dark theme including OS support
Request host access if runtime permissions are limited
Fix installation of UTF-8 encoded local files
Allow more GM_xmlhttpRequest headers to be modified
Make GM_xmlhttpRequest.finalUrl available on progress events as well
Fix GM_openInTab.close when the tab is currently moved
Implement GM_notification silent option
Fix GM_notification onclose listener
Make GM_notification user interaction mandatory if possible
Speed up script execution after iframe reload/navigation
Add .co.nz to .tld
Fix sometimes not working second level domain check
Allow multiple @webRequest tags
Sandbox fixes
Support SHA-256 subresource integrity hashes independently of the browser's crypto API
Update FileSaver.js
tab.pendingUrl support
Remove functionality to import native scripts to reduce the number of used permissions
Remove unused contentSettings permission
Scroll tab view content instead of page
Speed-up initialization
Always show 'Search' and 'Add new script' menu items
Add a more obvious (Ctrl+Click or middle mouse click) way to edit scripts from the popup menu
Outline executed but inactive scripts at the popup menu
Fix script filter icon visibility
Fix version number based sorting
Fix drag and drop based script ordering at high-DPI screens
Fix script editor height and resulting problems
Check for unsaved changes before tab close/reload | thanks to narcolepticinsomniac
Add an option to enable/disable scripts at their settings tab
Remember script storage export setting
Yandex.Disk support
Add script synchronization using OneDrive
Add a button to revoke Google Drive access tokens
Use refresh tokens for less Google Drive re-authorization requests
Note: you need to revoke existing access tokens at the utilities tab to make use of this
Add Belarusian translation | thanks to bogachenko
Add Dutch translation | thanks to The947thTokay
Update Russian and Ukrainian translation | thanks to bogachenko
Update Indonesian translation | thanks to ReksaTresna and Azhe403
Update Vietnamese translation | thanks to vigov5
Update Italian translation | thanks to bovirus
Update Portuguese-Brazil translation | thanks to igorruckert
Update Turkish translation | thanks to Tmp341
Update Japanese translation | thanks to shirayuki
Update Chinese (traditional) translation | thanks to PeterDaveHello, cedarkuo and hsuan1117
Update Spanish translation | thanks to TBM13
Update French translation | thanks to zek0faws
Re-enable persistent storage in incognito mode
Fix GM_xmlhttpRequest onabort callback
Fix GM_xmlhttpRequest blob response type property
Fix an issue where uBlock Origin prevents script execution
Sandbox fixes
Fix cloud services authentication
Better userstyles.org userscript support
Compress zip archives again
Fix GM_xmlhttpRequest header modification at Chrome 72+
Fix GM_webRequest redirect via from/to
Improve WebDAV protocol compatibility for NextCloud support
Show menu commands below the userscript entry at the popup menu
Add Dutch translation | thanks to The947thTokay
Update French translation | thanks to zek0faws
Update Indonesian translation | thanks to Azhe403
Update Chinese (traditional) translation | thanks to PeterDaveHello and cedarkuo
Update Japanese translation | thanks to shirayuki
Update Turkish translation | thanks to Tmp341
Update Italian translation | thanks to bovirus
On installation disable and blacklist all pre-installed scripts
Fix a memory leak when using GM_xmlhttpRequest which could lead to crashes
Fix missing option to set WebDAV sync credentials
Fix Dropbox import and export
Fix script externals import issues
Fix import from zip files with folders
Recognize and warn on reduced runtime host permissions
Status message and notification cleanup
Speed up @include regexps by optimizing .*.*
Fix GM_openInTab.name
Allow repeated space at some script header tags (author, namespace, copyright)
Fix GM_xmlhttpRequest.finalUrl at Chrome 70+
Avoid stringification when making a GM_xmlhttpRequest with responseType 'document' or 'json' which could crash the browser
Fix blurry icons
Don't show script updates if the user is active or a fullscreen window is present
Enable section save button on changes only
Minor layout refresh
Improve WebDAV protocol compatibility
Update Hungarian translation | thanks to hubalazs
Update Spanish translation | thanks to rocammo
Update Italian translation | thanks to bovirus
Update Japanese translation | thanks to shirayuki
Allow script editing via external editor by using TamperDAV
Allow ESLint inline configuration again to make globals definition work
Import and export of external resources (@resource and @require)
Replace zip.js by JSZip
Fix an internal cache related problem which could have caused data-loss
Reduce memory footprint (by doing less caching)
Add GitLab subgroup support
Add several .com.* 2nd level domains
Fix GM_xmlhttpRequest.responseType 'document' support
Feature-Policy related fixes
WebDAV based cross-browser sync (beta; tested with OwnCloud and TamperDAV)
Avoid popup menu flicker on GM_registerMenuCommand usage
Update dark theme | thanks to narcolepticinsomniac
Add narcolepticinsomniac's dark theme matching editor layout
Make the script filter bar work if it's visibility is enforced via Custom CSS
Invert (and fix) meaning of the case-insensitivity search option
Further search bar improvements
Update Portuguese-Brazil translation | thanks to igorruckert
Update Japanese translation | thanks to ScratchBuild
Update CodeMirror editor to version 5.35
Switch from JSHint to ESLint 4.19.0 (inline config is disabled)
Fix script externals update
Add .co.th to .tld
Whitelist data-URIs at CSP secured pages
Fix an issue which could break page scripts
Fix GM_notification click listener
Fix GM_download events
Fix GM_download.abort
Clean GM_tabs data on tab close
Fix issues if GM_openInTab.name= or GM_openInTab.close was used at more than one tab
Better @downloadURL none support
Replace the editor button bar by an editor menu
Rework editor search
Add popup menu option to exclude a script from a domain
Limit displayed script name length
Remember scroll position on tab switch
Lint in background for more editor responsiveness
Fix display of SVG icons
Allow script source code to be searched as well
Fix script update setting saving
Dropbox based cross-browser sync (beta)
Add Hindi translation
Add Vietnamese | thanks to Connor37
Add Croatian and Serbian translation | thanks to faultyfuse
Update Russian translation | thanks to BychekRU, irainman and Dr-Yukon
Update Italian translation | thanks to bovirus
Update Norwegian translation | thanks to LarsSimonsen
Update Czech translation | thanks to engycz
Update Indonesian translation | thanks to DhannyNara
Update Arabic translation | thanks to Alayady
Update French translation | thanks to zek0faws
Update Turkish translation | thanks to ali-demirtas
Update Portuguese-Brazil translation | thanks to igorruckert
Update Chinese (simplified) translation | thanks to efreedev
Update Japanese translation | thanks to ScratchBuild
Add userstyles.org as known script source and add includes on installation if no @include is set
Make @require and @resource content editable (if applicable)
Make userscripts appear at developer tools
Add an option to control script local file access
Fix a compatibility issue with Slimjet browser
Fix fetch-driven GM.xhr with partial content
Fix an issue with GM_setValue and certain characters | thanks to tiansh
Fix GM.openInTab setParent option
Allow window.name to be set in sandbox mode | thanks to Mahab
Ensure script installation after navigation to unparseable userscripts fails silently | thanks to adaugherity
Increase script retrieval timeout
Support more content types (i.e. SVG)
Speed up sandbox creation
Update JSHint to 2.9.5
General layout refresh
Replace stale icons by Font Awesome icons
Reduce the default popup menu column count to one
Mobile view improvements (i.e. via Firefox Android or Yandex Browser)
Fix internationalized names at the popup menu, tab titles and document titles
Fix script storage editor to not reset to its initial data on every tab selection
Fix homepage icons linking to the same URL after a script was closed
Add a title to all extension tabs
Show a different close icon if a script was modified
Make @require and @resource feature icons a link to the script's externals tab
Simplify script bug report buttons
Fix misaligned table cell borders | thanks to narcolepticinsomniac
Avoid issues with very long script version strings
Really add Norwegian translation | thanks to DandelionSprout
Add Turkish | thanks to alidemirtas94
Update Chinese | thanks to zzjin and wangyou
Update Russian translation | thanks to BychekRU
Update Indonesian translation | thanks to DhannyNara
Update Italian translation | thanks to bovirus
Google Drive based cross-browser sync (beta)
Deprecate old sync options (pastebin and brower sync version 1)
Dark theme | thanks to narcolepticinsomniac
Add an option to select a favicon service
Allow scripts to be sorted by their enabled state
Show a topbar announcement at the dashboard if a new Tampermonkey version is available
On script updates show all changes additionally to the new source
Warn on possibly dangerous @connect, @include, @match and @exclude changes
Add alt text to images
Update CodeMirror editor to version 5.26.0
Add option to auto trim trailing whitespace from modified lines on save
Add fold all support to the editor
Don't treat manually installed themes as native scripts
Hide script type column in case there is no native extension
Improve script https access detection
Script Execution
Allow scripts to run at RSS feeds
Add com.mx to .tld
Log a warning if checking a script's includes/excludes takes longer than one second
Make GM_openInTab support the setParent flag
GM_xmlhttpRequest.responseType 'document' support
Add blob: and data: protocol support to GM_xmlhttpRequest
Improve @resource mime type detection
Sandbox fixes
Fix issues at secured iframes
Update Chinese | thanks to ivysrono and yfdyh000
Update Polish | thanks to hawkeye116477
Update Arabic translation | thanks to atefBB
Fix an issues that prevents scripts with a '@' character in name from being updated 🙄
Fix script tags with optional ISO 3166 country code (i.e. @name:zh_CN)
Fix icon setting at Chrome < 53
Instant Injection mode
GM_webRequest and @webRequest support - please discuss this API here
Add GitLab and Bitbucket support
Add some more keyboard shortcut commands, but don't use a shortcut by default
Allow script update servers to signal unchanged content
Simple script storage editor
Add an option to add custom CSS to the Tampermonkey UI
Add an option to disable the update check on a script base
Add ZenBurn editor theme
Visual bookmark support
Move the browser sync button reset to the sync section
Add some auxclick event listener to recognize middle mouse clicks at Chrome 55 and above
Fix doubled include/exclude editor dialogs
Update the ES6 script template
Add time and browser to backup names
Use "stickering" to improve the icon visibility at dark themes
Script Execution
Allow scripts to run at XML pages | thanks to Thom1729 for the slight lead
Fix some sandbox functions (set/clearTimeout/Interval and add/removeEventListener) to properly handle unusual arguments
Fix script execution at reloaded/navigated iframes
Fix an issue that can prevent scripts from working when Chrome starts
Make * include file URIs as well
Log @require related errors at the page console
Allow GM_xmlhttpRequest headers to get deleted (by setting to null)
Make xhr response headers available at readyState 2 and higher
Fix relative URL handling
Fix GM_xmlhttpRequest.responseHeaders to contain 'Set-Cookie' items as well
Don't send the extension origin on GM_xmlhttpRequests
Add Arabic translation | thanks to ahmadmysra
Add Indonesian translation | thanks to DhannyNara
Add Portuguese translation | thanks to Sara F.
Add Korean translation | thanks to KENNYSOFT
Update Polish translation | thanks to hawkeye116477
Use Alt+Up/Down to jump to the prev/next tab
Fix keyboard shortcut help page
Workaround Chrome issue 457887
Other Fixes
Wait up to 15 seconds for a ask page response to fix installation issues due to slow or busy computers
Fix sync issues of script comment properties
Avoid some 'Unchecked lastError' warnings | thanks to tophf
Fix some rare internal exceptions
Re-design the fast script injection mode (disabled by default)
Remove the experimental `fast script injection mode`, because it causes problems with iframes even when disabled
Microsoft Edge support
Allow backup and restore from and to cloud storages (Google Drive, Dropbox, OneDrive)
`GM_openInTab` now opens tabs in background if no option is given
`GM_addStyle` now returns the injected style tag
Update TLD list
Make the CSP modification option work again
Fix issues when unloading iframes | thanks to zanetu
Allow script selection at the import dialog (Ctrl+click toggles all)
Allow installation of scripts without any @include and `@match` again
Editor: fix some issues when moving lines
Allow script list filtering/search by name, @include, comments, ...
Add some more hotkeys (Ctrl+a to select all scripts, Esc to clear the filter)
add an option to speed up script injection
Add an option to allow communication with cooperate pages
(i.e. allow script hosters to detect Tampermonkey and query whether a script is already installed)
Update Chinese (simplified) | thanks to Cp0204, wenketel and gqqnbig
Update Spanish | thanks to leoncastro
Update Chinese (traditional) | thanks to TobySkarting
Update Czech | thanks to d3jv
Remove autodetection of some compatibility options
Minor internal fixes
Update JSHint to 2.9.2
Chrome >= 31
Fix Chrome 52 issues
Fix the sandbox on{event} properties
Fix the editor replace code and show which part of the script text is going to be replaced
Use a fallback in case the page CSP wasn't relaxed (disabled setting or cached page)
Fix cancelation of `GM_xmlhttpRequest` requests (not completely working in fetch mode)
Fix `GM_xmlhttpRequest` response header format if fetch (== anonymous) is used
`GM_xmlhttpRequest.headers.cookie` support
`GM_xmlhttpRequest.data` FormData support (Chrome 51+ or Firefox required)
`GM_xmlhttpRequest.url` now supports Location and URL objects
Log an error message if `GM_xmlhttpRequest` failed due to @connect
Speed up script injection at cached pages a little bit
Support Base64 encoded SRI hashes
Fix two minor internal crashes
Always allow `GM_xmlhttpRequest` to access same-origin URLs
Fix the script update to request meta information first again
Automatically measure the script runtime when the script debug option is set
Disable spell-checking at input fields
Editor: add line break option
Remove deprecated 'strong mode'
Fix some names at exported ZIP files
Enable JSHint esnext option by default
Start and stop drag and drop via mouse up/down and auto-scroll when reaching a border
Update saveAs to 1.3.2
Update Chinese (simplified) translation | thanks to lychichem
Update Portuguese-Brazil translation | thanks to oliveirafabio
Make `@grant none` supersede all other @grants again | thanks to terjanq
Fix issues when `document.write` was called
Always allow `GM_xmlhttpRequest` to access same-origin URLs
Fix `GM_xmlhttpRequest.fetch/anonymous` encoding
Fix `@connect` + relative URLs
Fix sometimes occurring exceptions if 'debug scripts' is enabled
Download meta data from the source URL if `x-userscript-meta` is supported
Allow script installations from Github release download URLs
Log `@connect` error messages at the source tab
Fix a minor options page issue when scripts were updated manually
Editor: Fix the replace button
Update Chinese (traditional) translation | thanks to JasonHK
Emergency fix: Under certain conditions the update check could enter an endless loop
Fix the sometimes failing main domain detection of `@connect` dialogs
Keep the common console if `@grant none` is used
Fix freezes when long data URIs are visited
Fix `@run-at context-menu`
Fix an issue that could cause data loss when the `@connect` dialog was triggered twice | thanks to CptPicard
Fix a drag and drop positioning issue
Fix a problem that caused the script update check to run only on startup
Fix Portuguese-Brazil translation (now used by default if appropriate)
Fix issues with `GM_getTabs`, `GM_getTab` and `GM_saveTab` being undefined
Add an additional edit button for every script
Update Slovak translation | thanks to emitor
Add @connect support to automatically allow `GM_xmlhttpRequest` requests only to predefined domains
Require a `@grant` statement in order to access GM_* functions
Add possibility to check subresource integrity
GM_xmlhttpRequest.binary support
Drop @user-agent support
Require at least one @include or `@match` statement to make a script run
Drop `DOMNodeInserted` event repeating for document-start scripts
Fix a CSP issue that could prevent script execution
Make `GM_addStyle` ignore CSPs
Show warnings at the options and install page for (partially) blacklisted scripts
Fix a sometimes wrong .tld interpretation
Make the forbidden pages setting apply to `GM_xmlhttpRequest` as well
`GM_getResourceURL` sometimes returned just a base64 encoded string
Scripts that are using @noframes were always marked as running
Make the debug option strict mode compatible as much as possible
Reload @externals when a script is updated, but use the browser cache
Request meta data and externals with the `no-cache` option set
Fix relative local requires at remote drives
Initial Firefox support (FF 46+ required, still experimental)
Improved script enabler
Layout beautification
High resolution icons
Script factory reset batch method
Simple (non-advanced) editor improvements and fixes
Allow the back button to close script tabs
Improve and fix the editor option to save on focus loss | thanks to scriptmaster
Allow scripts to be renamed without a forced tab close
Update script template to make strict mode work with @require
Once one script is selected allow multi selection via Shift+Up/Down
Update CodeMirror editor to version 5.9
Add theme support (use Alt+Pause to cycle)
Add Alt+Left/Right shortcut to switch open tabs
Add auto-lint option (depending on the the script size)
Add auto-completion (Ctrl+Space)
Add trailing whitespace highlighting
Add code folding capability
Add Sublime Text keymap
Add editor font size option
Add toggle comment support
Use Shift+F3 for reverse search as well
Ukrainian translation added | thanks to 4ITEP
Update Chinese (simplified) translation | thanks to lychichem
Update Spanish translation | thanks to franciscocorrales
Update Czech translation | thanks Petr T.
Update French translation | thanks to Alexgruissan
Update Portuguese-Brazil translation | thanks to Istey
Fix the popup menu at Chrome 40 and below
Fix some sandbox window properties (focus, close, blur, ...) at Chrome 47 and above
Fix the 'never' option of the update interval setting | thanks to The Tramp
Fix `GM_info.matches` property
Fix run-at and noframes script setting import
Fix repeated enabling of original includes, matches and excludes
Extend possible @grant values by 'window.close' and 'window.focus'
Add Slovak translation | thanks to emitor
Update French translation | thanks to Alexgruissan
Update Portuguese-Brazil translation | thanks to Istey
Update Chinese (simplified) translation | thanks to lychichem
Allow scripts to use strict mode and therefore ES6 features
Script template support
Add some UI options (sort, 3 column layout) for the popup menu
Add a shortcut (Ctrl+Shift+E) to toggle Tampermonkey's enable state
Add .webm to the default download whitelist
Add experimental settings to enable/disable/force strong and strict mode
`GM_xmlhttpRequest.onloadstart` support
Recognize and outline scripts installed from Github
Add high resolution images
Add @uuid support (existing UUIDs won't be touched)
Add an option to completely disable the script URL detection
Show a result notification after running a syntax check
Always display lower case URLs at the script update to prevent wrong interpretation of homoglyphs
Layout improvements
Hide the maybe confusing 'Process in Chrome' button
Make the malicious script warning an info
Make badge icon flicker less (thanks issue 495005)
Fix import of user includes, excludes and matches
Fix `GM_info.version`
Improve CodeMirror key handling when the editor is visible but not focused | thanks to tophf
Fix some issues after document.write was called
Fix a problem with setTimeout/clearTimeout if `@grant` is not none | thanks to zanetu
Fix an issue with registering and unregistering event listeners
Fix the return value of GM_addValueChangeListener
A lot of workarounds for issue 495005
Fix relative requires with double-dot segments | thanks to Tominator
Update JSHint to 2.8.0
Update CodeMirror editor to version 5.3
Update zip.js to 7ff4905
Update version parser to handle Mozilla's toolkit version format
Internal cleanup
Rework to use strict mode internally
Adapt the sandbox to the latest Chrome changes
Rewrite of the script update functionality
Remove hash based update detection (uso:hash)
Rework the internal menu command source
Add Hungarian translation | thanks to Calebzor
Streamline German translation | thanks to rillig
Update Spanish translation | thanks to gangsthub
Safari: Fix `GM_xmlhttpRequest` header support as much as possible
Fix internal crashes
Fix dashboard in incognito mode
Speed up script injection
Implement Tampermonkey settings import and export
Add `document-idle` support
Add downloadMode property to `GM_info` that reflects the according user setting
Make `GM_download` support dataURIs
Trim white- and blacklist entries on save to avoid accidentally not working statements
Add more debug for some storage issues (maybe related to issue 374592)
Further reduce the need for CSP modifications
Allow `window.name` of windows opened via `GM_openInTab` to be set
Make badge color configurable
Experimental: Add new @run-at option called 'context-menu'
Workaround issue 495005 that can delay Tampermonkey's start-up
Workaround issue 165854 which can cause too early fired `DOMContentLoaded` events
Modify `GM_openInTab` defaults according to issue #209
Ignore ports at `@match` rules
Make sure `@match` matches any port of a host
`GM_xmlhttpRequest`: fix `finalUrl` in case two Tampermonkey extensions are running
Make `finalUrl` always contain fully qualified URLs
Options: Fix sometimes not working sort buttons
Editor: fix vim mode
Ask for user satisfaction, promote issue reporting and ask for contribution after two weeks of usage
Update Portuguese-Brazil translation | thanks to mclemente
Update Italian translation | thanks to Ragnarokkr and danog
Update Russian translation | thanks to kvantor
Update Czech translation | thanks to Baegus
Fix manifest to not confuse Chromium derivates like Yandex browser anymore
Fix execution at Chrome 32 up to 34 and derivates like Coowon
Fix native script import of very old scripts
Fix a problem at third party browsers without webNavigation API support
Fix execution at Chrome 31 and below
Fix scripts that have no GM_xmlhttpRequest.onload but only a onreadystatechange callback
Chrome >= 29
Android support via Tampermonkey for Dolphin Browser
Deliver the used font with the extension
Use the https protocol wherever possible
Remove Tamperfire feature (userscripts.org is down anyway)
Prefer @icon64 over `@icon` for notifications
Options: allow script import by URL
Speed up the options page by just sending the @externals size instead of the content
Improve image button layout | thanks to samantharojas1
Editor: fix indent character setting
Add a save button to editor section
Add a new tab mode to indent lines by a tab press
Update CodeMirror editor to version 4
popup menu: make the complete column clickable if possible
Rework the script enabler to allow colorblind people to see a difference | thx for the hint go_boy
Internal: cleanup and rework for Safari and Dolphin support
Update G+ button blacklist entry
Rework Tampermonkey to check the page blacklist before the script @includes
Allow scripts that make use of the @user-agent tag to execute code
Add an option to control the @externals cache
Workaround the IPC message size limit for `GM_xmlhttpRequest` calls that return a large amount of data
On script import allow given timestamps to be set as modification date
I18n: cleanup unused translations
Add Czech translation | thanks to Baegus
Update Chinese (traditional) translation | thanks to Monkeytiger
Fix script execution at pre-rendered tabs
Fix a race condition that can cause the 'Please wait' dialog to stay forever
Fix pages that rely on errors thrown by document.evaluate
Make sure the `@require` order is preserved also if some items need to be loaded first
Fix fire order of 'load' and 'DOMContentLoaded' events | thanks to jreumay
Avoid usage of deprecated XHR properties position and totalSize
Fix some rare happening internal crashes
Make sure scripts with quotes inside their name/namespace are handled correctly
Add visual feedback for finished actions at the options page
Update Japanese translation | thanks to shirayuki
Modify an existing page CSP only if scripts are supposed to run
Make Tampermonkey work also with a less generous CSP
Emulate Greasemonkey's unsafeWindow access helper functions
Make Tampermonkey work at pre-rendered tabs
Introduce version 2 of Chrome Sync (synchronizes scripts by their UUID instead of the source URL)
Rework TESLA code for easy sync method enhancements (i.e. Google Drive some day)
Improve TESLA and the script update process if a script source is not reachable
Show a topbar announcement when a sync in progress is delaying a manually triggered script update
Fix script update problems if a script is installed twice
Fix execution at Chrome 20 and 21
Experimental i18n support for @name and @description tags (@name[en-US], @name:pt_BR, @name de_DE, @name#fr)
More XMLHttpRequest2 feature support (posting a FormData object still doesn't work)
Fix a race condition that can sometimes cause GM_getValue to temporarily return old values
Fix an issue that could make the script storage contain old values | thanks to scriptmaster
Fix `document.evaluate` calls that don't make a find for elements that aren't part of the DOM
Fix `GM_download` invocation with URL and name parameter
Enable GM_download by default
Allow `window.close` to close all but the last existing tab
Show a warning at the options page if no `@grant` directive is set
New multi select action 'toggle enable'
Make the some columns sortable (name, sites, updated, ...)
Make the default script template use `@grant none`
Don't check for a development layout anymore (this triggered a content verification Chrome issue)
Use JSHint for syntax checks
Speed up the options and actions page by transfering partial data
Fix some issues at the Tamperfire page
Remove the unsafeWindow retrieval option
Update Spanish translation | thanks to Daniil
Update Japanese translation | thanks to shirayuki
Update Chinese (simplified) translation | thanks to tiansh
Update Chinese (traditional) translation | thanks to Monkeytiger
A lot of internal rework and cleanup
Fix the editor if opened via 'Add new script'
Fix script update problems if a script is installed twice
Fix an issue that could lead to repeated update notifications
Revert to the old style icon
Delay Tampermonkey updates until the browser is re-started
Reworked the Tampermonkey icon (feedback is welcome)
Store @requires and @resources at the internal DB
Wherever appropriate add an `externals` tab to the script view
Outline @resource and `@require` usage at the dashboard
Import/export via ZIP file
It's now possible to export the script's storage too
PageFilter: black- and/or whitelist pages where scripts are allowed to run
Add a `closed` property and an `onclose` listener to the `GM_openInTab` return value
@supportURL support
Experimental GM_download support
Use new Chrome API for notifications
Hand-over the URL to Chrome if a userscript can't be parsed
Fix some problems with Chrome sync
Update GreasyFork icon and install URLs
Update OpenUserJS icon
Recognize and outline scripts installed from MonkeyGuts
Show a question mark if an online help is available for a config option
When a new script is saved, don't overwrite an existing one with the same name
Fix some UI issues if multiple scripts share the same name
Show issue and bug report icons at the option and popup menu
Use the ask page for permission requests too
Convenience improvements at the ask page (OK button is focused, Esc aborts the action)
Update some translations | thanks to shirayuki
Update Chinese translation | thanks to Harry-Chen
Fix execution at Chrome 21
Fix GreasyFork script updates
Fix layout glitch if no script is installed
Fix a problem at `@require` or @resource request timeouts
Fix sometimes wrong behaving ask page button
Update Japanese translation | thanks to shirayuki
BlackCheck Beta support - a community driven blacklist for malicious userscripts
Rework the script installation process and don't use the confirmation box for that anymore
Improve the script import
Reworked the communication between background and UI
Fix some in rare cases happening race conditions that can cause glitches at the actions and options pages
Script distinction by UUIDs
Script @name now don't has to be unique when @namespace is different
Don't try to sync changes between option tabs anymore -> using only one tab is recommended, otherwise just reload the second tab
Detect and report database wipes causes by Chrome's database recovery
Decrease extension size by minifying CSS files too
Add an icon to report malicious scripts downloaded from well-known scripts pages
Note: an account at the script's source page may be required
Add Italian translation | thanks to Ragnarokkr
Add Portuguese-Brazil translation | thanks to mclemente
Update Russian translation | thanks to KolpakovAleksandr
Update French translation | thanks to ozzii
Update Portuguese-Brazil translation | thanks to mclemente
Update Japanese translation | thanks to shirayuki
Update Chinese(simplified) language file | thanks to egomoge
Tampermonkey's translation files are now a Github repo
Fix an issue that prevented scripts that were installed from a local URI from being synced even when they contain a @downloadURL tag
Attach `Accept: text/x-userscript-meta` to the request headers when checking for script updates
Encapsulate userscripts a little bit more in the sandbox
Slight rework of the execution context of scripts that use `@grant none`
Fix indexed access to the `window.frames` variable
Fix assignments to `window.location`
Fix mouse cursor when hovering over script names
Improve the script position movement
Fix an issue that re-opens the script editor tab too often
Rework `@match` expressions before adding them to the user excludes
Replace the on/off icons by pure CSS
Fix the problem that sometimes too much @included page favicons are shown
Tweak the scripts site extraction from regexp style @includes
Allow multi selection at the includes/excludes editor
Fix the editor's backward search
Allow GM_unregisterMenuCommand to be called by a menu handler
Make sure that `DOMContentLoaded` is fired before the load event
Fix userscript installation from file URIs
Fix auto-page-reload when a script was enabled
Rework the update notification code
Set the badge icon info to `?` if it is set to show the `Tamperfire` entries but this feature itself is disabled
Make the @run-at option persistently overrideable
Various internal improvements
Remove/Rename doubled scripts that were created by the last update in case a normal and an incognito window was open
Note: In case you've modified one of the doubled scripts its name will be prefixed with '< Modified Copy >'
Report a broken Chrome profile to the users to avoid bad ratings because of a bug in Chrome again
Fix userscript installation from file URIs
Assure that the DB is converted/updated in non-incognito mode only
Pause incognito Tampermonkey if a conversion needs to be done
Support of `GM_unregisterMenuCommand`
Lower the number of write accesses to `localStorage`
Fix sometimes not triggered 'load' event callbacks
Fix missing icons at Chrome >= 32
Use a new tab for script installations at Chrome 33 too
Update French translation file | thanks to ozzii
Add GM_saveTab to store tab related data
Set Chrome sync as prefered TESLA option by default
Use non-cross-origin xmlhttpRequests if FormData is used
Update Spanish language file | thanks to jnerin
Don't try to sync scripts from file URIs anymore
Improve userscript detection
Fix loading of non-default layout
Fix enable/disable icon at the popup menu
Update +1 button URL
Minor stability improvement
Fix sometimes not called event listener when in 'strict' mode
Prepare script distinction by UUID not name
Drop some conversion routines (when updating very old Tampermonkey versions some settings might get lost)
Prepare loading of different UI layouts
Rework the config system to store only modified values
Add an options to not drop all changes made in incognito mode (still in beta state!)
Add an option where to open script links (`current tab`, `new tab`, `default`)
Note: `default` means to create a new tab for the buggy Chrome versions 31 and 32 and to use the current tab otherwise
Update French translation file | thanks to ozzii
Update Spanish language file | thanks to jnerin
Report a broken Chrome profile to the users to avoid bad ratings because of a bug in Chrome
Analyze a localStorage key whether to use the previous storage (WebSQL) again
Fix an issue that after the latest conversion your scripts can be hidden until Tampermonkey is restarted. Sry!
Fix an issue that can prevent the config from being saved and loaded at Chrome < 29
Fix a bug that can break some pages
Disable Tampermonkey in incognito mode if Chrome < 28
Completely revert active tab retrieval to chrome.tabs.getSelected
Disable statistics in incognito mode by default
Speed up Tamperfire page sorting
Fix file:// URI @resource of @run-at document-start scripts
Allow `GM_xmlhttpRequest` callbacks to use the XMLHttpRequest status enumeration (this.DONE, this.OPENED, ...)
Minor internal fix
Add Option to disable Tampermonkey to the context menu
Use 'move' cursor at the script order icon
Fix sometimes failing CSP and Location HTTP header detection
Fix an issue that Tampermonkey sometimes makes the last open tab active
GM_xmlhttpRequest ontimeout event support
Fix `GM_xmlhttpRequest` with responseType option (if set there is still no cross-origin support)
Allow auto evaluated event listeners
Add timeouts to @resource and `@require` retrieval
Refresh @resources and `@require` data a little bit more often
Internal fixes and rework
Make Tampermonkey use the 'split' incognito mode
Use chrome.storage to be able to access the config data in incognito mode
Require the 'storage' permission by default
Revert all script, script storage and settings related changes when an incognito mode Tampermonkey instance is closed
Fix `GM_xmlhttpRequest` cookies if the source tab is in incognito mode
Support GM_registerMenuCmd's accessKey argument
Fix GM_setClipboard's data handling when the data type is set via a string type argument | thanks to raf.jaf
Fix TamperFire's install button | thanks to chuim
Fix script execution if the user-agent is overwritten by the dev tools | thanks to s6mike
Remove the proxy option at the unsafeWindow retrieval setting
Make scripts that use `@grant none` work if the unsafeWindow retrieval is set to native
Distinguish between a click at 'Dashboard' and 'Options'
Fix encoding of @required scripts that contain non-ASCII characters | thanks to fefe
Enforce UTF-8 encoding of GM_getResourceText
Update French translation file | thanks to ozzii
Build system improvements
Fix retrieval of large @resource and `@require` objects
Add compatibility option for the Greasemonkey's DOM element attribute 'wrappedJSObject'
Improve data type detection at @resource URLs
Use a new sandbox object per script instead of namespace
Note: scripts with the same namespace can't see the same global variables anymore
Use the sandboxed window object as execution context ('this') too
Hide and show the native import icon depending on the enabled state
Fix @resource in association with binary data and 'file://' URIs
Add a placeholder for the current URL to the new script template
Speed up scripts that use `@grant none`
Rework GM_setClipboard API to accept a mime-type parameter
Fix environment of scripts with `@grant none`
Fix periodical script re-opening if the options page was opened to show a script
Native Script Import
Simplified installation process by showing only one confirmation box
Fix GM_setClipboard to not replace carriage return characters | thanks to elundmark
Reworked script installation dialog
Further improvements for the Opera extension
Fix modification events for the options page(s) (Chrome >= 28)
Fix auto reload on script enabling/disabling via context menu (Chrome >= 28)
Internal cleanup
Russian translation file | thanks to Mustang
Fixed values passed to GM_addValueChangeListener callback
Update French translation file | thanks to ozzii
Chrome 30 support
Always use the value of the first occurrence of a userscript header tag
Initial Opera Next 15 support
Disallow script substitution caused by script renaming
Fix behavioral diffences between Ctrl+s and the save button
Detect script save collisions caused by multiple dashboard tabs
Check for modifications if the editor is closed by the 'X' button too
Don't apply window.content fix at the unsafe window (topic:637)
Correctly recognize @includes with a plain wildcard again
Detect environment reloads triggered by 'document.write'
Performance tweaks
Improve XML file detection
Fix `@match` interpretation to allow any URL that is on the given domain (make '*.foo.de' allow 'bar.foo.de' and also 'foo.de')
Gracefully handle non exception type errors thrown by scripts
Internal fixes
Detect stale cached code parts on update and disable Tampermonkey accordingly
Re-add window.content support
Remove 'show line numbers' option cause it is needed for the syntax check
Prevent 'file://' @resources and @requires from being cached again
Further improvement of the namespace based context separation
Try to fix an error that sometimes can be seen when a new tab should, but can't be created
Try to fix an error that sometimes can be seen when the Tamperfire DB isn't properly initialized
Make notifications use an alert dialog if 'createNotification' throws an security error
Separate execution context of scripts that are using the same @namespace
Show utility tab with import and export functionality at all config modes
Continue to detect whether a script should run in case one @include statement was invalid
Fix default @include that is used if a script neither has an @include nor a `@match` statement
Support modification of some more `GM_xmlhttpRequest` headers
Don't make changelog selected when Tampermonkey was just updated
Please visit /faq.php#Q404 if you're using Chrome 27, SRWare Iron 26 or above!
Make sandbox compatible with some more scripts
Allow removal of manually assigned update URLs
Various fixes for setTimeout and setInterval
Make Tampermonkey run at pages where cookies are blocked by Chrome
(Every access to localStorage i.e. just assigning it to another variable throws a security error then.)
Fix cross-domain `GM_xmlhttpRequest` for Chrome 26
Fix onprogress event support of `GM_xmlhttpRequest` for Chrome < 27 and the 'Native' unsafeWindow retrieval method
Update French translation file | thanks to ozzii
Add some information to the invalid userscript hint (helps on automatic triggered script updates)
Adapt Tampermonkey's security model to allow the context menu to be shown at Chrome 28
Add statistics (can be turned off at the options page)
Update French translation file | thanks to ozzii
Use another API function in order to create desktop notifications and fix Tampermonkey start-up at platforms that don't support the old function anymore
Note: createHTMLNotification is deprecated, but still part of the developers guide :(
Rework `@match` to work more like it's stated here: https://developer.chrome.com/docs/extensions/mv2/match_patterns/
Support relative URLs at `@require` and @resource
Update Chinese(simplified) translation | thanks to zzjin
Snapshot's drag'n'drop script positioning
onprogress event support for GM_xmlhttpRequest
Add isIncognito to GM_info
Add support for a bunch of websites that started using content security policy headers
NOTE: this seems to be the root cause of the current script-blocker-detected pop-up problems
thanks to 'joy' for reporting this
Fix badge icon in some cases
Add a save-to-disk button to the editor's button bar
Fix a minor crash at the background page
Update CodeMirror Editor to version 3.11
Update French translation file | thanks to ozzii
Initial support for the `@grant` tag (including 'none')
Rewrote parts of the frame events and script execution engine from scratch
Reworked the context menu to be more user-friendly
Option to set unsafeWindow retrieval method, Chrome >= 27 only
Performance tweaks
Heavy internal rework
Don't show changelog, if the notification wasn't clicked
Update French translation file | thanks to ozzii
Improve performance
Internal rework to start scripts with 'document-start' a little bit earlier
Support for window.content (http://mzl.la/Y3t0T3 | uso:21626)
Rework notifications to use a standard communication channel
Rework the script version check to handle other characters than digits and dots too (issue:130)
Generate favicons for the sites column for regexp includes too (topic:486)
Cleanup context menu for 'advanced' users
Rename Options entry to Dashboard
Fix a major issue at the options page when a script include doesn't contain at least one character of /a-zA-Z0-9/
Add support for a bunch of websites that started using content security policy headers
NOTE: this seems to be the root cause of the current script-blocker-detected pop-up problems
thanks to 'joy' for reporting this
Make a lot of scripts/script functions work that do use 'window.parent' to check for iframes (issue:135,136)
Rework the script version check to handle other characters than digits and dots too (issue:130)
Fix error message that is shown when a notification link is clicked
Fix automatic script update
Rework notifications to use a standard communication channel
Fix the problem that some confirm messages were not displayed
Implement easy save mode (save editor content when focus was lost)
Fix error on tab unload
Slightly improve context menu (mouse pointer and some links)
Fix and improve Tamperfire request cache
Improve xml page detection
Add some robustness to Chrome Sync
Improve the capabilites of the toSource() emulation
Fix crash at Tampermonkey start when Chrome Sync is enabled, but no permission to use it was given
Fix Tamperfire when the 'show fixed source' option is enabled | thanks to Avi
Open Tamperfire (with progress dialog) on update to avoid confusion because of Tampermonkey's resources usage
Set new page min-width to improve layout on i.e. mobile phones
Fix permission error message, when Chrome Sync is initially enabled
Add option to speed up Tamperfire and make it recognize only the URL of the top frame
Rework Tamperfire to load smaller parts from the DB server
Re-enable Tamperfire
Option to overwrite the noframes tag
Fix repeated sync by doing a case-insensitive update URL check
Fix native script install in case the script source couldn't be retrieved
Fix dynamically generated i18n strings when a language is enforced
Allow script that only include '*' to run at pages loaded via https too
Minor fixes
Fix update of scripts when the server doesn't provide meta data like userscripts.org
Don't show script blocker hint at xml pages
Minor fix at the action page (context menu)
please re-install the script(s), in case you've encountered character encoding problems
Fix encoding of scripts with special characters | thanks to thecuza
Chrome >= 20
Option to setup update notification type
Mark all releases/changes since last update
Show a dedicated icon in case a page contains frames with forbidden URLs
Sync comment option of scripts too
Fix line-ending conversion / keep empty lines | thanks to moss
Improve memory usage
Don't try to export scripts when sync is in pastebin mode
Fix removal of native userscripts
Fix script export
Don't download scripts twice, one time to display the source and one time to install it | thanks to jasonbarnabe
Don't update freshly installed scripts when running the update check the first time
Show uso link at the options page for scripts installed via https too
Allow `GM_xmlhttpRequest` to handle relative paths too
Fix 'unique running scripts' badge setting
Fix execution of functions registered by GM_registerMenuCommand
Make the 'injected' CSP header 1.1 compliant
Use console.error and console.warn at the background page to stand out errors a little bit more from plain debug messages
Don't set @run-at to document-start for compatibility anymore
Chrome >= 20
Fix script export
Require Chrome 20 or greater
Fix execution of functions registered by GM_registerMenuCommand
Improve script update check
Don't reset scripts when the script itself but not the version string was changed
Give Chrome Sync beta state
Option to modify a page's CSP to allow access to the unsafe context
Comment setting for scripts
Fix `GM_xmlhttpRequest` on pages with a very strict CSP | thanks to Anaximelis
NOTE: this can not be combined with the XMLHttpRequest 2 feature 'responseType'!
Improve script header parser
Fix minor style issue at the options page
Avoid compatibility warning if no compat option is set
Use Chrome Sync even if no ID is set
Workaround lag of chrome.runtime support @ Chromium 20
Reduce size of crx
Japanese translation updated | thanks to shirayuki
Fix download progress at Tamperfire update
Chinese (traditional) added | thanks to monkeytiger
Alpha version of TESLA using Chrome Sync
Remove 'web_accessible_resources' key from manifest, cause the files are used to detect Tampermonkey
Don't run on several Github and Google Code pages
Add GM_setClipboard to known keywords for syntax check
Highlight JsLint errors in source
Allow multiple warnings, errors, hints to be shown per line
I18n cleanup and typos fixed
Polish translation updated | thanks to pawelsky
Add option to disable javascript setting overwrite
Fix indent all button
Fix script saving in case more than one tab is open
Make JsLint tolerate var declarations at for statements
Update CodeMirror editor to 2.36
Add vim, emacs and windows key bindings
Add a button to validate a userscript with JsLint
The default language set by Chrome now can be overwritten
Add security model to assure saveScript requests (without user confirmation) to be from the options page (useful for :w! in vim mode ;)
Japanese translation updated | thanks to shirayuki
Chinese (traditional) added | thanks to monkeytiger
Polish translation updated | thanks to pawelsky
English translation updated
German translation updated
Add option to disable javascript setting overwrite
Chrome >= 19
Avoid caching of local files
Add changelog link to update notification
Show includes `@match` statements at the "Sites" column too
cache favicons from includes at the options page
Fix error sometimes shown on page load
Disable localFile workaround and use xmlhttpRequest instead
Japanese translation updated | thanks to shirayuki
Fix window.open | thanks to cqrt
Add option argument to `GM_openInTab` { active: _true_|false, insert: true|_false_ }
Fix multiple confirm boxes on button click at script editor tag | thx Couchy
@require Blacklist
Specific icon in case a script blocker is running
Fix permission check
Fix image detection for @resource - overideMimetype is now used as content-type at response headers
Use JSLINT to get an idea of where syntax errors come from
Fix GM_config | thanks to cqrt
Fix "add new script" context menu item
Japanese translation updated | thanks to shirayuki
Fix multiple (sometimes infinite) script re-execution when requests to Tampermonkey main program timed out
link changelog from context menu
Japanese translation updated | thanks to shirayuki
Fix badge setting 'unique running scripts'
FinalUrl support for GM_xmlhttpRequest
Improve webRequest API usage
Japanese translation updated | thanks to shirayuki
name, author, coypright and description encoding at Tamperfire page
Fix multiple multiselect actions
Add option to not show a confirm message when a script is saved
Minify error messages
Open script editor when item at the context menu is clicked with middle or right button or ctrl key
Allow @ characters in script names
Fix script update check interval when sync is enabled
Make includes case insensitive
SetIcon warning fix
Fix storageListener cleanup on disconnected listener
TESLA - Tampermonkey External Script List Access :)
Settings layout improments
For this update a Chrome restart is required!
Reset section for Tampermonkey restart and factory reset
Optional 'contentSetting' permission to overwrite script blocker (i.e. ScriptNo) constraints
Restart Tampermonkey when new permission was granted
Japanese translation updated | thanks to shirayuki
Option page fixes
Fix sometimes failing script execution
@user-agent support, user-agent switcher
Warning when a script blocker is detected
Fix execution of script with macintosh line endings
Fix multiple confirm boxes on pages with iframes
Fix GM_setClipboard
Japanese translation updated | thanks to shirayuki
@require Blacklist
Revert sendRequest fix to support Chrome 18 again
Disable sync due to limited server resources :(
Fix execution of scripts with macintosh line endings
Fix xmlhttpRequest readyStateChange callbacks
Fix sometimes shown multiple confirm messages
Session support for sync
Sync conflict resolution option
A lot of sync related fixes
Add title to dropdown options
Add option to choose sync server (V2 is much more stable than V1)
Fix storageListener removal
Multi select to enable, disable, sync, remove, ... scripts
Fix script execution at pinned tabs when Chrome starts up
Fix problems with CDATA sections and Windows line endings
Option to choose if compat options should be applied to required scripts too
Fix script import
Some internal fixes
Internal fix
Improve memory management ;)
OnRequest and sendRequest are deprecated...
Don't cache file:// URIs
Add some robustness to local file retrieval
Fix title
Fix userscript template editor
Speed up some options page actions
Add a checkbox to choose between merge or overwrite the original includes and excludes
Polish translation updated | thanks to pawelsky
Rework event engine to fix jQuery.load(function foo() %7B%7D) issues
Open new tab for script installation instead of using a redirect, cause this sometimes confuses Chrome
'web_accessible_resources' manifest key is working with more than one entry again... so speed up Tampermonkey initialization
Get rid of 'This extension failed to modify a network request because the modification conflicted with another extension.'
Chrome >= 18
Chrome >= 17 supported by Tampermonkey Legacy
More convenience -> start sync when account is verified
Notify options tab of changed sync credential verification state
Detect and show sync conflicts
Asure sync is running only once
First sync implementation
Fix forever spinning wheel if a Tampermonkey related page (options, Tamperfire,... ) is open when Chrome starts
Removed 3D imageset
Try to fix forever spinning wheel
Extension manifest version 2 (expect the unexpected... ;)
Options page and actions page fixes and improvements (thanks to Tobias Sch.)
Use unload event to recalculate the nr of script instances
Update polish translation
Rework `GM_info` for GM compatibility
Support @downloadURL and @updateURL
Try to workaround endless spinning wheel at the options page
Polish translation added | thanks to pawelsky
Internal rework
Ameboide's User Includes Dialog and
Spanish language
Fix FormData GM_xmlhttpRequests
Simplified converter object (I hope this doesn't cause new text encoding issues)
Config option for different user skill levels to keep the unconfigured settings tab as less complex as possible
Add timeout for local file content retrieval
Allow file:// URI at @resource tags
Fix @include tags that starts with / (uso:135504)
Distinguish between `@match` and @include statements (newly installed scripts only | uso:89322)
Avoid a lot of warnings and overhead generated by the tab object that is created when the omnibox is selected
Fix issue that script editor content was not updated after manual script update
GM_info support (see API documentation for details)
Fix `@require` statements that refer to local files (I swear this was working some days ago... -_-)
Support GM_openInTab('//foo.bar.de')
Fix 'Unrecognized manifest key 'all_frames'.' warning (Chrome 21)
Use MutationObserver for DOMAttrModified emulation
Fix installation of scripts when their name does not contain letters or numbers
Fix some code mirror options
Show description when hovering over Tamperfire item
Unify options and Tamperfire table
Update CodeMirror Editor to 2.22
Fix enable/diable button at the options page
Regexp includes are case insensitive, thx KindlyOldGentleman
Rework UI a little bit to make the editor better usabe at small screens
Don't search for userscripts at URL GET parameters
Don't install userscripts from POST requests
Avoid regular script to be interpreted as userscripts
Japanese translation
Fix install attempts of html pages that conclude with 'user.js'
Fix storage sync
Fix some problems with script installation on windows
Chrome >= 17
Speed up GM_setValue
Add option to silently update userscripts
Fix sometimes double added click listeners
Fix storage sync between tabs (thanks to Exilas)
Use `@match` and @nocompat tag to detect Chrome aware scripts that don't need FF compatiblity
Move 'new script' entry from installed userscripts table to a separate tab
Require Chrome/Chromium 17 to assure that webRequest API is available
Realize TamperScript funtionality with webRequest API -> needs webRequest permission
ResponseType support for GM_xmlhttpRequest
Rework export to file
Support modification of `GM_xmlhttpRequest` headers (user-agent, referer, ...) -> needs webRequest permission
DOMAttrModified support (only specific nodes are observed)
Enhance wrappedJSObject compatibility
Fix sometimes erroneously grey Tampermonkey icon -> needs webNavigation permission
Set min-height to make the editor more usable on small screens
Show script version in table if available
Use script description as title
Partial French translation (thanks to p_tony, feel free to contribute (http://bit.ly/xxeCtc)
Fake GM Pitfall #1 (http://bit.ly/Yztwr)
Use badges to show how many scripts/script instances/disabled script/Tamperfire entries are running/available at a page
Use grey Tampermonkey icon in case no script is scheduled to run
Don't set 'for var in' compatibility option by default anymore
Make `GM_openInTab` return a object with a close function
Fix GM_deleteValue
Modify 'document-end' script execution time
UnsafeTop, fix window.parent and window.frames at framed pages
Fix update check (that sometimes fail)
Allow userscript template to be modified
Options page: column with information about last update (tip: click for an update)
Fix Tamperfire script count at the action page
Install scripts at last position by default
Fix script context (caused some scripts to crash or high CPU load)
Show native userscripts at options page (chrome.management permission)
Some changes to improve stability
Hotfix for all scripts that use the `@require` tag... sorry for any inconvenience
Unify Tamperfire search results
zh_CN translation (many thanks to zzjin)
Reworked Tamperfire DB structure to improve speed
Layout fixes
GM_addValueChangedListener/GM_removeValueChangedListener support
Improve storage sync between tabs
Fix display of script options if tab is reopened without options page reload
Fix for menu command of uso:81052
Make TamperScript recognize anchor elements with additional child nodes too
Fix scrollbars/layout for windows version of Chrome
Minor fixes
Update images
Images for some buttons
Multiple tab related fixes
Option to remove script related settings
Keep script settings when a script is saved
Make Tamperscript detect the install button at www.(!)userscripts.org too
Fixed 'Add new Script' option at context menu
New layout
Fix config sync between tabs
Option to overwrite script includes and excludes
Add more compatibility magic for Object and Array objects
Includes/exclude URL matching improved
Minor Tamperfire fixes
Display copyright tag if set
'Enter' now starts the Tamperfire search (Tip: use * to get 1000 random scripts ;)
Reworked the script table a little bit
Make Tamperscript work on more links
Keep script setting on update, but reset them on reinstallation
Mouse wheel clicks now open a new tab, Esc closes the selected tab
Fix for Chrome 17
Support some 2 level TLDs
Fix a lot of jQuery related issued
Minor UI fixes
Add option to configure debug level
Fix header parsing (i.e. uso:25105)
Rework xpath fix (thanks to ameboide :)
Fix context menu popup
Disable 'for var in' compatibility option by default
Add editor shortcuts (Ctrl-%5Bsqfrg%5D and F3)
xpath fixes
Tamperfire (GreaseFire clone)
German translation fixed
Fix strict mode error (i.e. at google maps)
blacklist 'twitter', 'Like' and '1+' iframes by default
Show only unique menu command items
Add 'add new script' to context menu
Add script position to script overview
Fix reordering of installed scripts
Fix header parsing (tabs and spaces before the header comments)
Update CodeMirror editor
Some minor GUI fixes
Fix (in this case useless) for each replacement for Webcomic Reader (uso:59842)
Author information at editor window
Version info @ options page
Store script source at its own DB key
@homepage, @homepageURL, @website and @source support
Fix non * containing excludes
Header parsing... (uso:75377)
Enforce correct script execution order (i.e. for ikariam scripts)
Add option to update disabled scripts too
Use html notification to notify update check start
Make context menu update check use the forced auto update check
Fix some spelling mistakes
Fix indentation of checkboxes
Option to (re-)enable Tampermonkey update notification
Fixed need of Chrome restart after installation
Fixed script updates from userscripts.org
Fixed header parsing
Add option to globally blacklist some pages
Avoid unnecessary memory usage
Show disabled scripts when no script is running too
Some options page fixes
Improved script header parser
Fix notification timout settings 'never'
Option to switch between 2D and 3D icon ;)
Use userscripts meta.js to check for updates
Onreadystatechange and onerror support for GM_xmlhttpRequest
Fixed running scripts display magic at pages with iframes
Option to disable the enhanced editor (may lag at scripts with very long lines)
Option for notification timeout
Fixed notification click in case only 'non content-scriptable' pages are open
Support `@icon` @icon64 @iconURL @defaulticon @icon64URL
Fix update notification
Auto reload on script enabled/disabled option
@noframe support
Improved Tamperscript
Fixed an issue that the script config was not deleted if the script was during the uninstallation still running
Fix doubled status (enabled) icons
Update scripts when notification is clicked
Option page tweaks
Editor options
`GM_notification` implemented
TamperScript now uses `GM_notification`
Desktop notifications
Check every 12h for script updates
Readd url parameters to compared url string, but avoid includes/exclude like '*.google.com/*' to match arguments like this: 'http://evilpage.com/?fakeinclude=http://www.google.de'
Fix import when data was exported via 'export to document'
More performance tweaks
Tweak cpu utilization
Improved script import/export
Full unsafeWindow access
Iframe support
Reworked UI
Tampermonkey uses DB instead of localStorage
Fixed GM_registerMenuCmd
Limited DOMAttrModified support
Google Chrome / Chromium
tested with Chromium and Chrome 10 beta
Only Android
uses SDK version 7 (Android 2.1) instead if 8
fix onResume if a URL was just clicked at a webpage
overrideMimeType for GM_xmlhttpRequest (thanks to couchymail)
allow script downgrades (thanks to ameboide)
@run-at document-start support
URLs with plus signs (thanks to couchymail again ;))
document.evaluate calls (thanks to ameboide again ^^)
fix all 'for var k in x' statements
@match was not recognized
empty @exclude tags caused the script to load at no page at all
tested with Chrome 10 beta
internationalization is done (currently en and de is supported)
some for statements failed if toSource compatibility option was set
Initial release