Home | History | Annotate | Download | only in api
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Use <code>chrome.pushMessaging</code> to enable apps and extensions to
      6 // receive message data sent through
      7 // <a href="cloudMessaging.html">Google Cloud Messaging</a>.
      8 namespace pushMessaging {
      9 
     10   dictionary Message {
     11     // The subchannel the message was sent on;
     12     // only values 0-3 are valid.
     13     long subchannelId;
     14 
     15     // The payload associated with the message, if any. This should not contain
     16     // any personally identifiable information.
     17     DOMString payload;
     18   };
     19 
     20   dictionary ChannelIdResult {
     21     // The channel ID for this app to use for push messaging.
     22     DOMString channelId;
     23   };
     24 
     25   callback ChannelIdCallback = void (ChannelIdResult channelId);
     26 
     27   interface Functions {
     28     // Retrieves the channel ID associated with this app or extension.
     29     // Typically an app or extension will want to send this value
     30     // to its application server so the server can use it
     31     // to trigger push messages back to the app or extension.
     32     // If the interactive flag is set, we will ask the user to log in
     33     // when they are not already logged in.
     34     static void getChannelId(optional boolean interactive,
     35                              ChannelIdCallback callback);
     36   };
     37 
     38   interface Events {
     39     // Fired when a push message has been received.
     40     // |message| : The details associated with the message.
     41     static void onMessage(Message message);
     42   };
     43 };
     44