Troubleshooting Browser Extension Performance and Crashes

Troubleshooting browser extension performance and crashes

Ensure developer logging is disabled

In the Extension Console > Settings tab, ensure that "Log values" and "Display messaging in browser console" options are toggled OFF.

If the "Display messaging in browser console" field is not visible to you, it's off by default.

Ensure runtime console logging is disabled

By default, PixieBrix does not log to the browser console because console logs leak memory. (Memory is not freed until you close the tab.)

However, if you originally installed an old version of the PixieBrix extension, your extension may still be logging to the console.

In the Chrome Dev Tools, select the PixieBrix context:

In the console, run the following command so disable runtime console logging:

window.setRuntimeLogging(false)

When you refresh the page, you should now see the following INFO message in the logs indicating runtime logging has been successfully disabled:

PixieBrix: runtime logging is disabled. Enable it by calling window.setRuntimeLogging(true) in an extension context.

Restart your browser

PixieBrix uses the browser's IndexedDB database for storing the package registry and logs. Unfortunately, Chromium has some known IndexedDB bugs. In particular, database requests might hang after upgrading the PixieBrix browser extension during an active browsing session.

If your mods are not loading in the Extension Console, Page Editor, or Sidebar, try completely restarting your browser.

Completely restart your browser, not just the PixieBrix browser extension. Restarting the browser resets all IndexedDB database connections.

Evaluate Mods for Inefficient Button Location and Trigger Selectors

Inefficient Button and Trigger selectors can slow down the performance of heavy pages/applications because PixieBrix must continuously monitor the page.

To ensure fast page performance when using Buttons and Triggers:

  • Use native CSS3 selectors for Button locations and Triggers. PixieBrix supports jQuery extensions for ease of automation, but the jQuery selector extensions not supported by native web APIs, e.g., the Mutation Observer API. The PixieBrix Page Editor will warn you when using a non-native selector for a button location or trigger

Last updated