Browser Canvas CORS Soporte para manipulación de imágenes cargadas por dominios cruzados

PREGUNTA: ¿Qué versiones de navegador son compatibles con los encabezados CORS (Intercambio de recursos de origen cruzado) para Cross Domain Images utilizados en Canvas?

CORS puede aplicarse tanto a solicitudes de imágenes XMLHttpRequests de dominio cruzado como a solicitudes de imágenes. Esta pregunta se trata de solicitudes de imágenes Mi normalidad para la compatibilidad de la versión del navegador http://caniuse.com/cors no está claro sobre el problema y la búsqueda en Google no arroja buenos resultados.

Encontré un reciente blog de desarrollo de Chrome que implica que el soporte de CORS estaba muy extendido en los navegadores modernos, pero podría romperse debido a problemas de seguridad de WebGL.
http://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html

Más detalles sobre CORS:

Estamos considerando la viabilidad de usar canvas y CORS con solicitudes de imágenes de dominios cruzados, tal como se describe en W3C Working Draft http://www.w3.org/TR/cors/#use-cases . CORS es utilizado por canvas html para permitir el uso de recursos de dominio cruzado de forma similar a la forma en que flash usa crossdomain.xml. Básicamente, queremos leer / editar los píxeles de datos de imagen y no queremos usar un mismo servidor proxy de origen.

Normalmente, si las imágenes se cargan en el dominio cruzado y se usan con el canvas html, acceder a los píxeles utilizando funciones como canvas.toDataURL () generará un error de seguridad. Sin embargo, si el servidor que entrega la imagen agrega un encabezado como este, se debe permitir el uso del dominio cruzado.

access-control-allow-origin: * 

Navegadores que más nos importan:

Estamos planeando trabajar con la falta de soporte de canvas de IE utilizando flash, por lo que para navegadores de escritorio con un problema de CORS también podemos hacerlo, pero en flash móvil no es una opción, y usar un proxy para hacer que las solicitudes tengan el mismo origen no es una opción en nuestro caso de uso. Por lo tanto, estoy particularmente interesado en Andriod, Iphone, soporte de navegador de iPad para CORS.

Resultados de la prueba : malas noticias, parece que solo funciona en Chrome. Todos los demás navegadores (incluido Android Mobile) dan un error como este:

 Failed: DOM Exception: SECURITY_ERR (18) 

Dispositivos móviles Probé con Android (samsung galaxy kernel versión 2.6.32.9), Iphone y iPad V1 y falló en los tres.

Puede probar su propio dispositivo móvil con esta URL: http://maplarge.com/CrossOriginImageTest.html

El script de prueba:

     Canvas Cross Origin Image Test: Testing for Canvas Cross Domain Image CORS Support    

Canvas Cross Origin Image Test: Testing for Canvas Cross Domain Image CORS Support

What is CORS Image Security?

Testing...


More Examples

Acabo de probar esto en mi iPhone con iOS 6 tanto en Safari como en Chrome y su página de prueba pasa la prueba. Lo habría publicado como un comentario, pero no tengo la opción de publicar un comentario en tu respuesta.

Puede usar php para obtener todo lo que desee sin CROS, ejemplo de trabajo a continuación:

   a('".$x."')"; ?>