Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@krakenjs/post-robot

krakenjs28.2k11.0.0

Simple postMessage based server.

cross-domain, cross domain, xdm, iframe, postmessage, krakenjs, kraken

readme

post-robot [:]-\-<

build status code coverage npm version

Cross domain post-messaging on the client side, using a simple listener/client pattern.

Send a message to another window, and:

Serialization

post-robot will serialize and deserialize the following data types in messages:

  • Objects, arrays, strings, numbers, booleans, null
    • Note: this includes any JSON-serializable types
  • Functions
  • Promises
    • Note: deserialized promises will be instances of ZalgoPromise
  • Error objects
    • e.g. new Error("This error will self-destruct in 10, 9, 8...")
  • Regex objects
    • e.g. /[a-zA-Z0-9]*/

Simple listener and sender

// Set up a listener

postRobot.on('getUser', function(event) {

    // Have it return some data to the calling window

    return {
        id:   1234,
        name: 'Zippy the Pinhead',

        // Yep, we're even returning a function to the other window!

        logout: function() {
            return $currentUser.logout();
        }
    };
});
// Call the listener, on a different window, on a different domain

postRobot.send(someWindow, 'getUser', { id: 1337 }).then(function(event) {
    var user = event.data;

    console.log(event.source, event.origin, 'Got user:', user);

    // Call the user.logout function from the other window!

    user.logout();

}).catch(function(err) {

    // Handle any errors that stopped our call from going through

    console.error(err);
});

Listener with promise response

postRobot.on('getUser', function(event) {

    return getUser(event.data.id).then(function(user) {
        return {
            name: user.name
        };
    });
});

One-off listener

postRobot.once('getUser', function(event) {

    return {
        name: 'Noggin the Nog'
    };
});

Cancelling a listener

var listener = postRobot.on('getUser', function(event) {
    return {
        id:   event.data.id,
        name: 'Zippy the Pinhead'
    };
});

listener.cancel();

Listen for messages from a specific window

postRobot.on('getUser', { window: window.parent }, function(event) {

    return {
        name: 'Guybrush Threepwood'
    };
});

Listen for messages from a specific domain

postRobot.on('getUser', { domain: 'http://zombo.com' }, function(event) {

    return {
        name: 'Manny Calavera'
    };
});

Set a timeout for a response

postRobot.send(someWindow, 'getUser', { id: 1337 }, { timeout: 5000 }).then(function(event) {
    console.log(event.source, event.origin, 'Got user:', event.data.name);

}).catch(function(err) {
    console.error(err);
});

Send a message to a specific domain

postRobot.send(someWindow, 'getUser', { id: 1337 }, { domain: 'http://zombo.com' }).then(function(event) {
    console.log(event.source, event.origin, 'Got user:', event.data.name);
});

Async / Await

postRobot.on('getUser', async ({ source, origin, data }) => {

    let user = await getUser(data.id);

    return {
        id:   data.id,
        name: user.name
    };
});
try {
    let { source, origin, data } = await postRobot.send(someWindow, `getUser`, { id: 1337 });
    console.log(source, origin, 'Got user:', data.name);

} catch (err) {
    console.error(err);
}

Secure Message Channel

For security reasons, it is recommended that you always explicitly specify the window and domain you want to listen to and send messages to. This creates a secure message channel that only works between two windows on the specified domain:

postRobot.on('getUser', { window: childWindow, domain: 'http://zombo.com' }, function(event) {
    return {
        id:   event.data.id,
        name: 'Frodo'
    };
});
postRobot.send(someWindow, 'getUser', { id: 1337 }, { domain: 'http://zombo.com' }).then(function(event) {
    console.log(event.source, event.origin, 'Got user:', event.data.name);

}).catch(function(err) {
    console.error(err);
});

Functions

Post robot lets you send across functions in your data payload, fairly seamlessly.

For example:

postRobot.on('getUser', function(event) {
    return {
        id:     event.data.id,
        name:   'Nogbad the Bad',

        logout: function() {
            currentUser.logout();
        }
    };
});
postRobot.send(myWindow, 'getUser', { id: 1337 }).then(function(event) {
    var user = event.data;

    user.logout().then(function() {
        console.log('User was logged out');
    });
});

The function user.logout() will be called on the original window. Post Robot transparently messages back to the original window, calls the function that was passed, then messages back with the result of the function.

Because this uses post-messaging behind the scenes and is therefore always async, user.logout() will always return a promise, and must be .then'd or awaited.

Parent to popup messaging

Unfortunately, IE blocks direct post messaging between a parent window and a popup, on different domains.

In order to use post-robot in IE9+ with popup windows, you will need to set up an invisible 'bridge' iframe on your parent page:

   [ Parent page ]

+---------------------+          [ Popup ]
|        xx.com       |
|                     |      +--------------+
|  +---------------+  |      |    yy.com    |
|  |    [iframe]   |  |      |              |
|  |               |  |      |              |
|  | yy.com/bridge |  |      |              |
|  |               |  |      |              |
|  |               |  |      |              |
|  |               |  |      |              |
|  |               |  |      +--------------+
|  +---------------+  |
|                     |
+---------------------+

a. Use the special ie build of post-robot: dist/post-robot.ie.js.

b. Create a bridge path on the domain of your popup, for example http://yy.com/bridge.html, and include post-robot:

<script src="http://yy.com/js/post-robot.ie.js"></script>

c. In the parent page on xx.com which opens the popup, include the following javascript:

<script>
    postRobot.bridge.openBridge('http://yy.com/bridge.html');
</script>

Now xx.com and yy.com can communicate freely using post-robot, in IE.

changelog

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

11.0.0 (2022-03-01)

⚠ BREAKING CHANGES

  • move to @krakenjs scope

  • add tooling for code coverage, changelogs, and conventional commits (#103) (e3be73c)

  • move to @krakenjs scope (d707e26)

Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

Generated by auto-changelog.

v10.0.14

8 March 2019

  • Cancel response listeners on cleanup 820b4fb

v10.0.13

7 March 2019

  • Use window.open as contingency to refocus window f7c3f8e

v10.0.12

7 March 2019

  • Simplify window serialization 57ac6cb

v10.0.11

6 March 2019

  • Fix IE issue where origin is file: not file:// 3b0ea99

v10.0.10

14 February 2019

v10.0.9

14 February 2019

v10.0.8

14 February 2019

v10.0.7

14 February 2019

  • Do not send request before waiting for response 8b1ec59
  • Do not error out if no bridge found 075538e

v10.0.6

14 February 2019

  • Set up global receive before sending any messages e6dc37b

v10.0.5

14 February 2019

  • Only check for mock domain in test mode 44a7018
  • Re-throw all errors from send strategies c78ba2c

v10.0.4

12 February 2019

  • Improve logging and error stacks 9299051

v10.0.3

8 February 2019

  • Add support for file protocol 41d1e7a

v10.0.2

8 February 2019

  • Get version for globals inline 1a303ed

v10.0.1

6 February 2019

  • Make once options optional 7a40e43

v10.0.0

5 February 2019

  • Overhaul and refactor 675ddec
  • Attach minor version to global vars and events 50f8f2b
  • Clean up docs a7f2245

v9.0.36

27 January 2019

  • Add ProxyWindow.getWindow b87ec93

v9.0.35

18 January 2019

v9.0.34

15 January 2019

  • Account for fireAndForget return value f2292be

v9.0.33

15 January 2019

  • Avoid infinite loop when deserializing functions 0c92248

v9.0.32

15 January 2019

  • Fix logName for functions in receive 5536b47

v9.0.31

15 January 2019

  • Call original stored function if found 1060141
  • Simplify logging and expand function names 1ea09c9

v9.0.30

10 January 2019

  • Safety around isProxyWindow check 1fb04df

v9.0.29

9 January 2019

  • Allow functions to specify an onError prop for any errors calling them ed739aa

v9.0.28

9 January 2019

  • Throw better error when domain is a regex 5003e71

v9.0.27

2 January 2019

  • Ignore messages with no source 90af9ee

v9.0.26

2 January 2019

  • Extra safety around getting source window from post message 11eb25e

v9.0.25

30 December 2018

v9.0.24

29 December 2018

  • Improve bridge detection for tests 878fd75

v9.0.23

28 December 2018

  • Add window type to ProxyWindow 3e002d5

v9.0.22

24 December 2018

  • Asynchronously reject window promises 9564a44

v9.0.21

21 December 2018

v9.0.20

19 December 2018

v9.0.19

6 December 2018

v9.0.18

6 December 2018

  • By default, only say hello to ancestor window 9895402

v9.0.17

6 December 2018

  • Allow deserialization using proxy window cdfbeb6
  • Double-attempt focus 17844f4

v9.0.16

27 November 2018

v9.0.15

27 November 2018

v9.0.14

27 November 2018

  • Add globalStore and windowStore 827dd0a
  • Clean proxy windows before adding more 5df8aaf

v9.0.13

27 November 2018

  • Function serialization fixes 438eb4e

v9.0.12

26 November 2018

  • Allow serializing using proxy window bf7d76f

v9.0.11

25 November 2018

  • Add fireAndForget to function deserialization 6f7b404

v9.0.10

25 November 2018

  • Replace window location if possible 8b3ec4d

v9.0.9

25 November 2018

  • toProxyWindow accept both proxy and regular window d4a339c

v9.0.8

25 November 2018

v9.0.7

25 November 2018

  • Set name of iframe element, if present fbeb348

v9.0.6

25 November 2018

v9.0.5

25 November 2018

  • Add basic window serialization 64239d5
  • Attempt to match proxy window to real windows eb65408

v9.0.4

22 November 2018

  • Use universal-serialize 01e98d4
  • Export serializeMessage and deserializeMessage d3bde67

v9.0.3

15 November 2018

  • Remove fuzzy match for remote bridge frame #65
  • Disable package-lock a28a25b

v9.0.2

1 November 2018

  • Remove same domain messaging error (fixes #26) #63
  • Increase ack timeout for windows known to have post-robot bd208a6
  • Check for existence of console before logging post-robot message d9b13f3

v9.0.0

28 September 2018

  • Use belter for general utilities 25366c1

v8.0.29

7 September 2018

  • Remove logging outside of debug mode 7358145
  • Remove erroneous global e12dca3

v8.0.28

10 July 2018

v8.0.27

9 July 2018

v8.0.26

4 May 2018

  • Use -1 universally for disabled timeout 065b143

v8.0.25

27 April 2018

  • Namespace and export globals 53e70e5

v8.0.24

26 April 2018

v8.0.23

20 April 2018

  • Correctly output IE builds 6f17f72

v8.0.22

20 April 2018

  • Only prevent incoming messages from closed windows when not fire-and-forget 79c4239

v8.0.21

20 April 2018

v8.0.20

20 April 2018

  • Added the ability to disable log completely. You can set LOG_LEVEL="disabled" to not have any log displayed on the console #51
  • Upgrade to grumbler-scripts 01a0a64

v8.0.18

9 February 2018

  • Add webpack circular dependency detection and fix static deps 3afde36

v8.0.17

8 February 2018

v8.0.16

8 February 2018

  • Fix timeout ignore #47

v8.0.15

18 January 2018

  • Added config for same-origin communications #44
  • Change license in bower.json to Apache 2.0 1b07419

v8.0.14

8 November 2017

  • Export hasBridge method 0ff9a82
  • Improve no ack error message 3b532b6

v8.0.13

7 November 2017

  • Let ALLOW_POSTMESSAGE_POPUP be overriden by window global cede3e8

v8.0.12

7 November 2017

  • Add build time flag for allowing popup postmessage fd1dba3

v8.0.11

7 November 2017

v8.0.10

7 November 2017

  • Export destroyBridges function 16d8edd
  • Improve error message for existing wildcard listener 673d837
  • Listen to correct window for open tunnel message 82f10f6

v8.0.9

31 October 2017

  • Make stringifyError more resilient 87aad82

v8.0.8

31 October 2017

  • Throw errors to ZalgoPromise rather than into the ether 0d0e593

v8.0.7

31 October 2017

  • Do not synchronously throw error in bridge sendMessage ac33652
  • Do not double-throw if listener times out then eventually returns 7b8349a
  • Increase ack timeout for IE b220443

v8.0.6

28 October 2017

  • Update README.md #34
  • Do not set up response listener for fire-and-forget message 903252e
  • Do not require bridge for Edge 14 onwards 11e3bc4

v8.0.4

16 October 2017

  • Fix typo in webpack config 76785e7

v8.0.3

14 October 2017

  • Make window optional for needsBridge 8ae1227

v8.0.2

14 October 2017

  • Make sure bridge is typed as optional 8dc6bec

v8.0.1

14 October 2017

  • Fix conditional bridge export 5a48c3d

v8.0.0

14 October 2017

  • Use ifdef-loader for bridge export 10aa76d

v7.0.18

14 October 2017

  • Prioritize regex domains over wildcard dfa649b

v7.0.17

12 October 2017

  • Use window types rather than any a53ca6d

v7.0.16

11 October 2017

  • Upgrade cross-domain-utils 01f10bb

v7.0.15

5 September 2017

v7.0.14

4 September 2017

  • Better type checking for once c905ee4

v7.0.13

4 September 2017

  • Serialize and deserialize native promises, if present 2a70e95
  • Clean up once promise logic 488ef47
  • Document serialization types 9e133fb
  • Update README.md fe10b3f

v7.0.12

31 August 2017

v7.0.11

29 August 2017

v7.0.10

28 August 2017

v7.0.9

18 August 2017

  • Add promise serialization b7a6f53

v7.0.8

8 August 2017

  • Use latest ZalgoPromise type rules f567741

v7.0.7

8 August 2017

v7.0.6

2 August 2017

  • Prioritize domain over window for bridge decision 3adddd5

v7.0.5

1 August 2017

  • Make message response timeout logic less frequent 450ce51
  • Fix timeout for bridge 64cd9c6

v7.0.4

26 June 2017

  • Look for ack in correct place 13e1191

v7.0.3

26 June 2017

v7.0.2

23 June 2017

v7.0.1

23 June 2017

  • Add postinstall to package f82f7a8

v7.0.0

23 June 2017

v6.0.10

21 June 2017

v6.0.9

21 June 2017

v6.0.8

20 June 2017

v6.0.7

16 June 2017

  • Import zalgo promise from src c202b9f

v6.0.6

16 June 2017

  • Strip Error: from error before passing to different window 8db0d13

v6.0.5

15 June 2017

  • Clean up redundant promise code ba919c7
  • Migrate to zalgo-promise 9d6a0b2

v6.0.4

6 June 2017

  • Remove global.domainMatches cleanup 1af17af

v6.0.3

6 June 2017

v6.0.2

23 May 2017

  • Do not send duplicated error messages 977977a
  • Do not overwrite popupWindowsByWin or popupWindowsByName for existing windows 779f487
  • Fix lint issues fc4a486

v6.0.1

11 May 2017

  • Remove callback support 0b7a54c
  • IE safeguards for closed window references 9127225
  • Update README.md 1ee6963

v5.0.18

5 May 2017

  • If a window has a parent, treat it as not having an opener d04b68a
  • Fix for mobile safari issue where window is not detected as closed 0b4a775

v5.0.17

3 May 2017

  • Set xdomain prop on cross-domain functions c0b0455
  • Better error for cleanup rejected promise 77ea34a

v5.0.16

27 April 2017

  • Conditionally clean up bridge globals 1fba6ae
  • Prevent publish with uncommited changes fe592e8

v5.0.15

21 April 2017

  • Return early for non-opened/blocked window case 19d9f0d

v5.0.14

21 April 2017

  • Return bridge promise so error is correctly handled 4d75271

v5.0.13

21 April 2017

  • Fix this reference in non object 96a258f

v5.0.12

12 April 2017

  • Export postRobot.cleanUpWindow for fast window cleanup 9e86c69

v5.0.11

11 April 2017

  • Do not timeout for ready and method messages 8c412f0

v5.0.10

11 April 2017

  • Remove util object in favor of manual exports 3ba0c72

v5.0.9

11 April 2017

  • Reject request promise correctly when target window is closed before ack or response bfb5cda

v5.0.8

6 April 2017

  • deleteResponseListener for any send error 4a4554c

v5.0.7

6 April 2017

  • Clean up response listeners for error cases 175314b

v5.0.6

6 April 2017

  • Only publish dist and src 1c4fe4b
  • Reinstall dependencies before publishing b1a8058

v5.0.5

4 April 2017

  • Fix closure based memory leaks 428151c
  • Consume window.LOG_LEVEL if present a9a11c8
  • Make karma not depend on lint fa97e48

v5.0.4

3 April 2017

  • Strip out cleanup and more memory leak fixes 0b7850b

v5.0.3

3 April 2017

  • Gulp fixes and Debugging #24
  • Use WeakMap to get references by window 06c205d
  • Enable babelified gulpfile dd8f138
  • Use WeakMap to store cross-domain methods, to avoid memory leaks 3532149

v5.0.1

26 March 2017

v5.0.0

26 March 2017

  • Create IE and non-IE builds 721c5e3
  • Allow publish script to take semver major/minor/patch f76f51c

v4.0.45

24 March 2017

  • Allow sending messages to multiple possible domains 71c8da1
  • Add positive tests for sending/recieving to/from a specific domain 0090305

v4.0.43

20 March 2017

  • Throw useful error for post-message send to actual cross-domain window with mock domain specified a7d1008

v4.0.42

19 March 2017

  • Use correct uglify config 33001a1

v4.0.41

19 March 2017

v4.0.40

16 March 2017

  • upgrade(dependencies): Webpack 2 #23
  • Add comments for first example e43ac7a
  • Update initial example with function passing 0aba0fe
  • Add travis config 8f9901b
  • Clean up dependencies 752479d
  • Update README.md b62a295

v4.0.39

8 March 2017

  • (feat): Add source maps #22
  • feat(client): Allow iframe node in send function #19
  • Update README #15
  • Add docs for cancelling a listener b5fedb1
  • Log foreign method errors in debug mode 2f488a3
  • Better null check for options.window f5d73c1
  • Temporary fix for transform-es2015-typeof-symbol IE issue with window ca686bf

v4.0.37

28 February 2017

  • Delay console logs, to allow time to set logLevel d2c0d91

v4.0.36

17 February 2017

  • Catch errors in isWindowClosed for IE 8b9c060

v4.0.35

10 January 2017

  • Add registerSelf noop for backwards compatibility dfc85a8
  • Add gulp test 52aef15

v4.0.34

7 December 2016

  • Serialize and deserialize error objects e189fca

v4.0.33

6 December 2016

  • Do not return asyncReject 1f1ab32

v4.0.32

5 December 2016

  • Enable popup post messages for build, disable for tests 9481c60

v4.0.31

5 December 2016

v4.0.30

3 December 2016

  • Separate out bridge code into parent/child/bridge/common 77bc4de
  • Set up state to be cleaned up on demand 0851b7e
  • Add initializer method to listenForMessages 0a8134e

v4.0.29

29 November 2016

  • Force bridge when CONFIG.ALLOW_POSTMESSAGE_POPUP is false bac1b35

v4.0.28

9 November 2016

  • Expose multiple methods to determine if the bridge is required b197e3f

v4.0.27

9 November 2016

  • Use asyncReject for remote window sendMessage promise a068c7f

v4.0.26

8 November 2016

  • Only open bridge tunnel for IE 752c7cb

v4.0.25

8 November 2016

  • Better listener matching logix c356339
  • Export needsBridge function dc6702d

v4.0.24

1 November 2016

  • Correct get domain function for local files 12c3c94

v4.0.23

31 October 2016

  • Fix findFrameByName to search entire iframe tree a0f8a6f
  • Fix lint error 33ddd3a

v4.0.22

29 October 2016

  • Add option to isWindowClosed to allow mock 2f3e796

v4.0.21

28 October 2016

  • More IE9 safety for isWindowClosed method 9d59794

v4.0.20

28 October 2016

v4.0.19

24 October 2016

  • Update eBay email to PayPal email #8
  • Improve error messaging b4be35a
  • Add npmrc 227a1fd

v4.0.18

19 October 2016

v4.0.17

19 October 2016

  • Allow finding frames anywhere in hierarchy cb35951

v4.0.16

19 October 2016

  • Match request listeners by domain as well as name and window eaf4cb4

v4.0.15

18 October 2016

  • More robust getFrameByName 8600260

v4.0.14

15 October 2016

  • Wait for document body and timeout before loading bridge 81d0327

v4.0.13

15 October 2016

  • Re-add global post message strategy 1a1f844

v4.0.12

15 October 2016

  • Do not open tunnel when parent is same domain 9ab85e0
  • Update eBay email to PayPal email e1d832f

v4.0.11

12 October 2016

  • Additional safety in window functions a50e6bf
  • Do not try to proxy if window is closed or canary fails c9f2314
  • Tweak isWindow check faebcc6

v4.0.10

6 October 2016

  • Fix bridge code not to pass window object from popup to iframe. IE doesn't like it when you do that 73f666a

v4.0.9

5 October 2016

  • Use jsonStringify for sending messages fc2d282

v4.0.8

4 October 2016

  • Add a jsonStringify method that accounts for custom prototypetoString 5e6d367
  • Add docs for listener/client 5348a4c

v4.0.7

1 October 2016

  • Wrap post-robot message in postRobot to avoid interfering with any other listeners 1cfa2f8

v4.0.6

30 September 2016

v4.0.5

29 September 2016

  • Validate domain for responses and acks 3a2b12a
  • Log domain and origin for all messages 2912d9b

v4.0.4

29 September 2016

v4.0.3

29 September 2016

v4.0.2

29 September 2016

v4.0.1

28 September 2016

  • Reset config to default values 1402041

v4.0.0

28 September 2016

  • Major overhaul of bridge and message proxying 9cd24d6
  • Fix demo 25cf26e

v3.0.0

24 September 2016

  • Group source, domain and data into event object e861a84

v2.0.41

24 September 2016

  • More safety around getting foreign window frames and finding bridge 83064db
  • Send all responses and acks to the origin domain 677726c
  • Fix getting frame by name 25d7bbc
  • Remove allowMockDomain flag since mock domains can only ever be mock:// 38cc826
  • Remove unused test 9eedeb8
  • Remove redundant origin check for mock:// 5f499db

v2.0.40

20 September 2016

v2.0.39

26 August 2016

  • Only return parent if different from window 8c69548
  • Fix isIframe logic 573815a

v2.0.38

23 August 2016

  • Additional safety around win.parent, win.opener, win.parent which can be re-assigned b81ae4a

v2.0.37

19 August 2016

  • Keep state in post robot global 9237692

v2.0.36

15 August 2016

  • Improve mock domain logic db28227

v2.0.35

15 August 2016

  • Remove postRobot.proxy 5b79488
  • Security around self-certified sourceDomain and originalSourceDomain 6c3aaa2
  • Add missing file 7cec954
  • Allow post messages between two windows on the same domain 3e4b930

v2.0.34

13 August 2016

  • Base bridge name on domain of target url 4d134e5

v2.0.33

3 August 2016

v2.0.32

2 August 2016

  • Only keep a cache of domain matches in the current tick 51946c7

v2.0.31

1 August 2016

  • Change sendToParent error to throw asynchronously #4
  • Fix sendToParent error in README.md #3

v2.0.30

24 July 2016

  • Add a disable method for interop with old script versions b071874

v2.0.29

24 July 2016

  • Do not open bridge if on the same domain 0a9f438

v2.0.28

24 July 2016

  • Overhaul bridge code to support multiple domains 7555b71

v2.0.27

23 July 2016

v2.0.26

22 July 2016

  • Allow multiple bridges on domain by domain basis 358233c

v2.0.25

22 July 2016

  • Add default timeout to onWindowReady 2c512ae

v2.0.24

20 July 2016

v2.0.23

20 July 2016

  • More robust bridge logic (ensure we use the same bridge for each pass-through call) 7eb6694
  • Fix lint error 9201b7c
  • Add source hint for window.opener.parent c82021e
  • Make sendToParent async throw errow if there is no parent b76b0cf
  • Add pathname to logs 291ba80
  • Fix npm test command to run karma tests 548ac63
  • Fix sendToParent error in README.md f5544cb

v2.0.22

13 July 2016

  • Add fireAndForget option, and make remote method calls more easily debuggable e0878c7
  • Clean up logic for logging decision 2a05c91
  • Use coverage plugin for babel test coverag ef39f84

v2.0.21

7 July 2016

  • Fix lint errors 3665984
  • Make global method synchronous, to unblock IE metro mode bbeebd9
  • Do not error out if a new window is opened with the same name as a previously closed one e12eb4f
  • Disallow global method between freames dd51039
  • Make proxy and ack messages debug level d75fc2d

v2.0.20

6 July 2016

v2.0.19

6 July 2016

  • Do not error on recieveMessage if windows are closed a49a693

v2.0.18

6 July 2016

v2.0.17

5 July 2016

v2.0.16

4 July 2016

  • Wait for child window to be ready before sending messages down 6f17e64

v2.0.15

3 July 2016

  • Remove identify messages in favour of source and target hints, and better timeouts c0a8363
  • Break out logger and add log level config key 5d1e300
  • Fixes for IE e189539
  • Correctly build messages with source, target etc even when proxying through bridge 42670ba

v2.0.14

30 June 2016

  • Do nextTick on recieving window global 809e7cb

v2.0.13

29 June 2016

  • Treat an error from ack as a hard error, do not attempt to send a response 65b944d
  • Update README.md 56bb0e2
  • Update README.md cb18836

v2.0.12

14 June 2016

  • Make global method call asynchronous using a same-window postMessage ab7e11f

v2.0.11

14 June 2016

  • Error out when the window is closed 7a09bc3

v2.0.10

14 June 2016

  • Do not remove request listener on error c797e67

v2.0.9

14 June 2016

v2.0.8

13 June 2016

  • Do not default data to an object 54af541

v2.0.7

10 June 2016

  • Add cached domain checking, to create minimal number of errors in safari when attempting to use global methods fed8aff
  • Compatibility with 1.x responses f9f310d

v2.0.6

4 June 2016

  • Use synchronous promises to prevent issues with setTimeout in IE metro mode d854428
  • Use SyncPromise from sync-browser-mocks d686156
  • Allow any kind of value in post data 3e4c434
  • Update README.md eb950b3
  • export sync promise 04a1cad
  • Re-add lint to gulp karma 5bce030
  • Update README.md ac4fd65

v2.0.5

31 May 2016

  • Inherit coverage to child frames f76d372
  • Do not log to console by default 05bf200

v2.0.4

29 May 2016

v2.0.2

24 May 2016

  • Support serializing methods in json payloads for cross-domain method calls 6832c86

v2.0.1

19 May 2016

v2.0.0

13 May 2016

v1.0.19

9 May 2016

  • Do not proxy acks/responses for messages to the current window 4b49192

v1.0.18

9 May 2016

  • Remove additional code causing issue with windows array b8239ee
  • fix(Exports): Change main to dist/ so its recognized by browserify 99c9c16

v1.0.16

3 May 2016

v1.0.15

29 April 2016

v1.0.14

29 April 2016

  • Set up webpack to create a minified and non-minified version ec2b243

v1.0.13

29 April 2016

v1.0.12

29 April 2016

v1.0.11

29 April 2016

v1.0.10

29 April 2016

v1.0.9

29 April 2016

v1.0.8

28 April 2016

v1.0.7

27 April 2016

v1.0.6

27 April 2016

  • Support bridge for IE9-11 a4e61e9

v1.0.5

20 April 2016

v1.0.3

5 April 2016

v1.0.2

25 March 2016

v1.0.1

25 March 2016

v0.0.2

22 March 2016

v0.0.1

18 March 2016