No-JS fallback for the Media Library grid view. props michalzuber. fixes #28830, see #24716.

Built from https://develop.svn.wordpress.org/trunk@29175


git-svn-id: http://core.svn.wordpress.org/trunk@28959 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Make audio and video URLs/embed handlers work in `<iframe>`-sandbox'd MCE views. 

Introduce:
`get_editor_stylesheets()`
`wp_media_mce_styles()`.

See #28905.

Built from https://develop.svn.wordpress.org/trunk@29176


git-svn-id: http://core.svn.wordpress.org/trunk@28960 1a063a9b-81f0-0310-95a4-ce76da25c4cd
`_WP_Editors::editor_settings()` should make use of `get_editor_stylesheets()`.

See #28905.

Built from https://develop.svn.wordpress.org/trunk@29177


git-svn-id: http://core.svn.wordpress.org/trunk@28961 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Add a new AJAX action: `parse-media-shortcode`. This async call will replace JS rendering of audio/video/playlist shortcodes.

See #28905.

Built from https://develop.svn.wordpress.org/trunk@29178


git-svn-id: http://core.svn.wordpress.org/trunk@28962 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Simplify creation of audio, video, and playlist MCE views by placing them in iframe sandboxes.

Wins:
* Eliminates duplication of code between PHP and JS
* Views can load JS without messing with TinyMCE and scope
* MEjs doesn't break when it loads a file plugin-mode. This allows any file type the MEjs supports to play in MCE views.
* YouTube now works as the source for video.
* Users can still style the views, editor stylesheets are included in these sandboxes.
* Audio and Video URLs and `[embed]`s are no longer broken.
* Remove the crazy compat code necessary to determine what file types play in what browser.
* Remove unneeded Underscore templates.
* Remove the compat code for playlists.

See #28905.

Built from https://develop.svn.wordpress.org/trunk@29179


git-svn-id: http://core.svn.wordpress.org/trunk@28963 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Editor scrolling: also disable in IE < 9. See #28328.
Built from https://develop.svn.wordpress.org/trunk@29180


git-svn-id: http://core.svn.wordpress.org/trunk@28964 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Twenty Thirteen: make small-screen menu accessible to keyboard commands and voice-driven software by using a focusable `button` element rather than `h3` for the toggle element. Fixes #28293, props rclations and obenland.
Built from https://develop.svn.wordpress.org/trunk@29181


git-svn-id: http://core.svn.wordpress.org/trunk@28965 1a063a9b-81f0-0310-95a4-ce76da25c4cd
TinyMCE wpView: remove unused code, props avryl, see #28595
Built from https://develop.svn.wordpress.org/trunk@29182


git-svn-id: http://core.svn.wordpress.org/trunk@28966 1a063a9b-81f0-0310-95a4-ce76da25c4cd
TinyMCE wpView:
- Cast off commands targeted to a view except undo, redo, RemoveFormat and mceToggleFormat (bold, italic, etc.).
- Disable the link and unlink buttons when a view is selected.
Props avryl, see #28595
Built from https://develop.svn.wordpress.org/trunk@29183


git-svn-id: http://core.svn.wordpress.org/trunk@28967 1a063a9b-81f0-0310-95a4-ce76da25c4cd
TinyMCE wpView: handle execCommand when the "fake caret" P is selected, props avryl, see #28595
Built from https://develop.svn.wordpress.org/trunk@29184


git-svn-id: http://core.svn.wordpress.org/trunk@28968 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Editor scrolling: on setcontent, resize the editor after some delay to allow the browser to render the content. Props avryl, see #28328.
Built from https://develop.svn.wordpress.org/trunk@29185


git-svn-id: http://core.svn.wordpress.org/trunk@28969 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Editor scrolling: better "scroll into view" in the visual editor. Don't override MCE path focus style. Props avryl, see #28328.
Built from https://develop.svn.wordpress.org/trunk@29186


git-svn-id: http://core.svn.wordpress.org/trunk@28970 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Cleanup after [29179]:

* `_WP_Editors::editor_settings()` no longer needs to load MEjs styles
* Make sure each identical shortcode with multiple instances also has an iframe sandbox for each instance
* For the time being, make audio and video shortcodes bypass the loading placeholder to avoid whiplash visually

Props avryl, wonderboymusic.
See #28905.

Built from https://develop.svn.wordpress.org/trunk@29187


git-svn-id: http://core.svn.wordpress.org/trunk@28971 1a063a9b-81f0-0310-95a4-ce76da25c4cd
DB schema change: Add comment_author_email(10) index.

props tellyworth, pento.
fixes #21435.

Built from https://develop.svn.wordpress.org/trunk@29188


git-svn-id: http://core.svn.wordpress.org/trunk@28972 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Cleanup after [29179]:

* Cleanup players when the editor is hidden - window scope is unique to each frame
* Add the editor body class to each iframe sandbox
* Remove unneeded code from `wp-mediaelement.js`

See #28905.

Built from https://develop.svn.wordpress.org/trunk@29189


git-svn-id: http://core.svn.wordpress.org/trunk@28973 1a063a9b-81f0-0310-95a4-ce76da25c4cd
TinyMCE wpView: add noop() when returning early, fixes #28921
Built from https://develop.svn.wordpress.org/trunk@29190


git-svn-id: http://core.svn.wordpress.org/trunk@28974 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Cleanup after [29179]:

* Pause players when media is edited via modal
* Remove players on unind
* Account for failure when an empty node is passed to an `mce.view.View`

See #28905.

Built from https://develop.svn.wordpress.org/trunk@29191


git-svn-id: http://core.svn.wordpress.org/trunk@28975 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Autosave: always expose the `wp.autosave.local` methods, fixes #28924.
Built from https://develop.svn.wordpress.org/trunk@29192


git-svn-id: http://core.svn.wordpress.org/trunk@28976 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Cleanup after [29179]:

Don't attach nodes to the view instance and check if the iframe still exists before resizing.

Props avryl.
See #28905.

Built from https://develop.svn.wordpress.org/trunk@29193


git-svn-id: http://core.svn.wordpress.org/trunk@28977 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Cleanup after [29179]:

* Remove `wp.media.mixin.pauseAllPlayers()` - was only ever intended to be used in MCE views, reaches too far into global scope. Rendered irrelevant since [28364].
* Remove `wp.media.mixin.pausePlayers()` - added in [28364]. MCE views no longer keep track of player instances and call mixin methods, they refer to their child iframes and call MEjs methods on the iframe's `window.mejs.players`. 

See #28905.

Built from https://develop.svn.wordpress.org/trunk@29194


git-svn-id: http://core.svn.wordpress.org/trunk@28978 1a063a9b-81f0-0310-95a4-ce76da25c4cd