I think I got it.

We’re gradually rewriting the goog event code. Eventually we’re going to need 
to make a clean break.

Once I was knee-deep in this, I fixed stopImmediatePropogation as well, which 
has been something that’s made errors in event handlers difficult to debug. 
It’s something I wanted to fix for a long time...

Please let me know if you see any more problems.

Harbs

> On Dec 24, 2019, at 2:21 PM, Carlos Rovira <[email protected]> wrote:
> 
> Hi Piotr,
> 
> I think we need to wait Harbs, he seems to know what's the problem and
> hopefully will be able to fix it.
> @Harbs <[email protected]>  other example that you can check is Tour de
> Jewel, since it has the new Jewel DataGrid, it suffers as well the same
> problem of the "Maximun call stack size exceeded"
> 
> Anyway, aside from this problem, I'd like to propose you all that this kind
> of changes, that modifies Royale at its core, should be done in a branch,
> and be more tested, since it's normal it will be unstable during some
> period of time until people test and report if all is ok. As well use to
> require various commits until things works ok, so that for me is a signal
> that things should be done in branches. Other changes that are incremental
> and does not affect other developments and can be not finished, could be
> directly in commits to develop (ensuring always it does not break the
> complete build).
> 
> Thanks :)
> 
> Carlos
> 
> 
> El mar., 24 dic. 2019 a las 13:10, Piotr Zarzycki (<
> [email protected]>) escribió:
> 
>> Hi Guys,
>> 
>> I have just used all changes which has been pushed and build our app using
>> Maven. It's breaking up completely. I'm getting now Null Pointer exceptions
>> for components has been created, it's children doesn't exists even if I
>> check after onInitComplete. - It's weird behavior and hard to explain for
>> me. Something in general is really bad.
>> 
>> I hope to tell you more in upcoming days if I will be able to.
>> 
>> Thanks,
>> Piotr
>> 
>> wt., 24 gru 2019 o 11:38 Harbs <[email protected]> napisał(a):
>> 
>>> Never mind. I see the problem.
>>> 
>>>> On Dec 24, 2019, at 12:16 PM, Harbs <[email protected]> wrote:
>>>> 
>>>> Please try with my latest changes.
>>>> 
>>>> I think I fixed it.
>>>> 
>>>> 
>>>>> On Dec 24, 2019, at 12:03 PM, Carlos Rovira <[email protected]>
>>> wrote:
>>>>> 
>>>>> Hi Harbs,
>>>>> 
>>>>> the problem seems to affect the Basic DataGrid if you check
>>> DataGridExample
>>>>> you can see the error too.
>>>>> 
>>>>> In CruxGitHubCommitLogViewer the problem is:
>>>>> 
>>>>> Activating JSStageEvents
>>>>> [WARNING] getStaticConstantsByConvention :: the reflection target
>>>>> mx.rpc.http.mxml.HTTPService was not Compiled with default
>> initializers
>>>>> enabled
>>>>> InjectProcessor set up [Inject( "configuratorService" )] on Bean{
>>> source:
>>>>> [object Object], name: configurationDelegate }
>>>>> InjectProcessor set up [Inject] on Bean{ source: [object Object],
>> name:
>>>>> configurationController }
>>>>> getProject executing in ConfigurationController via PostConstruct
>>> processing
>>>>> InjectProcessor set up [Inject( "commitsService" )] on Bean{ source:
>>>>> [object Object], name: commitsDelegate }
>>>>> InjectProcessor set up [Inject] on Bean{ source: [object Object],
>> name:
>>>>> commitsController }
>>>>> InjectProcessor set up [Inject] on Bean{ source: [object Object],
>> name:
>>>>> commitsController }
>>>>> RangeError: Maximum call stack size exceeded
>>>>>  at Array.concat (<anonymous>)
>>>>>  at crux.view.MainContent.goog.events.EventTarget.fireListeners
>>>>> 
>>> 
>> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/crux/CruxGitHubCommitLogViewer/target/javascript/bin/js-debug/library/closure/goog/events/eventtarget.js:271:34)
>>>>>  at Function.goog.events.EventTarget.dispatchEventInternal_
>>>>> 
>>> 
>> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/crux/CruxGitHubCommitLogViewer/target/javascript/bin/js-debug/library/closure/goog/events/eventtarget.js:372:27)
>>>>>  at
>>>>> 
>>> 
>> org.apache.royale.html.DataGridButtonBar.goog.events.EventTarget.dispatchEvent
>>>>> 
>>> 
>> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/crux/CruxGitHubCommitLogViewer/target/javascript/bin/js-debug/library/closure/goog/events/eventtarget.js:196:35)
>>>>>  at
>>>>> 
>>> 
>> org.apache.royale.html.DataGridButtonBar.org.apache.royale.events.EventDispatcher.dispatchEvent
>>>>> 
>>> 
>> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Core/src/main/royale/org/apache/royale/events/EventDispatcher.as:94:32)
>>>>>  at
>>>>> 
>>> 
>> org.apache.royale.html.DataGridButtonBar.org.apache.royale.core.ElementWrapper.dispatchEvent
>>>>> 
>>> 
>> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Core/src/main/royale/org/apache/royale/core/ElementWrapper.as:370:44)
>>>>>  at org.apache.royale.express.beads.layouts.DataGridLayout.layout
>>>>> 
>>> 
>> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as:225:11)
>>>>>  at
>>>>> 
>>> 
>> org.apache.royale.express.beads.layouts.DataGridLayout.org_apache_royale_express_beads_layouts_DataGridLayout_handleLayoutNeeded
>>>>> 
>>> 
>> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Express/src/main/royale/org/apache/royale/express/beads/layouts/DataGridLayout.as:105:4)
>>>>>  at
>>>>> 
>> org.apache.royale.express.DataGrid.goog.events.EventTarget.fireListeners
>>>>> 
>>> 
>> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/crux/CruxGitHubCommitLogViewer/target/javascript/bin/js-debug/library/closure/goog/events/eventtarget.js:284:24)
>>>>>  at Function.goog.events.EventTarget.dispatchEventInternal_
>>>>> 
>>> 
>> (/Users/carlosrovira/Dev/Royale/Source/royale-asjs/examples/crux/CruxGitHubCommitLogViewer/target/javascript/bin/js-debug/library/closure/goog/events/eventtarget.js:389:27)
>>>>> InjectProcessor set up [Inject(
>>> source="commitsController.commits.commits",
>>>>> bind="true" )] on Bean{ source: [object Object], name: null }
>>>>> InjectProcessor set up [Inject(
>>> source="configurationController.project",
>>>>> bind="true" )] on Bean{ source: [object Object], name: null }
>>>>> 
>>>>> 
>>>>> El mar., 24 dic. 2019 a las 10:33, Carlos Rovira (<
>>> [email protected]>)
>>>>> escribió:
>>>>> 
>>>>>> Hi Harbs,
>>>>>> 
>>>>>> thanks for taking the time to look into this and sorry for my delay
>> in
>>>>>> response, as Piotr exposed I'm as well on Christmas time here in
>>> Spain, so
>>>>>> with few time, although hope to be around here from in some slices of
>>> time.
>>>>>> 
>>>>>> About the problem, I built all and check all Crux examples:
>>>>>> 
>>>>>> 
>>>>>> - examples/crux/CruxQuickStart -> This is now working ok
>>>>>> - examples/crux/CruxQuickStartBasic -> This is now working ok
>>>>>> - examples/crux/CruxGitHubCommitLogViewer -> This is not working,
>> not
>>>>>> retrieve the GitHub data and even the DataGrid seems to be not
>> laying
>>> the
>>>>>> header right. Can you take a look at this one, maybe something was
>>> missing
>>>>>> for make this working again.
>>>>>> 
>>>>>> 
>>>>>> I saw 2 test failing, but just see you fixed right now so I'll try to
>>>>>> rebuild again to check that part.
>>>>>> 
>>>>>> Anyway good work! :)
>>>>>> 
>>>>>> Carlos
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> El mar., 24 dic. 2019 a las 9:10, Harbs (<[email protected]>)
>>>>>> escribió:
>>>>>> 
>>>>>>> I realized that the reason bubbling is not working is because
>>>>>>> EventTarget.getParentEventTarget() is relying on parentEventTarget_
>>> which
>>>>>>> is generally not set in Royale.
>>>>>>> 
>>>>>>> Royale already has a parent getter for objects which have
>> hierarchy. I
>>>>>>> changed the method to simply return the parent instead of
>>>>>>> parentEventTarget_ which will be null if there is no parent or its
>>> not an
>>>>>>> IChild.
>>>>>>> 
>>>>>>> Ideally, the change should be in the EventTarget code, but I’m not
>>> trying
>>>>>>> to touch that. I overrode the the method in EventDispatcher. If the
>>> event
>>>>>>> does not have bubbling set to true, none of this should effect
>>> anything. If
>>>>>>> there are any apps which have bubbling events and are relying on
>>> Royale
>>>>>>> bubbling to be broken, they might break with this change… ;-)
>>>>>>> 
>>>>>>> Royale should now support event bubbling out of the box. :-)
>>>>>>> 
>>>>>>> Harbs
>>>>>>> 
>>>>>>>> On Dec 24, 2019, at 9:01 AM, Alex Harui <[email protected]>
>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> I took a peek at the commit and made some comments on the commit
>>> thread
>>>>>>> that may help.
>>>>>>>> 
>>>>>>>> HTH,
>>>>>>>> -Alex
>>>>>>>> 
>>>>>>>> On 12/23/19, 2:24 PM, "Harbs" <[email protected] <mailto:
>>>>>>> [email protected]>> wrote:
>>>>>>>> 
>>>>>>>> I read through what you did in JSStageEvents. That’s really quite
>>>>>>> ingenious. Well done! :-)
>>>>>>>> 
>>>>>>>> I think we could use a similar approach for an application bead to
>>>>>>> support full event bubbling without modifying ElementWrapper and
>>>>>>> HTMLElementWrapper.
>>>>>>>> 
>>>>>>>> I still have no idea what broke though.
>>>>>>>> 
>>>>>>>> Let me know if I should revert the changes until someone has the
>>>>>>> time to look at this.
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> Harbs
>>>>>>>>> On Dec 23, 2019, at 10:59 PM, Greg Dove <[email protected]>
>>> wrote:
>>>>>>>>> 
>>>>>>>>> Iirc it was dispatching capture phase events that was
>> 'difficult'. I
>>>>>>> think
>>>>>>>>> I had to override something and undo something in Royale that was
>>>>>>> switching
>>>>>>>>> off goog support for that. It was only needed in the JSStageEvents
>>>>>>>>> emulation stuff iirc. I have no idea what the issue is, but that
>> is
>>>>>>>>> probably what I would look at first. Have to go now... I can look
>> at
>>>>>>> this
>>>>>>>>> if needed but not for a few days.
>>>>>>>>> 
>>>>>>>>> On Tue, 24 Dec 2019, 09:38 Harbs, <[email protected]> wrote:
>>>>>>>>> 
>>>>>>>>>> AIUI, for bubbling to work automatically, setParentEventTarget
>>> needs
>>>>>>> to be
>>>>>>>>>> called to construct the hierarchy.
>>>>>>>>>> 
>>>>>>>>>> Maybe we should have a bead that takes care of this (on
>>> addedToParent
>>>>>>> or
>>>>>>>>>> something) for applications which rely on bubbling for
>>>>>>> non-browser-native
>>>>>>>>>> events.
>>>>>>>>>> 
>>>>>>>>>> There is a dispatchBubblingEvent in HTMLElementWrapper which
>> forces
>>>>>>> the
>>>>>>>>>> event to bubble up for all events, but it’s JS only. We could
>> add a
>>>>>>> method
>>>>>>>>>> for SWF for compatibility.
>>>>>>>>>> 
>>>>>>>>>> I just tested dispatchBubblingEvent and that makes the alert
>>> appear.
>>>>>>>>>> 
>>>>>>>>>> None of this explains why it worked before my change, though...
>>>>>>>>>> 
>>>>>>>>>>> On Dec 23, 2019, at 10:17 PM, Greg Dove <[email protected]>
>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Harbs, I can only check Crux in 4-5 days time.
>>>>>>>>>>> From memory I did set up something specific to make either
>>> capture or
>>>>>>>>>>> bubbling work, maybe that was for the 'addedToStage' event
>>>>>>> emulation. I
>>>>>>>>>>> think one of them (either capture or bubbling) was not working
>> by
>>>>>>>>>> default,
>>>>>>>>>>> or did was not easy to enable by default.
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> On Tue, Dec 24, 2019 at 9:13 AM Harbs <[email protected]>
>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Nope. Didn’t figure it out.
>>>>>>>>>>>> 
>>>>>>>>>>>> It looks like Crux listens on the ancestor and is relying on
>>>>>>> bubbling.
>>>>>>>>>>>> 
>>>>>>>>>>>> I’m guessing bubbling is not working, but I have no idea why
>> that
>>>>>>> would
>>>>>>>>>>>> have changed with my commit.
>>>>>>>>>>>> 
>>>>>>>>>>>>> On Dec 23, 2019, at 10:06 PM, Piotr Zarzycki <
>>>>>>>>>> [email protected]>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Harbs,
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I feel like Carlos has started his Christmas time ;) I'm glad
>>> that
>>>>>>> you
>>>>>>>>>>>>> figured it out! :)
>>>>>>>>>>>>> 
>>>>>>>>>>>>> pon., 23 gru 2019 o 21:01 Harbs <[email protected]
>> <mailto:
>>>>>>>>>>>> [email protected]>> napisał(a):
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> The asconfig file did not include the necessary metadata.
>> Fixed
>>>>>>> that…
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> OK. I’m not getting any errors, but UserForm is dispatching
>> an
>>>>>>> event
>>>>>>>>>> not
>>>>>>>>>>>>>> listened to by anyone.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Where is the listener supposed to be attached? Maybe it’s
>>>>>>> listening to
>>>>>>>>>>>> the
>>>>>>>>>>>>>> wrong object?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On Dec 23, 2019, at 9:35 PM, Harbs <[email protected]>
>>>>>>> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I’m getting an error that UserForm.user is null.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I have no idea where that should have been set, and I have
>> no
>>>>>>> idea
>>>>>>>>>> how
>>>>>>>>>>>>>> my commit could have possibly effected that. I don’t see
>>> anything
>>>>>>> that
>>>>>>>>>>>>>> would initialize the user variable.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> If you want my help on this, I’m going to need some
>> direction.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>> Harbs
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On Dec 23, 2019, at 9:28 PM, Harbs <[email protected]
>>>>>>> <mailto:
>>>>>>>>>>>> [email protected]> <mailto:
>>>>>>>>>>>>>> [email protected] <mailto:[email protected]>>>
>> wrote:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> I fixed this, but I have no idea what Crux is supposed to
>> do.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> What am I looking for?
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> On Dec 23, 2019, at 8:30 PM, Harbs <[email protected]
>>>>>>> <mailto:
>>>>>>>>>>>> [email protected]> <mailto:
>>>>>>>>>>>>>> [email protected] <mailto:[email protected]>>>
>> wrote:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> I can’t compile Jewel right now.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> I’m getting an error:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> [java]
>>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>> 
>>> 
>> /Apache/royale-asjs/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/IconButton.as(104):
>>>>>>>>>>>>>> col: 13 Access of possibly undefined property
>>> classSelectorList.
>>>>>>>>>>>>>>>>> [java]
>>>>>>>>>>>>>>>>> [java]             classSelectorList.toggle("icon", (_icon
>>> !=
>>>>>>>>>>>>>> null));
>>>>>>>>>>>>>>>>> [java]             ^
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> On Dec 23, 2019, at 7:17 PM, Carlos Rovira <
>>>>>>>>>> [email protected]
>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>>>> <mailto:[email protected] <mailto:
>>> [email protected]
>>>>>>>>>> 
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Compilation is ok. The problem is that example is not
>>> really
>>>>>>>>>>>> working.
>>>>>>>>>>>>>>>>>> In that example you should be able to fill the form and
>>> push
>>>>>>> the
>>>>>>>>>>>>>> button.
>>>>>>>>>>>>>>>>>> After that a JS Alert should be show with the ID of the
>>> user
>>>>>>>>>> record
>>>>>>>>>>>>>> saved.
>>>>>>>>>>>>>>>>>> That Alert is not show anymore.
>>>>>>>>>>>>>>>>>> If you revert locally that commit and recompile Core and
>>> then
>>>>>>> the
>>>>>>>>>>>>>> example
>>>>>>>>>>>>>>>>>> and run you'll be able to see it again.
>>>>>>>>>>>>>>>>>> We have a client complaining about the app stopped to
>> work
>>>>>>> today
>>>>>>>>>>>>>> since they
>>>>>>>>>>>>>>>>>> are using Crux.
>>>>>>>>>>>>>>>>>> After investigation I was able to trace the problem to
>> that
>>>>>>>>>> commit.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Carlos
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> El lun., 23 dic. 2019 a las 17:59, Harbs (<
>>>>>>> [email protected]
>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]
>>>>>> )
>>>>>>>>>>>> escribió:
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> I compiled CruxQuickStartBasic and I don’t see anything
>>>>>>> wrong.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Can you give me more clues?
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> FWIW, I used Ant, is the problem specific to Maven?
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> On Dec 23, 2019, at 6:26 PM, Carlos Rovira <
>>>>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>>>>>>> <mailto:[email protected] <mailto:
>>> [email protected]
>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> Hi Harbs,
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> seems recent changes break Crux library
>>>>>>>>>>>>>>>>>>>> (commit: f50c9990a3190cf681364905525656984ab2e9c5 -
>>> Cleaned
>>>>>>> up
>>>>>>>>>>>>>>>>>>>> ElementWrapper and HTMLElementWrapper)
>>>>>>>>>>>>>>>>>>>> I'm trying to see what could be the problem. I suppose
>>> that
>>>>>>> is
>>>>>>>>>> the
>>>>>>>>>>>>>> change
>>>>>>>>>>>>>>>>>>>> of HTMLElementWrapper now extending ElementWrapper.
>>>>>>>>>>>>>>>>>>>> Tried to change one for the other in Crux library, but
>>> with
>>>>>>> no
>>>>>>>>>>>> luck
>>>>>>>>>>>>>>>>>>>> I'm using /examples/crux/CruxQuickStartBasic to test
>>>>>>>>>>>>>>>>>>>> Can you see what could be wrong?
>>>>>>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> Carlos
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> El dom., 22 dic. 2019 a las 17:24, Harbs (<
>>>>>>>>>> [email protected]
>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]
>>>>>> )
>>>>>>>>>>>>>>>>>>> escribió:
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> There is lots of what looks like shared code, so
>> could
>>>>>>>>>>>>>>>>>>>>> HTMLElementWrapper extend ElementWrapper?
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> Totally. Excellent idea.
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> On Dec 22, 2019, at 5:46 PM, Alex Harui
>>>>>>>>>>>> <[email protected] <mailto:[email protected]>
>>>>>>>>>>>>>> <mailto:[email protected] <mailto:
>>> [email protected]
>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> In a quick look at history, HTMLElementWrapper's
>>> override
>>>>>>>>>> logic
>>>>>>>>>>>>>> was the
>>>>>>>>>>>>>>>>>>>>> same as ElementWrapper's.
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> Maybe as you upgraded HTMLElementWrapper's logic,
>>>>>>>>>> ElementWrapper
>>>>>>>>>>>>>> should
>>>>>>>>>>>>>>>>>>>>> have changed as well but didn't?
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> There is lots of what looks like shared code, so
>> could
>>>>>>>>>>>>>>>>>>>>> HTMLElementWrapper extend ElementWrapper?
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> My 2 cents,
>>>>>>>>>>>>>>>>>>>>>> -Alex
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> On 12/22/19, 1:00 AM, "Harbs" <[email protected]
>>>>>>>>>> <mailto:
>>>>>>>>>>>> [email protected]> <mailto:
>>>>>>>>>>>>>> [email protected] <mailto:[email protected]>>>
>> wrote:
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> We found a weird bug with events and currentTarget.
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> I traced the problem to the following:
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> The app loads both HTMLElementWrapper and
>>> ElementWrapper.
>>>>>>> The
>>>>>>>>>>>>>> lstener
>>>>>>>>>>>>>>>>>>>>> overrides in the two are stepping on each other.
>> Here’s
>>>>>>> what
>>>>>>>>>>>>>> happens:
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> 1. HTMLElementWrapper is loaded first. It replaces
>>>>>>>>>>>>>>>>>>>>> goog.events.fireListener with its fireListenerOverride
>>>>>>> function
>>>>>>>>>>>>>> (which
>>>>>>>>>>>>>>>>>>>>> calls the existing one when it’s done).
>>>>>>>>>>>>>>>>>>>>>> 2. ElementWrapper is loaded next and it replaces the
>>>>>>> existing
>>>>>>>>>>>>>>>>>>>>> goog.events.fireListener function — which was already
>>>>>>> changed
>>>>>>>>>> to
>>>>>>>>>>>>>> point
>>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>>>> HTMLElementWrapper.fireListenerOverride with the one
>>> from
>>>>>>>>>>>>>>>>>>> ElementWrapper.
>>>>>>>>>>>>>>>>>>>>>> 3. When an event is actually dispatched,
>>>>>>>>>>>>>>>>>>>>> ElementWrapper.fireListenerOverride first changes the
>>>>>>> event to
>>>>>>>>>> a
>>>>>>>>>>>>>> royale
>>>>>>>>>>>>>>>>>>>>> BrowserEvent instead of a goog one.
>>>>>>>>>>>>>>>>>>> HTMLElementWrapper.fireListenerOverride
>>>>>>>>>>>>>>>>>>>>> is then called and where it expects a goog
>> BrowserEvent,
>>>>>>> it in
>>>>>>>>>>>> fact
>>>>>>>>>>>>>>>>>>> gets a
>>>>>>>>>>>>>>>>>>>>> royale BrowserEvent. This causes the wrappedEvent to
>> be
>>> the
>>>>>>>>>> wrong
>>>>>>>>>>>>>> type
>>>>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>>>>> messes things up down the line.
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> I’m not sure of the best way to fix this.
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> * We could check the event type in
>>>>>>>>>>>>>> HTMLElementWrapper/ElementWrapper,
>>>>>>>>>>>>>>>>>>>>> but that’s just-in-case code.
>>>>>>>>>>>>>>>>>>>>>> * I’m not completely sure why we need this logic in
>>> both
>>>>>>>>>>>>>>>>>>>>> ElementWrapper and HTMLElementWrapper. Is there
>>> something
>>>>>>> that
>>>>>>>>>>>> can
>>>>>>>>>>>>>> be
>>>>>>>>>>>>>>>>>>>>> changed there?
>>>>>>>>>>>>>>>>>>>>>> * Maybe there’s some way for ElementWrapper to know
>>> that
>>>>>>> some
>>>>>>>>>>>>>> other
>>>>>>>>>>>>>>>>>>>>> class is installing an override?
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> Thoughts?
>>>>>>>>>>>>>>>>>>>>>> Harbs
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>> Carlos Rovira
>>>>>>>>>>>>>>>>>>>> 
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>> 
>>>>>>> <
>>>>>>>>>>>> 
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>> 
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>> Carlos Rovira
>>>>>>>>>>>>>>>>>> 
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>> 
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>> 
>>>>>>> <
>>>>>>>>>>>> 
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>> 
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&amp;reserved=0
>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> --
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Piotr Zarzycki
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Patreon: *
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=BPJwWOdHi1NDnDQ7vujOyeQNUInTpQDUQ%2FQ0isRcamc%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&amp;sdata=BPJwWOdHi1NDnDQ7vujOyeQNUInTpQDUQ%2FQ0isRcamc%3D&amp;reserved=0
>>>> 
>>>>>>> <
>>>>>>>>>>>> 
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>>>>>>>> 
>>>>>>>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>>> 
>>>>>>> <
>>>>>>>>>>>> 
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>>>>>> <
>>>>>>> 
>>> 
>> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&amp;sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&amp;reserved=0
>>>>>>>>>> *
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Carlos Rovira
>>>>>> http://about.me/carlosrovira
>>>>>> 
>>>>>> 
>>>>> 
>>>>> --
>>>>> Carlos Rovira
>>>>> http://about.me/carlosrovira
>>>> 
>>> 
>>> 
>> 
>> --
>> 
>> Piotr Zarzycki
>> 
>> Patreon: *https://www.patreon.com/piotrzarzycki
>> <https://www.patreon.com/piotrzarzycki>*
>> 
> 
> 
> -- 
> Carlos Rovira
> http://about.me/carlosrovira

Reply via email to