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

Side by Side Diff: ui/keyboard/resources/elements/kb-keyboard.html

Issue 23819032: Dynamically load keyboard layouts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove console log. Created 7 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | ui/keyboard/resources/index.html » ('j') | ui/keyboard/resources/index.html » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!-- 1 <!--
2 -- Copyright 2013 The Chromium Authors. All rights reserved. 2 -- Copyright 2013 The Chromium Authors. All rights reserved.
3 -- Use of this source code is governed by a BSD-style license that can be 3 -- Use of this source code is governed by a BSD-style license that can be
4 -- found in the LICENSE file. 4 -- found in the LICENSE file.
5 --> 5 -->
6 6
7 <polymer-element name="kb-keyboard" on-key-over="keyOver" on-key-up="keyUp" 7 <polymer-element name="kb-keyboard" on-key-over="keyOver" on-key-up="keyUp"
8 on-key-down="keyDown" on-key-longpress="keyLongpress" on-pointerup="up" 8 on-key-down="keyDown" on-key-longpress="keyLongpress" on-pointerup="up"
9 on-pointerdown="down" on-enable-sel="enableSel" 9 on-pointerdown="down" on-enable-sel="enableSel"
10 on-enable-dbl="enableDbl" attributes="keyset layout rows capsLocked"> 10 on-enable-dbl="enableDbl" attributes="keyset layout rows capsLocked">
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 * keyset for the new layout. 472 * keyset for the new layout.
473 */ 473 */
474 layoutChanged: function() { 474 layoutChanged: function() {
475 if (!this.selectDefaultKeyset()) { 475 if (!this.selectDefaultKeyset()) {
476 // Keyset selection fails if the keysets have not been loaded yet. 476 // Keyset selection fails if the keysets have not been loaded yet.
477 var keysets = document.querySelector('#' + this.layout); 477 var keysets = document.querySelector('#' + this.layout);
478 if (keysets) { 478 if (keysets) {
479 keyboard.appendChild(flattenKeysets(keysets.content)); 479 keyboard.appendChild(flattenKeysets(keysets.content));
480 this.selectDefaultKeyset(); 480 this.selectDefaultKeyset();
481 } else { 481 } else {
482 console.error('Unable to find layout ' + this.layout); 482 // Add link for the keysets if missing from the document. Force
483 // a layout change after resolving the import of the link.
484 var query = 'link[id=' + this.layout + ']';
485 if (!document.querySelector(query)) {
486 // Layout has not beeen loaded yet.
487 var link = document.createElement('link');
488 link.id = this.layout;
489 link.setAttribute('rel', 'import');
490 link.setAttribute('href', 'layouts/' + this.layout + '.html');
491 document.head.appendChild(link);
492
493 // Load content for the new link element.
494 var self = this;
495 HTMLImports.importer.load(document, function() {
496 HTMLImports.parser.parseLink(link);
bshe 2013/09/06 21:12:21 would it enter infinite loop if failed to load?
kevers 2013/09/09 15:44:04 We do a check for an existing link element before
497 self.layoutChanged();
498 });
499 }
483 } 500 }
484 } 501 }
485 this.classList.remove('caps-locked'); 502 this.classList.remove('caps-locked');
486 this.cacheCapsLock(); 503 this.cacheCapsLock();
487 }, 504 },
488 505
489 /** 506 /**
490 * Caches the keyset transitions required when caps lock is enabled. 507 * Caches the keyset transitions required when caps lock is enabled.
491 */ 508 */
492 cacheCapsLock: function() { 509 cacheCapsLock: function() {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 } 547 }
531 } 548 }
532 if (keysetsLoaded) 549 if (keysetsLoaded)
533 console.error('No default keyset found for ' + this.layout); 550 console.error('No default keyset found for ' + this.layout);
534 return false; 551 return false;
535 } 552 }
536 }); 553 });
537 </script> 554 </script>
538 </polymer-element> 555 </polymer-element>
539 556
OLDNEW
« no previous file with comments | « no previous file | ui/keyboard/resources/index.html » ('j') | ui/keyboard/resources/index.html » ('J')

Powered by Google App Engine
This is Rietveld 408576698