Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Builder linux-rel-wpt Build #8302

Results:

Build successful

SourceStamp:

Projectservo/servo
Repositoryhttps://github.com/servo/servo
Branchauto
Revision28c92db26837531e75327cff7727ed8bc1c70b48
Got Revision28c92db26837531e75327cff7727ed8bc1c70b48
Changes1 change

BuildSlave:

servo-linux1

Reason:

The AnyBranchScheduler scheduler named 'servo-auto' triggered this build

Steps and Logfiles:

  1. git update ( 5 secs )
    1. stdio
  2. generic generic ( 0 secs )
    1. - no logs -
  3. generic_1 generic_1 ( 0 secs )
    1. - no logs -
  4. shell 'pkill -x ...' ( 0 secs )
    1. stdio
  5. shell__1 './mach clean-nightlies ...' ( 11 secs )
    1. stdio
  6. shell__2 './mach clean-cargo-cache ...' ( 0 secs )
    1. - no logs -
  7. shell__3 './etc/ci/clean_build_artifacts.sh' ( 0 secs )
    1. stdio
  8. compile ran build --release --with-debug-assertions ( 11 mins, 7 secs )
    1. - no logs -
  9. test ran test-wpt-failure ( 0 secs )
    1. stdio
  10. test__1 ran test-wpt --release --processes 24 --total-chunks 2 --this-chunk 1 --always-succeed ( 19 mins, 17 secs )
    1. - no logs -
  11. shell__4 './mach filter-intermittents ...' ( 9 secs )
    1. stdio
    2. filtered-wpt-errorsummary.log
    3. intermittents.log
  12. test__2 ran test-wpt --release --binary-arg=--multiprocess --processes 24 eventsource ( 9 secs )
    1. wpt-mp-errorsummary.log

Build Properties:

NameValueSource
branch auto Build
builddir /home/servo/buildbot/slave/linux-rel-wpt slave
buildername linux-rel-wpt Builder
buildnumber 8302 Build
codebase Build
got_revision 28c92db26837531e75327cff7727ed8bc1c70b48 Git
project servo/servo Build
repository https://github.com/servo/servo Build
revision 28c92db26837531e75327cff7727ed8bc1c70b48 Build
scheduler servo-auto Scheduler
slavename servo-linux1 BuildSlave
warnings-count 0 WarningCountingShellCommand
workdir /home/servo/buildbot/slave/linux-rel-wpt slave (deprecated)

Forced Build Properties:

NameLabelValue

Responsible Users:

  1. bors-servo

Timing:

StartThu Mar 22 06:17:11 2018
EndThu Mar 22 06:48:13 2018
Elapsed31 mins, 2 secs

All Changes:

:

  1. Change #77481

    Category None
    Changed by bors-servo <lbergstrom+borsohnoyoudont@mozilla.com>
    Changed at Thu 22 Mar 2018 06:17:11
    Repository https://github.com/servo/servo
    Project servo/servo
    Branch auto
    Revision 28c92db26837531e75327cff7727ed8bc1c70b48

    Comments

    Auto merge of #20327 - kwonoj:fix-ignore, r=paulrouget
    
    fix(keyevent): do not emit default ignorable codepoint
    
    <!-- Please describe your changes on the following line: -->
    This PR intends to update `KeyEvent` emit behavior around #18130. Issue https://github.com/servo/servo/issues/17146#issue-233361568 briefly explains what's happening in servo currently - there are KeyboardInput event emitted for separated key (modifier, and `V` in case of paste) and there are also `ReceivedCharacter` event corresponds to `\u{0016}`.
    
    `0x0016` is unicode representation of `Synchronous Idle` (https://en.wikipedia.org/wiki/Synchronous_Idle), belong under category of `Default Ignorable` charater in unicode range doesn't have visual representation (http://www.unicode.org/L2/L2002/02368-default-ignorable.pdf). Currently servo forwards all of emitted event from `winit` including this, eventually leads into double execution of control event.
    
    In this change try to omit default ignorable charater , if given char received is within range of ignorable do not dispatch `KeyEvent`. Once those are omitted, current event handling logic already takes care of key event with correct modifier state so duplicated event handling won't occur.
    
    For implementation perspective, `std::char` in Rust doesn't seem to support `isIdentifierIgnorable` like other platform does (i.e: https://msdn.microsoft.com/en-us/library/aa285330(v=vs.60).aspx / https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html) - so does quick, naïve range comparison check based on unicode range specified in spec, similar to halfbuzz and other does. (https://github.com/harfbuzz/harfbuzz/blob/master/src/hb-unicode-private.hh#L134)
    
    Lastly, this is indeed behavior of `winit` to emit all characters by default. *Why not try to make upstream changes instead?* While I've been reading through issues in `winit`, issue like https://github.com/tomaka/winit/issues/350 trying to emit ignorable character by its intention (delete key `ReceivedCharacter` is also under category of default ignorable) and let each consumer application handles it as needed. I assume it'll cause breaking changes in winit's design if it intends to omit those characters, instead tried to make application-level changes.
    
    Couple of consideration for review
    
    - Is it desired changes to not emit `KeyEvent` for default ignorable chars? Do we rather want mapping / or restoring back to original char as @paulrouget mentioned in https://github.com/servo/servo/issues/17146#issue-233361568?
    - Any better, recommended approach to detect unicode char range?
    - Maybe try to make upstream changes to `winit` still, like having configuratble way to opt-in(out) those char event?
    
    ---
    <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
    - [x] `./mach build -d` does not report any errors
    - [x] `./mach test-tidy` does not report any errors
    - [x] These changes fix #18130 (github issue number if applicable).
    
    <!-- Either: -->
    - [ ] There are tests for these changes OR
    - [ ] These changes do not require tests because _____
    - This PR has been locally tested on Windows, Linux machines.
    
    <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
    
    <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
    
    <!-- Reviewable:start -->
    ---
    This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20327)
    <!-- Reviewable:end -->

    Changed files

    • ports/servo/glutin_app/window.rs