[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error
From: |
Nutchanon Wetchasit |
Subject: |
[Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback |
Date: |
Sat, 20 Feb 2016 03:52:06 +0000 |
User-agent: |
Opera/9.80 (Windows NT 5.1; U; en) Presto/2.9.168 Version/11.51 |
Follow-up Comment #12, bug #47004 (project gnash):
This is text output from `js2flash-rtypes.html` on browser with current
Gnash:
PASSED: Flash should properly register string_call callback
PASSED: Flash should properly register error_call callback
PASSED: Flash should properly register securityerror_call callback
PASSED: Flash should properly register integer_call callback
PASSED: Flash should properly register float_call callback
PASSED: Flash should properly register infinite_call callback
PASSED: Flash should properly register neginfinite_call callback
PASSED: Flash should properly register nan_call callback
PASSED: Flash should properly register boolean_call callback
PASSED: Flash should properly register null_call callback
PASSED: Flash should properly register noret_call callback
PASSED: Flash should properly register undefined_call callback
PASSED: Flash should properly register exception_call callback
PASSED: Flash should properly register array_call callback
PASSED: Flash should properly register object_call callback
PASSED: Flash should properly register object_customstring_call callback
PASSED: Flash should properly register object_customvalue_call callback
PASSED: Flash should properly register function_call callback
PASSED: Flash callback script_call should return a correct type
PASSED: Flash callback script_call should return a correct value
PASSED: Flash callback error_call should return a correct type
PASSED: Flash callback error_call should return a correct value
PASSED: Flash callback securityerror_call should return a correct type
PASSED: Flash callback securityerror_call should return a correct value
PASSED: Flash callback integer_call should return a correct type
PASSED: Flash callback integer_call should return a correct value
PASSED: Flash callback float_call should return a correct type
PASSED: Flash callback float_call should return a correct value
PASSED: Flash callback infinite_call should return a correct type
FAILED: Flash callback infinite_call should return a correct value ("0" !=
"Infinity")
PASSED: Flash callback neginfinite_call should return a correct type
FAILED: Flash callback neginfinite_call should return a correct value ("0" !=
"-Infinity")
PASSED: Flash callback nan_call should return a correct type
FAILED: Flash callback nan_call should return a correct value
PASSED: Flash callback boolean_call should return a correct type
PASSED: Flash callback boolean_call should return a correct value
FAILED: Flash callback null_call should return a correct type ("string" !=
"object")
FAILED: Flash callback null_call should return a correct value ("Error" !=
"null")
PASSED: Flash callback noret_call should return a correct type
PASSED: Flash callback noret_call should return a correct value
PASSED: Flash callback undefined_call should return a correct type
PASSED: Flash callback undefined_call should return a correct value
PASSED: Flash callback exception_call should return a correct type
PASSED: Flash callback exception_call should return a correct value
FAILED: Flash callback array_call should return a correct type ("function" !=
"object")
FAILED: Flash callback array_call should return an object of Array class
FAILED: Flash callback array_call should return an array with correct size
("undefined" != "9")
FAILED: Flash callback array_call should return an array with correct element
0 ("undefined" != "The")
FAILED: Flash callback array_call should return an array with correct element
1 ("undefined" != "quick")
FAILED: Flash callback array_call should return an array with correct element
2 ("undefined" != "brown")
FAILED: Flash callback array_call should return an array with correct element
3 ("undefined" != "fox")
FAILED: Flash callback array_call should return an array with correct element
4 ("undefined" != "jumps")
FAILED: Flash callback array_call should return an array with correct element
5 ("undefined" != "over")
FAILED: Flash callback array_call should return an array with correct element
6 ("undefined" != "the")
FAILED: Flash callback array_call should return an array with correct element
7 ("undefined" != "lazy")
FAILED: Flash callback array_call should return an array with correct element
8 ("undefined" != "dog")
ERROR: Error: Error calling method on NPObject!
You'd see that libgnashplugin didn't crash at integer Number access anymore
(the remaining crash likely to be bug #37223). But there's one unexpected
wrong result; ExternalInterface callback `null_call` is now returning
"Error" string instead of `null`.
According to player-to-container communication dump which shown
`<string>Error</string>` return value from `null_call`, this is likely due to
leftover in-band error flag generation in Gnash (player); narrowed down to
code in `movie_root::callExternalCallback()` around line 1964
<http://git.savannah.gnu.org/cgit/gnash.git/tree/libcore/movie_root.cpp?id=051aa9c34b69e1a0a1d2d75e3cf1db07fcea4006#n1964>:
std::string result;
if (val.is_null()) {
// Return an error
result = ExternalInterface::makeString("Error");
} else {
result = ExternalInterface::toXML(val);
}
This flags legitimate `null` return value from ActionScript callback as
an error, and send it to libgnashplugin as in-band "Error" string indicator.
(It doesn't turn back to `null` before reaching JavaScript as in-band
ExternalInterface error signalling is now dropped from libgnashplugin
<https://savannah.gnu.org/patch/?8909#comment0>)
Output, logs, backtraces, and screenshots from testing
`js2flash-errorstring.html`, `flash2js-errorstring.html`, `js2flash-rtypes`,
and `flash2js-rtypes` are attached as
`jsflash-errorstring-rtypes_roundup.051aa9c.zip`.
Gnash: 0.8.11dev (git 051aa9c 15-Feb-2016) NPAPI
Browser: Iceweasel 10.0.12 (debian)
System: Debian GNU/Linux 7.0 Wheezy i386
(file #36405)
_______________________________________________________
Additional Item Attachment:
File name: jsflash-errorstring-rtypes_roundup.051aa9c.zip Size:29 KB
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?47004>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Nutchanon Wetchasit, 2016/02/01
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Nutchanon Wetchasit, 2016/02/06
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Nutchanon Wetchasit, 2016/02/06
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Nutchanon Wetchasit, 2016/02/06
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Nutchanon Wetchasit, 2016/02/07
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Nutchanon Wetchasit, 2016/02/07
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Sandro Santilli, 2016/02/08
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Nutchanon Wetchasit, 2016/02/14
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Sandro Santilli, 2016/02/15
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Nutchanon Wetchasit, 2016/02/19
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback,
Nutchanon Wetchasit <=
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Nutchanon Wetchasit, 2016/02/20
- [Gnash-commit] [bug #47004] Gnash didn't pass string return value "Error" and "SecurityError" from ExternalInterface callback, Nutchanon Wetchasit, 2016/02/27