03-19-2019 11:55 AM
We're utilizing Cisco Web Communicator components from within chrome extension for several years
After switching to SDK 11.8.2 it is observed that initialization of SDK takes awhile.
What was found is:
1. initialize() call leads to invocation of Cisco Web Communicator extension
2. Cisco Web Communicator extension uses chrome.management.get() call in order to get extension name
for payload to be passed into Cisco Web Communicator native components
3. chrome.management.get() is async call, but Cisco Web Communicator extension never waits for
its completion and passes empty name as part of payload for Cisco Web Communicator native component
4. Cisco Web Communicator native component does not like that and triggers following entry in its log
===
2019-03-19 14:47:53,848 ERROR [0x00006b44] [src\jsdk\src\ClientManager.cpp(318) ] [webuc] [webuc::ClientManager::run] - Syntax error: parseChannelClientMessage ChannelClientMessage parsing failed. Error: Object with name: name does
n't exist. [{"ciscoChannelMessage":{"ciscoSDKClientMessage":{"name":"init","messageId":"0"},"client":{"id":"150968.101","url":"chrome-extension://cpaaimhcipgeaogdbdieicgfjbingani/","hostname":"cpaaimhcipgeaogdbdieicgfjbingani","type":"
Chrome"}}}]
===
5. Strangely enough if initialization attempt is being retried for at least a period of 90seconds, eventually SDK gets initialized.
6. This delay on initial load is however considered as a big issue by one of our customers
7. The only proper way of addressing this we would assume is to wait for chrome.management.get() completion before
connective it to a native port.
8. For the reference, versions of components being used:
Cisco Web Communicator extension: 3.1.0.363
Cisco Web Communicator: 11.8.2.254458
9. This problem is observed only in case if Cisco Web Communicator is being utilized from chrome extension.
03-20-2019 04:56 AM
I am also facing a similar issue.
I have developed a chrome extension using jabber SDK 11.8.2.
When calling cwic.SystemController.initialize() from the extension, it works only when I open the "Inspect Views" of my extension from the chrome://extensions.
Without "Inspect Views", it doesn't seem to initialize properly.
Here are the logs from my chrome extension when I open "Inspect Views". : https://ibb.co/d2xQrrN
Without "Inspect Views" : https://ibb.co/K6QFCfR
It should be noted that there is no “send ciscoSDKServerMessage 'userauthorized' to client” log when initialization is not proper.
03-20-2019 10:13 AM
I would highly suggest opening a ticket with DevNet Developer Support: https://developer.cisco.com/site/support/
Sounds like a specific technical issue inside the Jabber SDK component, that will require engineering escalation, logs, validation with the developer, etc...
03-25-2019 05:30 AM
03-28-2019 08:26 AM
Hi Bryan,
The cause is “name doesn't exist” in client message.
The correct init message should be as follow:
[{"ciscoChannelMessage":{"ciscoSDKClientMessage":{"name":"init","messageId":"0"},"client":{"id":"732462.101",”name”:” Video Call Demo”,"url":"chrome-extension://ibboolpkcgdjjbmdfapaeplihhbmlkbi/","hostname":"ibboolpkcgdjjbmdfapaeplihhbmlkbi","type":"Chrome"}}}
In your log, name:”Video Call Demo” is missing.
Please goto chrome -> more tools->developer tools-> console window, activate the video tab and input “window.document.title” to see the value, it should not empty.
Please use the Cisco sample code and check whether you are experiencing the same issue or not.
Regards,
David
03-28-2019 10:42 AM
Hi David,
Your comment is certainly right for the case when tab exist. We do not have a tab however,
we're interacting with SDK from extension background page.
And for this case this code exist in Cisco Web Communicator 3.1.0.363
===
chrome.management.get(f, function(a) {
console.log("Info for port.sender.id:"),
console.log(a),
a.name ? d(a.name) : console.log("Strange: object has no name")
}));
===
So there is an attempt in proxy extension to detect appropriate name/title of caller for our case, however result of
chrome.management.get is not applied to init payload, since it is executed asynchronously.
Thanks,
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide