How to disable Chrome extensions without disabling them across multiple synced devices

May be this is not what you are looking for but you can try this. Open the settings menu within Chrome by clicking on tri-line/wrench icon on right corner. Now open the Advanced sync settings..

enter image description here

enter image description here

Now select the option choose what to sync and then unmark the Extensions option. Now your extension will not sync with other PC's.


You could install the extension you want as a Local extension.

  1. Find the ID of the Extension you want from chrome://extensions with developer mode enabled.

  2. Navigate to your Google installation directory. Windows: %localappdata%\Google\Chrome\User Data\Default\Extensions\{Extension_ID}\{Version_Number}

  3. Save it somewhere.. User Directory maybe?

  4. Return to chrome://extensions with developer mode enabled and press Load unpacked extension. And navigate to the new copy of the extension.

  5. You should see you have the extension twice now.. Disable the real one.

I say Disable because there is a bad side to this approach and that is you lose automatic updates and you will need to repeat the above steps over and over again every time it updates.

If you are not sure which is the real and your new copy, look under the ID tag for Loaded from: {Path_To_Your_Copy}


Based on the security concern, Chrome doesn't sync any extension which contains an NPAPI plugin.

Source

What is a NPAPI plugin?

Code running in an NPAPI plugin has the full permissions of the current user and is not sandboxed or shielded from malicious input by Google Chrome in any way. You should be especially cautious when processing input from untrusted sources, such as when working with content scripts or XMLHttpRequest.

Source

Theory

If we modify your extension in a way that Chrome recognize the extension using NPAPI, you should be fine.

How to

  1. First, you need a dummy .dll from any NPAPI extension like Screen Capture (by Google). The extension was removed from Google Play store in the meantime because Google decided to drop NPAPI support. But this doesn't matter for our scenario. Fortunately the official Screen Capture wiki still contains the source code. We don't need the complete extension, only the NPAPI .dll screen_capture.dll. Download it directly

  2. Second, go to the extensions folder that should not be synced. In your case Gestures for Chrome.
    ..\profile\Default\Extensions\jpkfjicglakibpenojifdiepckckakgk\1.12.1_0

  3. Modify the manifest.json file and add the NPAPI plugin as described on Stackoverflow or even better on developer.chrome.com

    {
      "name": "My extension",
      ...
      "plugins": [
        { "path": "screen_capture.dll" }
      ],
      ...
    }
    
  4. Modify the background.html file of your extension you don't want to sync, also described on the Stackoverflow answer above.

    <embed type="application/x-my-extension" id="pluginId">
    <script>
      var plugin = document.getElementById("pluginId");
      var result = plugin.myPluginMethod();  // call a method in your plugin
      console.log("my plugin returned: " + result);
    </script>
    
  5. It may be necessary to re-enable NPAPI support in the future via chrome://flags/#enable-npapi

From here you are on your own. I don't know enough about extension coding.
Thats why it's a theory :)