| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Use <code>chrome.pushMessaging</code> to enable apps and extensions to |
| // receive message data sent through |
| // <a href="cloudMessaging.html">Google Cloud Messaging</a>. |
| namespace pushMessaging { |
| |
| dictionary Message { |
| // The subchannel the message was sent on; |
| // only values 0-3 are valid. |
| long subchannelId; |
| |
| // The payload associated with the message, if any. This should not contain |
| // any personally identifiable information. |
| DOMString payload; |
| }; |
| |
| dictionary ChannelIdResult { |
| // The channel ID for this app to use for push messaging. |
| DOMString channelId; |
| }; |
| |
| callback ChannelIdCallback = void (ChannelIdResult channelId); |
| |
| interface Functions { |
| // Retrieves the channel ID associated with this app or extension. |
| // Typically an app or extension will want to send this value |
| // to its application server so the server can use it |
| // to trigger push messages back to the app or extension. |
| // If the interactive flag is set, we will ask the user to log in |
| // when they are not already logged in. |
| static void getChannelId(optional boolean interactive, |
| ChannelIdCallback callback); |
| }; |
| |
| interface Events { |
| // Fired when a push message has been received. |
| // |message| : The details associated with the message. |
| static void onMessage(Message message); |
| }; |
| }; |