Simplify lifecycle notifiers and observers.
The following changes are made to the implementation of
lifecycle notifiers and observers:
- Avoid keeping duplicate hash sets of registered observers.
- Let the C++ type system handle type safety of the observer
set, letting go of the notion of an 'observer type' which
was dynamically checked for.
- Extend parameterization of LifecycleNotifier<> and
LifecycleObserver<> to more closely couple the notifier
and observer pairs. This allows the retirement of the
ad-hoc function templates {un}observeContext().
- Devirtualize the add/removeObserver() notifier methods.
R=haraken
BUG=462949
Review URL: https://codereview.chromium.org/968633002
git-svn-id: svn://svn.chromium.org/blink/trunk@191062 bbb929c8-8fbe-4397-9dbb-9b2b20218538
24 files changed