| Index: chrome/browser/resources/options2/chromeos/change_picture_options.js
|
| diff --git a/chrome/browser/resources/options2/chromeos/change_picture_options.js b/chrome/browser/resources/options2/chromeos/change_picture_options.js
|
| deleted file mode 100644
|
| index 2404337c9164c0ca999becb51878f2fa89ade3d0..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/resources/options2/chromeos/change_picture_options.js
|
| +++ /dev/null
|
| @@ -1,506 +0,0 @@
|
| -// Copyright (c) 2012 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.
|
| -
|
| -cr.define('options', function() {
|
| -
|
| - var OptionsPage = options.OptionsPage;
|
| - var UserImagesGrid = options.UserImagesGrid;
|
| - var ButtonImages = UserImagesGrid.ButtonImages;
|
| -
|
| - /**
|
| - * Array of button URLs used on this page.
|
| - * @type {Array.<string>}
|
| - * @const
|
| - */
|
| - var ButtonImageUrls = [
|
| - ButtonImages.TAKE_PHOTO,
|
| - ButtonImages.CHOOSE_FILE
|
| - ];
|
| -
|
| - /////////////////////////////////////////////////////////////////////////////
|
| - // ChangePictureOptions class:
|
| -
|
| - /**
|
| - * Encapsulated handling of ChromeOS change picture options page.
|
| - * @constructor
|
| - */
|
| - function ChangePictureOptions() {
|
| - var isWebRTC = $('change-picture-page').getAttribute('camera') == 'webrtc';
|
| - ChangePictureOptions.prototype = isWebRTC ?
|
| - ChangePictureOptionsWebRTCProto : ChangePictureOptionsOldProto;
|
| - // |this| has been already created so it's |__proto__| has to be reset.
|
| - this.__proto__ = ChangePictureOptions.prototype;
|
| - OptionsPage.call(
|
| - this,
|
| - 'changePicture',
|
| - loadTimeData.getString('changePicturePage'),
|
| - 'change-picture-page');
|
| - }
|
| -
|
| - cr.addSingletonGetter(ChangePictureOptions);
|
| -
|
| - var ChangePictureOptionsOldProto = {
|
| - // Inherit ChangePictureOptions from OptionsPage.
|
| - __proto__: options.OptionsPage.prototype,
|
| -
|
| - /**
|
| - * Initializes ChangePictureOptions page.
|
| - */
|
| - initializePage: function() {
|
| - // Call base class implementation to start preferences initialization.
|
| - OptionsPage.prototype.initializePage.call(this);
|
| -
|
| - var imageGrid = $('user-image-grid');
|
| - UserImagesGrid.decorate(imageGrid);
|
| -
|
| - imageGrid.previewElement = $('user-image-preview');
|
| -
|
| - imageGrid.addEventListener('select',
|
| - this.handleImageSelected_.bind(this));
|
| - imageGrid.addEventListener('activate',
|
| - this.handleImageActivated_.bind(this));
|
| -
|
| - // Add the "Choose file" button.
|
| - imageGrid.addItem(ButtonImages.CHOOSE_FILE,
|
| - loadTimeData.getString('chooseFile'),
|
| - this.handleChooseFile_.bind(this));
|
| -
|
| - // Profile image data.
|
| - this.profileImage_ = imageGrid.addItem(
|
| - ButtonImages.PROFILE_PICTURE,
|
| - loadTimeData.getString('profilePhotoLoading'));
|
| -
|
| - // Old user image data (if present).
|
| - this.oldImage_ = null;
|
| -
|
| - $('change-picture-overlay-confirm').onclick = this.closePage_;
|
| -
|
| - chrome.send('onChangePicturePageInitialized');
|
| - },
|
| -
|
| - /**
|
| - * Called right after the page has been shown to user.
|
| - */
|
| - didShowPage: function() {
|
| - $('user-image-grid').updateAndFocus();
|
| - chrome.send('onChangePicturePageShown');
|
| - },
|
| -
|
| - /**
|
| - * Called right before the page is hidden.
|
| - */
|
| - willHidePage: function() {
|
| - var imageGrid = $('user-image-grid');
|
| - imageGrid.blur(); // Make sure the image grid is not active.
|
| - if (this.oldImage_) {
|
| - imageGrid.removeItem(this.oldImage_);
|
| - this.oldImage_ = null;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Called right after the page has been hidden.
|
| - */
|
| - // TODO(ivankr): both callbacks are required as only one of them is called
|
| - // depending on the way the page was closed, see http://crbug.com/118923.
|
| - didClosePage: function() {
|
| - this.willHidePage();
|
| - },
|
| -
|
| - /**
|
| - * Closes current page, returning back to Personal Stuff page.
|
| - * @private
|
| - */
|
| - closePage_: function() {
|
| - OptionsPage.closeOverlay();
|
| - },
|
| -
|
| - /**
|
| - * Handles "Take photo" button activation.
|
| - * @private
|
| - */
|
| - handleTakePhoto_: function() {
|
| - chrome.send('takePhoto');
|
| - this.closePage_();
|
| - },
|
| -
|
| - /**
|
| - * Handles "Choose a file" button activation.
|
| - * @private
|
| - */
|
| - handleChooseFile_: function() {
|
| - chrome.send('chooseFile');
|
| - this.closePage_();
|
| - },
|
| -
|
| - /**
|
| - * Handles image selection change.
|
| - * @private
|
| - */
|
| - handleImageSelected_: function() {
|
| - var imageGrid = $('user-image-grid');
|
| - var url = imageGrid.selectedItemUrl;
|
| - // Ignore deselection, selection change caused by program itself and
|
| - // selection of one of the action buttons.
|
| - if (url &&
|
| - !imageGrid.inProgramSelection &&
|
| - ButtonImageUrls.indexOf(url) == -1) {
|
| - chrome.send('selectImage', [url]);
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Handles image activation (by pressing Enter).
|
| - * @private
|
| - */
|
| - handleImageActivated_: function() {
|
| - switch ($('user-image-grid').selectedItemUrl) {
|
| - case ButtonImages.TAKE_PHOTO:
|
| - this.handleTakePhoto_();
|
| - break;
|
| - case ButtonImages.CHOOSE_FILE:
|
| - this.handleChooseFile_();
|
| - break;
|
| - default:
|
| - this.closePage_();
|
| - break;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * URL of the current user image.
|
| - * @type {string}
|
| - */
|
| - get currentUserImageUrl() {
|
| - return 'chrome://userimage/' + BrowserOptions.getLoggedInUsername() +
|
| - '?id=' + (new Date()).getTime() + '&animated';
|
| - },
|
| -
|
| - /**
|
| - * Notifies about camera presence change.
|
| - * @param {boolean} present Whether a camera is present or not.
|
| - * @private
|
| - */
|
| - setCameraPresent_: function(present) {
|
| - var imageGrid = $('user-image-grid');
|
| - var showTakePhotoButton = present;
|
| - if (showTakePhotoButton && !this.takePhotoButton_) {
|
| - this.takePhotoButton_ = imageGrid.addItem(
|
| - ButtonImages.TAKE_PHOTO,
|
| - loadTimeData.getString('takePhoto'),
|
| - this.handleTakePhoto_.bind(this),
|
| - 1);
|
| - } else if (!showTakePhotoButton && this.takePhotoButton_) {
|
| - imageGrid.removeItem(this.takePhotoButton_);
|
| - this.takePhotoButton_ = null;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Adds or updates old user image taken from file/camera (neither a profile
|
| - * image nor a default one).
|
| - * @private
|
| - */
|
| - setOldImage_: function() {
|
| - var imageGrid = $('user-image-grid');
|
| - var url = this.currentUserImageUrl;
|
| - if (this.oldImage_) {
|
| - this.oldImage_ = imageGrid.updateItem(this.oldImage_, url);
|
| - } else {
|
| - // Insert next to the profile image.
|
| - var pos = imageGrid.indexOf(this.profileImage_) + 1;
|
| - this.oldImage_ = imageGrid.addItem(url, undefined, undefined, pos);
|
| - imageGrid.selectedItem = this.oldImage_;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Updates user's profile image.
|
| - * @param {string} imageUrl Profile image, encoded as data URL.
|
| - * @param {boolean} select If true, profile image should be selected.
|
| - * @private
|
| - */
|
| - setProfileImage_: function(imageUrl, select) {
|
| - var imageGrid = $('user-image-grid');
|
| - this.profileImage_ = imageGrid.updateItem(
|
| - this.profileImage_, imageUrl, loadTimeData.getString('profilePhoto'));
|
| - if (select)
|
| - imageGrid.selectedItem = this.profileImage_;
|
| - },
|
| -
|
| - /**
|
| - * Selects user image with the given URL.
|
| - * @param {string} url URL of the image to select.
|
| - * @private
|
| - */
|
| - setSelectedImage_: function(url) {
|
| - $('user-image-grid').selectedItemUrl = url;
|
| - },
|
| -
|
| - /**
|
| - * Appends default images to the image grid. Should only be called once.
|
| - * @param {Array.<{url: string, author: string, website: string}>} images
|
| - * An array of default images data, including URL, author and website.
|
| - * @private
|
| - */
|
| - setDefaultImages_: function(images) {
|
| - var imageGrid = $('user-image-grid');
|
| - for (var i = 0, data; data = imagesData[i]; i++) {
|
| - imageGrid.addItem(data.url);
|
| - }
|
| - },
|
| - };
|
| -
|
| - var ChangePictureOptionsWebRTCProto = {
|
| - // Inherit ChangePictureOptions from OptionsPage.
|
| - __proto__: options.OptionsPage.prototype,
|
| -
|
| - /**
|
| - * Initializes ChangePictureOptions page.
|
| - */
|
| - initializePage: function() {
|
| - // Call base class implementation to start preferences initialization.
|
| - OptionsPage.prototype.initializePage.call(this);
|
| -
|
| - var imageGrid = $('user-image-grid');
|
| - UserImagesGrid.decorate(imageGrid);
|
| -
|
| - // Preview image will track the selected item's URL.
|
| - var previewElement = $('user-image-preview');
|
| - imageGrid.previewElement = previewElement;
|
| - imageGrid.selectionType = 'default';
|
| -
|
| - imageGrid.addEventListener('select',
|
| - this.handleImageSelected_.bind(this));
|
| - imageGrid.addEventListener('activate',
|
| - this.handleImageActivated_.bind(this));
|
| -
|
| - // Set the title for "Take Photo" button.
|
| - imageGrid.cameraTitle = loadTimeData.getString('takePhoto');
|
| -
|
| - // Add the "Choose file" button.
|
| - imageGrid.addItem(ButtonImages.CHOOSE_FILE,
|
| - loadTimeData.getString('chooseFile'),
|
| - this.handleChooseFile_.bind(this)).type = 'file';
|
| -
|
| - // Profile image data.
|
| - this.profileImage_ = imageGrid.addItem(
|
| - ButtonImages.PROFILE_PICTURE,
|
| - loadTimeData.getString('profilePhotoLoading'));
|
| - this.profileImage_.type = 'profile';
|
| -
|
| - $('take-photo').addEventListener(
|
| - 'click', this.handleTakePhoto_.bind(this));
|
| - $('discard-photo').addEventListener(
|
| - 'click', imageGrid.discardPhoto.bind(imageGrid));
|
| -
|
| - // Toggle 'animation' class for the duration of WebKit transition.
|
| - $('flip-photo').addEventListener(
|
| - 'click', function(e) {
|
| - previewElement.classList.add('animation');
|
| - imageGrid.flipPhoto = !imageGrid.flipPhoto;
|
| - });
|
| - $('user-image-stream-crop').addEventListener(
|
| - 'webkitTransitionEnd', function(e) {
|
| - previewElement.classList.remove('animation');
|
| - });
|
| -
|
| - // Old user image data (if present).
|
| - this.oldImage_ = null;
|
| -
|
| - $('change-picture-overlay-confirm').addEventListener(
|
| - 'click', this.closePage_.bind(this));
|
| -
|
| - chrome.send('onChangePicturePageInitialized');
|
| - },
|
| -
|
| - /**
|
| - * Called right after the page has been shown to user.
|
| - */
|
| - didShowPage: function() {
|
| - var imageGrid = $('user-image-grid');
|
| - imageGrid.updateAndFocus();
|
| - // Reset camera element.
|
| - imageGrid.cameraImage = null;
|
| - // Autoplay but do not preselect.
|
| - imageGrid.checkCameraPresence(true, false);
|
| - chrome.send('onChangePicturePageShown');
|
| - },
|
| -
|
| - /**
|
| - * Called right before the page is hidden.
|
| - */
|
| - willHidePage: function() {
|
| - var imageGrid = $('user-image-grid');
|
| - imageGrid.blur(); // Make sure the image grid is not active.
|
| - imageGrid.stopCamera();
|
| - if (this.oldImage_) {
|
| - imageGrid.removeItem(this.oldImage_);
|
| - this.oldImage_ = null;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Called right after the page has been hidden.
|
| - */
|
| - // TODO(ivankr): both callbacks are required as only one of them is called
|
| - // depending on the way the page was closed, see http://crbug.com/118923.
|
| - didClosePage: function() {
|
| - this.willHidePage();
|
| - },
|
| -
|
| - /**
|
| - * Closes current page, returning back to Personal Stuff page.
|
| - * @private
|
| - */
|
| - closePage_: function() {
|
| - OptionsPage.closeOverlay();
|
| - },
|
| -
|
| - /**
|
| - * Handles "Take photo" button click.
|
| - * @private
|
| - */
|
| - handleTakePhoto_: function() {
|
| - $('user-image-grid').takePhoto(function(photoURL) {
|
| - chrome.send('photoTaken', [photoURL]);
|
| - });
|
| - },
|
| -
|
| - /**
|
| - * Handles "Choose a file" button activation.
|
| - * @private
|
| - */
|
| - handleChooseFile_: function() {
|
| - chrome.send('chooseFile');
|
| - this.closePage_();
|
| - },
|
| -
|
| - /**
|
| - * Handles image selection change.
|
| - * @private
|
| - */
|
| - handleImageSelected_: function() {
|
| - var imageGrid = $('user-image-grid');
|
| - var url = imageGrid.selectedItemUrl;
|
| - // Ignore selection change caused by program itself and selection of one
|
| - // of the action buttons.
|
| - if (!imageGrid.inProgramSelection &&
|
| - url != ButtonImages.TAKE_PHOTO && url != ButtonImages.CHOOSE_FILE) {
|
| - chrome.send('selectImage', [url]);
|
| - }
|
| - // Update image attribution text.
|
| - var image = imageGrid.selectedItem;
|
| - $('user-image-author-name').textContent = image.author;
|
| - $('user-image-author-website').textContent = image.website;
|
| - $('user-image-author-website').href = image.website;
|
| - $('user-image-attribution').style.visibility =
|
| - (image.author || image.website) ? 'visible' : 'hidden';
|
| - },
|
| -
|
| - /**
|
| - * Handles image activation (by pressing Enter).
|
| - * @private
|
| - */
|
| - handleImageActivated_: function() {
|
| - switch ($('user-image-grid').selectedItemUrl) {
|
| - case ButtonImages.TAKE_PHOTO:
|
| - this.handleTakePhoto_();
|
| - break;
|
| - case ButtonImages.CHOOSE_FILE:
|
| - this.handleChooseFile_();
|
| - break;
|
| - default:
|
| - this.closePage_();
|
| - break;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * URL of the current user image.
|
| - * @type {string}
|
| - */
|
| - get currentUserImageUrl() {
|
| - return 'chrome://userimage/' + BrowserOptions.getLoggedInUsername() +
|
| - '?id=' + new Date().getTime();
|
| - },
|
| -
|
| - /**
|
| - * Adds or updates old user image taken from file/camera (neither a profile
|
| - * image nor a default one).
|
| - * @private
|
| - */
|
| - setOldImage_: function() {
|
| - var imageGrid = $('user-image-grid');
|
| - var url = this.currentUserImageUrl;
|
| - if (this.oldImage_) {
|
| - this.oldImage_ = imageGrid.updateItem(this.oldImage_, url);
|
| - } else {
|
| - // Insert next to the profile image.
|
| - var pos = imageGrid.indexOf(this.profileImage_) + 1;
|
| - this.oldImage_ = imageGrid.addItem(url, undefined, undefined, pos);
|
| - imageGrid.selectedItem = this.oldImage_;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Updates user's profile image.
|
| - * @param {string} imageUrl Profile image, encoded as data URL.
|
| - * @param {boolean} select If true, profile image should be selected.
|
| - * @private
|
| - */
|
| - setProfileImage_: function(imageUrl, select) {
|
| - var imageGrid = $('user-image-grid');
|
| - this.profileImage_ = imageGrid.updateItem(
|
| - this.profileImage_, imageUrl, loadTimeData.getString('profilePhoto'));
|
| - if (select)
|
| - imageGrid.selectedItem = this.profileImage_;
|
| - },
|
| -
|
| - /**
|
| - * Selects user image with the given URL.
|
| - * @param {string} url URL of the image to select.
|
| - * @private
|
| - */
|
| - setSelectedImage_: function(url) {
|
| - $('user-image-grid').selectedItemUrl = url;
|
| - },
|
| -
|
| - /**
|
| - * Appends default images to the image grid. Should only be called once.
|
| - * @param {Array.<{url: string, author: string, website: string}>} images
|
| - * An array of default images data, including URL, author and website.
|
| - * @private
|
| - */
|
| - setDefaultImages_: function(imagesData) {
|
| - var imageGrid = $('user-image-grid');
|
| - for (var i = 0, data; data = imagesData[i]; i++) {
|
| - var item = imageGrid.addItem(data.url);
|
| - item.type = 'default';
|
| - item.author = data.author || '';
|
| - item.website = data.website || '';
|
| - }
|
| - },
|
| - };
|
| -
|
| - // Forward public APIs to private implementations.
|
| - [
|
| - 'setCameraPresent',
|
| - 'setDefaultImages',
|
| - 'setOldImage',
|
| - 'setProfileImage',
|
| - 'setSelectedImage',
|
| - ].forEach(function(name) {
|
| - ChangePictureOptions[name] = function() {
|
| - var instance = ChangePictureOptions.getInstance();
|
| - return instance[name + '_'].apply(instance, arguments);
|
| - };
|
| - });
|
| -
|
| - // Export
|
| - return {
|
| - ChangePictureOptions: ChangePictureOptions
|
| - };
|
| -
|
| -});
|
|
|