Since Chrome 42 was released, NPAPI plugins are disabled by default and the support for these plugins will be completely removed in Chrome 45 (expected to be released in September). This means no more UCF in Chrome. So, what will EMC do?
Considering that in the latest Webtop release (6.8) only 3 browsers are supported (IE 10/11, Firefox 24.6 and Safari 6.1.4/7.0.4) most likely nothing. Besides, this move from Google can “help” EMC to keep pushing D2/xCP to customers and reinforce the “Webtop won’t be developed anymore” message. But, what does this move means for current users?
I think sooner or later Java will be removed from every browser. Spartan/Edge won’t even support Microsoft’s own ActiveX, and considering I don’t see Oracle developing a new plugin based on PPAPI (which by the way is not a standard protocol and it’s only supported by Chrome and Opera), so it wouldn’t surprise me to see Mozilla announcing they’re dropping support for NPAPI in future releases.
This means that by the end of this year, there will be most likely 6 browsers (Chrome, IE, Spartan/Edge, Firefox, Opera, Safari) and EMC will provide support only for 3 of them (2 being “obsolete”, IE and Firefox 24.x). And even though we know that (until now) even without being officialy supported webtop (mostly) works with any browser, this won’t be the case much longer (as long as you need to transfer content).
In the end, we’ll have to deal with angry users that like Chrome because it’s cool and because they don’t want to use the corporative IE6/7/8 (not supported also) or the company-branded browser they’ve come to hate through the years.
Until know, my “usual” hack for matching IE/Firefox performance with Chrome’s was mainly disabling the ucfinvoker in the main component and any plugin not used in app.xml. This makes webtop to load the ucf libraries only when needed instead of doing it every time the user login so it seems that the main component loads faster (yes, I’m cheating :D). And I’m also considering disabling UCF transfer for view action and leaving UCF enabled only for edition, so read-only users won’t be disturbed with error messages/warnings when using Webtop.
However, there’s still the problem of dealing with the users that cannot use their preferred browser to do their job and convincing them that is not Documentum’s fault…
Edit: Even better solution (removing UCF in chrome)
Extend the evaluator class defined in the action (LaunchViewEvaluator, LaunchEditEvaluator, ContentTransferLaunchComponentEvaluator, etc.) with:
public class ContentTransferLaunchComponentEvaluator extends com.documentum.web.contentxfer.ContentTransferLaunchComponentEvaluator {
public String evaluate(String strName, String strAction, IConfigElement config, ArgumentList arg, Context context, Component component){
HttpServletRequest request = (HttpServletRequest)component.getPageContext().getRequest();
String userAgent = request.getHeader("User-Agent");
if (userAgent!=null && userAgent.length()>0 && userAgent.indexOf("Chrome")>=0) {
return "http";
}
return super.evaluate(strName, strAction, config, arg, context, component);
}
}
Edit v2: The best solution:
1. Check PanfilovAB post about Component Qualifiers and check the request listener class: Component qualifier
2. Create the following class:
public class CustomContentTransferConfig extends com.documentum.web.contentxfer.ContentTransferConfig {
@Override
public String getContentTransferMechanism(){
String userAgent=ComponentRequestListener.getBrowserUserAgent();
if (userAgent!=null && userAgent.length()>0 && userAgent.indexOf("Chrome")>=0) {
return "http";
}
return super.getContentTransferMechanism();
}
}
3. Modify webtop\WEB-INF\classes\com\documentum\web\contentxfer\ContentTransferConfig.properties with:
configReaderClass=CustomContentTransferConfig
Done!