SmartClient Version: v8.3p_2013-09-21/Pro Deployment (built 2013-09-21)
Chrome Version 30.0.1599.69 m
There is no stack trace in the developer console
I have a multi tab environment like the showcase and on one of the tabs I have a HTMLPane linked to a SSL site.
From yesterday (7 october 2013), I have been getting a silent error on another tab on which there is a file upload dynamic form.
I put a try/catch around the failing form.saveData call, and get the following error message:
Why would the form try to access my iframe? Why would this only be a issue when the iframe is linked to a SSL site?
Why is this only a issue in chrome (and I think safari to)
The following code in ISC_Core.js is the cause of this issue:
the methode _wh.name is not allowed on a SSL frame, and returns:
SecurityError: Blocked a frame with origin "https://127.0.0.1:8888" from accessing a frame with origin "https://[the page on hte iframe]". Protocols, domains, and ports must match.
I've 'fixed' it by walking through the frames on the window in a reversed order, thereby finding the frame I'm looking for first time
Chrome Version 30.0.1599.69 m
There is no stack trace in the developer console
I have a multi tab environment like the showcase and on one of the tabs I have a HTMLPane linked to a SSL site.
From yesterday (7 october 2013), I have been getting a silent error on another tab on which there is a file upload dynamic form.
I put a try/catch around the failing form.saveData call, and get the following error message:
Code:
form.saveData fail; (SecurityError) code: 18 stack: Error: Blocked a frame with origin "https://[application URL]" from accessing a frame with origin "https://[iframe URL]". Protocols, domains, and ports must match. at Object.isc.HiddenFrame.addMethods._draw (https://[application URL]/esosv2india/esos/sc/modules-debug/ISC_Core.js) at Object.isc.HiddenFrame.addMethods.draw (https://[application URL]/esosv2india/esos/sc/modules-debug/ISC_Core.js?build=20131008:23905:14) at Object.isc.RPCManager.addClassMethods._sendQueue (https://[application URL]/esosv2india/esos/sc/modules-debug/ISC_DataBinding.js?build=20131008:32287:23) at Object.isc.RPCManager.addClassMethods.sendQueue (https://[application URL]/esosv2india/esos/sc/modules-debug/ISC_DataBinding.js?build=20131008:32057:26) at Object.isc.RPCManager.addClassMethods.sendNoQueue (https://[application URL]/esosv2india/esos/sc/modules-debug/ISC_DataBinding.js?build=20131008:31231:31) at Object.isc.RPCManager.addClassMethods.sendRequest (https://[application URL]/esosv2india/esos/sc/modules-debug/ISC_DataBinding.js?build=20131008:31116:25) at Object.isc.DataSource.addMethods.performSCServerOperation (https://[application URL]/esosv2india/esos/sc/modules-debug/ISC_DataBinding.js?build=20131008:45258:35) at Object.isc.DataSource.addMethods.sendDSRequest (https://[application URL]/esosv2india/esos/sc/modules-debug/ISC_DataBinding.js?build=20131008:16485:29) at Object.isc.DataSource.addMethods.performDSOperation (https://[application URL]/esosv2india/esos/sc/modules-debug/ISC_DataBinding.js?build=20131008:16325:21) at Object.isc.EditorActionMethods.addInterfaceMethods.saveEditorValues (https://[application URL]/esosv2india/esos/sc/modules-debug/ISC_DataBinding.js?build=20131008:42408:27) INDEX_SIZE_ERR: 1 DOMSTRING_SIZE_ERR: 2 HIERARCHY_REQUEST_ERR: 3 WRONG_DOCUMENT_ERR: 4 INVALID_CHARACTER_ERR: 5 NO_DATA_ALLOWED_ERR: 6 NO_MODIFICATION_ALLOWED_ERR: 7 NOT_FOUND_ERR: 8 NOT_SUPPORTED_ERR: 9 INUSE_ATTRIBUTE_ERR: 10 INVALID_STATE_ERR: 11 SYNTAX_ERR: 12 INVALID_MODIFICATION_ERR: 13 NAMESPACE_ERR: 14 INVALID_ACCESS_ERR: 15 VALIDATION_ERR: 16 TYPE_MISMATCH_ERR: 17 SECURITY_ERR: 18 NETWORK_ERR: 19 ABORT_ERR: 20 URL_MISMATCH_ERR: 21 QUOTA_EXCEEDED_ERR: 22 TIMEOUT_ERR: 23 INVALID_NODE_TYPE_ERR: 24 DATA_CLONE_ERR: 25: Blocked a frame with origin "https://[application URL]" from accessing a frame with origin "https://[iframe URL]". Protocols, domains, and ports must match.
Why is this only a issue in chrome (and I think safari to)
The following code in ISC_Core.js is the cause of this issue:
Code:
if (this._windowHandle == null) { for (var i = 0; i < window.frames.length; i++) { var _wh = window.frames[i]; if (_wh.name == this.getName()) { this._windowHandle = _wh; break; } } }
SecurityError: Blocked a frame with origin "https://127.0.0.1:8888" from accessing a frame with origin "https://[the page on hte iframe]". Protocols, domains, and ports must match.
I've 'fixed' it by walking through the frames on the window in a reversed order, thereby finding the frame I'm looking for first time
Code:
if (this._windowHandle == null) { for (var i = window.frames.length-1; i >= 0; i--) { var _wh = window.frames[i]; if (_wh.name == this.getName()) { this._windowHandle = _wh; break; } } }
Comment