OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * A module that contains basic utility components and methods for the | 7 * A module that contains basic utility components and methods for the |
8 * chromoting project | 8 * chromoting project |
9 * | 9 * |
10 */ | 10 */ |
(...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
675 callback(); | 675 callback(); |
676 } | 676 } |
677 }; | 677 }; |
678 | 678 |
679 base.RepeatingTimer.prototype.dispose = function() { | 679 base.RepeatingTimer.prototype.dispose = function() { |
680 window.clearInterval(this.intervalId_); | 680 window.clearInterval(this.intervalId_); |
681 this.intervalId_ = null; | 681 this.intervalId_ = null; |
682 }; | 682 }; |
683 | 683 |
684 /** | 684 /** |
| 685 * A disposable one shot timer. |
| 686 * |
| 687 * @param {Function} callback |
| 688 * @param {number} timeout |
| 689 * |
| 690 * @constructor |
| 691 * @implements {base.Disposable} |
| 692 */ |
| 693 base.OneShotTimer = function(callback, timeout) { |
| 694 var that = this; |
| 695 |
| 696 /** @private */ |
| 697 this.timerId_ = window.setTimeout(function() { |
| 698 that.timerId_ = null; |
| 699 callback(); |
| 700 }, timeout); |
| 701 }; |
| 702 |
| 703 base.OneShotTimer.prototype.dispose = function() { |
| 704 if (this.timerId_ !== null) { |
| 705 window.clearTimeout(this.timerId_); |
| 706 this.timerId_ = null; |
| 707 } |
| 708 }; |
| 709 |
| 710 /** |
685 * Converts UTF-8 string to ArrayBuffer. | 711 * Converts UTF-8 string to ArrayBuffer. |
686 * | 712 * |
687 * @param {string} string | 713 * @param {string} string |
688 * @return {ArrayBuffer} | 714 * @return {ArrayBuffer} |
689 */ | 715 */ |
690 base.encodeUtf8 = function(string) { | 716 base.encodeUtf8 = function(string) { |
691 var utf8String = unescape(encodeURIComponent(string)); | 717 var utf8String = unescape(encodeURIComponent(string)); |
692 var result = new Uint8Array(utf8String.length); | 718 var result = new Uint8Array(utf8String.length); |
693 for (var i = 0; i < utf8String.length; i++) | 719 for (var i = 0; i < utf8String.length; i++) |
694 result[i] = utf8String.charCodeAt(i); | 720 result[i] = utf8String.charCodeAt(i); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
751 */ | 777 */ |
752 base.resizeWindowToContent = function() { | 778 base.resizeWindowToContent = function() { |
753 var appWindow = chrome.app.window.current(); | 779 var appWindow = chrome.app.window.current(); |
754 var outerBounds = appWindow.outerBounds; | 780 var outerBounds = appWindow.outerBounds; |
755 var borderY = outerBounds.height - appWindow.innerBounds.height; | 781 var borderY = outerBounds.height - appWindow.innerBounds.height; |
756 appWindow.resizeTo(outerBounds.width, document.body.clientHeight + borderY); | 782 appWindow.resizeTo(outerBounds.width, document.body.clientHeight + borderY); |
757 // Sometimes, resizing the window causes its position to be reset to (0, 0), | 783 // Sometimes, resizing the window causes its position to be reset to (0, 0), |
758 // so restore it explicitly. | 784 // so restore it explicitly. |
759 appWindow.moveTo(outerBounds.left, outerBounds.top); | 785 appWindow.moveTo(outerBounds.left, outerBounds.top); |
760 }; | 786 }; |
OLD | NEW |