Currently when form has file element there's no ability to send
ajax_html_ids because it's not possible to serialize that array to send with jQuery Form plugin shipped with core.
ajax_html_ids has array structure that makes ajax requests take more bandwidth by prefixing each value with
ajax_html_ids serialized imploded with space because HTML5 standard does not limits allowed characters for HTML IDs except 'white-space'.
ajax_page_state already has plain structure so this is some kind of standardization for ajax variables.
Also this change help to minimize request size for ajax calls as discussed in #956186: [meta] Allow to use AJAX with GET requests
Currently simpletest has no ability to test ajax request properly so only manual testing possible.
Steps to reproduce
- download and enable attached module (ajaxdemo)
- visit /ajaxdemo_test_html_ids and press Get
-- bellow will output count and list of used IDs (they are passed as array)
- visit ajaxdemo_test_html_ids/1 and press Get (file element should appear on form)
-- there would be only one element serialized with ',' (in this case core can't extract IDs used on page)