title: Required WebGL extensions detection
body: <p>I am working on a WebGL (using <a href="http://threejs.org" rel="nofollow noreferrer">ThreeJs</a>) application that, obviously, shows 3D models, and we are using some effects (shaders), looking to make a test to know whether the user can run the app or not, I find a way to retrieve a list of the supported plugins in the used browser.</p>
  <h3>The Question:</h3>
  <p>the problem that I am facing is rather to know what are the required plugins for my application, is there a way to automatically detect them?</p>
  <hr />
  <h3>More details:</h3>
  <p>for further details I would specify an example of what I need:</p>
  <ol>
  <li>In my MacBook Pro under Mac OSX Maverix, the application is working fine</li>
  <li>Testing the application on my Lenovo Laptop, under Windows 7, then Windows 8, the application is not working, and the problem is cause by the <a href="http://threejs.org/examples/#webgl_postprocessing_dof2" rel="nofollow noreferrer">Bokeh2</a> Shader.</li>
  </ol>
  <p>Examining the list of supported WebGL extensions I've found that there are some extension that are missing in Lenovo compared to Mac, so how can I tell which are the required extension that if missing will break the WebGL app.</p>
  <p>This is a list of the extension I have in both, mac and lenovo.</p>
  <h3>In my Mac:</h3>
  <blockquote>
  <p>ANGLE_instanced_arrays</p>
  <p>WEBKIT_EXT_texture_filter_anisotropic</p>
  <p>OES_element_index_uint</p>
  <p>OES_standard_derivatives</p>
  <p>OES_texture_float</p>
  <p>OES_texture_float_linear</p>
  <p>OES_texture_half_float</p>
  <p>OES_texture_half_float_linear</p>
  <p>OES_vertex_array_object</p>
  <p>WEBKIT_WEBGL_compressed_texture_s3tc</p>
  <p>WEBKIT_WEBGL_depth_texture</p>
  <p>WEBGL_draw_buffers</p>
  <p>WEBGL_lose_context</p>
  <p>WEBGL_debug_renderer_info</p>
  </blockquote>
  <h3>In my Lenovo:</h3>
  <blockquote>
  <p>ANGLE_instanced_arrays</p>
  <p>WEBKIT_EXT_texture_filter_anisotropic</p>
  <p>OES_element_index_uint</p>
  <p>OES_standard_derivatives</p>
  <p>OES_texture_float</p>
  <p>OES_texture_half_float</p>
  <p>OES_texture_half_float_linear</p>
  <p>OES_vertex_array_object</p>
  <p>WEBKIT_WEBGL_compressed_texture_s3tc</p>
  <p>WEBGL_lose_context</p>
  <p>WEBGL_debug_renderer_info</p>
  </blockquote>
  <h3>The missing ones in Lenovo:</h3>
  <blockquote>
  <p>OES_texture_float_linear</p>
  <p>WEBKIT_WEBGL_depth_texture</p>
  <p>WEBGL_draw_buffers</p>
  </blockquote>