15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// require cr.js 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// require cr/event_target.js 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// require cr/util.js 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Bridge between the browser and the page. 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * In this file: 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * * define EventTargets to receive message from the browser, 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * dispatch browser messages to EventTarget, 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * define interface to request data to the browser. 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cr.define('cr.quota', function() { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'use strict'; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Post requestInfo message to Browser. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function requestInfo() { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome.send('requestInfo'); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Callback entry point from Browser. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Messages are Dispatched as Event to: 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * onAvailableSpaceUpdated, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * onGlobalInfoUpdated, 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * onPerHostInfoUpdated, 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * onPerOriginInfoUpdated, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * onStatisticsUpdated. 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {string} message Message label. Possible Values are: 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * 'AvailableSpaceUpdated', 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * 'GlobalInfoUpdated', 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * 'PerHostInfoUpdated', 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * 'PerOriginInfoUpdated', 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * * 'StatisticsUpdated'. 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {Object} detail Message specific additional data. 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function messageHandler(message, detail) { 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var target = null; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) switch (message) { 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 'AvailableSpaceUpdated': 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) target = cr.quota.onAvailableSpaceUpdated; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 'GlobalInfoUpdated': 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) target = cr.quota.onGlobalInfoUpdated; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 'PerHostInfoUpdated': 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) target = cr.quota.onPerHostInfoUpdated; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 'PerOriginInfoUpdated': 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) target = cr.quota.onPerOriginInfoUpdated; 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) case 'StatisticsUpdated': 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) target = cr.quota.onStatisticsUpdated; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) default: 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) console.error('Unknown Message'); 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (target) { 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var event = cr.doc.createEvent('CustomEvent'); 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) event.initCustomEvent('update', false, false, detail); 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) target.dispatchEvent(event); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return { 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) onAvailableSpaceUpdated: new cr.EventTarget(), 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) onGlobalInfoUpdated: new cr.EventTarget(), 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) onPerHostInfoUpdated: new cr.EventTarget(), 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) onPerOriginInfoUpdated: new cr.EventTarget(), 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) onStatisticsUpdated: new cr.EventTarget(), 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) requestInfo: requestInfo, 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) messageHandler: messageHandler 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 83