2

I am working on a lot of ColdFusion legacy code. I am seeing

<cfform action="xxxx.cfm" method="POST" enablecab="No">

I am working on retiring <cfform> but I am at a loss as to what enablecab="No" does.

QA has spotted the change, but I am at a loss as to how to describe the change. This system was recently updated from CF10 to CF2016

James A Mohler
  • 11,060
  • 15
  • 46
  • 72
  • This page says the attribute is deprecated since MX7: https://helpx.adobe.com/coldfusion/deprecated-features.html – Bernhard Döbler Oct 19 '18 at 22:33
  • I spotted that part. But I don't know what a no vs non-existent would do. Maybe the person who wrote the code I am dealing with did understand the concept of optional attributes. – James A Mohler Oct 19 '18 at 22:45

2 Answers2

3

The enableCAB attribute was around when Java applets were still a thing and ColdFusion used them to make things such as <cfform> (and its input parts) "more rich". Enabling enableCAB prompted the user to download the required applet classes as a .cab file (Microsoft's archive format) speeding up the transfer. It was thus only available for Internet Explorer and required Microsoft's Code Signing (Authenticode).

The attribute's functionality was removed without substitution in ColdFusion MX (ColdFusion 6) back in 2001. However, the attribute is still read and completely ignored in newer versions.

Alex
  • 7,743
  • 1
  • 18
  • 38
1

Short answer:

It does nothing

Long answer:

Normally, when <cfform> gets an attribute that is not on its official list, it will do a passthrough. enablecab does not. It just disappears into the æther.

Also it does not do any kind of validation. It used to have to be truthy or falsy. But now it takes anything.

James A Mohler
  • 11,060
  • 15
  • 46
  • 72