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

Updates from Wed, 24 June #1735

Merged
merged 86 commits into from
Jun 25, 2015
Merged

Updates from Wed, 24 June #1735

merged 86 commits into from
Jun 25, 2015

Conversation

frantic
Copy link
Contributor

@frantic frantic commented Jun 24, 2015

No description provided.

Shuangzuan and others added 30 commits June 16, 2015 06:15
…mmediately

Summary:
[CATransaction Class Reference](https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CATransaction_class/index.html)

In Tasks > Getting and Setting Completion Block Objects > Discussion:

The completion block object that is guaranteed to be called (on the main thread) as soon as all animations subsequently added by this transaction group have completed (or have been removed.) If no animations are added before the current transaction group is committed (or the completion block is set to a different value,) the block will be invoked immediately.
Closes facebook#1400
Github Author: Shuangzuan <[email protected]>

Test Plan: Imported from GitHub, without a `Test Plan:` line.
…the owner or the children

of the navigator component.

Summary:
Per offline discussion with @evv, we'd like to deprecate the `onDidFocus` and `onWillFocus`
API that makes it really hard for the descendent children of a navigator to observe its focus
change events.
@public

Since for now the descendent children do have access to the navigator via `this.props.navigator`,
this diff makes it easy to observe the focus change event by doing:

```
this.props.navigator.addListener('willfocus', this._onFocus);
```

The goal is to make the event system in navigator more useful and maintainable.

Test Plan:
Test Video: https://www.facebook.com/pxlcld/mrzS
1. jest:  ./Libraries/FBReactKit/js/runTests.js NavigationEventEmitter
2. Load UI Explorer: <Navigator />, see console logs that shows the focus change events fires.
Summary:
Closes facebook#1593
Github Author: Prathamesh Sonpatki <[email protected]>

Test Plan: Imported from GitHub, without a `Test Plan:` line.
…he end

Summary:
@public
Fixes facebook#1431
Fixes facebook#1005
Files with no newlines and a comment at the end of the file would've caused a syntax error in the bundle:

```js
__d('module', function() {
hi();
// wow })
```

This fixes the issue by inserting a new lines before `})`.

Test Plan:
* ./runJestTests.sh
* ./runJestTests.sh PackagerIntegration
* open app to the playground app
* add an error
* observe that the redbox has the correct lines
Summary:
As discussed in our internal group, think this is a fairly easy error to run into so I added some explanation.

@frantic / @vjeux open to better wording here, but I tried to explain how setting the height directly is discouraged and it's probably better to pipe `flex: 1` all the way down.

I didn't regenerate the website since the script assumes some permissions (push permission to master repo) and has some missing npm dependencies (and after fixing that, still had some obscure error :P )
Closes facebook#1633
Github Author: Peter Cottle <[email protected]>

Test Plan: Imported from GitHub, without a `Test Plan:` line.
Summary:
Updates promise, and more importantly asap.  This fixes some nasty race conditions.

See:

 - then/promise#99
 - then/promise#93

@public

Test Plan:
sh Libraries/FBReactKit/runJestTests.sh
Open Catalyst and check it works
Summary:
@public

Add missing `RCT_EXTERN` to the constants in `RCTProfile`'s header

Test Plan:
Move the the import on `RCTBridge` to the header, build no longer fails due to
duplicate symbols.
Summary:
@public

The current implementation of `MessageQueue` is huge, over-complicated and spread
across `MethodQueue`, `MethodQueueMixin`, `BatchedBridge` and `BatchedBridgeFactory`

Refactored in a simpler way, were it's just a `MessageQueue` class and `BatchedBridge`
is only an instance of it.

Test Plan:
I had to make some updates to the tests, but no real update to the native side.
There's also tests covering the `remoteAsync` methods, and more integration tests for UIExplorer.
Verified whats being used by Android, and it should be safe, also tests Android tests have been pretty reliable.

Manually testing: Create a big hierarchy, like `<ListView>` example. Use the `TimerMixin` example to generate multiple calls.
Test the failure callback on the `Geolocation` example.

All the calls go through this entry point, so it's hard to miss if it's broken.
Summary:
The activity indicator was treated as a zero-width element without an explicit width. Fill it in so the style dimensions match what is displayed on the screen.

Closes facebook#1156
Github Author: James Ide <[email protected]>

Test Plan:
 Render an ActivityIndicator with a background, and see that the background shows up as a square behind the spinner instead of not showing up at all (since it was 0px wide previously).
Summary:
Added the ``scalesPageToFit`` prop to ``WebView``. This allows ``UIWebView`` to handle user zoom and scale.
Closes facebook#1631
Github Author: alvaromb <[email protected]>

Test Plan: Imported from GitHub, without a `Test Plan:` line.
Summary:
@public

Add marker to show JavaScript download duration + flow arrows to show the origin
of the UI blocks being flushed.
Also fixed the condition on `RCTPerfStats`, UI and JS graphs were being created
at startup time, now they're just created on the first time they're shown.

Test Plan:
The markers:

{F22577660}

To check the FPS graph, enable it on the DevMenu, and it should appear initially
empty, instead of previously filled as before.
Summary:
@public

The test file is getting compiled when hitting cmd+R which fails for 64-bit
devices even if not trying to run tests.  Change back to runtime check to fix.

Test Plan:
cmd+R works for iPhone 6, cmd+U fails as expected on iPhone 6, works
for iPhone 5
Summary:
@public

Fix mocking on MessageQueue-test

Test Plan: Run the test
Summary:
@public

There was an iVar being directly referenced from inside a block on RCTDevMenu
that was causing a retain cycle and the dev menu wasn't being released.

Test Plan: Put a break point on dealloc, it should be called now.
Summary:
@public

I was using UIKeyCommand as a key in a dictionary, but it seems iOS wasn't treating identical commands as equal, so it was possible to register the same key command twice, resulting in the command triggering the action multiple times.

I've now created a container object for the key commands, and not relying on undocumented hashing behavior of UIKeyCommand for deduplication any more.

Test Plan: Reload bridge multiple times, then check that the number of registered keys in the command set inside RCTKeyCommands doesn't keep increasing.
Summary:
Before this diff every time you reload in debug mode Chrome window
is actiavated. Looks like that behaviour is pretty annoying.

Fixes facebook#689

@public

Test Plan:
```
$ ./packager/launchChromeDevTools.applescript 'https://www.facebook.com/'
```

First time it opens a new tab and activates Chrome, running this again does
not activate Chrome if the tab already exists.
tadeuzagallo and others added 9 commits June 24, 2015 17:42
Summary:
@public

The info about bridge modules (such as id, name, queue, methods...) was spread
across arrays & dictionaries on the bridge, move it into a specific class.

It also removes a lot of information that was statically cached, and now have
the same lifecycle of the bridge.

Also moved RCTModuleMethod, RCTFrameUpdate and RCTBatchedBridge into it's own
files, for organization sake.

NOTE: This diff seems huge, but most of it was just moving code :)

Test Plan:
Tested UIExplorer & UIExplorer tests, Catalyst, MAdMan and Groups. Everything
looks fine.
Summary:
Now `RCTAnimationExperimentalManager` is not working on 32bit devices.

```
NSValue *fromValue = [view.layer.presentationLayer valueForKeyPath:keypath];
CGFloat fromFields[count];
[fromValue getValue:fromFields];
```

If the fromValue is kind of double value which needs two bytes in 32bit device and the count is 1, the fromFileds array will go wrong.
Closes facebook#1725
Github Author: =?UTF-8?q?=E9=9A=90=E9=A3=8E?= <[email protected]>

Test Plan: Imported from GitHub, without a `Test Plan:` line.
Summary:
Fix issue facebook#1136
Closes facebook#1721
Github Author: =?UTF-8?q?=E9=9A=90=E9=A3=8E?= <[email protected]>

Test Plan: Imported from GitHub, without a `Test Plan:` line.
frantic added a commit that referenced this pull request Jun 25, 2015
@frantic frantic merged commit e81e29f into facebook:master Jun 25, 2015
@frantic frantic deleted the updates-24-jun branch June 25, 2015 17:47
@frantic
Copy link
Contributor Author

frantic commented Jun 25, 2015

@brentvatne 🎉

@brentvatne
Copy link
Collaborator

@frantic 😍

@ide
Copy link
Contributor

ide commented Jun 25, 2015

awesometown

@facebook-github-bot
Copy link
Contributor

@frantic updated the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.