// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_CALLBACK_INTERFACE_BASE_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_CALLBACK_INTERFACE_BASE_H_ #include "third_party/blink/public/common/scheduler/task_attribution_id.h" #include "third_party/blink/renderer/platform/bindings/name_client.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" #include "third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" namespace blink { // CallbackInterfaceBase is the common base class of all the callback interface // classes. Most importantly this class provides a way of type dispatching (e.g. // overload resolutions, SFINAE technique, etc.) so that it's possible to // distinguish callback interfaces from anything else. Also it provides a common // implementation of callback interfaces. // // As the signatures of callback interface's operations vary, this class does // not implement any operation. Subclasses will implement it. class PLATFORM_EXPORT CallbackInterfaceBase : public GarbageCollected<CallbackInterfaceBase>, public NameClient { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_BINDINGS_CALLBACK_INTERFACE_BASE_H_