Commit Graph
9165 Commits
Author SHA1 Message Date
Ori Riner 6ad6dcd112 Clear previous children when SVG node doesn't have innerHTML (#11108)
* clear previous children when SVG node doesn't have innerHTML

* remove 'get' handler for appendChild in test node proxy
2017-10-10 11:54:47 +01:00
Andrew Clark 3019210df2 Expiration times (#10426)
* [Work-in-progress] Assign expiration times to updates

An expiration time represents a time in the future by which an update
should flush. The priority of the update is related to the difference
between the current clock time and the expiration time. This has the
effect of increasing the priority of updates as time progresses, to
prevent starvation.

This lays the initial groundwork for expiration times without changing
any behavior. Future commits will replace work priority with
expiration times.

* Replace pendingWorkPriority with expiration times

Instead of a priority, a fiber has an expiration time that represents
a point in the future by which it should render.

Pending updates still have priorities so that they can be coalesced.

We use a host config method to read the current time. This commit
implements everything except that method, which currently returns a
constant value. So this just proves that expiration times work the same
as priorities when time is frozen. Subsequent commits will show the
effect of advancing time.

* Triangle Demo should use a class

shouldComponentUpdate was removed from functional components.

Running the demo shows, now that expiration is enabled, the demo does
not starve. (Still won't run smoothly until we add back the ability to
resume interrupted work.)

* Use a magic value for task expiration time

There are a few cases related to sync mode where we need to distinguish
between work that is scheduled as task and work that is treated like
task because it expires. For example, batchedUpdates. We don't want to
perform any work until the end of the batch, regardless of how much
time has elapsed.

* Use current time to calculate expiration time

* Add unit tests for expiration and coalescing

* Delete unnecessary abstraction

* Move performance.now polyfill to ReactDOMFrameScheduling

* Add expiration to fuzz tester

* Expiration nits

- Rename Done -> NoWork
- Use max int32 instead of max safe int
- Use bitwise operations instead of Math functions
2017-10-09 18:39:53 -07:00
Georgios Giannoutsos Barkas 65b16b1c7e Allow custom attribute named on to be passed on to elements (#11153)
* Allow single `on` property for custom elements

* Remove test from ReactDOMComponent-test

* Allow custom attribute named 'on' to be passed

* Check property length instead of comparing strings
2017-10-09 17:31:24 -07:00
Dan Abramov 80596c2c92 Fix incorrect calculation of onMouseEnter/Leave component path (#11164)
* Add a regression test for #10906

* Turn while conditions into breaks without changing the logic

This will be easier to follow when we add more code there.

* var => const/let

So that I can add a block scoped variable.

* Check alternates when comparing to the common ancestor

This is the actual bugfix.
2017-10-09 20:30:03 +01:00
Dustan Kasten 08cbc257bd Bump peer deps of react to ^16.0.0 (#11156) 2017-10-09 16:00:50 +01:00
Sebastian Markbåge 4131af3e4b Ignore SSR warning using explicit suppressHydrationWarning option (#11126)
* Pass parent type and props to insert/delete hydration warning hooks

For this to work, we need to split the API into a container and normal
version. Since the root doesn't have a type nor props.

* Ignore SSR warning using explicit suppressHydrationWarning option

This lets you ignore the warning on a single element and its direct child
content. This is useful for simple fields that you're expecting to fail
such as time stamps.

Note that this still won't patch up such content so it'll remain
inconsistent. It's also not suitable for nested complex content that may
change.

* Suppress warning of inserted/deleted direct children

* Add fixture testing hydration warning

Also fixing the render->hydrate API change in the fixture

* Add hooks when text hydration doesn't match up

The purpose of these hooks is to pass the parent context to them. I don't
want to do that in the normal hydrateTextInstance hooks since this is
only used in DEV. This is also in line with what happens if there is no
text instance at all and we invoke didNotFindHydratableTextInstance.

* Move mismatch text hydration warning to the new hooks

This lets us ignore this call when we have parent props available and
the suppression flag is set.
2017-10-06 19:50:01 -07:00
Sebastian Markbåge 5744571140 [RT] More predictable things (#11139)
* Inject the right event emitter

Previously this was injecting the ReactNativeEventEmitter even though
we want the ReactNativeRTEventEmitter.

RCTEventEmitter is also just an abstraction around BatchedBridge that
registers a single name. We can't register more than one with it. Removed
that abstraction for now so we don't have to add it back into the RN repo.

* Unify appendChildToDetachedParent and appendChild, separate root

Merge appendChildToDetachedParent and appendChild. We don't need the distinction.

We do however need a separate notion for the root container.
Calling this `appendChildToContext` since Context has a meaning here.

* Add a simple shallow comparison so that we don't send updates for equal props

This still sends all props if any differs. Not sure we'll want that but I
think so.

* Add BatchedBridge to bundle externals

* Lint
2017-10-06 19:08:22 -07:00
Dan Abramov 190a1141cc Add an item to changelog 2017-10-06 23:08:25 +01:00
Anushree Subramani e8629667ab Deduplication of warning messages in nested updates (#11081) (#11113) 2017-10-06 23:04:18 +01:00
Dan Abramov c75eed29c6 Add more items to the rolling changelog 2017-10-06 21:47:49 +01:00
andreysaleba 12144517f9 Added check to deduplicate function type warning calls on each compon… (#11120)
* Added check to deduplicate function type warning calls on each component type

* Added test to check that 'function type as React child' warning is deduplicated correctly by component type

* Ran prettier on added code

* Modified test checking deduplication of 'Functions are not valid as a React child' warning so it will check against rerendering component now
2017-10-06 21:40:45 +01:00
Brian Vaughn ebb1d316bd Delete documentation and website source (#11137)
* Deleted docs folder

* Deleted www folder

* Remove Netlify website build command

* Removed refs to docs and www from ESlint config

* Removed refs to www/docs from Flow config

* Removed unnecessary .gitignore config

* Updated license check to remove refs to docs

* Removed gh-pages specific portions of Circle build scripts
There may be more that we can remove (eg set_up_github_keys.sh) but I'm not positive

* Removed docs specific license
2017-10-06 10:18:05 -07:00
Nathan Hunzaker 09ed79a942 Add focus helper to range test, update button styles (#11134)
When testing range input change events, clicking the knob would cause
it to move if the click region wasn't precisely on the center of the
knob.

This is annoying! This commit adds a button to focus the range input
knob and takes a small pass at styling buttons.

A label would work here too, however it does not generate a focus ring
in all browsers.
2017-10-06 12:58:10 -04:00
Nathan Hunzaker ea507f163b Use indexOf instead of includes in RangeKeyboardFixture (#11133)
Allows the DOM Fixture change test case to work in older browsers.
2017-10-06 10:45:57 -04:00
Sebastian Markbåge 7ec46e0fb0 [RT] Minor clean up (#11122)
* Rename rootNodeID -> tag

* Process RT props before forwarding them along

This is needed because the children prop can't be serialized.

Also, some minor placeholder for events.
2017-10-05 18:32:07 -04:00
Dan Abramov 44c32fc268 Ignore CR/LF differences when warning about markup mismatch (#11119)
* Add regression test for CR-insensitive hydration

* Normalize CR when comparing server HTML to DOM

* Move tests in the file

* Add a failing test for comparing attributes

* Normalize CR for attributes too

* Add a test case for CR in dangerouslySetInnerHTML

* Undo the fix per feedback

* Change the fix to be DEV-only and still patch up LF -> CR

* Remove the dangerouslySetInnerHTML test

It's always going to "pass" because we normalize HTML anyway.

Except that it won't pass because we intentionally don't patch up dangerouslyInnerHTML.

* Fix issue that Flow failed to catch

* Add null character tests

* Normalize both client and server value for the warning

* Fix the bug

* Normalize replacement character away as well

* Fix outdated comment
2017-10-05 20:59:43 +01:00
Dan Abramov 32ec797274 Adjacent text nodes in SSR should have comments between them despite components (#11109)
* Add a failing test for text nodes within components

* Reset the text node flag only when emitting tags

This ensures we don't reset it when we exit components that return strings.

* Add a failing test for a more complex tree

* Also reset text flag when emitting a footer

This fixes the {'a'}</div>{'b'} case and prevents an unnecessary comment before 'b'.
2017-10-05 20:05:00 +01:00
Dan Abramov 7d3b44bf37 Add production bundles for Test and Shallow renderers (#11112)
* Add production bundles for Test and Shallow renderers

* Remove unused/broken file from test renderer

* Add production bundle for TestUtils
2017-10-05 15:26:52 +01:00
Shi Yan fa7461e25b Fix SyntheticEvent constructor comments (#11011) 2017-10-05 00:45:39 +01:00
Dan Abramov a2efa51b92 Tweak wording based on @landermkerbey's suggestion in #10433#issuecomment-324488168 2017-10-04 21:44:12 +01:00
Sophie Alpert dffb206a04 Remove references to PATENTS that crept in (#11091) 2017-10-04 12:40:41 -07:00
Yangshun Tay 2b0ef3c1bb Fix blog issues that resulted from migration (#11089) 2017-10-04 19:35:29 +01:00
Gustavo Gard 81b368cf97 Correct logo url (#11090) 2017-10-04 19:33:39 +01:00
Dominic Gannaway e0b802fc4e Fixes example in Web Components docs (#11039)
* fixes docs on webcomponent

* Update web-components.md
2017-10-04 17:12:36 +01:00
Sophie Alpert 1ba7dfcf04 Rewrite ReactDOMSelection to use fewer ranges (#9992)
We heard from Chrome engineers that creating too many Range objects slows down Chrome because it needs to keep track of all of them for the case that anchor/focus nodes get removed from the document. We can just implement this calculation without ranges anyway.

jsdom doesn't support Range objects, but I copied the fuzz test code into my browser and manually compared it against our old implementation https://gist.github.com/sophiebits/2e6d571f4f10f33b62ea138a6e9c265c; with 200,000 trials no differences were found.
2017-10-03 18:48:30 -07:00
Sebastian Markbåge 761decb352 Fork React Native render into an "RT" renderer (#11072)
This is an experimental new protocol for some experiments we want to play
with. To make that easier, I'm just going to fork it.

This experiment won't use the event system so I by-pass it and just invoke
functions on the props object for now.

I also fork the UIManager into a new RTManager.
2017-10-03 18:48:23 -04:00
Brian Vaughn 53c1b8b0d7 Live code editor ignores tab key for improved a11y (#10992) 2017-10-03 11:15:00 -07:00
Fernando Poumian 25dbf03e66 [website] Add RSS Feed to website (#11056) 2017-10-03 11:06:30 -07:00
Haroen Viaene e367a44789 style(docsearch): add cursor + logo (#11032)
* style(docsearch): add cursor + logo

fixes #10965

Not completely convinced about the cursor colour, but I couldn't really find a better one, cc @joecritch

* fix margin

* style(docsearch): add cursor + logo

fixes #10965

Not completely convinced about the cursor colour, but I couldn't really find a better one, cc @joecritch

* padding
2017-10-03 10:39:14 -07:00
Brandon Dail f6a79d1f16 Only define MyElement when needed (#11069) 2017-10-03 10:23:59 -07:00
Dan Abramov 589c0a25df Update button labels 2017-10-03 17:03:18 +01:00
Yangshun Tay 4d60346fc4 Fix all GitHub issues and PRs query params (#11066) 2017-10-03 16:58:26 +01:00
pyitphyoaung 85b59d2fc9 Replace hyperlink tag with button tag in tic-tac-toe tutorial and update related references in the tutorial document (#11045) 2017-10-03 08:48:06 -07:00
Bernard Lin 07dba67ae0 Update conferences (#10781)
* Update conferences

* Update conferences.md
2017-10-03 15:45:30 +01:00
Brandon Dail 5f93ee6f6c Add test for mounting into a document fragment (#11047) 2017-10-03 14:55:32 +01:00
matej c32b4cd275 Fixing how to contribute beginner friendly issues GitHub link (#11063)
* Fixing how to contribute beginner friendly issues GitHub link

* Fixing again url for how to contribute beginner friendly issues GitHub link
2017-10-03 13:38:28 +01:00
Brian Vaughn 07b1da8964 Removed PooledClass (and tests) (#11053) 2017-10-02 16:54:40 -07:00
Brandon Dail ad1709a394 Only run custom element fixture in browsers that support it (#11052) 2017-10-02 16:50:46 -07:00
Flarnie Marchan 96134a0ea1 [Website] Add titles and labels to iframes and images on Community pages (#11041)
* [Website] Add titles and labels to iframes and images on Community pages

**what is the change?:**
- add titles to all iframes
- add alt tags to images
- add `aria-label` to some links which only have images as contents.

**why make this change?:**
Based on warnings thrown by aXe a11y audit of those pages

**test plan:**
Manual testing

**issue:**
None

* remove redundant alt tags
2017-10-02 16:41:05 -07:00
Ricky Reusser fb7bab6c27 Remove bundle-collapser browserify recommendation (#11051)
* Move bundle-collapser browserify plugin recommendation to a note.

* Remove bundle-collapser note entirely
2017-10-03 00:17:49 +01:00
Brian Vaughn 75ad1a9cd6 Refactored Installation page to no longer use tabs (#11050) 2017-10-02 15:45:48 -07:00
Orjiewuru Kingdom Isaac 4caa888bf9 Update react summit Nigeria title (#11046) 2017-10-02 23:15:07 +01:00
Vicky Chijwani 465ffd10c6 Docs: add link to DOM Level 3 spec for possible values of key prop (#11042) 2017-10-02 23:13:23 +01:00
Brandon Dail e7a2ac959a Update JSFiddle templates for React 16 (#11040)
These were broken after 16 was tagged as `latest` on npm. This fixes that problem, and also adds two template options: one for React 16 and one for React 15. I figure we should provide both for now, since there's still a lot of 15.x users.
2017-10-02 14:11:29 -07:00
Dan Abramov d8faa70b64 Add changelog entry 2017-10-02 20:51:13 +01:00
Dan Abramov 8b4ec79d4f Fix rendering into shadow root (#11037)
* Replace skipped unit test with a fixture

* Fix crash for custom elements
2017-10-02 20:50:14 +01:00
Dan Abramov bbb272f3aa Fix 404 for warning URLs (#11038) 2017-10-02 20:12:32 +01:00
Dan Abramov 4c8d248757 Add note to changelog 2017-10-02 19:01:20 +01:00
Dan Abramov 223396ad0a Whitelist <dialog> from unknown tag warning (#11035) 2017-10-02 18:59:37 +01:00
Dan Abramov 9d4c2dfaac Update the changelog 2017-10-02 18:54:45 +01:00