PyCharm 2017.3 Help

Configuring JavaScript Debugger and JetBrains Chrome Extension

This feature is supported in the Professional edition only.

Installing JetBrains Chrome Extension

The JetBrains Chrome extension is mainly responsible for debugging JavaScript in Chrome and Dartium. During a debugging session, the extension also supports Live Editing of HTML, CSS, and JavaScript, and shows the DOM tree and the source code of the actual page.
When the extension is installed, the /help/img/idea/2017.3/chrome_extenstion_jb_icon.png icon is displayed next to the Chrome address bar.

To install the JetBrains Chrome extension

  1. Open the JetBrains IDE Support page in Chrome Web Store.
  2. Click the Add to Chrome button /help/img/idea/2017.3/chrome_extension_add_to_chrome.png, and then click Add in the Confirm New Extension dialog box that opens. The Add to Chrome button changes to Added to Chrome /help/img/idea/2017.3/chrome_extenstion_added_to_chrome.png.

Configuring the JavaScript Debugger

Debugging JavaScript in PyCharm is supported through the JavaScript Debugger plugin. The plugin is activated by default. If the plugin is disabled, enable it on the Plugins page as described in Enabling and Disabling Plugins.

Debugging of JavaScript code is supported in Google Chrome and other browsers of the Chrome family with the JetBrains IDE Support extension installed as described above.

During a debugging session, PyCharm considers any injected JavaScript code in a web page opened in the browser as subject for debugging. This means that you cannot use one single instance of a browser for browsing and for debugging at the same time. For Google Chrome you can solve this problem by configuring PyCharm to use a separate Chrome user profile for debugging.

To ensure successful debugging, it is enough to specify the built-in web server port and accept the default settings that PyCharm suggests for other debugger options.

To set the built-in web server port

  1. Open the Debugger page: choose File | Settings for Windows and Linux or PyCharm | Preferences for macOS and click Debugger under Build, Execution, Deployment.
  2. In the Built-in server area, specify the port where the built-in web server runs so the Chrome extension can connect through it. By default this port is set to the default PyCharm port 63342 through which PyCharm accepts connections from services. You can set the port number to any other value starting with 1024 and higher.

Optionally

  1. Suppress calls to the files on the built-in server from other computers or from outside PyCharm by clearing the Can accept external connections or Allow unsigned requests checkbox respectively.
  2. On the Data Views page under the Debugger node, configure advanced debugger options: enable or disable Inline Debugging, specify when you want to see tooltips with object values and expressions evaluation results, etc.

Activating, de-activating, and uninstalling JetBrains Chrome extension

Control over the JetBrains Chrome extension is provided through the chrome://extensions page:

  • To open the page, just type chrome://extensions in the Chrome address bar.
    Alternatively click Customize and control Google Chrome (/help/img/idea/2017.3/chrome_extension_control_icon.png), choose Settings on the context menu, and then click Extensions on the chrome://settings page that opens.
  • To deactivate the extension, clear the Enabled checkbox. The checkbox name changes to Enable.
  • To activate the extension, select the Enable checkbox.
  • To uninstall the extension, click the Remove from Chrome button /help/img/idea/2017.3/chrome_extension_remove.png.

Overriding the default CORS settings

Suppose the page you are debugging requests a resource which is, for security reasons, protected against access through CORS settings. You can enable access to the protected resources by changing the Chrome extension options.

To override the default CORS settings

  1. Right-click /help/img/idea/2017.3/chrome_extenstion_jb_icon.png and choose Options on the context menu. A web page with Chrome extension options opens showing the parameters to connect to PyCharm.
  2. In the Force CORS text box, type the pattern that defines the URL addresses you want to make accessible, for example: http://youtrack.jetbrains.com/rest/*.

Changing the default port for connecting to PyCharm

During a debugging session, the Chrome extension listens to the port of the JetBrains IDE from which the extension was invoked. Each IDE including PyCharm has its own default port on which it starts.

If for some reason the default PyCharm port is already busy, PyCharm finds the closest available port and starts on it. This results in a conflict: PyCharm is running on a "new" port while the Chrome extension still listens to the port of a previously started product and fails to establish connection with PyCharm.

The conflict reveals when you initiate a debugging session from PyCharm: the extension fails to connect through the default port, PyCharm waits for connection from the extension and displays the following message with the port number where it is actually running (for example, current port 63343):

js_debug_install_extension.png

To fix the problem, specify the actual PyCharm port in the Chrome extension options

  1. Right-click /help/img/idea/2017.3/chrome_extenstion_jb_icon.png and choose Options on the context menu. A web page with the Chrome extension options opens showing the parameters to connect to PyCharm.
  2. In the IDE Connection area, specify the actual PyCharm port in the Port spin box.

See Also

Last modified: 15 September 2017