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&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>> >>>>>>> < >>>>>>>>>>>> >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>> >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>> Carlos Rovira >>>>>>>>>>>>>>>>>> >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>> >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>> >>>>>>> < >>>>>>>>>>>> >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>> >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=hmBF55kTuMIA8RLzZFSbfaSzdNgoxr8n0gwlVkfv5jI%3D&reserved=0 >>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> >>>>>>>>>>>>> Piotr Zarzycki >>>>>>>>>>>>> >>>>>>>>>>>>> Patreon: * >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=BPJwWOdHi1NDnDQ7vujOyeQNUInTpQDUQ%2FQ0isRcamc%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852977541&sdata=BPJwWOdHi1NDnDQ7vujOyeQNUInTpQDUQ%2FQ0isRcamc%3D&reserved=0 >>>> >>>>>>> < >>>>>>>>>>>> >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&reserved=0 >>>>>>>>> >>>>>>>>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&reserved=0 >>>> >>>>>>> < >>>>>>>>>>>> >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&reserved=0 >>>>>>> < >>>>>>> >>> >> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C8fe1fe12a45c4547a87708d787f6e8e5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637127366852987537&sdata=abJP9qz96wpalZO2LidV9yth27gCABvHahThSnn%2FHxw%3D&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
