Premiopolis Your writeup is quite helpful. Let's run through these one-by-one.
Question: does the ZXPSignCmd file require an upgrade for CEP 8 as well? |
Honestly, I'm not sure about this. I would suggest testing an unsigned panel. If the unsigned panel works but the signed one doesn't, then your issue is likely in the signing system and should be reported (e.g. "Unsigned panel stops working with current signing system").
Question: is the CSInterface.js the main thing defining which CEP version? |
No. The CEP version is baked into the application (see here for the table). CEP stands for Common Extensibility Platform and refers to the set of technologies that enable scripting/panel extensions across Adobe applications. In the past, CEP used to come in two flavors: Flash and HTML. Both had different interfaces that connected to the same system (presumably). The Flash interface is no longer available, leaving only the HTML one. This is also why you'll see verbiage in the documentation that reads "CEP HTML engine". This is to distinguish it from the old (dead) CEP Flash engine. To see the list of technologies that make up the CEP HTML engine, see this table.
The CSInterface.js file is simply a JavaScript-side wrapper interface to the CEP system built into the application. Adobe updates it in lock-step with the underlying CEP engine to ensure that any new features are made available. You will notice that some APIs are marked with comments like "Since 6.1.0". This means that the API became available (or was implemented/enabled on the JS side, at least) with that version of CEP - it's a hint that says "don't try to use this with earlier versions of CEP".
I would suggest comparing the CEP7 and CEP8 versions of the CSInterface.js file. From a high level, they both have the exact same number of lines. If you take a look at the diff, there are a mere 3 changes in the interface: a version number change, an added null-check, and a comment adjustment. Certainly the underlying CEP8 changes are far, far larger than that.
2 - Comments in the manifest.xml make the plug-in unavailable ... Turned out the entries didn't stop the plugin from appearing, but commenting them out did. |
You must be extremely careful when commenting out lines in the CEP XML manifest files. Double-hyphens ("--") are illegal within comments in XML documents and will cause the parsing to fail. This will cause the CEP extensions to fail to load (take a look at the logs as shown in the post at that link and you'll probably see something similar).
To sidestep this issue and actually verify that there's any connection (doubtful), add a space between the hyphens when you comment them out.
3 - CSInterface version does not affect whether the plug-in appears I tested with v6, 7 & 8 and in all cases the plugin appeared in the menu. I'm continuing with v8. |
I assume you're referring to CSInterface.js here. You're likely good to go with v8, even on v7 CEP platforms. The only changes were comments and an added safety-check.
At this point the plugin appears and runs. Some the functionality has clearly changed. Wrestling with jQuery at the moment. But at least the plug-in is accessible, and the Chrome console is working better than ever. |
This is very likely due to the fact that CEP8 includes a much newer version of the Chromium Embedded Framework (CEF) than CEP7 did. With CEP7 (and earlier) we were effectively working with Chrome 41. With the CEP8 update, we get Chrome 57. A lot changed between those versions of Chrome, especially with respect to the Chrome DevTools. At the very least, this should make debugging CEP8 a more solid experience!
sberic Thanks for all this. Very helpful and much appreciated.
sberic wrote Premiopolis Your writeup is quite helpful. Let's run through these one-by-one. Question: does the ZXPSignCmd file require an upgrade for CEP 8 as well?
Honestly, I'm not sure about this. I would suggest testing an unsigned panel. If the unsigned panel works but the signed one doesn't, then your issue is likely in the signing system and should be reported (e.g. "Unsigned panel stops working with current signing system"). |
I'm not aware of an upgrade, and It definitely does not require an upgrade. I've been successfully singing panels since last posting. All's ok there.
Question: is the CSInterface.js the main thing defining which CEP version?
No. The CEP version is baked into the application (see here for the table). CEP stands for Common Extensibility Platform and refers to the set of technologies that enable scripting/panel extensions across Adobe applications. In the past, CEP used to come in two flavors: Flash and HTML. Both had different interfaces that connected to the same system (presumably). The Flash interface is no longer available, leaving only the HTML one. This is also why you'll see verbiage in the documentation that reads "CEP HTML engine". This is to distinguish it from the old (dead) CEP Flash engine. To see the list of technologies that make up the CEP HTML engine, see this table. The CSInterface.js file is simply a JavaScript-side wrapper interface to the CEP system built into the application. Adobe updates it in lock-step with the underlying CEP engine to ensure that any new features are made available. You will notice that some APIs are marked with comments like "Since 6.1.0". This means that the API became available (or was implemented/enabled on the JS side, at least) with that version of CEP - it's a hint that says "don't try to use this with earlier versions of CEP". I would suggest comparing the CEP7 and CEP8 versions of the CSInterface.js file. From a high level, they both have the exact same number of lines. If you take a look at the diff, there are a mere 3 changes in the interface: a version number change, an added null-check, and a comment adjustment. Certainly the underlying CEP8 changes are far, far larger than that. Question: is the CSInterface.js the main thing defining which CEP version?
No. The CEP version is baked into the application (see here for the table). CEP stands for Common Extensibility Platform and refers to the set of technologies that enable scripting/panel extensions across Adobe applications. In the past, CEP used to come in two flavors: Flash and HTML. Both had different interfaces that connected to the same system (presumably). The Flash interface is no longer available, leaving only the HTML one. This is also why you'll see verbiage in the documentation that reads "CEP HTML engine". This is to distinguish it from the old (dead) CEP Flash engine. To see the list of technologies that make up the CEP HTML engine, see this table. The CSInterface.js file is simply a JavaScript-side wrapper interface to the CEP system built into the application. Adobe updates it in lock-step with the underlying CEP engine to ensure that any new features are made available. You will notice that some APIs are marked with comments like "Since 6.1.0". This means that the API became available (or was implemented/enabled on the JS side, at least) with that version of CEP - it's a hint that says "don't try to use this with earlier versions of CEP". I would suggest comparing the CEP7 and CEP8 versions of the CSInterface.js file. From a high level, they both have the exact same number of lines. If you take a look at the diff, there are a mere 3 changes in the interface: a version number change, an added null-check, and a comment adjustment. Certainly the underlying CEP8 changes are far, far larger than that. |
Thanks. Brilliant. And obvious... now that you say it.
2 - Comments in the manifest.xml make the plug-in unavailable ... Turned out the entries didn't stop the plugin from appearing, but commenting them out did.
You must be extremely careful when commenting out lines in the CEP XML manifest files. Double-hyphens ("--") are illegal within comments in XML documents and will cause the parsing to fail. This will cause the CEP extensions to Re: Node Enabled by Default in 2017.1? (take a look at the logs as shown in the post at that link and you'll probably see something similar). To sidestep this issue and actually verify that there's any connection (doubtful), add a space between the hyphens when you comment them out. |
What a distinction. Double hyphens ok. Double hyphens WITHIN comments are illegal. Key distinction, and again, obvious after you point it out.
All very much appreciated.