Hi,

We had too big, complicated and important method, `PresShell::HandleEvent()` (*1), and its helper method, `PresShell::HandleEventInternal()` (*2). Those methods were too risky to fix everything. Therefore, I redesigned them with a stack class `PresShell::EventHandler` (*3). This new class is created in the stack temporarily when `PresShell::HandleEvent()` or similar methods are called, or handling event is retargeted to different `PresShell`.

Note that I did not fix found bugs except trivial ones. So, if you need to check the blame, it must be easier to do it starting from the first link below since it may not be easy to check moved lines.

1. https://searchfox.org/mozilla-central/rev/9b614455de573ad1cac56fd1dbac73adde3425bc/layout/base/PresShell.cpp#6464-7122 2. https://searchfox.org/mozilla-central/rev/9b614455de573ad1cac56fd1dbac73adde3425bc/layout/base/PresShell.cpp#7190-7586 3. https://searchfox.org/mozilla-central/rev/8ff2cd0a27e3764d9540abdc5a66b2fb1e4e9644/layout/base/PresShell.h#499-1261

--
Masayuki Nakano <masay...@d-toybox.com>
Software Engineer, Mozilla
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to