Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EnyoJS sampler doesn't work. #6643

Open
glennw opened this issue Jul 16, 2015 · 10 comments
Open

EnyoJS sampler doesn't work. #6643

glennw opened this issue Jul 16, 2015 · 10 comments
Labels

Comments

@glennw
Copy link
Member

@glennw glennw commented Jul 16, 2015

I did some investigation into it - info below for anyone else who looks into it:

To set up a local version you can test with:

git clone https://github.com/enyojs/sampler
git submodule init
git submodule update

Then build the JS (you need node + grunt installed):
./tools/deploy.sh

By default, this produces a minified / obfuscated build. To work around that, I hacked the compressJsFile function in tools/minifier/minify.js to be:

return fs.readFileSync(inPath, "utf8");

Then you get concatenated JS that is debuggable.

The first problem I ran into is our lack of history implementation - but this can easily be commented out.

After that, the same problem remains. The code appears to do all ajax correctly and get the right sample information. It then calls into pushSampleList. As far as I can tell, servo behaves the same to this point as FF.

@glennw
Copy link
Member Author

@glennw glennw commented Jul 16, 2015

@glennw
Copy link
Member Author

@glennw glennw commented Jul 20, 2015

@metajack The enyo libraries rely on (at least some parts of) cssom to work. The sampler fails due to missing support for https://github.com/mozilla/gecko-dev/blob/master/dom/webidl/HTMLElement.webidl#L84.

@glennw
Copy link
Member Author

@glennw glennw commented Jul 20, 2015

@metajack enyo also relies on MouseEvent implementing the (non standard) 'which' field of MouseEvent (see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/which and https://dxr.mozilla.org/mozilla-central/source/dom/events/MouseEvent.h#40).

This should be trivial to implement (although I'm not sure if we support implementing binding methods without a WebIDL declaration, which is what the current gecko code does). Are we happy to implement this non-standard field? The MDN page says it's supported in every other browser (well, IE9+ anyway).

@metajack
Copy link
Contributor

@metajack metajack commented Jul 20, 2015

@Ms2ger @jdm any ideas what we should do about MouseEvent?

@Ms2ger
Copy link
Contributor

@Ms2ger Ms2ger commented Jul 20, 2015

(non standard)

https://w3c.github.io/uievents/#KeyboardEvent-supplemental-interface

implementing binding methods without a WebIDL declaration, which is what the current gecko code does

Gecko implements it on UIEvent for some reason.

@glennw
Copy link
Member Author

@glennw glennw commented Jul 20, 2015

@metajack enyo also seems to rely on transition callbacks too, which I don't believe we support yet. It does use animation + animation callbacks, but I'm not sure to what extent yet.

@glennw
Copy link
Member Author

@glennw glennw commented Jul 21, 2015

@metajack Ah, part of the reason why none of the button presses are working is because the target of our mousedown events is different than what FF sets, so they get dispatched incorrectly. I'll look into how our hit detection is working.

The servo hit detection doesn't work with (2d or 3d) transforms, which explains the discrepancy here. With the way enyo works, this places all panels at (0,0) so the hit detection is wrong for buttons etc.

@jdm
Copy link
Member

@jdm jdm commented Jul 21, 2015

Filed https://bugzilla.mozilla.org/show_bug.cgi?id=1186125 about Gecko's noncompliance here, fwiw.

@glennw
Copy link
Member Author

@glennw glennw commented Jul 22, 2015

enyo relies heavily on transforms for doing layout in js. But some of the transforms are failing to parse - looking into that now before fixing the hit test code.

@glennw
Copy link
Member Author

@glennw glennw commented Jul 27, 2015

Partial fix for hit testing (needs servo integration) servo/euclid#98

Fix for mouseevent.which #6691

glennw pushed a commit to glennw/servo that referenced this issue Jul 27, 2015
This simplifies an upcoming PR to support serializing transform values for css style declarations.

Related to issue servo#6643.
glennw pushed a commit to glennw/servo that referenced this issue Jul 28, 2015
This provides enough support to do correct layout for servo#6643.
glennw pushed a commit to glennw/servo that referenced this issue Jul 28, 2015
This makes hit tests work on stacking contexts with transforms.

Ref servo#6643.
glennw pushed a commit to glennw/servo that referenced this issue Jul 28, 2015
This makes hit tests work on stacking contexts with transforms.

Ref servo#6643.
glennw pushed a commit to glennw/servo that referenced this issue Jul 28, 2015
This makes hit tests work on stacking contexts with transforms.

Ref servo#6643.
bors-servo pushed a commit that referenced this issue Jul 29, 2015
Change transforms to use LengthOrPercentage.

This simplifies an upcoming PR to support serializing transform values for css style declarations.

Related to issue #6643.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6796)
<!-- Reviewable:end -->
bors-servo pushed a commit that referenced this issue Jul 29, 2015
Accumulate and invert stacking context transform for hit tests.

This makes hit tests work on stacking contexts with transforms.

Ref #6643.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6801)
<!-- Reviewable:end -->
bors-servo pushed a commit that referenced this issue Jul 29, 2015
Accumulate and invert stacking context transform for hit tests.

This makes hit tests work on stacking contexts with transforms.

Ref #6643.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6801)
<!-- Reviewable:end -->
glennw pushed a commit to glennw/servo that referenced this issue Jul 29, 2015
bors-servo pushed a commit that referenced this issue Jul 29, 2015
Add ToCss serialization support for translation transforms.

Ref #6643.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6827)
<!-- Reviewable:end -->
glennw pushed a commit to glennw/servo that referenced this issue Jul 30, 2015
… containing block height.

It's not possible to correctly determine during the css cascade whether the container height
is explicitly specified. Additionally, the spec https://drafts.csswg.org/css2/visudet.html#the-height-property
says this should affect the *used* height, rather than the computed height.

This improves some of the layout in servo#6643 (a test case for this will be added when an unrelated
bug to absolute containing blocks is fixed).
bors-servo pushed a commit that referenced this issue Jul 30, 2015
Change where percentage height becomes auto when there is no explicit containing block height.

It's not possible to correctly determine during the css cascade whether the container height
is explicitly specified. Additionally, the spec https://drafts.csswg.org/css2/visudet.html#the-height-property
says this should affect the *used* height, rather than the computed height.

This improves some of the layout in #6643 (a test case for this will be added when an unrelated
bug to absolute containing blocks is fixed).

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6844)
<!-- Reviewable:end -->
huonw added a commit to huonw/servo that referenced this issue Jul 30, 2015
This simplifies an upcoming PR to support serializing transform values for css style declarations.

Related to issue servo#6643.
huonw added a commit to huonw/servo that referenced this issue Jul 30, 2015
This makes hit tests work on stacking contexts with transforms.

Ref servo#6643.
glennw pushed a commit to glennw/servo that referenced this issue Aug 3, 2015
…sforms.

Fixes a lot of incorrect clipping that was occurring in servo#6643.
bors-servo pushed a commit that referenced this issue Aug 3, 2015
Fix percentage height calculation, absolute containing block height calculations.

It's not possible to correctly determine during the css cascade whether the container height
is explicitly specified. Additionally, the spec https://drafts.csswg.org/css2/visudet.html#the-height-property says this should affect the *used* height, rather than the computed height.

This significantly improves the layout in #6643.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6903)
<!-- Reviewable:end -->
bors-servo pushed a commit that referenced this issue Aug 5, 2015
bors-servo
Support transforms for display list optimization. Prevents clipping in #6643.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6983)
<!-- Reviewable:end -->
glennw pushed a commit to glennw/servo that referenced this issue Aug 11, 2015
@metajack metajack mentioned this issue Aug 11, 2015
28 of 40 tasks complete
bors-servo pushed a commit that referenced this issue Aug 11, 2015
Fix explicit height edge case with absolute / relative nested divs.

Needed for #6643.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7147)
<!-- Reviewable:end -->
bors-servo pushed a commit that referenced this issue Aug 13, 2015
Ensure compositor layers are collected when removed from layout.

Needed for #6643 and #7134.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7182)
<!-- Reviewable:end -->
glennw pushed a commit to glennw/servo that referenced this issue Aug 13, 2015
glennw pushed a commit to glennw/servo that referenced this issue Aug 13, 2015
bors-servo pushed a commit that referenced this issue Aug 13, 2015
Add fix / hack for compositor repainting tiles on scroll layers that have stale clipping results.

Needed for #6643. Fixes #7153.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7183)
<!-- Reviewable:end -->
glennw pushed a commit to glennw/servo that referenced this issue Aug 13, 2015
bors-servo pushed a commit that referenced this issue Aug 13, 2015
Enable item clipping on normal transform layers. Fixes rounded corners on layers with 2d transforms.

Needed for #6643.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7186)
<!-- Reviewable:end -->
fabricedesre added a commit to fabricedesre/servo that referenced this issue Aug 14, 2015
fabricedesre added a commit to fabricedesre/servo that referenced this issue Aug 14, 2015
fabricedesre added a commit to fabricedesre/servo that referenced this issue Aug 14, 2015
josiahdaniels added a commit to josiahdaniels/servo that referenced this issue Sep 28, 2015
This simplifies an upcoming PR to support serializing transform values for css style declarations.

Related to issue servo#6643.
josiahdaniels added a commit to josiahdaniels/servo that referenced this issue Sep 28, 2015
This makes hit tests work on stacking contexts with transforms.

Ref servo#6643.
josiahdaniels added a commit to josiahdaniels/servo that referenced this issue Sep 28, 2015
josiahdaniels added a commit to josiahdaniels/servo that referenced this issue Sep 28, 2015
…alculations.

It's not possible to correctly determine during the css cascade whether the container height
is explicitly specified. Additionally, the spec https://drafts.csswg.org/css2/visudet.html#the-height-property
says this should affect the *used* height, rather than the computed height.

This significantly improves the layout in servo#6643.
josiahdaniels added a commit to josiahdaniels/servo that referenced this issue Sep 28, 2015
josiahdaniels added a commit to josiahdaniels/servo that referenced this issue Sep 28, 2015
josiahdaniels added a commit to josiahdaniels/servo that referenced this issue Sep 28, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants
You can’t perform that action at this time.