Commit Graph
8615 Commits
Author SHA1 Message Date
Hikaru Suido 3d6d641a8c Move previous events to the end (#9729) 2017-05-22 11:45:57 +02:00
Ben Alpert f1abc3cd12 Expose ReactFiberTreeReflection in FB build (#9741)
I need this for some hacky stuff I'm doing (D5060180).
2017-05-21 16:37:17 -07:00
Ben Alpert f0a0999c3b Add test for key warning at top level (#9473) 2017-05-21 15:39:25 -07:00
Dave Lunny 5cf571839e "Timeline" => "Performance" (#9602)
As of Chrome 58, the Timeline tab is now called the Performance tab, this updates the "Optimizing Performance > Profiling Components with Chrome Performance" section of the docs to reflect that.
2017-05-21 15:28:25 -04:00
Paul Manta 4b53dd0e6b Disable ESLint's no-extend-native for two lines (#9625) 2017-05-20 19:58:23 -04:00
Flarnie Marchan 91459086a9 Add PR #9642 to 15.6 change log (#9649)
Just keeping this fresh.

Issue:
2017-05-20 09:22:07 -07:00
Dan Abramov bb89c11788 New blog post: What's New in Create React App (#9719) 2017-05-19 05:31:35 +01:00
Dylan Kirby c1d4c8bc60 fix typo in benchmark docs (#9706) 2017-05-18 19:13:59 -04:00
Billy Shih 6ee701d18a Fix typo (#9717)
The example explaining how redux's connect works doesn't use the same component name. Line 264 references (Comment) while 274 referenced (CommentList). Changed 264 to match 274.
2017-05-18 19:06:29 -04:00
Sebastian Markbåge 39671ba45b Move some tests from failing to passing except dev (#9711)
These throw because we're asserting on the warnings. Make this not throw
so that they instead only fail to assert the warnings.
2017-05-17 23:54:26 -07:00
Sebastian Markbåge e5e874d0e8 Add package builds for new server renderer and enable tests (#9710)
* Adjust some expectations of the server markup format of Fiber

Currently this case is using the stack renderer.

* Ensure debug hooks are injected into the Stack server renderer

In our tests this normally happens because ReactDOM.js injects them into
the shared module, but when Fiber is enabled or this is its own flat
bundle, that doesn't happen.

* Add package builds for new server renderer and enable tests

ReactServer -> ReactDOMServerStream

This file is going to be the replacement for ReactDOMServer.

I mock ReactDOMServer and user ReactDOMServerStream when we have
the fiber flag enabled. I'm now also enabling this as the default for
distributions builds (react-dom/server on npm and
react-dom-server.production.min.js as umd bundle).

I'm using traverseStackChildren instead of traverseAllChildren because
traverseAllChildren is now only in the isomorphic package and we don't
want to build all of that that into the server package.

I also have to require lower case react for the builds to work.
2017-05-17 17:19:11 -07:00
Tom Occhino 8af729231b Initial Stack-Free SSR Implementation (#9673)
* Server Rendering initial commit

Originally authored by spicyj, tweakes to rebase it and make it run by tomocchino.

Adding ReactDOMServerRendering and a createTagMarkup utility function which will be used in it.

* Fix build system, add shortcut scripts

* Make more ReactServerRendering-test unit tests pass

* Make ReactServerRendering-test pass with copious help from Ben

This is pretty hacky and I just inlined everything, but at least I sort of understand how it works now, and all of the tests are passing. There are also only 68 tests failing in the integration test suite.

* remove some unnecessary cruft

* Run prettier on ReactDOMServerRendering.js

* Fix more unit tests with Ben

* Add support for input and textarea by copy pasting a bunch of code from ReactDOMInput/ReactDOMTextarea

* Fix context unit tests with more copy paste :)

* progress on select

* Holy shit, 100% of ReactDOMServerIntegration tests are passing

* Checkpoint to fix some of the ReactDOMComponent-test tests

* Fix missing checkPropTypes

* Fix some unit tests in ReactDOMComponent-test

* Run prettier on everything, thanks Ben

* get rid of ssr tests that are looking for component file names

* add assertValidProps check

* rename flattenChildren to flattenOptionChildren per Ben

* Fix all the lint crap

* Move things around in the file and turn ReactDOMServerRenderer into a class

* remove changes I added to package.json

* remove separate createOpenTagMarkup file for now since everything should be copy pasted into a single file

* re-record Fiber tests

* Revert ReactDOMServer.js and the fiber tests per Sebastian

This also reverts the changes I made to ReactDOMComponent-test.js which removed the stack which is missing in the new server renderer"

* Rename files based on feedback

Moving src/renderers/dom/server/ReactDOMServerRendering.js to src/renderers/server/ReactServerRenderer.js and add src/renderers/server/ReactServer.js which makes this new codepath completely separate.

* Change throw to invariant, even though we probably need to remove this at some point

* fix prettier.. sigh
2017-05-17 14:53:59 -07:00
Nathan Hunzaker 7deb12fdde Remove invalid css from DOMFixtures (#9600) 2017-05-17 17:22:32 +02:00
Michal Srb 1c449cea34 Make the world a better place by placing closing /> on a new line (#9699) 2017-05-16 15:42:48 -07:00
Toru Kobayashi 17ab69c1ec [Fiber] Fix to call deferred callbackQueue even if updates are aborted (#9634)
* Fix to call deferred callbackQueue even if updates are aborted

* Add an assertion to make sure the update processed, but wasn't committed yet
2017-05-12 10:45:51 -07:00
Flarnie Marchan 0f129973ea Move 'lighthouse' and 'nodegit' to 'optionalDependencies' (#9675)
**what is the change?:**
See title.

**why make this change?:**
Both these dependencies were causing issues when working on React internally at
FB.

'lighthouse' requires node >=6 and we don't want to folks working on React to
using that version of node.
https://github.com/GoogleChrome/lighthouse/blob/master/package.json#L11

'nodegit' for me throws an error related to libssh2 and it's annoying to make
this work in every OS. See https://github.com/nodegit/nodegit/issues/1266

**test plan:**
`npm/yarn install`
Runs with no errors on my CentOS machine and also on MacOSX laptop.

**issue:**
This is blocking work related to https://github.com/facebook/react/issues/9398
2017-05-12 15:41:30 +01:00
Ben Alpert f0df495f9a Run prettier on scripts/bench (#9671) 2017-05-11 16:14:17 -07:00
Ben Alpert e736b4c4b9 "yarn prettier" only checks changed files (#9670)
CI still checks all of them.
2017-05-11 14:47:29 -07:00
Tom Occhino fe750c9d5d Move assertValidProps into shared/utils since it will be used by the … (#9669)
* Move assertValidProps into shared/utils since it will be used by the server renderer

* Extract getCurrentOwnerName from assertValidProps and pass it in
2017-05-11 14:43:35 -07:00
Flarnie Marchan bec0f736df Wrap fiber-only test in feature flag (#9665)
**what is the change?:**
A test was added for a change to Fiber's behavior in #9608, and because of a
bug in our CirclCI script it landed when failing for non-fiber runs of the
tests.

This just wraps the test in a feature flag because it seems clear it was
only intended to test the new fiber behavior.

Thanks to @gaearon for pairing on this! :)

**why make this change?:**
So that tests are passing on master.

**test plan:**
`npm run test ReactCompositeComponentState`

**issue:**
None - figured it out before anyone opened an issue afaik.
2017-05-11 13:32:04 +01:00
Dan Abramov cc2450b7bf Always pass error code to CI (#9663) 2017-05-11 13:13:01 +01:00
shifengchen d7e6ef0f88 Edit two errors in docs (#9659) 2017-05-11 11:34:35 +01:00
Tom Occhino ffcbb0bfc2 Move small utility modules out of ReactDOM(Fiber)?Component (#9658)
* Move small utility modules out of ReactDOM(Fiber)?Component

These are all going to be needed in the server renderer, so I'm moving them out now so I can use them from in there.

* Fix `didWarnShadyDOM = false;` line
2017-05-10 22:01:48 -07:00
Philipp Spieß b48107ed57 Remove injectReactDOMEventListener from ReactBrowserEventEmitter (#9656)
* Remove injectReactDOMEventListener from ReactBrowserEventEmitter

This PR removes the injection of ReactDOMEventListener from
ReactBrowserEventEmitter. Instead, the required initialization will
happen directly in ReactDOMInjection.

This injection was (probably) originally implemented for React Native
but never used, so we can clean it up.

* Mention how to see the full ouput of fiber tests
2017-05-10 17:05:38 -07:00
Carolina Powers 7c1e971e7f Fix typo on tutorial.md. (#9644)
The absence of the word `this` will cause CodePen
to scream at you. This fix should avoid that.
2017-05-10 08:23:53 +01:00
Dan Abramov c1ba8ef264 Mention new fixes for addons in Changelog (#9643) 2017-05-10 01:03:34 +01:00
Philipp Spieß c0e32a1b03 Rename ReactEventListener to ReactDOMEventListener (#9640)
`ReactEventListener` is a DOM-specific module although the name suggests
otherwise. This change renames the module to the more specific
`ReactDOMEventListener`.
2017-05-09 16:17:03 -07:00
Dan Abramov 831fd6940e Sync RN downstream fix (#9637) 2017-05-09 20:29:37 +01:00
Flarnie Marchan 7842ff97c2 Add PR #8356 to the change log for v15.6 (#9636)
Another change log update ~ v15.6 is closer than ever! :)

Issue:
2017-05-09 18:54:45 +01:00
Flarnie Marchan e249c935ed Add PR #9584 to 15.6 change log (#9598)
Updating the change log~ :)

**issue:**
https://github.com/facebook/react/issues/9398
2017-05-09 18:22:17 +01:00
Dominic Gannaway a7d8ebd2b5 Add React benchmarking infrastructure (#9465)
* Initial commit for WIP benchmarking infrastructure

* fixed lint issues and ran prettier

* added <rootDir>/scripts/bench/ to ignore paths for Jest

* tidied up code and fixed a few bugs in the runner.js

* fixed eslint

* improved the benchmark output from the runner

* fixed typo

* tided up print output in runner.js

* throw error if chrome canary is not installed on mac

* added better bench stats output (tables)

* added benchmark diff to table results

* adds bundle size comparisons to results

* tidied up the results

* fixed prettier output

* attempt to trigger bech for circleci build

* fixes flow exlclusion for lighthouse module

* added class components benchmark

* cleaned up stats.js

* stability changes

* circleci node version to 7

* added another benchmark

* added colours to the different benchmarks to check if being cached

* force no-cache headers

* added more info messages

* refactor chrome launching.

* fixed an issue where launcher.kill might fail

* Move server to runner. Launch it only once.

* tidy up

* changes the logic in how the remote repo is checked out

* removes bench from circleci build

* removed colors from benchmarks (no longer needed)

* added CI integration comment

* added hacker news benchmark

* added skipBuild functionality

* relabelled remote

* Add confidence intervals

* added first meaningful paint

* removed some unused code

* reverted code.json

* updated benchmark runs back to 10

* no longer breaks when results contain missing bundles

* adds CPU throttling

* renamed build to remote-repo

* small fix to build

* fixed bad merge

* upped runs to 10 from 2 again

* properly pulls master

* removes old-bench

* runs benchmarks in headless mode

* adds a --headless option

* improved the git build process

* added README

* updated based feedback from review

* adds merge base commit sha

* addressing more PR feedback

* remove built JS react files

* updated .gitignore

* added combined bundle load times to the metrics
2017-05-09 17:13:54 +01:00
Ben Alpert 542dac4a23 Fix return value of ReactDOMFiber.unmountComponentAtNode (#9619) 2017-05-05 17:54:53 -07:00
Andrew Clark 767a5d60e8 updateQueue -> newUpdateQueue
Fix typo introduced after renaming a variable to address shadowing.
2017-05-05 14:21:17 -07:00
Andrew Clark 628b82c808 Allow assigning to this.state inside componentWillMount, with a warning 2017-05-05 14:03:29 -07:00
Andrew Clark 1232666590 Don't recreate instance when resuming a class component's initial mount
Recreating the class instance causes refs (and other callbacks) to close
over stale instances.

Instead, re-use the previous instance. componentWillMount is called
again. We also call componentWillReceiveProps, to ensure that
state derived from props remains in sync.
2017-05-05 14:03:29 -07:00
Dan Abramov 6facb85f85 Fix horizontal scrolling in docs (#9613) 2017-05-05 18:03:39 +01:00
Dan Abramov 138ff5e46b Fix sequencing in the Tutorial (#9615)
* Fix sequencing in the Tutorial

* Update tutorial.md

* Update tutorial.md
2017-05-05 18:02:13 +01:00
Andrew Clark 824e991241 Update flow to 0.45 (#9603) 2017-05-04 11:31:14 -07:00
Dan Abramov 943367faa7 Tweak Tutorial based on feedback 2017-05-04 00:30:12 +01:00
Nathan Hunzaker 6875fa867f Remove loose check on non-number controlled inputs. Fix trailing dot issue. (#9584)
* Remove loose check when assigning non-number inputs

This commit removes a check I added when working on number input
issues where we perform a loose check on an input's value before we
assign it. This prevented controlled text inputs from disallowing
numeric text entry.

I also added a DOM fixture text case.

Related issues:

https://github.com/facebook/react/issues/9561#issuecomment-298394312

* Use strict equality as a guard before assigning input.value

This commit adds back the guard around assigning the value property to
an input, however it does it using a strict equals. This prevents
validated inputs, like emails and urls from losing the cursor
position.

It also adds associated test fixtures.

* Add copy command after build for interup with surge.sh
2017-05-03 13:37:56 -05:00
Flarnie Marchan 50a60dbe74 Add 'unreleased' incremental change log for v15.6.0 (#9544)
* Add 'unreleased' incremental change log for v15.6.0

**what is the change?:**
Adding a section to the change log where we start accumulating
annotations for React v15.6.0.

**why make this change?:**
- Saves us the trouble of writing the change log entry all at once when
  we do the release.
- Adds transparency about what is in the upcoming release, for those who
  aren't following https://github.com/facebook/react/issues/9398

**test plan:**
Visual inspection

**issue:**
https://github.com/facebook/react/issues/9398

* Minor tweaks to v15.6.0 changelog annotation

**what is the change?:**
- added missing `#` for commit hashes
- added minor details to two annotations

Thanks to @gaearon for the code review comments.

**why make this change?:**
Consistency and clarity.

**test plan:**
Visual inspection

**issue:**
https://github.com/facebook/react/issues/9398

* Remove hashes from commit numbers

**what is the change?:**
We had added hashes to some commit numbers, but ideally only do that
for PRs.

**why make this change?:**
Consistency - this is how github displays those types of links too. PRs
get a '#', and commits don't.

**test plan:**
Visual inspection

**issue:**
https://github.com/facebook/react/issues/9398
2017-05-03 09:00:36 -07:00
Dan Abramov 2b7012ffb0 Fix mobile layout 2017-05-03 15:39:02 +01:00
Dan Abramov ac00e849fd Fix a typo 2017-05-03 15:04:25 +01:00
Dan Abramov e6c0ac9a0a Use a more specific link 2017-05-03 11:04:18 +01:00
Addy Osmani f86256ece0 Add DEV mode note to installation doc (#8784) (#9157)
* Add DEV mode note to installation doc (#8784)

* Address feedback from Dan on wording
2017-05-03 11:03:04 +01:00
Dan Abramov 185db64c76 Add more info about building for production (#9592)
* Add more info about building for production

* Add more info to the docs
2017-05-03 11:01:53 +01:00
Andrew Clark 535afaf759 16.0.0-alpha.12 2017-05-02 14:26:42 -07:00
Dan Abramov ba72c99183 Report version and bundle type to DevTools (#9586)
* Report version and bundle type to DevTools

* Flip the flag the other way around

It's easier to remember 0 is always PROD, and 1 is like DEV flag. 2 could be PROFILE in the future.

* Add version to RN inject call
2017-05-02 20:34:10 +01:00
Joe Critchley 109d1c95e3 [Docs] Show the name 'React' first in the homepage's <title> (#9582) 2017-05-02 14:22:24 +01:00
Dan Abramov 45dbcfb67d Add missing passing test 2017-05-02 14:22:09 +01:00