The error event on `<source>` elements doesn't work. Looking at #4370, it seems like there is an `onError` for `<video>` but I can't tell if that's supposed to work for `<source>` too.

The error event is useful so I can deduce which format the browser is using.

ReactTestUtils.renderIntoDocument(<App1 />);
      expect(console.error.calls.count()).toBe(1);
      expect(console.error.calls.argsFor(0)[0]).toContain(
        'See Viz1 > table > FancyRow > Row > tr.'
      );
      var Viz2 = React.createClass({
        render: () => <FancyTable><FancyRow /></FancyTable>,
      });
      var App2 = React.createClass({
        render: () => <Viz2 />,
      });
      ReactTestUtils.renderIntoDocument(<App2 />);
      expect(console.error.calls.count()).toBe(2);
      expect(console.error.calls.argsFor(1)[0]).toContain(
        'See Viz2 > FancyTable > Table > table > FancyRow > Row > tr.'
      );
      ReactTestUtils.renderIntoDocument(<FancyTable><FancyRow /></FancyTable>);
      expect(console.error.calls.count()).toBe(3);
      expect(console.error.calls.argsFor(2)[0]).toContain(
        'See FancyTable > Table > table > FancyRow > Row > tr.'
      );
      ReactTestUtils.renderIntoDocument(<table><FancyRow /></table>);
      expect(console.error.calls.count()).toBe(4);
      expect(console.error.calls.argsFor(3)[0]).toContain(
        'See table > FancyRow > Row > tr.'
      );
      ReactTestUtils.renderIntoDocument(<FancyTable><tr /></FancyTable>);
      expect(console.error.calls.count()).toBe(5);
      expect(console.error.calls.argsFor(4)[0]).toContain(
        'See FancyTable > Table > table > tr.'