JS Blocker Changelog

What's new in JS Blocker 5.3.2

Jan 29, 2019
  • Changed:
  • Disabled new user registration for JSB Sync. Existing users can continue to log in normally.

New in JS Blocker 5.3.1 (May 20, 2018)

  • New:
  • Added the ability to create "Always" rules while in private browsing windows. Turn this on from Settings > Rules > Rule Defaults.
  • When you disable JSB on a "Top" page, it will now also be disabled on frames within that page. You'll then be able to enable JSB on the frames individually. This this off from Settings > Rules > Rule Defaults.
  • Changed:
  • Disable anti-social filter list when enabling ultimate or annoyances.
  • Fixed:
  • Reduce CPU load under certain conditions.
  • Frames that were automatically blocked from loading can now be allowed. The UI had always allowed creation of the "Allow page to load" rule, but JSB never obeyed those rules. It does now.
  • Resolve some issues with "srcdoc" frames

New in JS Blocker 5.3.0 (Jan 3, 2018)

  • New:
  • Secure settings. You can now store all of your settings and rules in your macOS keychain. This can be enabled from Settings > General > User Interface > Use secure settings. This setting will remain enabled even after importing a backup or restoring defaults. Its state will not be synced to other computers when using JSB Sync. To prevent unauthorized changes to this setting, enable the locker.
  • Encrypted backups. When secure settings is enabled, backups must be encrypted before they can be exported. Don't forget your password, it cannot be recovered! When you import an encrypted backup, secure settings will be automatically enabled.
  • Changed:
  • Performance improvements. Hopefully this fixes some CPU spiking issues.
  • UI updates to improve visibility and usage with screen readers (very minor update here).
  • Fixed:
  • Resolves an issue where certain filter list rules could cause all resources to be blocked.

New in JS Blocker 5.2.2 (Dec 7, 2017)

  • Changed:
  • Some performance improvements.
  • Backups will now be downloaded as "JSB-Backup.json" instead of "Unknown" on Safari 10.1+
  • Fixed:
  • Improve false-positive canvas fingerprinting warnings.
  • Improve reliability of window.history management. This fixes the issue with the November 2017 YouTube update where the URL would not change when navigating.
  • Resolves an issue where some settings could fail to save under certain circumstances.
  • UI fixes for macOS High Sierra.

New in JS Blocker 5.2.1 (May 25, 2017)

  • Changed: Persistent rule actions cache now defaults to disabled. This will reduce the number of disk writes JSB causes.
  • Fix: A message saying your sync session has expired will no longer prematurely show.

New in JS Blocker 5.2.0 (May 17, 2017)

  • New: JSB Sync (beta). Securely sync your settings and rules with other computers. Open Settings > Sync (beta) to learn more.
  • Changed: Updated certificate.
  • Fix: Resolves an issue where settings view may not have loaded.
  • Fix: Resolves an issue where buttons were not clickable in poppies if animations were disabled.
  • Fix: Prevent infinite page reloads if JSB did not load correctly.
  • Fix: Improved reliability of importing backups.

New in JS Blocker 5.1.7 (Mar 7, 2017)

  • Changed:
  • Reduced file size of extension.
  • Exporting a backup is now much faster.
  • "Kind" headers in page view now respect the setting "Create rules without switching to page editor".
  • The setting to temporarily switch to resource-URL-view is back and has been moved to the "Page" menu.
  • Performance improvements.
  • Allow compatible "other" features to execute on pages that have a security policy to prevent script execution.
  • Switch to HTTPS for all communication. Please make sure your firewall/router allows connections to https://imac.toggleable.com:8443/jsblocker in order to verify donations.
  • No longer require Safari restart when changing the persistent cache setting.
  • Fixed:
  • Environmental information randomizer now works in newer versions of Safari.
  • Exported backups could be corrupted and not import correctly.
  • Poppy position may be incorrect before being moved to its correct position.
  • Scroll performance in page view is improved.
  • User scripts should now always update correctly.
  • The prompt to add a user script to JSB will now show on all pages that end in .user.js
  • The UI will now show the correct value for custom options, such as a custom font or webpage zoom level.
  • Safari will no longer hang as long when updating filter lists (it's about 3x faster).
  • The pop-up blocker will no longer break certain sites, such as eztv.

New in JS Blocker 5.1.6 (Jan 10, 2017)

  • New:
  • Added ability to quickly allow/block all resources. This is a simplified UI mode that hides all items by default and shows two new buttons: Allow All and Block All. This can be enabled from Settings > General > Page View.
  • A "Disable" button has been added to each page host header to quickly and temporarily disable JSB on that host.
  • When in a private tab, page view will show darkened headers to indicate all actions on that tab are strictly temporary.
  • Changed:
  • UI updates.
  • Clean up settings page by removing some settings.
  • Performance improvements.
  • Fixed:
  • Properly update page view when dealing with disabled pages.
  • Properly handle long domain names on page view headers.
  • Setting a user script's custom download URL attribute to nothing will no longer cause JSB to ignore the script's default download URL.
  • XHR prompts that originated from a "FormData" data type will now work correctly.
  • Improve false-positive canvas fingerprinting warnings.
  • No longer reload popover when importing a backup which could cause JSB to continue to operate in an unstable state.
  • Show horizontal scrollbar in resource content view.

New in JS Blocker 5.1.5 (Dec 7, 2016)

  • New:
  • Added support for private browsing mode. All rules created in a private tab are strictly temporary and the cache is not used.
  • A new setting has been added to allow the rule cache to be in-memory only.
  • Changed:
  • Performance improvements.
  • Fixed:
  • Resolved retina display issues with some UI elements.
  • Reduce number of false-positive pop-up blocker confirmations.
  • Peter Lowe's ad list will now update.
  • mproved reliability of blocked element placeholders.
  • Resolves issue where importing backup settings would fail because the settings would prematurely lock.

New in JS Blocker 5.1.4 (Sep 17, 2016)

  • Fixed:
  • Updating to 5.1.3 could cause the popover to show every time Safari was launched. This was caused by an incomplete update.
  • Will now run on Safari Technology Preview release 13.

New in JS Blocker 5.1.3 (Sep 11, 2016)

  • New:
  • Support for "subdocument" and "popup" filter list entries.
  • Pop-up blocker options are displayed during initial setup.
  • You can now add a hosts file as a filter list. Peter Lowe's ad list is now included and enabled by default.
  • Changed:
  • The "Disable" button will now say "Enable" when JSB is disabled.
  • Fixed:
  • Trust notifications would not appear on a webpage until switching tabs.
  • Incorrect version number would be displayed in the "Update Available" poppy.
  • Pop-up blocker would occasionally block/show a confirmation for pages that will open in the same tab/window.
  • Improve false-positive canvas fingerprinting warnings.
  • Easy Privacy list was incorrectly removed and replaced with a duplicate Easy Malware when enabling Fanboy's Ultimate.
  • An error would occur when adding a custom filter list.

New in JS Blocker 5.1.2 (Aug 22, 2016)

  • New:
  • Added an advanced pop-up blocker that's enabled by default. Settings can be adjusted from the Rules tab of the Settings page under "Extra Blockers"
  • Added Fanboy's Ultimate filter list option.
  • Changed:
  • Added notice about updating from gallery version.
  • Re-organized settings page a bit.
  • Fixed:
  • UI fixes for macOS Sierra.
  • User scripts: GM_deleteValue will now work as expected.
  • Improved reliability of injecting required CSS.

New in JS Blocker 5.1.1 (Jun 14, 2016)

  • New:
  • Donators can completely disable the update checker.
  • Changed:
  • When checking for updates, use extupdates.plist file instead of a PHP page.
  • Made it clearer what's going to happen when you click a page item and "Create rules without switching to page editor" is enabled.
  • Updated signing certificate.
  • Fixed:
  • Resolves an issue where JSB could be injected into a page multiple times causing the tab/Safari to hang.

New in JS Blocker 5.1.0 (Apr 22, 2016)

  • New:
  • Added an update checker.
  • Rules are now created with a single click. Simply click the items you want to allow or block and the page will automatically reload with the changes you made.
  • Rules in the rule list are now paginated for better performance.
  • Loading the filter rules in the rule list is now much faster.
  • Changed:
  • Filter lists are now updated more efficiently.
  • Updated canvas fingerprinting protection to prevent some more false-positives.
  • Fixed:
  • Resolved an issue where hide/show rules were deleted when creating a rule for a hidden item.
  • Resolved an issue where it was possible to delete filter list and built-in rules.

New in JS Blocker 5.0.20.1 (Apr 11, 2016)

  • Fix: Forgot the .com when sending feedback email.

New in JS Blocker 5.0.20 (Apr 10, 2016)

  • New: Submit feedback directly from JSB without having to compose an email: just click Menu then Submit Feedback.
  • Changed: Return undefined instead of throwing an error when a setting doesn't exist.
  • Changed: The unsafeWindow variable is now available globally to user scripts.
  • Fix: Hopefully fix an issue where Safari may hang after updating.
  • Fix: Apparently GM_openInTab was never implemented. That's there now.
  • Fix: Include localStorage export when backing up settings.
  • Fix: No longer accidentally delete settings when exporting a backup that doesn't contain everything.

New in JS Blocker 5.0.19 (Apr 4, 2016)

  • New: Added proper support for third-party filter rules.
  • New: Added proper support for domain exceptions in filter rules.
  • New: A new "other" feature has been added: the ability to completely block pages from loading.
  • Changed: Small speed boost to page loads.
  • Changed: Settings UI updates.
  • Changed: Reduce the number of modifications done to element attributes on pages.

New in JS Blocker 5.0.18 (Mar 15, 2016)

  • Fix: Quick fix for filter rules that could incorrectly block all resources on all webpages.

New in JS Blocker 5.0.17.1 (Mar 7, 2016)

  • Fix: Resolves an issue where clicking the "?" next to certain items could trigger an error.

New in JS Blocker 5.0.17 (Mar 7, 2016)

  • Changed/Fix: Requirements in user scripts are now loaded within the user script itself (instead of its own user script) and in the correct order.
  • Changed: Dramatically improve page load time. For two years now there was code that purposefully slowed down JSB; I have no idea why it was there. If you encounter any strange issues after this update, please let me know.

New in JS Blocker 5.0.16 (Feb 17, 2016)

  • Fix: Popover will no longer hang Safari when opened on pages using long data URIs.

New in JS Blocker 5.0.15.1 (Jan 3, 2016)

  • Changed: Reduce occurrence of false-positive canvas fingerprinting alerts.

New in JS Blocker 5.0.15 (Dec 14, 2015)

  • New: You can now completely collapse the allowed or blocked items list by dragging the divider.
  • Changed: Performance improvements.
  • Fix: Resolves an issue where settings would reset when clearing website data. This bug was introduced in 5.0.14.

New in JS Blocker 5.0.14 (Nov 23, 2015)

  • Fix: Resolves an issue where force clicking items to create rules would fail.

New in JS Blocker 5.0.13 (Nov 19, 2015)

  • New: Add support for using .tld in @domain, @match, @include, and @exclude user script keys.
  • New: Add support for relative paths in @resource and @require user script keys.
  • New: Add support for @noframes in user scripts.
  • New: Custom download URLs can now be assigned to user scripts.
  • New: User scripts added from a URL that do not contain a downloadURL attribute will have the URL it came from set as its customDownloadURL.
  • New: Show user script size in user script list.
  • Changed: Use localStorage instead of settings for anything less than 100KB in size. This speeds up changing settings.
  • Changed: Uncheck all page items when switching out of edit mode.
  • Changed: The @updateURL attribute is no longer required for user scripts to be able to update.
  • Changed: Improve user scripts view.
  • Changed: The New/Edit Rule poppy will no longer close when re-opening the popover.
  • Changed: Only switch which items are to be affected when creating rules when it is unsupported or when block/allow is being used.
  • Fix: Resolves an issue where GM_registerMenuCommand could fail to execute on click.
  • Fix: Resolves an issue where canceling the view switch after editing a user script would still cause the user script to disappear.

New in JS Blocker 5.0.12 (Nov 5, 2015)

  • New: Force click on items with a poppy menu (view switcher, disable button, etc.) to instantly show it.
  • New: Force click blocked/allowed items to instantly create a rule for it.
  • New: Force click kind headers on the page view to instantly create rules for the blocked/allowed items below it.
  • New: Force click the number of allowed/blocked URLs next to an item to perform the opposite action a click would trigger.
  • New: The Help button will no longer immediately begin composing an email. There is now a help view with contact info and a preliminary FAQ page.
  • Changed: Randomize more environmental information when the feature is enabled.
  • Fix: Resolves an issue where creating a backup that exports settings without exporting rules would fail.
  • Fix: No longer render page twice when opening popover.
  • Fix: Resolves an issue where the Trust rule list would appear when closing a snapshot even when trust was disabled.
  • Fix: Resolves an issue where user scripts would not load into the edit view.
  • Fix: JS Blocker is now able to inject itself into sandboxed frames that do not allow script execution. Scripts from any other source will still not execute unless the sandbox attribute "allow-same-origin" was set; inline scripts are blocked regardless.

New in JS Blocker 5.0.11 (Sep 29, 2015)

  • New: Added the "Non-Intrusive Ads" filter list that can be enabled. It is NOT on by default and all ads will continue to be blocked.
  • Changed: Compress data to save space and improve performance. Newly exported backups will also be smaller. Your old backups will continue to work.

New in JS Blocker 5.0.10 (Sep 14, 2015)

  • New: You can now view the list of trusted websites from the Rules tab.
  • Fix: Resolves an issue where importing a backup from the setup view could fail.

New in JS Blocker 5.0.9 (Sep 8, 2015)

  • New: Hold the option key on an "All Resources Blocked" notification to reveal a "Trust Domain" button. This allows you to quickly get rid of excessive notifications such as those triggered by Google Hangouts.

New in JS Blocker 5.0.8 (Aug 6, 2015)

  • Fix: Resolves an issue where user scripts could not access their settings (and some other issues you probably didn't notice). This only affected Safari 9 in the El Capitan beta.

New in JS Blocker 5.0.7 (Jul 15, 2015)

  • New: Trusted websites can now be untrusted via the Edit menu
  • Changed: GM_xmlhttpRequest's responseHeaders is now a string. The object version has moved to responseHeadersObject.
  • Changed: Support overrideMimeType in GM_xmlhttpRequest.
  • Fix: Resolves an issue where rules created for IP address based websites may not have any effect.

New in JS Blocker 5.0.6 (Jul 15, 2015)

  • Fix: Changed download location from Dropbox.

New in JS Blocker 5.0.5 (Jul 15, 2015)

  • Fix: Resolves an issue where some frames were properly detected by JSB.
  • Fix: Better detection of emoji canvas protection.

New in JS Blocker 5.0.4 (Jul 15, 2015)

  • New: Add support for Anti-AdBlock Killer user script.
  • Fix: Resolves an issue where user scripts with a "|" in their name would not work.
  • Fix: Resolves an issue where user scripts could not be added from greasyfork.org

New in JS Blocker 5.0.3a (Jul 15, 2015)

  • New: When canvas fingerprinting is on, no longer show a prompt for Wordpress's flag that detects if your OS supports emoji.

New in JS Blocker 5.0.3 (Jul 15, 2015)

  • New: A special import backup page has been created so that the file chooser dialog can be opened.
  • New: Kind headers in the page view can now be clicked to allow/block the items under it.
  • Changed: The locker is no longer enabled by default on new installs and can be disabled disabled on previous installs
  • Changed: When canvas fingerprinting protection is set to "Always ask", ask only up to 3 times before automatically creating a temporary rule.
  • Fix: Turning off the simple page editor is now respected.
  • Fix: Reliability of "Remember last choice" for how long rules should last has been improved.

New in JS Blocker 5.0.2 (Apr 28, 2015)

  • New: A setting has been added to show resource URLs when clicking the number next to an item. It is enabled by default.
  • New: A setting has been added to show the trust notification on unknown websites. It is enabled by default.
  • New: A setting has been added to use a simplified page editor, hiding the advanced options until you need them. It is enabled by default.
  • New: A backup can now be imported directly from the setup view.
  • Changed: Cleaner select boxes for page view to look less cluttered.
  • Changed: When saving page changes, all sections will be saved and the view will scroll to the top. This will allow it to update automatically.
  • Changed: Clicking the description of an item will switch to edit mode.
  • Fix: Vastly improved scrolling performance.
  • Fix: Resolves an issue where all resources were blocked on a frame when they shouldn't have been.
  • Fix: No longer show messages about a string not being localized in your language.
  • Fix: Resizing the popover would not adjust the page section headers.

New in JS Blocker 4.1.10 (Apr 22, 2014)

  • Fix: GM_getValue will now return undefined instead of null. This fixes scripts that expected this result, such as GoogleMonkeyR.

New in JS Blocker 4.1.9 (Apr 22, 2014)

  • Changed: Quick add rules will once again save upon closing the popover.

New in JS Blocker 4.1.8 (Apr 17, 2014)

  • Fix: A few bugs.

New in JS Blocker 4.1.6 (Feb 19, 2014)

  • Fix: Resolves an issue with document-start not being respected in user scripts.

New in JS Blocker 4.1.5 (Feb 13, 2014)

  • Change: The allow/block "these" UI is now consistent with the rest of the dialogs to add a rule.
  • Fix: Resolves an issue where placeholders created by the image hider would not load the original image when clicked.
  • Fix: Rule actions are now always properly cached based on host; items now will now always match up to 30x faster.
  • Fix: Rules created from a user script can now only set the action to 0 or 1. This prevents user scripts from adding rules intended to be used by the whitelist and blacklist only.
  • Fix: Potential memory reduction and UI improvements.

New in JS Blocker 4.1.4 (Jan 25, 2014)

  • Fix: Resolves an issue where some hosts would be incorrectly labeled.
  • Fix: Resolves an issue where the XHR blocker would prevent certain webpages from working correctly, including Google hangouts.
  • Fix: Resolves an issue where the script and frame blocker would reset to "Blacklist only" every time the blacklist/whitelist was updated.

New in JS Blocker 4.1.3 (Jan 14, 2014)

  • Fix: Slide/shrink animation issues in the main window have been resolved.
  • Fix: Resolves an issue where user scripts could not be added from the prompt.

New in JS Blocker 4.1.2 (Dec 27, 2013)

  • Changed: Greatly improved the reliability of showing active rules. It no longer requires the domain filter and works on page-based rules.
  • Fix: Domain and page based rules are now correctly prioritize: page match > exact domain match > sub domain match > all domains.

New in JS Blocker 4.1.1.1 (Dec 10, 2013)

  • Fix: Resolves an issue where unblockable scripts may fail to show.

New in JS Blocker 4.1.1 (Dec 10, 2013)

  • New: Added a more comprehensive list of effective top-level domains.
  • New: Support for page-based rules. This will only be available in the "Adding a Rule" poppies. User scripts will be re-evaluated and new rules will be created, fully respecting the @include, @match, and @exclude directives.
  • New: Added the ability to randomize environmental information revealed by window.navigator and window.screen. This feature can be enabled from the "Other Features" tab of the settings page. If a webpage seems broken after enabling this, try creating a rule to allow it first.
  • New: Added a new setting to further simplify the display of items (e.g. Google Tracking, Google Advertisements, Facebook, Twitter, etc.) It is enabled by default. This will be displayed only when in simple view.
  • Changed: The @version directive will now be checked for before determining if a user script is capable of being updated.
  • Changed: User scripts that contain multiple blocks of metadata will now be fully parsed.
  • Changed: User scripts using @installURL instead of @downloadURL can now be automatically updated.
  • Changed: Developer mode scripts will now re-download only if it is allowed on the page being loaded.
  • Changed: Inline alerts and XHR notifications will now always be displayed on the top page, never within a frame, to ensure its visibility.
  • Changed: The control buttons in an XHR notification are now always visible; no longer need to scroll the view to see them.
  • Changed: The close button on notifications is now always visible and no longer an image.
  • Changed: The document.hidden property is now checked before updating the popover.
  • Fix: Resolves an issue where some events (most notably XHR) would stop working if a page is inactive for more than 2 minutes.
  • Fix: Resolves an issue where user scripts may fail to update if it took longer than 5ms to download.
  • Fix: Having the XHR blocker set to "Ask when necessary" will no longer cause JSB to incorrectly count the number of allowed/blocked resources.
  • Fix: The user scripts update checker will no longer set the last update time when a developer mode script is re-downloaded. This had prevented non-developer-mode scripts from being updated.

New in JS Blocker 4.1.0 (Dec 10, 2013)

  • New: Basic support for Greasemonkey style user scripts. This replaces the old custom scripts feature. Any existing scripts will be automatically updated to be supported. Most GM_* functions will work, including GM_registerMenuCommand. GM_setClipboard cannot be implemented. GM_xmlhttpRequest will allow cross-domain requests. The @match and @include directives are domain based, not page based. For GM_getResourceURL, Safari 6 or greater will return a blob: URL while older versions return a data: URL.
  • New: A label has been added after the number of allowed hosts/resources.
  • New: Support for blob: URLs.
  • Changed: Injected scripts will now be able to use blob: URLs instead of data: URLs. Large scripts will now load much faster without hanging the page during load. This also allows for much cleaner debugging messages for user scripts. Requires Safari 6 or greater to use blob:.
  • Changed: When private browsing is enabled, all newly created rules will default to being temporary. This also applies to Quick Added rules even when "Make Quick Added rules temporary" is disabled.
  • Changed: Use inline scripts for injected scripts whenever possible instead of blob/data URLs to avoid execution delay.
  • Changed: Extended whitelist and blacklist.
  • Changed: Injected scripts are now removed from the webpage once they are executed unless you are using a beta version of JSB.
  • Changed: The JavaScript Blocker label in the toolbar will now show when large fonts are used.
  • Changed: The CustomEvent constructor is no longer added to the global scope if it is not already there.
  • Fix: Resolves an issue where the popover would occasionally not update correctly when using multiple windows.
  • Fix: Hosts are now counted correctly when XHR blocker is set to "Ask when necessary".
  • Fix: Resolves an issue with duplicated and blank unblockable scripts.

New in JS Blocker 4.0.9.3 (Nov 20, 2013)

  • Changed: Removed the critical JSB error notifier.
  • Note: Do not repost this update information. JavaScript Blocker will not show a notification about this update.

New in JS Blocker 4.0.9.2 (Nov 20, 2013)

  • Fix: The extension will work now for people that were receiving the critical error message or only seeing a blank page.

New in JS Blocker 4.0.9 (Nov 20, 2013)

  • Changed: Ignoring temporary rules when a snapshot is created is now enforced and cannot be disabled.
  • Changed: Use tokens on anchor and placeholder elements for improved security.
  • Fix?: Potentially resolves an issue where the settings page is blank for some users.
  • Fix: Improved the reliability of determining if a snapshot is equal to the current rule set.

New in JS Blocker 4.0.8a (Nov 20, 2013)

  • Fix: Placeholders work now.

New in JS Blocker 4.0.8 (Nov 20, 2013)

  • New: XHR POST parameters can now be viewed from the popover when in expert view. Click the "?" then choose "Meta Data".
  • New: The type of blocked embed or object will now be displayed in its placeholder (e.g. flash or PDF document). This can also be viewed from the popover while in expert view by clicking the "?" then "Meta Data".
  • Changed: When unblockable scripts are shown, injected helper scripts (e.g. the "other" features) will be hidden by default. It can be re-enabled from the UI settings page.
  • Changed: The "Show Hidden" button is now persistent and will not be disabled when the popover updates.
  • Changed: Updated to jQuery 2.0.3. If you experience any bugs, please let me know by double clicking the JavaScript Blocker header on top-right of the popover and choose "Report".
  • Changed: Instead of glowing, snapshots equal to the current rule set will now have a "current" label.
  • Changed: Improved security by using tokens to determine if a script has been added to JSB instead of just a constant of "1".
  • Changed: The EasyList type for "xmlhttprequest" is now supported.
  • Changed: The setting to prevent links from sending referrers is now an "other" feature. This allows it to be disabled on webpages it may be causing problems with. Since this is now an extra feature, anyone updating who has not made a contribution and is using this feature will automatically have all features unlocked for free.
  • Fix: Resolves an issue where switching between expert and simple view after opening a zoomed window slowly will cause the main window to slowly resize each time.
  • Fix: When creating a rule of the same type as the column in simple view, it will now correctly be based on the choice of the select box rather than based on which column the item is located in.
  • Fix: XHR requests of an unsupported type will now be sent instead of blocked.
  • Fix: Checking the type of XHR (i.e. GET, POST, PUT) will now always work as expected even if the page uses a lowercase version. This resolves an issue where certain Amazon pages would not reload when selecting options.

New in JS Blocker 4.0.7 (Nov 20, 2013)

  • New: Base64 encoded data URIs will now be decoded when its source is viewed instead of showing the base64 string.
  • New: When the XHR request blocker is in "ask" mode, you will be able to create a new rule directly from the prompt.
  • Changed: Highlighting an item in the main window when it matches a rule is now enforced and can no longer be disabled.
  • Changed: Renamed the AJAX blocker to XHR blocker since it is the more correct term.
  • Fix: The type of rule is now displayed next to the rule in the rule list in expert mode.
  • Fix: Resolves an issue where certain data URIs could not be displayed.
  • Fix: The floating domain header in the main window will now float above the unblockable scripts section as expected.
  • Fix: Resolves an issue where the XHR blocker would run out of trial mode without a verified contribution.
  • Fix: Resolves an issue where some XHR requests would appear as "undefined".

New in JS Blocker 4.0.6 (Oct 23, 2013)

  • Fix: Resolves an issue where the CustomEvent constructor was unavailable in Safari 5.1.

New in JS Blocker 4.0.5 (Oct 23, 2013)

  • Info: If you encounter any bugs, please contact me at [email protected].
  • New: The AJAX requests confirmation other feature is now a full rule-based feature. Enabled by default, all GET, POST, and PUT AJAX requests to an item on the blacklist will be blocked. A special setting option dubbed "ask when necessary" will display a prompt any time an AJAX request that does not match a rule is made where you can allow or block it. You can then create rules for it from the popover so you're not bombarded with prompts all the time. For users who had the original other feature enabled, the "ask" setting will be enabled instead of "blacklist only".
  • Changed: Decreased emphasis on the main toolbar by making the text gray rather than blue.
  • Changed: Column resizing is now enforced and only occurs when in expert view; it is no longer available for simple view.
  • Changed: The setting "resources on secure sites must also be secure" now defaults to true.
  • Changed: When a hidden item is displayed in the main window, it will be bold.
  • Fix: Resolves an issue where toggling a setting that would result in another being hid or displayed would fail to reveal or hide it.
  • Fix: Resolves an issue where removing or recovering a domain's rules in domain edit mode would not work as expected.
  • Fix: Setting a rule block to "nowhere" will now always work as expected instead of sometimes acting like "Blacklist only".
  • Fix: Placeholders for blocked elements will now always correctly show the entire URL.
  • Fix!: Resolves the long standing issue of the UI shifting due to scrollbars appearing on items in the main window.

New in JS Blocker 4.0.4 (Sep 30, 2013)

  • New (for future reference): Added a new other feature: the ability to prevent inline scripts from being executed. This will have to be enabled from the Other Features tab of the settings page. This feature will work only on Safari 6.1 or greater. The Windows version of Safari is unsupported as it is only version 5.1.7. These scripts will still show up under the Unblockable section even if they were not executed. There is no guarantee that this will prevent script execution on all webpages, but it should work on most. Extensions that inject scripts into a webpage, such as HoverZoom, will not work if inline scripts are not executed. Websites that send a CSP header that sets "script-src 'unsafe-eval'" will override this setting and cause scripts to be executed, though this is highly unlikely to happen.
  • New: Added Disable/Enable buttons to make it more obvious that you can now disable JSB on specific hosts.
  • Changed: Settings page UI updated to match main UI.
  • Changed: Brought back the old Nowhere setting to enable blockers to allow all items by default.
  • Fix: Resolves an issue where collapsed domains in the rule list would become expanded in some cases.
  • Fix: Resolves an issue where search results in the settings page would disappear after changing a setting.
  • Fix: The right side of the button Show Hidden can now be clicked as expected.
  • Fix: Updated developer certificate.

New in JS Blocker 4.0.3a (Sep 3, 2013)

  • Fix: For sure resolves the issue where special features would not work. Somehow the scripts were loaded in the incorrect order causing JSB to be unaware the special features even existed.

New in JS Blocker 4.0.3 (Sep 3, 2013)

  • New: The change log will now be displayed in the popover whenever an update occurs.
  • New: Added a "Hide These" button to the poppy that appears when clicking a header in the main window.
  • Changed: Clicking "Allow/Hide These" via headings in the main window will now only affect visible items.
  • Fix: Potentially resolves an issue where special features would not work.

New in JS Blocker 4.0.2 (Aug 29, 2013)

  • New: The popover can now be opened with the keyboard shortcut control+alt+J.
  • Fix: Resolves an issue where validation events would attempted even when no browser windows existed. This caused a loop that would eventually stop itself due to reaching the maximum call stack size.
  • Fix: Resolves an issue where custom scripts would not show up in the popover unless an Other Feature was enabled.

New in JS Blocker 4.0.1 (Aug 28, 2013)

  • New: A setting has been introduced to enable quicker Quick Add, the pre-4.0.0 way of adding rules quickly.
  • Changed: The popover will now always open when an update occurs.
  • Changed: The Allow/Hide button is now always visible again.
  • Changed: The ? next to an item no longer changes to a + when quick adding.
  • Fix: Resolves an issue where the settings page would not update after manually updating the whitelist/blacklist.
  • Fix: Resolves an issue where rule list was not properly emptied. This caused major lag and high memory usage when lots of rules exist and the rule list was loaded.
  • Fix: Improved reliability of the find bar (command+F).

New in JS Blocker 4.0.0 (Aug 23, 2013)

  • New: Revamped UI now displays the main host's information along with all the frames on the page in one view.
  • New: Added a help button to the adding/editing a rule poppy.
  • New: Improved frame merging will now merge "blank" frames into one view with the host of the main page.
  • New: The height of the popover can now be resized. Placing your cursor at the bottom will reveal a NS resize handle. Double click to restore default height.
  • New: Added a new rule type: disabling. Click on the host names within the sections in the main window to add a rule that completely disables JavaScript Blocker on that host.
  • New: A new Other Feature: AJAX POST/GET request interception. Allows you to confirm POST and GET AJAX requests.
  • New: A setting has been added to ensure Quick Add is only enabled while in simple view. It is disabled by default.
  • Changed: The "Allow or Hide" button has been removed in favor of clicking on the number next the Allowed: and Blocked: labels. Hovering over this section of the UI will reveal "Allow or Hide" text next to the number.
  • Changed: Clicking a button under the "Active Temporary Rules" section or "Show Active" will now include rules from all frames as well as the main host.
  • Changed: Rule list no longer has separate sections for different types of rules. They are now categorized by domain only.
  • Changed: Quick Add is now enabled by default and has been redesigned.
  • Changed: Frame data is now removed immediately after it is no longer needed.
  • Changed: Improved wording for a frame that cannot be blocked will now tell you the actual host/URL to block instead.
  • Changed: Improved rule list interface is now striped for easier distinction between sets of rules.
  • Changed: Having simplifiedRules set to false is no longer supported. Existing rules will be converted upon updating for users who have it set to false.
  • Changed: Main toolbar UI improvements.
  • Changed: Removed the state filter bar. To show only temporary rules, a new button has been added to the rule actions toolbar.
  • Changed: The popover will now open automatically when an update requires the user's attention.
  • Changed: Removed theme support.
  • Changed: Lessened the intensity of the zoom window effect.
  • Fix: Improved handling for when a frame's URL changes. It will now always be listed in the main window as an allowed event.
  • Fix: Resolves an issue where columns may not expand when expert mode and resize columns were enabled.
  • Fix: Resolves an issue where some items may not appear in the main window if they were from a blank frame.
  • Fix: The new "Options..." button is now only displayed when a URL is either HTTP, HTTPS, or FTP.
  • Fix: Blocking a frame from loading will now correctly update the display on the initial page reload. Before, it would still show the frame data even though the frame wasn't really loaded.
  • Fix: Changed inline scripts for history fix and special actions to use data URIs. This allows them to be injected onto pages with a Content Security Policy directive.
  • Fix: Resolves an issue where HTML would be rendered in a rule listing.
  • Fix: Removed the now useless state filter in the rule list.
  • Fix: Resolves an issue where Safari may hang after a JSB update.
  • Fix: Resolves an issue where all items would be allowed after an update that required the user to open the popover.
  • Fix: Data will now always be displayed on pages utilizing history.replaceState when a user uses the browser's back/forward button.
  • Fix: Resolves an issue where column expanding animations would occur even when animations were disabled.
  • Fix: Possible memory reduction over time.

New in JS Blocker 3.4.0 (Aug 1, 2013)

  • New: Users can now create custom scripts to inject into webpages. This can be done under the Custom tab of the settings page.
  • New: Frames that share a common host are merged into one view.
  • New: Adding a new expert rule will now allow you to select from a list of regular expressions. This is done via the new Options... button.
  • Changed: Completely removed support for automatic rule creation. Existing temporary automatic rules are removed upon updating. Disabled automatic rules will be converted into normal rules.
  • Changed: Page display now only shows hosts instead of full URLs.
  • Changed: The popover will not update if it is visible and you are not at the top of the scroll view.
  • Changed: Reduced rule cache by 20MB, greatly reducing memory usage.
  • Changed: Some updates to the custom blacklist.
  • Changed: Removed ability to disable some rule list filter bars.
  • Changed: Removed the "other" feature that automatically confirms confirm() prompts.
  • Changed: Removed ability to hide the number of items blocked/allowed per host.
  • Fix: Resolves an issue where temporary expert view would always show 0 blocked items in the host list.
  • Fix: The toolbar badge will now always display the correct value for the window it is associated with rather than the last active tab.

New in JS Blocker 3.3.2 (Aug 1, 2013)

  • Fix: Resolves an issue where simple rules would not be obeyed while in temporary expert view.
  • Fix: Possibly resolves an issue where the settings page would be blank.

New in JS Blocker 3.3.1 (Jul 11, 2013)

  • New: You can now force a blacklist/whitelist update from the About settings page.
  • Fix: Reduced amount of update events to fix not being able to scroll down in the main window.
  • Fix: Resolves an issue where snapshot comparison mode could not be changed from the main window or rule list.
  • Fix: Improves reliability of disabling/restoring automatic rules in expert mode.
  • Fix: Resolves an issue where selecting a different frame would fail.

New in JS Blocker 3.3.0a (Jul 10, 2013)

  • Fix: Resolves an issue introduced in 3.3.0 where whitelisted rules may not override a blacklisted rule.

New in JS Blocker 3.3.0 (Jul 10, 2013)

  • New: Temporary expert view. While in simple mode, click the number next to a block/allowed host to temporarily switch to expert view. This allows for blocking individual items with regular expressions right from the main window.
  • New: Collapsing either the allowed or blocked items list will expand the width the other column.
  • Fix: Repairs rules to prevent Safari from hanging when loading the rule list. A bug where the blacklist and whitelist were copied to a user's custom rules has been fixed. This will not fix any snapshots that may have been affected.
  • Fix: Adding a rule to override a whitelist or blacklist rule for the same domain for which it was blocked (typically All Domains) will now work as expected.
  • Fix: Clicking the version number in the poppy asking to show support will now open the correct change log page.
  • Fix: Improved reliability of toolbar badge.
  • Changed: Improved memory usage over time due to new processing method.

New in JS Blocker 3.2.12 (Jul 8, 2013)

  • Fix: Issues with textured metal and linen themes.
  • Changed: Show number of items allowed/blocked per host is now enabled by default.
  • Changed: Items are now processed up to 50x faster. Webpages will load even faster than before.
  • Changed: Minor UI updates.

New in JS Blocker 3.2.11 (Jul 1, 2013)

  • Fix: Resolves an issue where disabling or restoring an automatic rule from the rule list would show an incorrect bubble color.
  • Fix: Resolves an issue where expert mode may not work correctly if automatic rule creation was enabled.

New in JS Blocker 3.2.10a (Jun 24, 2013)

  • Fix: Oversized select arrows when using OS X Lion theme.

New in JS Blocker 3.2.10 (Jun 24, 2013)

  • New: Support for newest Safari feature: continuous reading list.Fix: 2x images are no longer displayed incorrectly in Safari 6.1/7.
  • Changed: The settings page will now always open in a new tab.

New in JS Blocker 3.2.9 (May 20, 2013)

  • New: The about page now displays the date and time of the last EasyList/EasyPrivacy update.
  • New: Added a close button to the settings page when opened over another page.
  • Fix: Middle-click for opening a new tab with experimental referrer blocking enabled may now work.
  • Fix: Removing all settings or importing a backup will now actually remove the settings instead of setting them to null.
  • Fix: More settings are removed when resetting settings.

New in JS Blocker 3.2.8a (Apr 8, 2013)

  • Fix: Resolves issues with retina graphics on the settings page.

New in JS Blocker 3.2.8 (Apr 6, 2013)

  • New: Retina-ready graphics.

New in JS Blocker 3.2.7 (Mar 25, 2013)

  • Minor changes.

New in JS Blocker 3.2.6 (Feb 22, 2013)

  • Fix: Resolves an issue where webpages may open a blank new tab or window and complain that a pop-up blocker may be enabled, even if one isn't. For users who do not wish to update, affected webpages should be fixed by allowing "Window resize functions".
  • Fix: Improves reliability of simple referer blocker.

New in JS Blocker 3.2.5 (Jan 28, 2013)

  • Changed: Default for setting for "Automatically block scripts/frames from" is now "Blacklist only" if EasyList was successfully downloaded.

New in JS Blocker 3.2.4 (Jan 21, 2013)

  • Fix: Blocked and allowed items list will now display properly in WebKit nightlies.
  • Changed: Wording from "Nowhere" to "Blacklist only" for the "Automatically block [kind]s from" settings.
  • Changed: Code optimizations and memory usage improvements. No longer using setInterval to monitor page URL for history state changes. Up to 85% faster rule matching.

New in JS Blocker 3.2.3a (Jan 12, 2013)

  • Fix: Resolves an issue where whitelist and blacklists for All Domains would be ignored following 3.2.3.

New in JS Blocker 3.2.3 (Jan 12, 2013)

  • Fix: Resolves an issue with rules not appearing as expected in the rule list.

New in JS Blocker 3.2.2 (Jan 12, 2013)

  • Fix: Resolves an issue with rule priorities.

New in JS Blocker 3.2.0a (Jan 12, 2013)

  • New: Blacklist and whitelist has been completely overhauled and now utilizes the power of EasyList. It will be updated automatically every 5 days when Safari is restarted.
  • New: In the main window, item headers (SCRIPTS, FRAMES, etc.) are now clickable. You can easily allow or block all of the items in the list with the option to exclude blacklisted or whitelisted items from being allowed or blocked.
  • Changed: Blacklist and whitelist rules can no longer be viewed in the rule list. A future update may allow for editing these lists, but for now it's either all in or all out (choose "Ignore Blacklist" or "Ignore Whitelist" to opt-out).

New in JS Blocker 3.1.6 (Jan 7, 2013)

  • New: Added a "Not Used" and "Used" filter to show rules that haven't or have been used within the past hour, day, week, month, or year. Because this is a new feature, all rules will be considered to be not used at all until used after this update.
  • New: Filter bars in the rule list can be hidden via the User Interface settings.
  • New: Enabling expert mode will now allow you to convert existing simple rules into expert ones.
  • New: Added Solve Media to script whitelist.
  • New: A prompt to remove all snapshots has been added when rule snapshots are disabled from the settings page.
  • New: Temporary rules can now be ignored when a new snapshot is created.
  • New: Added a reload rules button to the rule list.
  • Changed: Code optimizations.

New in JS Blocker 3.1.5 (Dec 3, 2012)

  • New: Added reCAPTCHA to whitelist.
  • New: Snapshots equal to the current rule set will glow.
  • New: Snapshot comparison can be done directly from the rule list if viewing a snapshot.
  • New: Snapshot comparisons can now be used as a temporary rule set even when leaving the rule list.
  • New: All snapshots can be removed at once from the About tab of the settings page.
  • Changed: Code optimizations.
  • Fix: When using a large font, "Show Hidden" is no longer overlapped by the JS Blocker name.
  • Fix: Snapshot limits will now properly respect the setting.

New in JS Blocker 3.1.4 (Nov 15, 2012)

  • Changed: A "Contribute" button is now always visible for users who opted to "Unlock Without Contributing".
  • Fix: Resolves an issue where clicking the "Show # more" link for unblocked scripts would result in a zoom window being displayed.
  • Fix: Adding a rule via "Some" in expert mode now works as expected.

New in JS Blocker 3.1.3 (Oct 25, 2012)

  • New: A setting item has been added to preserve JS Blocker's disabled state across Safari restarts. It is disabled by default.

New in JS Blocker 3.1.2 (Oct 9, 2012)

  • New: Unlocking JS Blocker without being able to contribute is now even easier.
  • Fix: Misc. bug fixes.

New in JS Blocker 3.1.1 (Sep 26, 2012)

  • Changed: The toolbar item is always enabled if JS Blocker is disabled so it can be re-enabled from an inactive tab or Top Sites.
  • Fix: Decreased memory usage overtime.

New in JS Blocker 3.1.0 (Sep 13, 2012)

  • New: Keyboard navigation helps you get around JS Blocker using only the keyboard. Must be manually enabled from the settings page.
  • Changed: Adding a rule from the rule list will show the new rule without having to manually reload the list.
  • Changed: Updated Default and OS X Lion themes.
  • Fix: Improved poppy animation speed when a pulsating button was present in it.
  • Fix: Resolves an issue where adding rules in the simple UI with simplified rules disabled would not work as expected.

New in JS Blocker 3.0.8 (Sep 10, 2012)

  • Changed: Smoother scrolling in rule list.
  • Changed: Added some helpful information for Other Features in the settings page.
  • Fix: Resolves an issue where adding a rule via the expert UI may fail.

New in JS Blocker 3.0.7 (Sep 6, 2012)

  • Fix: Further improves compatibility with Safari < 6 when enforcing autocomplete.

New in JS Blocker 3.0.6 (Sep 6, 2012)

  • Fix: Increased security when using the webpage alert override function.
  • Fix: Restores compatibility with Safari < 6.

New in JS Blocker 3.0.5 (Sep 5, 2012)

  • New: A context menu item "Load # Blocked Elements" lets you quickly load all embeds, objects, videos, and images that were blocked just once.New: The page selector will now display the number of items blocked and allowed next to the URL.Changed: Improved animation on settings page prevents flickering.Changed: Increased display speed of new poppies when an existing poppy is already open. The new poppy will start instantly instead of waiting for the existing one to be removed.
  • Changed: Use Mutation Observers instead of DOMNodeInserted.Changed: Moved Quick Add settings to Rules.
  • Fix: Corrected height of actions bar in rule list when using a large font.Fix: Settings page now uses the correct font.Fix: Resolves an issue where rules were not exported into a full backup.

New in JS Blocker 3.0.4 (Aug 25, 2012)

  • Fix: Improved logic for missing toolbar item prevents false positive warnings.

New in JS Blocker 3.0.3 (Aug 25, 2012)

  • Fix: Resolves an issue where some strings may not work in Windows causing Snapshots to not work at all.
  • Fix: Resolves an issue where JS Blocker may not work after the update to 3.0.0.
  • Fix: Resolves an issue where wording for certain items may be incorrect in the simple rule list.
  • Fix: The find bar is now correctly positioned.

New in JS Blocker 3.0.0 (Aug 24, 2012)

  • New (Pay-for): Snapshots. If you accidentally remove or change a rule, you can easily undo the change by loading a snapshot of the previous rule set and recovering whatever you need to. Snapshots are created any time a rule is modified, added, or removed. Up to 15 snapshots will be stored, but you can also choose to keep some permanently—those won't count towards the storage limit.
  • New: Quick Add: add a rule just by clicking on an item once. Successive clicks while in simple mode will select parts of the host. A press-and-hold will trigger the standard UI. Quick Add can be enabled under the User Interface settings.
  • New: A setting has been added to disallow automatic rule creation when Private Browsing mode is enabled. This is now the default action when expert features are enabled and has no effect if they aren't since automatic rules do not exist in simple mode.
  • New: Like in expert mode, simple mode has gained the ability to detect if a rule exist and, if it does, prompts you to delete it or create a new one. This avoids cluttering the rule list with similar rules that do the opposite of each other.
  • New: The rule list will now always have a bubble indicating the type of rule, even when expert features are enabled.
  • New: A new actions toolbar has been added to the rule list to replace the text that appeared on top of the filter bar.
  • New: Whitelist and blacklist rules are now distinguishable in the simplified rule list. They have a black dot in the center of their bubble.
  • Changed: Simplified rules are now enforced for new installs and cannot be disabled. Regular expression rules can still be created in simple mode from the rule list by starting the rule with a "^".
  • Changed: The actions bar in the main window is now statically positioned at the top.
  • Changed: Code optimizations.
  • Changed: Removed incomplete Twilight theme.
  • Changed: Disabling JS Blocker will now disable every aspect of it rather than just the resource blockers.
  • Changed: Block/Allow/Hide All can now be for All Domains.
  • Fix: Resolves an issue where changing just one portion of a combined simplified rule would change the entire thing.
  • Fix: Lots of fixes regarding automatic rules and expert features.
  • Fix: A warning has been added to let users know that JS Blocker cannot function when its toolbar icon is hidden.

New in JS Blocker 2.8.0 (Aug 9, 2012)

  • New for Donators: A full backup including all settings and rules can now be created and imported. This backup method can be accessed via the Settings page in the About section. Note that it is not compatible with the rule backup that can be created from the popover.
  • New: A new UI has been added that makes managing rules even easier. In the rule list, rules will appear in plain English without complex regular expressions. This UI is the default for new installations, but because it requires a new rule set, existing installations will not be upgraded automatically. You must manually update them by clicking Convert Rules. This can also be done from the settings page. To turn on the new rule display, open the settings page and check Use simplified rules under the User Interface tab. The setting will be visible only if expert features are disabled.
  • New: Custom alert boxes can now be scrolled off the screen just like in Mountain Lion.
  • New: Whitelist and blacklist rules can be hidden from the rule list making browsing through custom rules even easier.

New in JS Blocker 2.7.0 (Jul 5, 2012)

  • New: Added ability to select multiple items with checkboxes to quickly allow or block a few items on a webpage. It can be accessed using the "Block/Allow or Hide…" button and selecting "Some".
  • New: Added ability to hide items in the main window. In the expert interface, there will be a new radio labeled "Hide". In the simple interface, the "Allow:/Block:" label is now a select box containing a "Hide" option.
  • New: Added a UI to distinguish between unblockable frames and blockable ones. Unblockable frames will appear italicized and clicking on the host/URL will notify the user that it cannot be blocked and how to go about blocking it another way.
  • Fix: Resolves an issue where the custom font feature would not work.
  • Fix: Resolves an issue where the global page was still using the Google hosted jQuery.

New in JS Blocker 2.6.1a (Jun 15, 2012)

  • New: A setting has been added to hide the donator-only features from the settings page.
  • Fix: Resolves issues with temporary rule actions not working for non-donators.

New in JS Blocker 2.6.1 (Jun 15, 2012)

  • Changed: Made it more clear what will happen when the trial expires by mentioning that it only refers to the donator-only features.
  • Changed: Creating temporary rules is no longer a donator-only feature.

New in JS Blocker 2.6.0 (Jun 14, 2012)

  • New for Donators: Added new "other" rules: prevent webpages from disabling autocomplete, and ability to use a custom font for webpages.
  • New: All settings are now on their own dedicated page instead of within the Safari extension preferences. You can access this page by clicking "Settings" from the popover, or from the extension preferences.
  • New: The script blocker can now be turned off.
  • New: A two-column layout makes it even easier to see at a glance what's allowed and what's blocked. The Allow/Block buttons have been removed in favor of clicking on the host/URL. To access the previous functionality, click the "?" to the left of an item.
  • New: Easier navigation between frames on webpages makes it more obvious when a page has inline frames.
  • Changed: The video blocker is now its own thing instead of part of embeds and objects. When updating to 2.6.0, previous embed, object, and video rules will copy over to the new video rules.

New in JS Blocker 2.5.0 (May 28, 2012)

  • New for Donators: A new form of rules—Other Rules—allows for completely custom actions on a per-domain basis. The current set of other rules includes: alert dialog blocker, confirm dialog blocker, context menu override blocker, custom zoom level for webpages, and window resize blocker.
  • Changed: Block/Allow buttons will now be hidden when JS Blocker is disabled.
  • Changed: Theme tweaks.
  • Changed: Clean up code now executes every 3 minutes instead of every 5.
  • Fix: Resolves an issue where the advanced rule editor would not be aware if the last added rule was temporary.
  • Fix: Resolves an issue where some forms would not be properly ignored by the anonymizer function.
  • Fix: Resolves an issue where URLs ending with a "?" would not update the JS Blocker UI.
  • Fix: Improved fallback code for when injected scripts no longer have access to the safari object. JS Blocker UI will now still update, but inform the you that the data may be outdated.

New in JS Blocker 1.5.1 (Mar 5, 2012)

  • Choose to allow a few scripts on a webpage (Allowing Manually), or choose to block some (Blocking Manually).
  • A whitelist and blacklist are automatically installed to help with common good and bad scripts.
  • Automatic rules make it easy to block any script that isn't from the same domain of the webpage you're viewing.
  • Robust rule editing allows for precise control of what's allowed or blocked.
  • Control scripts from inline frames on a webpage, too.