Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I use Chrome across 4 different workstations and I have my extensions synced across all of them.

The problem I have is that one of the extensions (Gestures for Chrome) works great if you've got an actual mouse, but on a trackpad on Ubuntu, it just gets in the way.

If I disable it on the Ubuntu machine, it gets disabled on all Chrome installations due to its internal sync mechanism.

Q: Can I selectively disable an extension on just a single machine?

share|improve this question

5 Answers 5

up vote 11 down vote accepted
+200

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 neet a dummy .dll from any NPAPI extension like Screen Capture by Google
    Install the extension and search the file screen_capture.dll in Chrome's user profile folder
    ..\profile\Default\Extensions\cpngackimfmofbokmjmljamhdncknpmg\5.0.5_0\plugin

  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

    "plugins": [
        { "path": "your_npapi_plugin.dll" }    
    ],
    
  4. Modify the background.html file, also described on the Stackoverflow answer above.

    <script>
    var plugin = document.getElementById("MyNPAPIPluginId");
    ...
    </script>
    

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

share|improve this answer
    
I like this for its ingenuity. The only downside is that I'd need to register the dll for every Windows machine I want to run the extension on, but that isn't too much work as a one-off. –  growse Jan 9 '13 at 22:38
1  
Why don't you edit the files once and copy the whole extension folder per FTP, USB Stick, Dropbox or whatever over to every PC and laptop? Are there more than your 2 laptops and 2 PCs from the question? The .DLL is a file which you have to copy into that extension folder. After that you have to edit 2 files. Thats it in theory. –  nixda Jan 9 '13 at 22:51
    
+1 Very good study –  RTOSkit Jan 13 '13 at 5:50
    
Well, Google has decided to drop NPAPI support for future versions. –  nixda Sep 24 '13 at 7:37

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}

share|improve this answer
    
By far the best answer. –  FreeAsInBeer Jun 10 at 18:55
    
@maestr0 correct, as stated in my answer. –  WORMSS Aug 12 at 13:46

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.

share|improve this answer
4  
Having to manually keep 19 extensions in sync across multiple instances, just because I don't want to sync a single extension across multiple instances seems to be a bit of a bad trade. –  growse Jan 9 '13 at 16:18
2  
As I told you this is not what you are looking for, and AFAIK there is no solution for single extension yet. If someone would know will come and help you. I'm also curious to see it if its possible. The best way to sync the extension manually make a bookmarked folder and just put the bookmark of your favorite extensions their. –  avirk Jan 9 '13 at 16:22
    
+1 Correctly way –  RTOSkit Jan 13 '13 at 5:50
1  
When you have only a few extensions installed, this is definitely a more user-friendly solution than all the other proposed hacks. –  jturcotte Jun 13 at 9:48
    
Not ideal, but better than goofing around with copying dll's into new folders, from my perspective. +1 –  stevemidgley Aug 22 at 23:58

Can I selectively disable an extension on just a single machine?

The simple answer is: No.

share|improve this answer

This is not to be a resolute answer, but another prospective to examine the problem.

The Chrome sync system does not allow in any way, customizing the ratings by a single machine; And any solution with extra extensions that operates with the flag of disable/enable in your extention, will be fail!

Because another machine that is simultaneously using the same user account, will reflect the change.

A way to avoid this exchange of information is how well he proposed @avirk is disable the sync on extensions, but it seems that this solution is not appropriate for your environment.

Then I will propose two more ideas that can be adopted to obtain the required result:

  • Create a second account would allow you to customize your own group of extentions (this solution I personally use to have a different profile of ScriptSafe on different machines)

The other proposal is a little less conventional and could be considered a bad hack, but I will describe it in every way, so that you have a wider choice.

  • Navigate to the folder of the plugin in question: .config/google-chrome/Default/Extensions/jpkfjicglakibpenojifdiepckckakgk/versionfolder and clears the contents into the file "background_page.html"
    "This example can be applied only to the plugin: Gestures for Chrome (TM)"

This generates an exception when loading a page, that will not allow to the event code in your extension run correctly. So we will have the local disablement for this extension.

Remember that any time you receive a new update for your extension,you must redo this operation in the new version folder.

share|improve this answer
1  
I came here to edit my post, and you already posted my another solution which is very easy to create another account/profile to use Chrome :) –  avirk Jan 14 '13 at 15:10

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.