| // Copyright 2017 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. |
| |
| // <p> |
| // The API that can be used by an app to create and manage data on the |
| // Chrome OS lock screen. |
| // </p> |
| // <p> |
| // The API usability will depend on the user session state: |
| // <ul> |
| // <li> |
| // When the user session is locked, the API usage will only be allowed |
| // from the lock screen context. |
| // </li> |
| // <li> |
| // When the user session is not locked, the API usage will only be |
| // allowed outside the lock screen context - i.e. from the regular app |
| // context. |
| // </li> |
| // </ul> |
| // </p> |
| // <p> |
| // Note that apps have reduced access to Chrome apps APIs from the lock screen |
| // context. |
| // </p> |
| namespace lockScreen.data { |
| // The basic information about available data items originating from the lock |
| // screen. |
| dictionary DataItemInfo { |
| // The data item ID that can later be used to retrieve and update the |
| // associated lock screen data. |
| DOMString id; |
| }; |
| |
| dictionary DataItemsAvailableEvent { |
| // <p>Whether the event was dispatched as a result of the user session |
| // getting unlocked. |
| // </p> |
| // <p>For example: |
| // <ul> |
| // <li>If the app creates new data items while shown on |
| // the lock screen, when the user unlocks the screen, |
| // $(ref:onDataItemsAvailable) event will be dispatched with this |
| // property set to <code>true</code>. |
| // </li> |
| // <li>When the user logs in, if not previously reported lock screen |
| // data items are found, which could happen if the user session had |
| // been closed while it was locked, $(ref:onDataItemsAvailable) will |
| // be dispatched with this property set to <code>false</code>. |
| // </li> |
| // </ul> |
| // </p> |
| boolean wasLocked; |
| }; |
| |
| callback DataItemCallback = void(DataItemInfo item); |
| callback DataItemListCallback = void(DataItemInfo[] items); |
| callback DataCallback = void(ArrayBuffer data); |
| callback VoidCallback = void(); |
| |
| interface Functions { |
| // Creates a new data item reference - available only in lock screen |
| // contexts. |
| static void create(DataItemCallback callback); |
| |
| // Gets references to all data items available to the app. |
| static void getAll(DataItemListCallback callback); |
| |
| // Retrieves content of the data item identified by |id|. |
| static void getContent(DOMString id, DataCallback callback); |
| |
| // Sets contents of a data item. |
| // |id| - Identifies the target data item. |
| // |data| - The data item contents to set. |
| static void setContent(DOMString id, |
| ArrayBuffer data, |
| optional VoidCallback callback); |
| |
| // Deletes a data item. The data item will not be available through this |
| // API anymore. |
| // |id| - Identifies the data item to delete. |
| static void delete(DOMString id, optional VoidCallback callback); |
| }; |
| |
| interface Events { |
| // Dispatched when new data items become available to main, non-lock screen |
| // app context - this event is not expected to be dispatched to the app in |
| // the lock screen context. |
| static void onDataItemsAvailable(DataItemsAvailableEvent event); |
| }; |
| }; |