// Copyright 2013 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.
[
{
"namespace": "gcm",
"description": "Use chrome.gcm
to enable apps and extensions to send and receive messages through Google Cloud Messaging for Android.",
"properties": {
"MAX_MESSAGE_SIZE": {
"value": 4096,
"description": "The maximum size (in bytes) of all key/value pairs in a message."
}
},
"functions": [
{
"name": "register",
"type": "function",
"description": "Registers the application with GCM. The registration ID will be returned by the callback
. If register
is called again with the same list of senderIds
, the same registration ID will be returned.",
"parameters": [
{
"name": "senderIds",
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1,
"maxItems": 100,
"description": "A list of server IDs that are allowed to send messages to the application. It should contain at least one and no more than 100 sender IDs."
},
{
"name": "callback",
"type": "function",
"description": "Function called when registration completes. It should check $ref:runtime.lastError for error when registrationId
is empty.",
"parameters": [
{
"name": "registrationId",
"type": "string",
"description": "A registration ID assigned to the application by the GCM."
}
]
}
]
},
{
"name": "send",
"type": "function",
"description": "Sends a message according to its contents.",
"parameters": [
{
"name": "message",
"type": "object",
"description": "A message to send to the other party via GCM.",
"properties": {
"destinationId": {
"type": "string",
"minLength": 1,
"description": "The ID of the server to send the message to as assigned by Google API Console."
},
"messageId": {
"type": "string",
"minLength": 1,
"description": "The ID of the message. It must be unique for each message."
},
"timeToLive": {
"type": "integer",
"minimum": 0,
"maximum": 2419200,
"optional": true,
"description": "Time-to-live of the message in seconds. If it is not possible to send the message wihtin that time an error will be raised. A time-to-live of 0 indicates that the message should be sent immediately or fail if it's not possible. The maximum and a default value of time-to-live is 2419200 seconds (4 weeks)."
},
"data": {
"type": "object",
"properties": {},
"additionalProperties": {
"type": "string",
"minLength": 1
},
"description": "Message data to send to the server. goog.
and google
are disallowed as key prefixes. Sum of all key/value pairs should not exceed $ref:MAX_MESSAGE_SIZE."
}
}
},
{
"name": "callback",
"type": "function",
"description": "A function called after the message is successfully queued for sending. $ref:runtime.lastError should be checked, to ensure a message was sent without problems.",
"parameters": [
{
"name": "messageId",
"type": "string",
"description": "The ID of the message that the callback was issued for."
}
]
}
]
}
],
"events": [
{
"name": "onMessage",
"type": "function",
"description": "Fired when a message is received through GCM.",
"parameters": [
{
"name": "message",
"type": "object",
"description": "A message received from another party via GCM.",
"properties": {
"data": {
"type": "object",
"properties": {},
"additionalProperties": {
"type": "string"
},
"description": "The message data."
}
}
}
]
},
{
"name": "onMessagesDeleted",
"type": "function",
"description": "Fired when a GCM server had to delete messages to the application from its queue in order to manage its size. The app is expected to handle that case gracefully, e.g. by running a full sync with its server."
},
{
"name": "onSendError",
"type": "function",
"description": "Fired when it was not possible to send a message to the GCM server.",
"parameters": [
{
"name": "error",
"type": "object",
"description": "An error related to sending a message raised by GCM.",
"properties": {
"errorMessage": {
"type": "string",
"description": "The error message describing the problem."
},
"messageId": {
"type": "string",
"optional": true,
"description": "The ID of the message with this error, if error is related to a specific message."
},
"details": {
"type": "object",
"properties": {},
"additionalProperties": {
"type": "string"
},
"description": "Additional details related to the error, when available."
}
},
"description": "An error that occured while trying to send the message either in Chrome or on the GCM server. Application can retry sending the message with a reasonable backoff and possibly longer time-to-live."
}
]
}
]
}
]