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

Implement concept of dirty root #26484

Merged
merged 5 commits into from May 19, 2020
Merged

Implement concept of dirty root #26484

merged 5 commits into from May 19, 2020

Conversation

@nox
Copy link
Member

nox commented May 11, 2020

No description provided.

@highfive
Copy link

highfive commented May 11, 2020

Heads up! This PR modifies the following files:

  • @asajeffrey: components/script/dom/bindings/cell.rs, components/script/dom/document.rs, components/script/dom/shadowroot.rs, components/script/dom/node.rs, components/script/dom/element.rs and 2 more
  • @KiChjang: components/script/dom/bindings/cell.rs, components/script/dom/document.rs, components/script/dom/shadowroot.rs, components/script/dom/node.rs, components/script/dom/element.rs and 2 more
  • @emilio: components/layout/traversal.rs, components/style/driver.rs
@highfive
Copy link

highfive commented May 11, 2020

warning Warning warning

  • These commits modify unsafe code. Please review it carefully!
  • These commits modify style, layout, and script code, but no tests are modified. Please consider adding a test!
@nox
Copy link
Member Author

nox commented May 11, 2020

I hit the wrong button, I wanted to make a draft PR. Oh well.

@bors-servo try

bors-servo added a commit that referenced this pull request May 11, 2020
Implement concept of dirty root
@bors-servo
Copy link
Contributor

bors-servo commented May 11, 2020

Trying commit 2795709 with merge 600748b...

@nox nox changed the title Implement concept of dirty root [WIP] Implement concept of dirty root May 11, 2020
@bors-servo
Copy link
Contributor

bors-servo commented May 11, 2020

💔 Test failed - status-taskcluster

@nox
Copy link
Member Author

nox commented May 11, 2020

My code is doing bad stuff when the document's children are changed, looking into it.

@nox nox force-pushed the layout-2020-style-prep branch from 2795709 to ec3a72b May 11, 2020
@nox
Copy link
Member Author

nox commented May 11, 2020

@bors-servo try=wpt

@bors-servo
Copy link
Contributor

bors-servo commented May 11, 2020

Trying commit ec3a72b with merge 5f9bc0e...

bors-servo added a commit that referenced this pull request May 11, 2020
[WIP] Implement concept of dirty root
@bors-servo
Copy link
Contributor

bors-servo commented May 11, 2020

💔 Test failed - status-taskcluster

@nox
Copy link
Member Author

nox commented May 11, 2020

  ▶ CRASH [expected OK] /_webgl/conformance/ogles/GL/gl_FrontFacing/gl_FrontFacing_001_to_001.html
  │ 
  │ error: XDG_RUNTIME_DIR not set in the environment.
  │ libEGL warning: No hardware driver found, falling back to software rendering
  │ called `Option::unwrap()` on a `None` value (thread LayoutThread PipelineId { namespace_id: PipelineNamespaceId(1), index: PipelineIndex(1) }, at /repo/components/layout/wrapper.rs:151)
  │    0: servo::backtrace::print
  │    1: servo::main::{{closure}}
  │    2: std::panicking::rust_panic_with_hook
  │              at src/libstd/panicking.rs:515
  │    3: rust_begin_unwind
  │              at src/libstd/panicking.rs:419
  │    4: core::panicking::panic_fmt
  │              at src/libcore/panicking.rs:111
  │    5: core::panicking::panic
  │              at src/libcore/panicking.rs:54
  │    6: <T as layout::wrapper::ThreadSafeLayoutNodeHelpers>::restyle_damage
  │    7: profile_traits::time::profile
  │    8: layout_thread::LayoutThread::handle_reflow
  │    9: profile_traits::time::profile
  │   10: layout_thread::LayoutThread::handle_request_helper
  │   11: layout_thread::LayoutThread::start
  │   12: profile_traits::mem::ProfilerChan::run_with_memory_reporting
  │   13: std::sys_common::backtrace::__rust_begin_short_backtrace
  │   14: core::ops::function::FnOnce::call_once{{vtable.shim}}
  │   15: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  │              at /rustc/42abbd8878d3b67238f3611b0587c704ba94f39c/src/liballoc/boxed.rs:1008
  │   16: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
  │              at /rustc/42abbd8878d3b67238f3611b0587c704ba94f39c/src/liballoc/boxed.rs:1008
  │       std::sys::unix::thread::Thread::new::thread_start
  │              at src/libstd/sys/unix/thread.rs:87
  │   17: start_thread
  │   18: __clone
  │ [2020-05-11T12:24:59Z ERROR servo] called `Option::unwrap()` on a `None` value
  │ Pipeline failed in hard-fail mode.  Crashing!
  │ thread panicked while processing panic. aborting.
  └ thread panicked while processing panic. aborting.

I must be missing something somewhere.

This can only happen if there is an element which doesn't have any data, but I don't see how that can happen through the dirty root, given that the parent without the data should be dirty too.

@nox
Copy link
Member Author

nox commented May 11, 2020

I guess I can try with 2020 meanwhile. I had to do some fancy stuff in 2013 for incremental restyle, and that stuff is not needed on the 2020 side.

@bors-servo try=wpt-2020

@nox nox force-pushed the layout-2020-style-prep branch from ec3a72b to ad47321 May 11, 2020
@nox
Copy link
Member Author

nox commented May 11, 2020

@bors-servo try=wpt-2020

@bors-servo
Copy link
Contributor

bors-servo commented May 11, 2020

Trying commit ad47321 with merge 78feae1...

bors-servo added a commit that referenced this pull request May 11, 2020
[WIP] Implement concept of dirty root
@bors-servo
Copy link
Contributor

bors-servo commented May 11, 2020

💔 Test failed - status-taskcluster

@bors-servo
Copy link
Contributor

bors-servo commented May 12, 2020

The latest upstream changes (presumably #26464) made this pull request unmergeable. Please resolve the merge conflicts.

@nox nox force-pushed the layout-2020-style-prep branch from ad47321 to 8b2dd14 May 12, 2020
@bors-servo
Copy link
Contributor

bors-servo commented May 19, 2020

Trying commit 155e6af with merge 59c174b...

bors-servo added a commit that referenced this pull request May 19, 2020
[WIP] Implement concept of dirty root
@bors-servo
Copy link
Contributor

bors-servo commented May 19, 2020

💔 Test failed - status-taskcluster

@nox nox force-pushed the layout-2020-style-prep branch from 155e6af to 0b2c21f May 19, 2020
@nox
Copy link
Member Author

nox commented May 19, 2020

@bors-servo
Copy link
Contributor

bors-servo commented May 19, 2020

Trying commit 0b2c21f with merge 692bdc0...

bors-servo added a commit that referenced this pull request May 19, 2020
[WIP] Implement concept of dirty root
@bors-servo
Copy link
Contributor

bors-servo commented May 19, 2020

💔 Test failed - status-taskcluster

That way we can use borrow_mut_for_layout and borrow_mut.
@nox nox changed the title [WIP] Implement concept of dirty root Implement concept of dirty root May 19, 2020
@nox
Copy link
Member Author

nox commented May 19, 2020

@bors-servo try

Everything should be ok now.

r? @SimonSapin

@nox nox force-pushed the layout-2020-style-prep branch from 0b2c21f to 036f123 May 19, 2020
@SimonSapin
Copy link
Member

SimonSapin commented May 19, 2020

Looks good!

@bors-servo r+

@bors-servo
Copy link
Contributor

bors-servo commented May 19, 2020

📌 Commit 036f123 has been approved by SimonSapin

@bors-servo
Copy link
Contributor

bors-servo commented May 19, 2020

Testing commit 036f123 with merge 79b6758...

@bors-servo
Copy link
Contributor

bors-servo commented May 19, 2020

☀️ Test successful - status-taskcluster
Approved by: SimonSapin
Pushing 79b6758 to master...

@bors-servo bors-servo merged commit 79b6758 into master May 19, 2020
2 checks passed
2 checks passed
Community-TC (pull_request) TaskGroup: success
Details
homu Test successful
Details
@bors-servo bors-servo deleted the layout-2020-style-prep branch May 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

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