Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

Hixie
Copy link
Contributor

@Hixie Hixie commented Jul 16, 2015

The primary goal of this change was to remove EventTarget from the
sky_engine C++ code. Since EventTarget is so core to the entire event
system that sky_engine was based on, this is a rather invasive change.
As such, it had some knock-on effects. I deleted some of the files
that were affected, and cauterised the remainder.

In many cases, a file would depend on another file that it didn't
include directly, but instead included indirectly via another file
that I deleted. When this happened, if the features that this broke
were obsolete, I sometimes just removed the features instead.

Specifically:

  • removed EventTarget
  • removed EventQueue, since without a target, what's a queue going to
    do?
  • same with EventDispatch*
  • removed ExecutionContext, since it had an EventQueue and nothing
    else it did was relevant to Sky anymore
  • removed ActiveDOMObject, which was all about ExecutionContexts
  • removed ContextLifecycleNotifier since it dependend on
    ExecutionContext and ActiveDOMObject
  • removed the other Lifecycle classes for consistency, and replaced
    them with four booleans in the Document class
  • removed some of the attributes that are no longer relevant from
    IDLExtendedAttributes (ConstructorCallWith and
    CallWith=ExecutionContext)
  • removed the Document member on DOMDartState since we never set it to
    anything but null.
  • removed BuiltinSky::InstallWindow since it relied on the Document
    member of DOMDartState
  • removed EventHandler, EventListener, and mentions of those in
    various binding scripts
  • removed NewEventHandler, since we're not using that either
  • removed the following interfaces from the Sky Dart API:
    • EventTarget
    • EventListener (since without a target, there's no way to listen)
    • FocusEvent (since it's only member was an EventTarget)
    • HashChangeEvent (mostly by accident, but it's defunct anyway)
    • FontFace (it used ConstructorCallWith=ExecutionContext)
  • changed the following interfaces of the Sky DART API:
    • MediaQueryList is no longer an EventTarget
    • Node is no longer an EventTarget
    • Document no longer has defaultView (depended on
      DOMDartState's document)
    • DocumentFragment, Element, Range, and Text no longer have a
      constructor (they all depended on DOMDartState's document, which
      is now gone)
    • Event lost its EventTarget members and path.
    • Window lost its WindowTimers partial interface (it used
      EventTarget and ExecutionContext a lot)
  • removed numerous hacks in the bindings around features that are now
    gone, like addEventListener
  • removed a bunch of console logging code, since that relied on
    ExecutionContext
  • cauterised the wound in FontFace.cpp by removing constructors and
    methods that called now-removed features
  • same with MediaQuery and friends
  • same with some editor features and focus-related features
  • same with Document
  • removed DOMTimer classes since they use ExecutionContexts

@@ -25,9 +25,12 @@
* Boston, MA 02110-1301, USA.
*/

#include "stdio.h"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove

@abarth
Copy link
Contributor

abarth commented Jul 16, 2015

LGTM

Hixie added 2 commits July 16, 2015 14:40
The primary goal of this change was to remove EventTarget from the
sky_engine C++ code. Since EventTarget is so core to the entire event
system that sky_engine was based on, this is a rather invasive change.
As such, it had some knock-on effects. I deleted some of the files
that were affected, and cauterised the remainder.

In many cases, a file would depend on another file that it didn't
include directly, but instead included indirectly via another file
that I deleted. When this happened, if the features that this broke
were obsolete, I sometimes just removed the features instead.

Specifically:
- removed EventTarget
- removed EventQueue, since without a target, what's a queue going to
  do?
- same with EventDispatch*
- removed ExecutionContext, since it had an EventQueue and nothing
  else it did was relevant to Sky anymore
- removed ActiveDOMObject, which was all about ExecutionContexts
- removed ContextLifecycleNotifier since it dependend on
  ExecutionContext and ActiveDOMObject
- removed the other Lifecycle classes for consistency, and replaced
  them with four booleans in the Document class
- removed some of the attributes that are no longer relevant from
  IDLExtendedAttributes (ConstructorCallWith and
  CallWith=ExecutionContext)
- removed the Document member on DOMDartState since we never set it to
  anything but null.
- removed BuiltinSky::InstallWindow since it relied on the Document
  member of DOMDartState
- removed EventHandler, EventListener, and mentions of those in
  various binding scripts
- removed NewEventHandler, since we're not using that either
- removed the following interfaces from the Sky Dart API:
  - EventTarget
  - EventListener (since without a target, there's no way to listen)
  - FocusEvent (since it's only member was an EventTarget)
  - HashChangeEvent (mostly by accident, but it's defunct anyway)
  - FontFace (it used ConstructorCallWith=ExecutionContext)
- changed the following interfaces of the Sky DART API:
  - MediaQueryList is no longer an EventTarget
  - Node is no longer an EventTarget
  - Document no longer has defaultView (depended on
    DOMDartState's document)
  - DocumentFragment, Element, Range, and Text no longer have a
    constructor (they all depended on DOMDartState's document, which
    is now gone)
  - Event lost its EventTarget members and path.
  - Window lost its WindowTimers partial interface (it used
    EventTarget and ExecutionContext a lot)
- removed numerous hacks in the bindings around features that are now
  gone, like addEventListener
- removed a bunch of console logging code, since that relied on
  ExecutionContext
- cauterised the wound in FontFace.cpp by removing constructors and
  methods that called now-removed features
- same with MediaQuery and friends
- same with some editor features and focus-related features
- same with Document
- removed DOMTimer classes since they use ExecutionContexts
@Hixie Hixie force-pushed the remove-event-target branch from f366c56 to ce5aa75 Compare July 16, 2015 21:46
@Hixie Hixie merged commit 3670c60 into flutter:master Jul 16, 2015
@Hixie Hixie deleted the remove-event-target branch July 16, 2015 21:56
@marcoprodata marcoprodata mentioned this pull request Aug 16, 2021
8 tasks
@knopp knopp mentioned this pull request Jun 5, 2023
8 tasks
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants