ZoneDelegate class

An adapted view of the parent zone.

This class allows the implementation of a zone method to invoke methods on
the parent zone while retaining knowledge of the originating zone.

Custom zones (created through Zone.fork or runZoned) can provide
implementations of most methods of zones. This is similar to overriding
methods on Zone, except that this mechanism doesn't require subclassing.

A custom zone function (provided through a ZoneSpecification) typically
records or wraps its parameters and then delegates the operation to its
parent zone using the provided ZoneDelegate.

While zones have access to their parent zone (through Zone.parent) it is
recommended to call the methods on the provided parent delegate for two
reasons:

the delegate methods take an additional zone argument which is the
zone the action has been initiated in.

delegate calls are more efficient, since the implementation knows how
to skip zones that would just delegate to their parents.