Add [DoNotGenerateClassBindings] extended attribute
Decided to just have C++ inheritance:
Factor out GamepadCommon base class from Gamepad and WebKitGamepad
https://codereview.chromium.org/195993007/
OLD:
This add a new extended attribute [DoNotGenerateClassBindings]
(name up for discussion)
which is used by the second interface when two interfaces
share an implementation (second interface has [ImplementedAs]).
This prevents the generation of the WebCore namespace functions
(wrap, toV8, v8SetReturnValue*),
which prevents compile errors from duplicate definitions.
Purpose:
Used when 2 interfaces share an implementation:
2 IDL files using 1 C++ class.
Usage:
Bar.idl (secondary IDL file):
[
DoNotGenerateClassBindings,
ImplementedAs=Foo,
] interface Bar { ... };
Bar.h:
#ifndef Bar_h
#define Bar_h
#include "path/to/Foo.h"
#endif // Bar_h
Example of use is:
Share Gamepad and WebKitGamepad implementation
https://codereview.chromium.org/196503004/
If that works ok, I'll add a test (and a few comments)
and commit this one separately.
BUG=
344556