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

BatchingUIManager for UWP #2481

Merged
merged 42 commits into from
May 25, 2019
Merged

BatchingUIManager for UWP #2481

merged 42 commits into from
May 25, 2019

Conversation

randy-flynn
Copy link
Contributor

@randy-flynn randy-flynn commented May 15, 2019

Creates a BatchingUIManager that batches up most of the function calls then executes them on when onBatchComplete() is called. This prevents some UI thrashing and can dramatically reduce the number of dispatched work items.
This BatchingUIManager is now used for ReactUWP. The default functions, which are used by Desktop, are unchanged and use the standard UIManager.

Microsoft Reviewers: Open in CodeFlow

randy-flynn and others added 30 commits March 25, 2019 12:31
Update fork from Microsoft.
…eBase & ViewManagerBase. Reduces dependencies for build.
Remove debug code, update view sample.
merge with Microsoft, adds RNWCPP to master
Applying package update to 0.58.0-vnext.53
Reduce View element count for border clipping scenarios  (#2340)
… UIManager always though, and that will need to be fixed.
@randy-flynn randy-flynn requested a review from a team as a code owner May 15, 2019 23:53
@randy-flynn randy-flynn added the AutoMerge Causes a PR to be automatically merged once all requirements are passed (label drives bot activity) label May 15, 2019
@ghost
Copy link

ghost commented May 15, 2019

Hello @randy-flynn!

Because this pull request has the AutoMerge label, I will be glad to assist with helping to merge this pull request once all check-in policies pass.

Do note that I've been instructed to only help merge pull requests of this repository that have been opened for at least 60 minutes, a condition that is not currently met. No worries though, I will be back when the time is right! 😉

p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me and give me an instruction to get started! Learn more here.

@randy-flynn
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@ghost
Copy link

ghost commented May 16, 2019

Apologies, I am afraid that I will not be able to help with merging this PR as I am encountering technical difficulties.

@cliffkoh
Copy link

Regarding the auto-merge, looks like Azure is having some network instability issues... It should still work once someone approves the PR.

@kmelmon
Copy link
Contributor

kmelmon commented May 16, 2019

It's not clear to me how using a queue to store all the commands is avoiding unwanted dispatching. I'm also concerned this might be adding overhead that could be avoided... Can you explain more where the unwanted dispatching is actually happening? Is it possible to eliminate it rather than using a queue and deferring to later?

@randy-flynn
Copy link
Contributor Author

It's not clear to me how using a queue to store all the commands is avoiding unwanted dispatching. I'm also concerned this might be adding overhead that could be avoided... Can you explain more where the unwanted dispatching is actually happening? Is it possible to eliminate it rather than using a queue and deferring to later?

The way the queueing works now, every time we get a JS call, like createView or updateProperties we dispatch a work item to the UI thread to run that code. So we get one work item for every function call. This is a method of holding these function calls until we get the onBatchComplete() call so we can process them all at once. With my change Stellar gets a number of on BatchComplete() calls but there are really two big ones that process over a 1000 calls each.

I likely need to put in some more detailed logging to see what these 22000+ calls are. The fact that the XAML elements don't exist is probably causing other calls to be unimportant now. But I'm not sure what would really trigger that.

NOTE: I did forget a cleanup item in this - the queue size. Need to choose a default an only grow as needed.

@kmelmon
Copy link
Contributor

kmelmon commented May 17, 2019

Thanks. In today's code who is dispatching the work items? What I would hope is that synchronous calls made from js can be sent in batches over the bridge and executed on the UI thread. This would be the most performant way to guarantee transactional behavior.


In reply to: 493258535 [](ancestors = 493258535)

@ahimberg
Copy link
Member

Thanks. In today's code who is dispatching the work items? What I would hope is that synchronous calls made from js can be sent in batches over the bridge and executed on the UI thread. This would be the most performant way to guarantee transactional behavior.

In reply to: 493258535 [](ancestors = 493258535)

the queuing happens from the shared code in the react-native repo, see CxxNativeModule::invoke. When a native module (like uimanager module) is constructed it you give it a queue to run methods on. Invoke queues up the ui manager calls, today the queue it uses is our standard ui queue implementation that is putting it on the ui dispatch queue. That invoke code is generic and doesn't try to clump calls together going to the same module, this change is doing that for this specific module. Perhaps an alternate approach would be to replace the ui queue implementation with one that generically builds up a vector of functions to call... there are maybe some other ways to start running and then look to see if more things are in a queue and pull them off without returning control to the UI thread.

@kmelmon
Copy link
Contributor

kmelmon commented May 18, 2019

Thanks for the pointer. I debugged a bit and see now where the dispatching happens. With this change, we're still dispatching every call, but then deferring the actual function call until the end of a batch. It's an improvement to transactionality, but my concern about latency/overhead remains. I like the idea of creating a batching version of UIMessageQueueThread and using that as the queue for some set of native modules (possibly all of them). Feel free to chat more with me about this.


In reply to: 493301557 [](ancestors = 493301557)

@ahimberg ahimberg added the vnext label May 20, 2019
@rozele
Copy link
Collaborator

rozele commented May 24, 2019

In the current version of RNW, we also queue all UI operations until "OnBatchComplete", but we also afford "non-batched operations", namely creating XAML instances (but not adding them to any parent). The non-batched operations are allowed to run if there is idle time before batch complete, otherwise they are just processed with the batch.

@ahimberg ahimberg merged commit 40ead92 into microsoft:master May 25, 2019
khetanashita added a commit that referenced this pull request Jun 12, 2019
* Applying package update to 0.58.0-vnext.63

* fixes for new folly consumption (#2369)

* suppress new folly warning in msoFolly.h
* add export for const dynamic operator[]str

* Applying package update to 0.58.0-vnext.64

* fix CMake build (#2371)

* Applying package update to 0.58.0-vnext.65

* add layoutanimationtests to cmake unit tests (#2372)

* Applying package update to 0.58.0-vnext.66

* Update to react-native@0.58.6-microsoft.31 (#2370)

* Fix first launch and reload/unload crash (#2373)

* Fix first launch and reload/unload issue

* Reword the error message

* rename the helper to wrapper

* PrepareJavaScriptRuntime from 750ms to 5s

* use shared_from_this

* remove ThisWrapper

* ReactControl in rt to shared_ptr

* Applying package update to 0.58.0-vnext.67

* Update to react-native@0.58.6-microsoft.34 (#2395)

* Update version of ChakraCore in sample (#2398)

* Applying package update to 0.58.0-vnext.68

* chore(NPM): Updates JS modules to match RN 0.58  (#2293)

A few deprecations and refactorings caused issues with the upgrade to 0.58. This was all the changes to JS necessary to get RNTester working.

* Applying package update to 0.58.0-vnext.69

* Moved .ado to root (#2406)

* Renamed RNWCPP to vnext and RNWCS to current (#2405)

* Refactored root folders
* Updated path references
* Fixed appveyor.yml

* Update CODEOWNERS and ISSUE_TEMPLATE (#2408)

* Update CODEOWNERS
* Remove old ISSUE_TEMPLATES

* Committing changes to master readme (#2409)

* Committing changes to master readme

* Updating to address review feedback

* Update publish logic

* More publish logic fixes

* Applying package update to 0.58.0-vnext.70

* Update evergreen logic

* Remove ChakraCoreShim project. (#2407)

* Applying package update to 0.58.0-vnext.71

* Enable WebSocket resource unit tests. (#2415)

* Define test WebSocket types.

* Use CRLF for C++ files.

* Try basic_stream_socket over IWebSocketStream.

* Use boost::beast::test::stream.

* Defined async_connect(test::stream& ...

* Move custom async_connect into WebSocket.cpp.

* Defined MockStreamLayer subtype.

* Use errc::make_error_code.

* Define MockStream, equivalent to websocket::stream

* Implement async read and write in MockStreamLayer.

* Override boost::beast::http::async_read and write.

* Move TestWebSocket implementation to CPP file.

* Stop including <boost/beast/experimental/test/stream.hpp>.

* Simplify template decls for SecureWebSocket.

* Simplified WebSocket template declaration.

* Updated namespace for WebSocket-related APIs.

* Reset default platform to x64 in SLN.

* Re-located BaseWebSocketTest.

* Applying package update to 0.58.0-vnext.72

* End of line updates. (#2418)

* End of line updates for inconsistent CPP files.

* Fixed symbol typo.

* Applying package update to 0.58.0-vnext.73

* README for `current` (#2422)

* Committing a new readme file for "current" and making updates to main readme, vnext readme and other files to reflect the same

* Updated releases link

* Applying package update to 0.58.0-vnext.74

* Minor updates to readme (#2423)

* Minor updates to readme

* Update README.md

* Update README.md

* Updating Getting Started (vnext) (#2425)

* Adding manual install steps and steps for running sample apps through cloning repo.

* Updated sdk version

* Update vnext/docs/GettingStarted.md

Co-Authored-By: harinikmsft <harinik@microsoft.com>

* Update vnext/docs/GettingStarted.md

Co-Authored-By: harinikmsft <harinik@microsoft.com>

* Applying package update to 0.58.0-vnext.75

* Update evergreen script

* Script store (#2413)

* Syncing upstream changes

* ChakraJsiRuntime bringup

This change makes a number of fixes to Chakra implementation of JSI interface
in preparation to enabling JSI pipeline in Windows. This change includes the following,

1. Support Chakra (UWP/edge mode) and ChakraCore mode. Our initial implementation supported only ChakraCore (or embedded ChakraCore binaries)
2. Enable bytecode caching. This change has some of the building blocks required for caching, but end-end workflow requires some more changes.
3. Some extensive refactoring and bug fixes.

* fixing crlf of OInstance

* Some more fixes in OInstance

* Fix warnings

* Build fixes

* Fix build

* Incorporating feedbacks

* Fix non-uwp build

* Applying package update to 0.58.0-vnext.76

* Update to react-native@0.58.6-microsoft.36 (#2426)

* Update to react-native@0.58.6-microsoft.37 (#2430)

* Internal build changes (#2432)

* Internal build changes

* minor fix

* Applying package update to 0.58.0-vnext.77

* Internal build logic update

* Applying package update to 0.58.0-vnext.78

* Update to react-native@0.58.6-microsoft.38 (#2434)

* Update to react-native@0.58.6-microsoft.39 (#2435)

* Improve js download error handling (#2433)

* Download js manually even when web debugging

* Report error text returned from DownloadFromAsync for better error messages

* pretty print json-ish errors a bit

* enable wordwrap on our redbox text

* remove extra header

* additional fixup - don't allow cached reads, go back to IBuffer as we did before, return http code if no error text was returned

* a little more cleanup

* code review feedback

* Applying package update to 0.58.0-vnext.79

* Basic implementation of jsi::HostObject on Chakra (#2428)

* Basic implementation of jsi::HostObject on Chakra
Chakra JSRT doesn't provide API support to implement Host objects. We've resorted to
ES6 proxies to simulate the behaviour. The current code has some rough edges, for eg. the inspection apis such as
getHostObject, isHostObjecct etc. aren't supported in edge mode. We will fix them in subsequent changes.

* Fixing build

* Applying package update to 0.58.0-vnext.80

* Enabling further C++ strict conformance (/permissive-) (#2429)

* add permissive- switch by default, except for desktop dir

* Applying package update to 0.58.0-vnext.81

* Change min version from rs3 to rs2 (#2400)

* support rs2

* Fix crash and update bundle

* ci pipeline doesn't happy with netcore.runtime.coreclr\1.0.2, and update version to see what happened

* Revert "ci pipeline doesn't happy with netcore.runtime.coreclr\1.0.2, and update version to see what happened"

This reverts commit 902d99d.

* Make min version to rs3 for playground project

* rollback update to bundle

* rollback change to bundle

* Applying package update to 0.58.0-vnext.82

* Update to react-native@0.58.6-microsoft.41 (#2441)

* Internal build fixes (#2440)

* Applying package update to 0.58.0-vnext.83

* Simplify BaseWebSocket dependency mocks. (#2427)

* Newline in package.json.

* Implement CloseSucceeds test.

* Define template for m_stream type.

* Rename TestWebSocket as TestWebSocketOld.

* Finish MockStream declaration.

* Impl'd websocket::stream mock for BaseWebSocket

* Declare remaining mock results.

* Set arguments for HandshakeResult.

* Temporarily disabled CloseSucceeds.

* Disable HandshakeFails.

* Applying package update to 0.58.0-vnext.84

* updating chakracore debugger (#2444)

* Applying package update to 0.58.0-vnext.85

* Update to react-native@0.58.6-microsoft.42 (#2449)

* Drop boost package references for NMake. (#2446)

* Be specific about which string_view (#2450)

* Applying package update to 0.58.0-vnext.86

* Applying package update to 0.58.0-vnext.87

* Revert "Drop boost package references for NMake. (#2446)" (#2454)

This reverts commit 221963d.

* Applying package update to 0.58.0-vnext.88

* Check build has happened before running bundler (#2453)

* Applying package update to 0.58.0-vnext.89

* Unicode conversion (#2445)

The Utf16ToUtf8 functions in UnicodeConversion.h is implemented using a utf16 to utf8 conversion function written by Facebook. Said Facebook function does some weird things to conform with JSC's encoding and has been removed from Facebook/react-native since the introduction of JSCRuntime. This PR does the following:

1. Reimplement the Utf16ToUtf8 functions in UnicodeConversion.h using WideCharToMultiByte.
2. Introduce a new exception class UnicodeConversionException, which derives from std::runtime_error. Have unicode conversion functions throw UnicodeConversionExceptions instead of std::runtime_errors.
3. Add a few more unicode conversion function overloads for convenience.
4. Rename the namespace UnicodeConversion to unicode.
5. Rename UnicodeConversion.h/cpp to unicode.h/.cpp
6. Rename Utf8ToUtf16 and Utf16ToUtf8 to utf8ToUtf16 and utf16ToUtf8 to conform with the naming convention in the rest of the repo.
7. As part of the reimplementation of Utf16ToUtf8, add two helper functions under ReactWindowsCore/utilities.h.

* Applying package update to 0.58.0-vnext.90

* Update publish logic to enable publish of fb*merge and fabric branches

* Update to react-native@0.58.6-microsoft.44 (#2459)

* Update publish step to allow publishing different npm tags

* Fix x86 cmake build. (#2462)

* Applying package update to 0.58.0-vnext.91

* Update to react-native@0.58.6-microsoft.45 (#2463)

* Add option for native promise support in Chakra JSI (#2461)

* Applying package update to 0.58.0-vnext.92

* Header should include all its reqs (#2468)

* Applying package update to 0.58.0-vnext.93

* Chakracore debugger console redirection support (#2457)

* Applying package update to 0.58.0-vnext.94

* fix nuget packaging (#2473)

* fix nuget packaging of new jsi files

* a few more files

* Applying package update to 0.58.0-vnext.95

* Add v8runtime export to the def file and a dummy implementation for GitHub (#2472)

* Applying package update to 0.58.0-vnext.96

* Complete support for HostObject (UWP&Win32) and Weak references (partial for UWP) (#2465)

* Complete support for HostObject (UWP&Win32) and Weak references (partial for UWP)

* Update ChakraJsiRuntime.cpp

* Update ChakraJsiRuntime.cpp

* Applying package update to 0.58.0-vnext.97

* Add IUIManager.h to nuget (#2475)

* Applying package update to 0.58.0-vnext.98

* unicode.h uses stdexcept but doesn't include it (#2476)

* unicode.h uses stdexcept but doesn't include it

* Microsoft github org got renamed to microsoft

* Applying package update to 0.58.0-vnext.99

* Add/update repository properties in package.jsons (#2471)

* Add/update repository properties to package.jsons

* Fix repository url

* Update to react-native@0.58.6-microsoft.46 (#2478)

* Update to react-native@0.58.6-microsoft.47 (#2479)

* Applying package update to 0.58.0-vnext.100

* Nuget fix iuimanager.h typo (#2483)

* remove extra nuspec file

* fix typo in  nuspec of IUIManager

* Applying package update to 0.58.0-vnext.101

* ScrollView snap point properties (#2443)

* Fix Horizontal ScrollView.

The UWP ScrollViewer requires that HorizontalScrollBarVisibility not be Disabled in order for the ScrollViewer to be horizontally scrollable. The default value for HorizontalScrollBarVisibility is Disabled so for ReactNative ScrollView's which do not set showsHorizontalScrollIndicator but set horizontal to true we were providing an improperly configured ScrollViewer for the native implementation.

* Implement the following properties:
snapToInterval
snapToOffsets
snapToStart = true (false needs work).
snapToEnd = true (false needs work).
snapToAlignment

* Fix build errors due to narrowing cast, fix bug where updates to start value wouldn't get saved if end value also changed.

* Move a lot of the SV specific logic to its shadow node.

* remove using winrt from uwp react instance, const many locals.

* move the remainder of the locals from the viewmanager to the shadow node

* Applying package update to 0.58.0-vnext.102

* Flyout updates (#2442)

* Adding more placement options for the Flyout component

* Simplifying placement enum usage

* simplifying placement enum usage..again

* Clariftying the flyout placement options and setting default to 'top'

* Converting placement string enum to string literal type.

* Applying package update to 0.58.0-vnext.103

* Include IWebSocket.h in nuget (#2487)

* Applying package update to 0.58.0-vnext.104

* Readme path updates (#2489)

* Applying package update to 0.58.0-vnext.105

* Switching UWP react native instance to use JSI (#2485)

* Switching UWP SampleApplication to use JSI

* Update ChakraJsiRuntime.h

* Integration ChakraJsiRuntime with desktop integration tests and fixing the logging

* Applying package update to 0.58.0-vnext.106

* cmake build fixes, uwp unittest build fix (#2490)

* Applying package update to 0.58.0-vnext.107

* Update to react-native@0.58.6-microsoft.48 (#2491)

* Fixing cmake build after JSI switch (#2496)

* Applying package update to 0.58.0-vnext.108

* Modify publish task to publish nuget (#2497)

* First stab at moving nuget creation to github

* Fix typo

* Update CopyToStaging

* Update staging bat

* More staging update

* Remove trailing \ from srcroot

* Typo in artifact name

* Rework where files were put

* remove react-native-windows prefix

* missed ship arm

* Replace original publish yaml

* Remove accidental whitespace

* Perf improvements (#2495)

* Only call SetLayoutProps when a new layout has happened

* reduce temp strings created using dynamic.as*

* use const ref of dynamic in UpdateProperties

* consistency, fix dynamic == "string" compares

* Applying package update to 0.58.0-vnext.109

* Fixing siing issues with Flyout (WI: 3362439) (#2493)

* Applying package update to 0.58.0-vnext.110

* fix for running in web debugging mode (#2500)

* Applying package update to 0.58.0-vnext.111

* Verify nuget can be packed during PR (#2498)

* Verify nuget can be packed during PR

* Fix bad path

* Use npm version for nuget version

* Use different env var format

* Fix powershell script to set version

* Change how we get package version to nuget task

* More fixes

* JSI compat fixes (#2501)

* update all  usages of isInt to use isNumber for JSI compat

* fix numberOfLines prop

* fix getConstantsForViewManager

* Applying package update to 0.58.0-vnext.112

* fix TextInput (#2502)

* Applying package update to 0.58.0-vnext.113

* Removing some MS-internal build files, add UseJsi option (#2503)

* remove uwp obuild support

* Remove ShouldReuseReactInstancesWhenPossible/UpdateDevSettings, callers were removed a long time ago

* add UseJsi option to UWP settings, just in case

* Applying package update to 0.58.0-vnext.114

* add DirectDebugging option for uwp Chakra (#2504)

* Applying package update to 0.58.0-vnext.115

* Fix to allow authorization header to be added. (#2467)

* Change from Headers().Append to Headers().TryAppendWithoutValidation

* only use tryadd for authorization

* Applying package update to 0.58.0-vnext.116

* Change name of publish temp branch

* internal build fix (#2506)

* Applying package update to 0.58.0-vnext.117

* Update to react-native@0.58.6-microsoft.49 (#2507)

* Update to react-native@0.58.6-microsoft.51 (#2514)

* Core Parity Status Article (#2510)

* Create ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

Added milestone 3 separate packages, and edited text to match feedback from PR to master.

* Update ParityStatus.md

Typo.

* Update ParityStatus.md

Updated headers to the tables to vnext status and current status.

* Add files needed for win32 nuget (#2511)

* Disable trickle (#2517)

* Create a seperate uwp nuget (#2516)

* Applying package update to 0.58.0-vnext.118

* Applying package update to 0.58.0-vnext.119

* Transform support (#2513)

* beginnings of Transform

* add transform support

* cr feedback

* Applying package update to 0.58.0-vnext.120

* ChakraCore v1.11.9 (#2474)

* ChakraCore v1.11.9

* NuGet references should use SolutionDir instead of relative path

* Update ChakraCore in current branch

* Applying package update to 0.58.0-vnext.121

* Flyout dismissal (#2519)

* 3368175: Workaround for flyout light dismiss issue

* cleanup

* Code review suggestions

* Applying package update to 0.58.0-vnext.122

* Update to react-native@0.58.6-microsoft.54 (#2523)

* Avoid infinite updating loop for textinput and allow fast typing (#2521)

* Resolve fast typing issue

* Resolve conflicts after mege

* Applying package update to 0.58.0-vnext.123

* Self layout elements not always visible after an update (#2520)

* Update Yoga logging to display the entire tree, update comments on turning it on for new yoga version

* Save and restore width in DefaultYogaSelfMeasureFunc

* Applying package update to 0.58.0-vnext.124

* Fix nuget

* Applying package update to 0.58.0-vnext.125

* Update to react-native@0.58.6-microsoft.55 (#2525)

* Generate full debugging info in the pdbs (#2528)

* Generate full pdb's

* FullProgramDatabaseFile should be DebugFull too

* Applying package update to 0.58.0-vnext.126

* ChakraJsiRuntime debugger refactoring (#2526)

* ChakraJsiRuntime debugger refactoring

* Fixing unicode call

* Incorporating review comments

* Applying package update to 0.58.0-vnext.127

* BatchingUIManager for UWP (#2481)

* Reduce and rationalize some header file includes related to ShadowNodeBase & ViewManagerBase. Reduces dependencies for build.

* Checkpoint.

* Remove debugging code. Update view sample to drive three scenarios.

* Remove TODO NOW comment.

* Working version of BatchingUIManager. Right now it takes over for the UIManager always though, and that will need to be fixed.

* Separate Batching components into own file. Temporarily include diagnostic output (which will be removed in later check-in).

* Put tracking behind ifdefs. Fix whitespace so no change in UIManagerModule.h.

* Use smaller queue size and empty it when full.

* Port JSI changes from UIManager to BatchingUIManager.

* Applying package update to 0.58.0-vnext.128

* Export dynamic::get_ptr (#2534)

* Update to react-native@0.58.6-microsoft.56 (#2533)

* Applying package update to 0.58.0-vnext.129

* Turn off debug output for BatchingUIManager. (#2536)

* Reduce and rationalize some header file includes related to ShadowNodeBase & ViewManagerBase. Reduces dependencies for build.

* Checkpoint.

* Remove debugging code. Update view sample to drive three scenarios.

* Remove TODO NOW comment.

* Working version of BatchingUIManager. Right now it takes over for the UIManager always though, and that will need to be fixed.

* Separate Batching components into own file. Temporarily include diagnostic output (which will be removed in later check-in).

* Put tracking behind ifdefs. Fix whitespace so no change in UIManagerModule.h.

* Use smaller queue size and empty it when full.

* Port JSI changes from UIManager to BatchingUIManager.

* Turn off queue tracking debug output.

* Applying package update to 0.58.0-vnext.130

* VS 2019 Fixes (#2396)

* Fix unit test build (something upgraded with 2019 also broken 2017 builds) - SkipUnionWinmd prevents .net files from attempting to be bundled into the appx

* Enable newer compiler when using VS2019

* Applying package update to 0.58.0-vnext.131

* Update msbuildtools.js with VS 2019 path (#2539)

* Update msbuildtools.js with VS 2019 path

* Set platform toolset for VS 2019

* Applying package update to 0.58.0-vnext.132

* Updating chakracore debugger to the latest version (#2543)

* Applying package update to 0.58.0-vnext.133

* Update to react-native@0.58.6-microsoft.58 (#2541)

* PDBs should be created with -minpdbpathlen:256 (#2544)

* Applying package update to 0.58.0-vnext.134

* Remove use of LayoutUpdated event. Set clipping in ArrangeOverride() instead. (#2542)

* Reduce and rationalize some header file includes related to ShadowNodeBase & ViewManagerBase. Reduces dependencies for build.

* Checkpoint.

* Remove debugging code. Update view sample to drive three scenarios.

* Remove TODO NOW comment.

* Working version of BatchingUIManager. Right now it takes over for the UIManager always though, and that will need to be fixed.

* Separate Batching components into own file. Temporarily include diagnostic output (which will be removed in later check-in).

* Put tracking behind ifdefs. Fix whitespace so no change in UIManagerModule.h.

* Use smaller queue size and empty it when full.

* Port JSI changes from UIManager to BatchingUIManager.

* Turn off queue tracking debug output.

* Stop using LayoutUpdated event to set clipping. Do it in ArrangeOverride.

* Applying package update to 0.58.0-vnext.135

* ScrollContentView and ScrollView cleanup (#2545)

* add ScrollContentViewManager, which is just a <View> but removes forking from react-native

* cleanup in ScrollViewManager

* Applying package update to 0.58.0-vnext.136

* Image unforking (#2547)

* Remove forked image.uwp.js

* add queryCache stub, update getSize to match 0.57+ Image.js

* Applying package update to 0.58.0-vnext.137

* enable inline source maps by default (#2553)

* Applying package update to 0.58.0-vnext.138

* require AttachRoot to be called from UI thread (#2551)

* Applying package update to 0.58.0-vnext.139

* Minor readme updates (#2548)

* Committing minor changes to master readme and vnext Getting started pages for updates related to RS2 version support and troubleshooting updates.

* Update README.md

* Update README.md

* Update README.md

* Applying package update to 0.58.0-vnext.140

* PerfCompare app (#2512)

PerfCompare provides a single app to compare the performance of loading a simple chat-window mockup UI across XAML Markup, RNW Current, and RNW VNext.

This PR also includes adding test hooks to both Current and VNext intercepting the creation of XAML elements.

Covers issues #2127, #2374, #2375, #2377, #2378, #2376, #2452

* Applying package update to 0.58.0-vnext.141

* Update to react-native@0.58.6-microsoft.59 (#2554)

* Update typescript version to 3.5.1 (#2558)

* Update typescript to 3.5.1

* remove no-use-before-declare lint rule

* Disable fetch depth for now.

* Applying package update to 0.58.0-vnext.142

* ScrollView.scrollEnabled property (#2488)

* Fix Horizontal ScrollView.

The UWP ScrollViewer requires that HorizontalScrollBarVisibility not be Disabled in order for the ScrollViewer to be horizontally scrollable. The default value for HorizontalScrollBarVisibility is Disabled so for ReactNative ScrollView's which do not set showsHorizontalScrollIndicator but set horizontal to true we were providing an improperly configured ScrollViewer for the native implementation.

* Implement the following properties:
snapToInterval
snapToOffsets
snapToStart = true (false needs work).
snapToEnd = true (false needs work).
snapToAlignment

* Fix build errors due to narrowing cast, fix bug where updates to start value wouldn't get saved if end value also changed.

* Move a lot of the SV specific logic to its shadow node.

* remove using winrt from uwp react instance, const many locals.

* move the remainder of the locals from the viewmanager to the shadow node

* Add the scrollEnabled property

* Applying package update to 0.58.0-vnext.143

* Replace isInt() with isNumber() and get/asInt() with asDouble(), sometimes static_cast back to int/int64_t (#2561)

* Applying package update to 0.58.0-vnext.144

* fix(CLI): Ensure CLI downloads current version (#2559)

The CLI is currently attempting to install pre-release versions of react-native-windows, and because "vnext" > "rc" in terms of semver, it's always picking up the vnext version.

This change assumes that unless specified, the user will either want to install a stable version or a prerelease labeled `rc` version of `react-native-windows`.

Recent changes to `rnpm-plugin-windows` added a bunch of logic to patch the react-native dependency version. This change also moves this logic into the project generator instead, allowing us to iterate on the "patch" logic in `react-native-windows` as opposed to `rnpm-plugin-windows`.

* Applying package update to 0.58.0-vnext.145

* move UWP PRs to hosted machines (#2562)

* try to move PRs to hosted machines

* hosted machine already has yarn

* fix path

* Dont require office nuget feed (#2569)

* Applying package update to 0.58.0-vnext.146

* Removing default padding on FlyoutPresenter (#2567)

* Applying package update to 0.58.0-vnext.147

* Update to react-native@0.58.6-microsoft.60 (#2572)

* fixes to FormData network support (#2570)

* convert blocking .get calls from SendRequest() to co_await

* Move NetworkingModule to background thread instead

* Applying package update to 0.58.0-vnext.148

* Cleaning up XAML Flyout when shadow node view is dropped. (#2564)

* Applying package update to 0.58.0-vnext.149

* Commiting proposal process files (#2571)

* Applying package update to 0.58.0-vnext.150

* [Current] Update msbuildtools.js with VS 2019 path (#2583)

* Fix nuget packages path (#2582)

* Picker layout fix (WI:3391028)  (#2584)

* Forcing layout after adding new items to Picker

* Suggested code review change.

* Applying package update to 0.58.0-vnext.151

* Applying package update to 0.58.0-vnext.152

* add debug host and enable jit to the instance settings (#2585)

* Applying package update to 0.58.0-vnext.153

* Move win32 CI to hosted pool (#2563)

* Move win32 to hosted too

* yarn already installed...

* Rename Microsoft.ChakraCore.Debugger to ChakraCore.Debugger

* Remove office from nuget.config

* Try using old targets path

* Use standard pool for last PR step too

* See if builds work on windows-2019 image

* Back to vs2017-win2016

* Add a timeout to the desktop UTs

* Disable bytecode tests to see if they are the ones hanging

* Try disabling websocket tests instead

* Change nuget prep script to not create copies of files. - (Fix out of disk space error)

* formatting

* use backslash for path seperators

* more fix

* dont print % progress

* try failOnStderr

* poke build

* switch to powershell

* Try again

* Split copy script into seperate steps

* Move to script instead of inline ps

* more try

* Applying package update to 0.58.0-vnext.154

* Do not let functions under facebook::react::unicode throw upon invalid Unicode characters.

* Applying package update to 0.58.0-vnext.155

* Add basic version info to win32 dll. (#2592)

* Applying package update to 0.58.0-vnext.156

* Applying package update to 0.58.0-vnext.157

* Applying package update to 0.58.0-vnext.158

* Applying package update to 0.58.0-vnext.159

* Applying package update to 0.58.0-vnext.160

* Applying package update to 0.58.0-vnext.161

* Prevent publish loop

* Applying package update to 0.58.0-vnext.162

* Applying package update to 0.58.0-vnext.163

* Applying package update to 0.58.0-vnext.164

* Applying package update to 0.58.0-vnext.165

* Ensure dll gets updated version before build (#2594)

* Applying package update to 0.58.0-vnext.166

* Remove nmake build files (#2595)

* Fix include (#2596)

* Applying package update to 0.58.0-vnext.167

* Fix publish script

* Applying package update to 0.58.0-vnext.168

* Update target version to 19h1 and set XamlRoot for Flyout (#2456)

* draft

* workaround cppwinrt error

* popup fix

* rollback change to popup and update Flyout

* update comment from popup to flyout

* change signature and rename getShadowNodeWithXamlRoot

* draft

* workaround cppwinrt error

* popup fix

* rollback change to popup and update Flyout

* update comment from popup to flyout

* change signature and rename getShadowNodeWithXamlRoot

* install SDK

* install SDK for win32

* install desktopcpp

* Applying package update to 0.58.0-vnext.169

* Update to react-native@0.58.6-microsoft.63 (#2600)

* Implemented accessibilityLiveRegion (#2591)

* Add accessibilityLiveRegion property to FrameworkElementViewManager
* Added AccessibilityUtils.h with helper method to announce the LiveRegion change
* Fixed bug and added example in RNTester

* Applying package update to 0.58.0-vnext.170

* Add flyout offset props

* Took care of review comments
khetanashita added a commit that referenced this pull request Jun 26, 2019
* Applying package update to 0.58.0-vnext.65

* add layoutanimationtests to cmake unit tests (#2372)

* Applying package update to 0.58.0-vnext.66

* Update to react-native@0.58.6-microsoft.31 (#2370)

* Fix first launch and reload/unload crash (#2373)

* Fix first launch and reload/unload issue

* Reword the error message

* rename the helper to wrapper

* PrepareJavaScriptRuntime from 750ms to 5s

* use shared_from_this

* remove ThisWrapper

* ReactControl in rt to shared_ptr

* Applying package update to 0.58.0-vnext.67

* Update to react-native@0.58.6-microsoft.34 (#2395)

* Update version of ChakraCore in sample (#2398)

* Applying package update to 0.58.0-vnext.68

* chore(NPM): Updates JS modules to match RN 0.58  (#2293)

A few deprecations and refactorings caused issues with the upgrade to 0.58. This was all the changes to JS necessary to get RNTester working.

* Applying package update to 0.58.0-vnext.69

* Moved .ado to root (#2406)

* Renamed RNWCPP to vnext and RNWCS to current (#2405)

* Refactored root folders
* Updated path references
* Fixed appveyor.yml

* Update CODEOWNERS and ISSUE_TEMPLATE (#2408)

* Update CODEOWNERS
* Remove old ISSUE_TEMPLATES

* Committing changes to master readme (#2409)

* Committing changes to master readme

* Updating to address review feedback

* Update publish logic

* More publish logic fixes

* Applying package update to 0.58.0-vnext.70

* Update evergreen logic

* Remove ChakraCoreShim project. (#2407)

* Applying package update to 0.58.0-vnext.71

* Enable WebSocket resource unit tests. (#2415)

* Define test WebSocket types.

* Use CRLF for C++ files.

* Try basic_stream_socket over IWebSocketStream.

* Use boost::beast::test::stream.

* Defined async_connect(test::stream& ...

* Move custom async_connect into WebSocket.cpp.

* Defined MockStreamLayer subtype.

* Use errc::make_error_code.

* Define MockStream, equivalent to websocket::stream

* Implement async read and write in MockStreamLayer.

* Override boost::beast::http::async_read and write.

* Move TestWebSocket implementation to CPP file.

* Stop including <boost/beast/experimental/test/stream.hpp>.

* Simplify template decls for SecureWebSocket.

* Simplified WebSocket template declaration.

* Updated namespace for WebSocket-related APIs.

* Reset default platform to x64 in SLN.

* Re-located BaseWebSocketTest.

* Applying package update to 0.58.0-vnext.72

* End of line updates. (#2418)

* End of line updates for inconsistent CPP files.

* Fixed symbol typo.

* Applying package update to 0.58.0-vnext.73

* README for `current` (#2422)

* Committing a new readme file for "current" and making updates to main readme, vnext readme and other files to reflect the same

* Updated releases link

* Applying package update to 0.58.0-vnext.74

* Minor updates to readme (#2423)

* Minor updates to readme

* Update README.md

* Update README.md

* Updating Getting Started (vnext) (#2425)

* Adding manual install steps and steps for running sample apps through cloning repo.

* Updated sdk version

* Update vnext/docs/GettingStarted.md

Co-Authored-By: harinikmsft <harinik@microsoft.com>

* Update vnext/docs/GettingStarted.md

Co-Authored-By: harinikmsft <harinik@microsoft.com>

* Applying package update to 0.58.0-vnext.75

* Update evergreen script

* Script store (#2413)

* Syncing upstream changes

* ChakraJsiRuntime bringup

This change makes a number of fixes to Chakra implementation of JSI interface
in preparation to enabling JSI pipeline in Windows. This change includes the following,

1. Support Chakra (UWP/edge mode) and ChakraCore mode. Our initial implementation supported only ChakraCore (or embedded ChakraCore binaries)
2. Enable bytecode caching. This change has some of the building blocks required for caching, but end-end workflow requires some more changes.
3. Some extensive refactoring and bug fixes.

* fixing crlf of OInstance

* Some more fixes in OInstance

* Fix warnings

* Build fixes

* Fix build

* Incorporating feedbacks

* Fix non-uwp build

* Applying package update to 0.58.0-vnext.76

* Update to react-native@0.58.6-microsoft.36 (#2426)

* Update to react-native@0.58.6-microsoft.37 (#2430)

* Internal build changes (#2432)

* Internal build changes

* minor fix

* Applying package update to 0.58.0-vnext.77

* Internal build logic update

* Applying package update to 0.58.0-vnext.78

* Update to react-native@0.58.6-microsoft.38 (#2434)

* Update to react-native@0.58.6-microsoft.39 (#2435)

* Improve js download error handling (#2433)

* Download js manually even when web debugging

* Report error text returned from DownloadFromAsync for better error messages

* pretty print json-ish errors a bit

* enable wordwrap on our redbox text

* remove extra header

* additional fixup - don't allow cached reads, go back to IBuffer as we did before, return http code if no error text was returned

* a little more cleanup

* code review feedback

* Applying package update to 0.58.0-vnext.79

* Basic implementation of jsi::HostObject on Chakra (#2428)

* Basic implementation of jsi::HostObject on Chakra
Chakra JSRT doesn't provide API support to implement Host objects. We've resorted to
ES6 proxies to simulate the behaviour. The current code has some rough edges, for eg. the inspection apis such as
getHostObject, isHostObjecct etc. aren't supported in edge mode. We will fix them in subsequent changes.

* Fixing build

* Applying package update to 0.58.0-vnext.80

* Enabling further C++ strict conformance (/permissive-) (#2429)

* add permissive- switch by default, except for desktop dir

* Applying package update to 0.58.0-vnext.81

* Change min version from rs3 to rs2 (#2400)

* support rs2

* Fix crash and update bundle

* ci pipeline doesn't happy with netcore.runtime.coreclr\1.0.2, and update version to see what happened

* Revert "ci pipeline doesn't happy with netcore.runtime.coreclr\1.0.2, and update version to see what happened"

This reverts commit 902d99d.

* Make min version to rs3 for playground project

* rollback update to bundle

* rollback change to bundle

* Applying package update to 0.58.0-vnext.82

* Update to react-native@0.58.6-microsoft.41 (#2441)

* Internal build fixes (#2440)

* Applying package update to 0.58.0-vnext.83

* Simplify BaseWebSocket dependency mocks. (#2427)

* Newline in package.json.

* Implement CloseSucceeds test.

* Define template for m_stream type.

* Rename TestWebSocket as TestWebSocketOld.

* Finish MockStream declaration.

* Impl'd websocket::stream mock for BaseWebSocket

* Declare remaining mock results.

* Set arguments for HandshakeResult.

* Temporarily disabled CloseSucceeds.

* Disable HandshakeFails.

* Applying package update to 0.58.0-vnext.84

* updating chakracore debugger (#2444)

* Applying package update to 0.58.0-vnext.85

* Update to react-native@0.58.6-microsoft.42 (#2449)

* Drop boost package references for NMake. (#2446)

* Be specific about which string_view (#2450)

* Applying package update to 0.58.0-vnext.86

* Applying package update to 0.58.0-vnext.87

* Revert "Drop boost package references for NMake. (#2446)" (#2454)

This reverts commit 221963d.

* Applying package update to 0.58.0-vnext.88

* Check build has happened before running bundler (#2453)

* Applying package update to 0.58.0-vnext.89

* Unicode conversion (#2445)

The Utf16ToUtf8 functions in UnicodeConversion.h is implemented using a utf16 to utf8 conversion function written by Facebook. Said Facebook function does some weird things to conform with JSC's encoding and has been removed from Facebook/react-native since the introduction of JSCRuntime. This PR does the following:

1. Reimplement the Utf16ToUtf8 functions in UnicodeConversion.h using WideCharToMultiByte.
2. Introduce a new exception class UnicodeConversionException, which derives from std::runtime_error. Have unicode conversion functions throw UnicodeConversionExceptions instead of std::runtime_errors.
3. Add a few more unicode conversion function overloads for convenience.
4. Rename the namespace UnicodeConversion to unicode.
5. Rename UnicodeConversion.h/cpp to unicode.h/.cpp
6. Rename Utf8ToUtf16 and Utf16ToUtf8 to utf8ToUtf16 and utf16ToUtf8 to conform with the naming convention in the rest of the repo.
7. As part of the reimplementation of Utf16ToUtf8, add two helper functions under ReactWindowsCore/utilities.h.

* Applying package update to 0.58.0-vnext.90

* Update publish logic to enable publish of fb*merge and fabric branches

* Update to react-native@0.58.6-microsoft.44 (#2459)

* Update publish step to allow publishing different npm tags

* Fix x86 cmake build. (#2462)

* Applying package update to 0.58.0-vnext.91

* Update to react-native@0.58.6-microsoft.45 (#2463)

* Add option for native promise support in Chakra JSI (#2461)

* Applying package update to 0.58.0-vnext.92

* Header should include all its reqs (#2468)

* Applying package update to 0.58.0-vnext.93

* Chakracore debugger console redirection support (#2457)

* Applying package update to 0.58.0-vnext.94

* fix nuget packaging (#2473)

* fix nuget packaging of new jsi files

* a few more files

* Applying package update to 0.58.0-vnext.95

* Add v8runtime export to the def file and a dummy implementation for GitHub (#2472)

* Applying package update to 0.58.0-vnext.96

* Complete support for HostObject (UWP&Win32) and Weak references (partial for UWP) (#2465)

* Complete support for HostObject (UWP&Win32) and Weak references (partial for UWP)

* Update ChakraJsiRuntime.cpp

* Update ChakraJsiRuntime.cpp

* Applying package update to 0.58.0-vnext.97

* Add IUIManager.h to nuget (#2475)

* Applying package update to 0.58.0-vnext.98

* unicode.h uses stdexcept but doesn't include it (#2476)

* unicode.h uses stdexcept but doesn't include it

* Microsoft github org got renamed to microsoft

* Applying package update to 0.58.0-vnext.99

* Add/update repository properties in package.jsons (#2471)

* Add/update repository properties to package.jsons

* Fix repository url

* Update to react-native@0.58.6-microsoft.46 (#2478)

* Update to react-native@0.58.6-microsoft.47 (#2479)

* Applying package update to 0.58.0-vnext.100

* Nuget fix iuimanager.h typo (#2483)

* remove extra nuspec file

* fix typo in  nuspec of IUIManager

* Applying package update to 0.58.0-vnext.101

* ScrollView snap point properties (#2443)

* Fix Horizontal ScrollView.

The UWP ScrollViewer requires that HorizontalScrollBarVisibility not be Disabled in order for the ScrollViewer to be horizontally scrollable. The default value for HorizontalScrollBarVisibility is Disabled so for ReactNative ScrollView's which do not set showsHorizontalScrollIndicator but set horizontal to true we were providing an improperly configured ScrollViewer for the native implementation.

* Implement the following properties:
snapToInterval
snapToOffsets
snapToStart = true (false needs work).
snapToEnd = true (false needs work).
snapToAlignment

* Fix build errors due to narrowing cast, fix bug where updates to start value wouldn't get saved if end value also changed.

* Move a lot of the SV specific logic to its shadow node.

* remove using winrt from uwp react instance, const many locals.

* move the remainder of the locals from the viewmanager to the shadow node

* Applying package update to 0.58.0-vnext.102

* Flyout updates (#2442)

* Adding more placement options for the Flyout component

* Simplifying placement enum usage

* simplifying placement enum usage..again

* Clariftying the flyout placement options and setting default to 'top'

* Converting placement string enum to string literal type.

* Applying package update to 0.58.0-vnext.103

* Include IWebSocket.h in nuget (#2487)

* Applying package update to 0.58.0-vnext.104

* Readme path updates (#2489)

* Applying package update to 0.58.0-vnext.105

* Switching UWP react native instance to use JSI (#2485)

* Switching UWP SampleApplication to use JSI

* Update ChakraJsiRuntime.h

* Integration ChakraJsiRuntime with desktop integration tests and fixing the logging

* Applying package update to 0.58.0-vnext.106

* cmake build fixes, uwp unittest build fix (#2490)

* Applying package update to 0.58.0-vnext.107

* Update to react-native@0.58.6-microsoft.48 (#2491)

* Fixing cmake build after JSI switch (#2496)

* Applying package update to 0.58.0-vnext.108

* Modify publish task to publish nuget (#2497)

* First stab at moving nuget creation to github

* Fix typo

* Update CopyToStaging

* Update staging bat

* More staging update

* Remove trailing \ from srcroot

* Typo in artifact name

* Rework where files were put

* remove react-native-windows prefix

* missed ship arm

* Replace original publish yaml

* Remove accidental whitespace

* Perf improvements (#2495)

* Only call SetLayoutProps when a new layout has happened

* reduce temp strings created using dynamic.as*

* use const ref of dynamic in UpdateProperties

* consistency, fix dynamic == "string" compares

* Applying package update to 0.58.0-vnext.109

* Fixing siing issues with Flyout (WI: 3362439) (#2493)

* Applying package update to 0.58.0-vnext.110

* fix for running in web debugging mode (#2500)

* Applying package update to 0.58.0-vnext.111

* Verify nuget can be packed during PR (#2498)

* Verify nuget can be packed during PR

* Fix bad path

* Use npm version for nuget version

* Use different env var format

* Fix powershell script to set version

* Change how we get package version to nuget task

* More fixes

* JSI compat fixes (#2501)

* update all  usages of isInt to use isNumber for JSI compat

* fix numberOfLines prop

* fix getConstantsForViewManager

* Applying package update to 0.58.0-vnext.112

* fix TextInput (#2502)

* Applying package update to 0.58.0-vnext.113

* Removing some MS-internal build files, add UseJsi option (#2503)

* remove uwp obuild support

* Remove ShouldReuseReactInstancesWhenPossible/UpdateDevSettings, callers were removed a long time ago

* add UseJsi option to UWP settings, just in case

* Applying package update to 0.58.0-vnext.114

* add DirectDebugging option for uwp Chakra (#2504)

* Applying package update to 0.58.0-vnext.115

* Fix to allow authorization header to be added. (#2467)

* Change from Headers().Append to Headers().TryAppendWithoutValidation

* only use tryadd for authorization

* Applying package update to 0.58.0-vnext.116

* Change name of publish temp branch

* internal build fix (#2506)

* Applying package update to 0.58.0-vnext.117

* Update to react-native@0.58.6-microsoft.49 (#2507)

* Update to react-native@0.58.6-microsoft.51 (#2514)

* Core Parity Status Article (#2510)

* Create ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

* Update ParityStatus.md

Added milestone 3 separate packages, and edited text to match feedback from PR to master.

* Update ParityStatus.md

Typo.

* Update ParityStatus.md

Updated headers to the tables to vnext status and current status.

* Add files needed for win32 nuget (#2511)

* Disable trickle (#2517)

* Create a seperate uwp nuget (#2516)

* Applying package update to 0.58.0-vnext.118

* Applying package update to 0.58.0-vnext.119

* Transform support (#2513)

* beginnings of Transform

* add transform support

* cr feedback

* Applying package update to 0.58.0-vnext.120

* ChakraCore v1.11.9 (#2474)

* ChakraCore v1.11.9

* NuGet references should use SolutionDir instead of relative path

* Update ChakraCore in current branch

* Applying package update to 0.58.0-vnext.121

* Flyout dismissal (#2519)

* 3368175: Workaround for flyout light dismiss issue

* cleanup

* Code review suggestions

* Applying package update to 0.58.0-vnext.122

* Update to react-native@0.58.6-microsoft.54 (#2523)

* Avoid infinite updating loop for textinput and allow fast typing (#2521)

* Resolve fast typing issue

* Resolve conflicts after mege

* Applying package update to 0.58.0-vnext.123

* Self layout elements not always visible after an update (#2520)

* Update Yoga logging to display the entire tree, update comments on turning it on for new yoga version

* Save and restore width in DefaultYogaSelfMeasureFunc

* Applying package update to 0.58.0-vnext.124

* Fix nuget

* Applying package update to 0.58.0-vnext.125

* Update to react-native@0.58.6-microsoft.55 (#2525)

* Generate full debugging info in the pdbs (#2528)

* Generate full pdb's

* FullProgramDatabaseFile should be DebugFull too

* Applying package update to 0.58.0-vnext.126

* ChakraJsiRuntime debugger refactoring (#2526)

* ChakraJsiRuntime debugger refactoring

* Fixing unicode call

* Incorporating review comments

* Applying package update to 0.58.0-vnext.127

* BatchingUIManager for UWP (#2481)

* Reduce and rationalize some header file includes related to ShadowNodeBase & ViewManagerBase. Reduces dependencies for build.

* Checkpoint.

* Remove debugging code. Update view sample to drive three scenarios.

* Remove TODO NOW comment.

* Working version of BatchingUIManager. Right now it takes over for the UIManager always though, and that will need to be fixed.

* Separate Batching components into own file. Temporarily include diagnostic output (which will be removed in later check-in).

* Put tracking behind ifdefs. Fix whitespace so no change in UIManagerModule.h.

* Use smaller queue size and empty it when full.

* Port JSI changes from UIManager to BatchingUIManager.

* Applying package update to 0.58.0-vnext.128

* Export dynamic::get_ptr (#2534)

* Update to react-native@0.58.6-microsoft.56 (#2533)

* Applying package update to 0.58.0-vnext.129

* Turn off debug output for BatchingUIManager. (#2536)

* Reduce and rationalize some header file includes related to ShadowNodeBase & ViewManagerBase. Reduces dependencies for build.

* Checkpoint.

* Remove debugging code. Update view sample to drive three scenarios.

* Remove TODO NOW comment.

* Working version of BatchingUIManager. Right now it takes over for the UIManager always though, and that will need to be fixed.

* Separate Batching components into own file. Temporarily include diagnostic output (which will be removed in later check-in).

* Put tracking behind ifdefs. Fix whitespace so no change in UIManagerModule.h.

* Use smaller queue size and empty it when full.

* Port JSI changes from UIManager to BatchingUIManager.

* Turn off queue tracking debug output.

* Applying package update to 0.58.0-vnext.130

* VS 2019 Fixes (#2396)

* Fix unit test build (something upgraded with 2019 also broken 2017 builds) - SkipUnionWinmd prevents .net files from attempting to be bundled into the appx

* Enable newer compiler when using VS2019

* Applying package update to 0.58.0-vnext.131

* Update msbuildtools.js with VS 2019 path (#2539)

* Update msbuildtools.js with VS 2019 path

* Set platform toolset for VS 2019

* Applying package update to 0.58.0-vnext.132

* Updating chakracore debugger to the latest version (#2543)

* Applying package update to 0.58.0-vnext.133

* Update to react-native@0.58.6-microsoft.58 (#2541)

* PDBs should be created with -minpdbpathlen:256 (#2544)

* Applying package update to 0.58.0-vnext.134

* Remove use of LayoutUpdated event. Set clipping in ArrangeOverride() instead. (#2542)

* Reduce and rationalize some header file includes related to ShadowNodeBase & ViewManagerBase. Reduces dependencies for build.

* Checkpoint.

* Remove debugging code. Update view sample to drive three scenarios.

* Remove TODO NOW comment.

* Working version of BatchingUIManager. Right now it takes over for the UIManager always though, and that will need to be fixed.

* Separate Batching components into own file. Temporarily include diagnostic output (which will be removed in later check-in).

* Put tracking behind ifdefs. Fix whitespace so no change in UIManagerModule.h.

* Use smaller queue size and empty it when full.

* Port JSI changes from UIManager to BatchingUIManager.

* Turn off queue tracking debug output.

* Stop using LayoutUpdated event to set clipping. Do it in ArrangeOverride.

* Applying package update to 0.58.0-vnext.135

* ScrollContentView and ScrollView cleanup (#2545)

* add ScrollContentViewManager, which is just a <View> but removes forking from react-native

* cleanup in ScrollViewManager

* Applying package update to 0.58.0-vnext.136

* Image unforking (#2547)

* Remove forked image.uwp.js

* add queryCache stub, update getSize to match 0.57+ Image.js

* Applying package update to 0.58.0-vnext.137

* enable inline source maps by default (#2553)

* Applying package update to 0.58.0-vnext.138

* require AttachRoot to be called from UI thread (#2551)

* Applying package update to 0.58.0-vnext.139

* Minor readme updates (#2548)

* Committing minor changes to master readme and vnext Getting started pages for updates related to RS2 version support and troubleshooting updates.

* Update README.md

* Update README.md

* Update README.md

* Applying package update to 0.58.0-vnext.140

* PerfCompare app (#2512)

PerfCompare provides a single app to compare the performance of loading a simple chat-window mockup UI across XAML Markup, RNW Current, and RNW VNext.

This PR also includes adding test hooks to both Current and VNext intercepting the creation of XAML elements.

Covers issues #2127, #2374, #2375, #2377, #2378, #2376, #2452

* Applying package update to 0.58.0-vnext.141

* Update to react-native@0.58.6-microsoft.59 (#2554)

* Update typescript version to 3.5.1 (#2558)

* Update typescript to 3.5.1

* remove no-use-before-declare lint rule

* Disable fetch depth for now.

* Applying package update to 0.58.0-vnext.142

* ScrollView.scrollEnabled property (#2488)

* Fix Horizontal ScrollView.

The UWP ScrollViewer requires that HorizontalScrollBarVisibility not be Disabled in order for the ScrollViewer to be horizontally scrollable. The default value for HorizontalScrollBarVisibility is Disabled so for ReactNative ScrollView's which do not set showsHorizontalScrollIndicator but set horizontal to true we were providing an improperly configured ScrollViewer for the native implementation.

* Implement the following properties:
snapToInterval
snapToOffsets
snapToStart = true (false needs work).
snapToEnd = true (false needs work).
snapToAlignment

* Fix build errors due to narrowing cast, fix bug where updates to start value wouldn't get saved if end value also changed.

* Move a lot of the SV specific logic to its shadow node.

* remove using winrt from uwp react instance, const many locals.

* move the remainder of the locals from the viewmanager to the shadow node

* Add the scrollEnabled property

* Applying package update to 0.58.0-vnext.143

* Replace isInt() with isNumber() and get/asInt() with asDouble(), sometimes static_cast back to int/int64_t (#2561)

* Applying package update to 0.58.0-vnext.144

* fix(CLI): Ensure CLI downloads current version (#2559)

The CLI is currently attempting to install pre-release versions of react-native-windows, and because "vnext" > "rc" in terms of semver, it's always picking up the vnext version.

This change assumes that unless specified, the user will either want to install a stable version or a prerelease labeled `rc` version of `react-native-windows`.

Recent changes to `rnpm-plugin-windows` added a bunch of logic to patch the react-native dependency version. This change also moves this logic into the project generator instead, allowing us to iterate on the "patch" logic in `react-native-windows` as opposed to `rnpm-plugin-windows`.

* Applying package update to 0.58.0-vnext.145

* move UWP PRs to hosted machines (#2562)

* try to move PRs to hosted machines

* hosted machine already has yarn

* fix path

* Dont require office nuget feed (#2569)

* Applying package update to 0.58.0-vnext.146

* Removing default padding on FlyoutPresenter (#2567)

* Applying package update to 0.58.0-vnext.147

* Update to react-native@0.58.6-microsoft.60 (#2572)

* fixes to FormData network support (#2570)

* convert blocking .get calls from SendRequest() to co_await

* Move NetworkingModule to background thread instead

* Applying package update to 0.58.0-vnext.148

* Cleaning up XAML Flyout when shadow node view is dropped. (#2564)

* Applying package update to 0.58.0-vnext.149

* Commiting proposal process files (#2571)

* Applying package update to 0.58.0-vnext.150

* [Current] Update msbuildtools.js with VS 2019 path (#2583)

* Fix nuget packages path (#2582)

* Picker layout fix (WI:3391028)  (#2584)

* Forcing layout after adding new items to Picker

* Suggested code review change.

* Applying package update to 0.58.0-vnext.151

* Applying package update to 0.58.0-vnext.152

* add debug host and enable jit to the instance settings (#2585)

* Applying package update to 0.58.0-vnext.153

* Move win32 CI to hosted pool (#2563)

* Move win32 to hosted too

* yarn already installed...

* Rename Microsoft.ChakraCore.Debugger to ChakraCore.Debugger

* Remove office from nuget.config

* Try using old targets path

* Use standard pool for last PR step too

* See if builds work on windows-2019 image

* Back to vs2017-win2016

* Add a timeout to the desktop UTs

* Disable bytecode tests to see if they are the ones hanging

* Try disabling websocket tests instead

* Change nuget prep script to not create copies of files. - (Fix out of disk space error)

* formatting

* use backslash for path seperators

* more fix

* dont print % progress

* try failOnStderr

* poke build

* switch to powershell

* Try again

* Split copy script into seperate steps

* Move to script instead of inline ps

* more try

* Applying package update to 0.58.0-vnext.154

* Do not let functions under facebook::react::unicode throw upon invalid Unicode characters.

* Applying package update to 0.58.0-vnext.155

* Add basic version info to win32 dll. (#2592)

* Applying package update to 0.58.0-vnext.156

* Applying package update to 0.58.0-vnext.157

* Applying package update to 0.58.0-vnext.158

* Applying package update to 0.58.0-vnext.159

* Applying package update to 0.58.0-vnext.160

* Applying package update to 0.58.0-vnext.161

* Prevent publish loop

* Applying package update to 0.58.0-vnext.162

* Applying package update to 0.58.0-vnext.163

* Applying package update to 0.58.0-vnext.164

* Applying package update to 0.58.0-vnext.165

* Ensure dll gets updated version before build (#2594)

* Applying package update to 0.58.0-vnext.166

* Remove nmake build files (#2595)

* Fix include (#2596)

* Applying package update to 0.58.0-vnext.167

* Fix publish script

* Applying package update to 0.58.0-vnext.168

* Update target version to 19h1 and set XamlRoot for Flyout (#2456)

* draft

* workaround cppwinrt error

* popup fix

* rollback change to popup and update Flyout

* update comment from popup to flyout

* change signature and rename getShadowNodeWithXamlRoot

* draft

* workaround cppwinrt error

* popup fix

* rollback change to popup and update Flyout

* update comment from popup to flyout

* change signature and rename getShadowNodeWithXamlRoot

* install SDK

* install SDK for win32

* install desktopcpp

* Applying package update to 0.58.0-vnext.169

* Update to react-native@0.58.6-microsoft.63 (#2600)

* Implemented accessibilityLiveRegion (#2591)

* Add accessibilityLiveRegion property to FrameworkElementViewManager
* Added AccessibilityUtils.h with helper method to announce the LiveRegion change
* Fixed bug and added example in RNTester

* Applying package update to 0.58.0-vnext.170

* Add flyout offset props

* Took care of review comments

* flyout RS4 crash fix

* Changes in response to Chris' suggestions

* Took care of Andy's suggestion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AutoMerge Causes a PR to be automatically merged once all requirements are passed (label drives bot activity)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants