gnash-commit
[Top][All Lists]
Advanced

[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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]