1 // Copyright (c) 2011 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.
6 // require cr/event_target.js
10 * Bridge between the browser and the page.
12 * * define EventTargets to receive message from the browser,
13 * * dispatch browser messages to EventTarget,
14 * * define interface to request data to the browser.
17 cr
.define('cr.quota', function() {
21 * Post requestInfo message to Browser.
23 function requestInfo() {
24 chrome
.send('requestInfo');
28 * Callback entry point from Browser.
29 * Messages are Dispatched as Event to:
30 * * onAvailableSpaceUpdated,
31 * * onGlobalInfoUpdated,
32 * * onPerHostInfoUpdated,
33 * * onPerOriginInfoUpdated,
34 * * onStatisticsUpdated.
35 * @param {string} message Message label. Possible Values are:
36 * * 'AvailableSpaceUpdated',
37 * * 'GlobalInfoUpdated',
38 * * 'PerHostInfoUpdated',
39 * * 'PerOriginInfoUpdated',
40 * * 'StatisticsUpdated'.
41 * @param {Object} detail Message specific additional data.
43 function messageHandler(message
, detail
) {
46 case 'AvailableSpaceUpdated':
47 target
= cr
.quota
.onAvailableSpaceUpdated
;
49 case 'GlobalInfoUpdated':
50 target
= cr
.quota
.onGlobalInfoUpdated
;
52 case 'PerHostInfoUpdated':
53 target
= cr
.quota
.onPerHostInfoUpdated
;
55 case 'PerOriginInfoUpdated':
56 target
= cr
.quota
.onPerOriginInfoUpdated
;
58 case 'StatisticsUpdated':
59 target
= cr
.quota
.onStatisticsUpdated
;
62 console
.error('Unknown Message');
66 var event
= cr
.doc
.createEvent('CustomEvent');
67 event
.initCustomEvent('update', false, false, detail
);
68 target
.dispatchEvent(event
);
73 onAvailableSpaceUpdated
: new cr
.EventTarget(),
74 onGlobalInfoUpdated
: new cr
.EventTarget(),
75 onPerHostInfoUpdated
: new cr
.EventTarget(),
76 onPerOriginInfoUpdated
: new cr
.EventTarget(),
77 onStatisticsUpdated
: new cr
.EventTarget(),
79 requestInfo
: requestInfo
,
80 messageHandler
: messageHandler