Bug 847583 - Paris binding for MessageEvent, r=peterv

--HG--
extra : rebase_source : 1f43c32d1dd2e05a745fe105d5b7156148b3b900
This commit is contained in:
Olli Pettay 2013-03-13 22:18:36 +02:00
parent b7e2a4443f
commit b05dd2df6e
5 changed files with 92 additions and 0 deletions

View File

@ -40,6 +40,7 @@ nsDOMMessageEvent::nsDOMMessageEvent(mozilla::dom::EventTarget* aOwner,
mData(JSVAL_VOID),
mDataRooted(false)
{
SetIsDOMBinding();
}
nsDOMMessageEvent::~nsDOMMessageEvent()

View File

@ -10,6 +10,7 @@
#include "nsDOMEvent.h"
#include "nsCycleCollectionParticipant.h"
#include "jsapi.h"
#include "mozilla/dom/MessageEventBinding.h"
/**
* Implements the MessageEvent event, used for cross-document messaging and
@ -37,6 +38,39 @@ public:
void RootData();
void UnrootData();
virtual JSObject* WrapObject(JSContext* aCx, JSObject* aScope)
{
return mozilla::dom::MessageEventBinding::Wrap(aCx, aScope, this);
}
JS::Value GetData(JSContext* aCx, mozilla::ErrorResult& aRv)
{
JS::Value data;
aRv = GetData(aCx, &data);
return data;
}
already_AddRefed<nsIDOMWindow> GetSource()
{
nsCOMPtr<nsIDOMWindow> ret = mSource;
return ret.forget();
}
void InitMessageEvent(JSContext* aCx,
const nsAString& aType,
bool aCanBubble,
bool aCancelable,
JS::Value& aData,
const nsAString& aOrigin,
const nsAString& aLastEventId,
nsIDOMWindow* aSource,
mozilla::ErrorResult& aRv)
{
aRv = InitMessageEvent(aType, aCanBubble, aCancelable, aData,
aOrigin, aLastEventId, aSource);
}
private:
jsval mData;
bool mDataRooted;

View File

@ -497,6 +497,10 @@ DOMInterfaces = {
'binaryNames': { '__indexedGetter': 'IndexedGetter' }
},
'MessageEvent': {
'nativeType': 'nsDOMMessageEvent',
},
'MozChannel': [
{
'nativeType': 'nsIChannel',

View File

@ -0,0 +1,52 @@
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* For more information on this interface, please see
* http://www.whatwg.org/specs/web-apps/current-work/#messageevent
*/
interface WindowProxy;
interface MessageEvent : Event
{
/**
* Custom data associated with this event.
*/
[GetterThrows]
readonly attribute any data;
/**
* The origin of the site from which this event originated, which is the
* scheme, ":", and if the URI has a host, "//" followed by the
* host, and if the port is not the default for the given scheme,
* ":" followed by that port. This value does not have a trailing slash.
*/
readonly attribute DOMString origin;
/**
* The last event ID string of the event source, for server-sent DOM events; this
* value is the empty string for cross-origin messaging.
*/
readonly attribute DOMString lastEventId;
/**
* The window which originated this event.
*/
readonly attribute WindowProxy? source;
/**
* Initializes this event with the given data, in a manner analogous to
* the similarly-named method on the nsIDOMEvent interface, also setting the
* data, origin, source, and lastEventId attributes of this appropriately.
*/
[Throws]
void initMessageEvent(DOMString aType,
boolean aCanBubble,
boolean aCancelable,
any aData,
DOMString aOrigin,
DOMString aLastEventId,
WindowProxy? aSource);
};

View File

@ -122,6 +122,7 @@ webidl_files = \
LocalMediaStream.webidl \
Location.webidl \
MediaStream.webidl \
MessageEvent.webidl \
MutationObserver.webidl \
Node.webidl \
NodeFilter.webidl \