This approach makes the template a little harder to read and also seems to lead to the confusing possibility of two different disabled flags and titles being applied in the template.

It seems to me that it would be clearer to have something like this:

```javascript
         var isInstalledInUserFolder = (entry.installInfo && entry.installInfo.locationType === ExtensionManager.LOCATION_USER);
         context.allowRemove = isInstalledInUserFolder;
         context.allowUpdate = context.showUpdateButton && context.isCompatible && context.isCompatibleLatest && isInstalledInUserFolder;
```

and then have another variable like `context.updateNotAllowedReason` or something like that with the appropriate string for the button title.

How does that sound?