Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(227)

Side by Side Diff: chrome/browser/resources/print_preview/data/destination_store.js

Issue 587013003: Add Print Preview UI to accept and reject printer sharing invitations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 cr.define('print_preview', function() { 5 cr.define('print_preview', function() {
6 'use strict'; 6 'use strict';
7 7
8 /** 8 /**
9 * A data store that stores destinations and dispatches events when the data 9 * A data store that stores destinations and dispatches events when the data
10 * store changes. 10 * store changes.
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 cloudprint.CloudPrintInterface.EventType.SEARCH_FAILED, 357 cloudprint.CloudPrintInterface.EventType.SEARCH_FAILED,
358 this.onCloudPrintSearchDone_.bind(this)); 358 this.onCloudPrintSearchDone_.bind(this));
359 this.tracker_.add( 359 this.tracker_.add(
360 this.cloudPrintInterface_, 360 this.cloudPrintInterface_,
361 cloudprint.CloudPrintInterface.EventType.PRINTER_DONE, 361 cloudprint.CloudPrintInterface.EventType.PRINTER_DONE,
362 this.onCloudPrintPrinterDone_.bind(this)); 362 this.onCloudPrintPrinterDone_.bind(this));
363 this.tracker_.add( 363 this.tracker_.add(
364 this.cloudPrintInterface_, 364 this.cloudPrintInterface_,
365 cloudprint.CloudPrintInterface.EventType.PRINTER_FAILED, 365 cloudprint.CloudPrintInterface.EventType.PRINTER_FAILED,
366 this.onCloudPrintPrinterFailed_.bind(this)); 366 this.onCloudPrintPrinterFailed_.bind(this));
367 this.tracker_.add(
368 this.cloudPrintInterface_,
369 cloudprint.CloudPrintInterface.EventType.PROCESS_INVITE_DONE,
370 this.onCloudPrintProcessInviteDone_.bind(this));
367 }, 371 },
368 372
369 /** 373 /**
370 * @return {boolean} Whether only default cloud destinations have been 374 * @return {boolean} Whether only default cloud destinations have been
371 * loaded. 375 * loaded.
372 */ 376 */
373 hasOnlyDefaultCloudDestinations: function() { 377 hasOnlyDefaultCloudDestinations: function() {
374 // TODO: Move the logic to print_preview. 378 // TODO: Move the logic to print_preview.
375 return this.destinations_.every(function(dest) { 379 return this.destinations_.every(function(dest) {
376 return dest.isLocal || 380 return dest.isLocal ||
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 var origins = this.loadedCloudOrigins_[this.userInfo_.activeUser] || []; 508 var origins = this.loadedCloudOrigins_[this.userInfo_.activeUser] || [];
505 if (origins.indexOf(print_preview.Destination.Origin.COOKIES) >= 0) { 509 if (origins.indexOf(print_preview.Destination.Origin.COOKIES) >= 0) {
506 cr.dispatchSimpleEvent( 510 cr.dispatchSimpleEvent(
507 this, DestinationStore.EventType.DESTINATION_SEARCH_DONE); 511 this, DestinationStore.EventType.DESTINATION_SEARCH_DONE);
508 } else { 512 } else {
509 this.startLoadCloudDestinations( 513 this.startLoadCloudDestinations(
510 print_preview.Destination.Origin.COOKIES); 514 print_preview.Destination.Origin.COOKIES);
511 } 515 }
512 }, 516 },
513 517
518 /** Initiates loading of all known destination types. */
519 startLoadAllDestinations: function() {
520 this.startLoadCloudDestinations();
521 this.startLoadLocalDestinations();
522 this.startLoadPrivetDestinations();
523 },
524
514 /** 525 /**
515 * Wait for a privet device to be registered. 526 * Wait for a privet device to be registered.
516 */ 527 */
517 waitForRegister: function(id) { 528 waitForRegister: function(id) {
518 this.nativeLayer_.startGetPrivetDestinations(); 529 this.nativeLayer_.startGetPrivetDestinations();
519 this.waitForRegisterDestination_ = id; 530 this.waitForRegisterDestination_ = id;
520 }, 531 },
521 532
522 /** 533 /**
523 * Inserts {@code destination} to the data store and dispatches a 534 * Inserts {@code destination} to the data store and dispatches a
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 if (this.isInAutoSelectMode_ && 840 if (this.isInAutoSelectMode_ &&
830 this.sameAsPersistedDestination_(event.destinationId, 841 this.sameAsPersistedDestination_(event.destinationId,
831 event.destinationOrigin)) { 842 event.destinationOrigin)) {
832 console.error( 843 console.error(
833 'Failed to fetch last used printer caps: ' + event.destinationId); 844 'Failed to fetch last used printer caps: ' + event.destinationId);
834 this.selectDefaultDestination_(); 845 this.selectDefaultDestination_();
835 } 846 }
836 }, 847 },
837 848
838 /** 849 /**
850 * Called when printer sharing invitation was processed successfully.
851 * @param {Event} event Contains detailed information about the invite and
852 * newly accepted destination (if known).
853 * @private
854 */
855 onCloudPrintProcessInviteDone_: function(event) {
856 if (event.accept && event.printer) {
857 // Hint the destination list to promote this new destination.
858 event.printer.isRecent = true;
Vitaly Buka (NO REVIEWS) 2014/09/22 01:25:15 Please add metricts somewhere to count accepts and
859 this.insertDestination_(event.printer);
860 }
861 },
862
863 /**
839 * Called when a Privet printer is added to the local network. 864 * Called when a Privet printer is added to the local network.
840 * @param {object} event Contains information about the added printer. 865 * @param {object} event Contains information about the added printer.
841 * @private 866 * @private
842 */ 867 */
843 onPrivetPrinterAdded_: function(event) { 868 onPrivetPrinterAdded_: function(event) {
844 if (event.printer.serviceName == this.waitForRegisterDestination_ && 869 if (event.printer.serviceName == this.waitForRegisterDestination_ &&
845 !event.printer.isUnregistered) { 870 !event.printer.isUnregistered) {
846 this.waitForRegisterDestination_ = null; 871 this.waitForRegisterDestination_ = null;
847 this.onDestinationsReload_(); 872 this.onDestinationsReload_();
848 } else { 873 } else {
(...skipping 19 matching lines...) Expand all
868 893
869 /** 894 /**
870 * Called from native layer after the user was requested to sign in, and did 895 * Called from native layer after the user was requested to sign in, and did
871 * so successfully. 896 * so successfully.
872 * @private 897 * @private
873 */ 898 */
874 onDestinationsReload_: function() { 899 onDestinationsReload_: function() {
875 this.reset_(); 900 this.reset_();
876 this.isInAutoSelectMode_ = true; 901 this.isInAutoSelectMode_ = true;
877 this.createLocalPdfPrintDestination_(); 902 this.createLocalPdfPrintDestination_();
878 this.startLoadLocalDestinations(); 903 this.startLoadAllDestinations();
879 this.startLoadCloudDestinations();
880 this.startLoadPrivetDestinations();
881 }, 904 },
882 905
883 // TODO(vitalybuka): Remove three next functions replacing Destination.id 906 // TODO(vitalybuka): Remove three next functions replacing Destination.id
884 // and Destination.origin by complex ID. 907 // and Destination.origin by complex ID.
885 /** 908 /**
886 * Returns key to be used with {@code destinationMap_}. 909 * Returns key to be used with {@code destinationMap_}.
887 * @param {!print_preview.Destination.Origin} origin Destination origin. 910 * @param {!print_preview.Destination.Origin} origin Destination origin.
888 * @return {string} id Destination id. 911 * @return {string} id Destination id.
889 * @return {string} account User account destination is registered for. 912 * @return {string} account User account destination is registered for.
890 * @private 913 * @private
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
926 return id == this.appState_.selectedDestinationId && 949 return id == this.appState_.selectedDestinationId &&
927 origin == this.appState_.selectedDestinationOrigin; 950 origin == this.appState_.selectedDestinationOrigin;
928 } 951 }
929 }; 952 };
930 953
931 // Export 954 // Export
932 return { 955 return {
933 DestinationStore: DestinationStore 956 DestinationStore: DestinationStore
934 }; 957 };
935 }); 958 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698