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

Side by Side Diff: chrome/browser/resources/app_list/start_page.js

Issue 887853003: Make app list start page doodle clickable and have alt text. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@doodle_static
Patch Set: Created 5 years, 10 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 App launcher start page implementation. 6 * @fileoverview App launcher start page implementation.
7 */ 7 */
8 8
9 <include src="speech_manager.js"> 9 <include src="speech_manager.js">
10 10
11 cr.define('appList.startPage', function() { 11 cr.define('appList.startPage', function() {
12 'use strict'; 12 'use strict';
13 13
14 var speechManager = null; 14 var speechManager = null;
15 15
16 // The element containing the current Google Doodle.
17 var doodle = null;
18
16 /** 19 /**
17 * Initialize the page. 20 * Initialize the page.
18 */ 21 */
19 function initialize() { 22 function initialize() {
20 speechManager = new speech.SpeechManager(); 23 speechManager = new speech.SpeechManager();
21 chrome.send('initialize'); 24 chrome.send('initialize');
22 } 25 }
23 26
24 /** 27 /**
25 * Invoked when the hotword plugin availability is changed. 28 * Invoked when the hotword plugin availability is changed.
(...skipping 15 matching lines...) Expand all
41 /** 44 /**
42 * Invoked when the app-list bubble is shown. 45 * Invoked when the app-list bubble is shown.
43 * 46 *
44 * @param {boolean} hotwordEnabled Whether the hotword is enabled or not. 47 * @param {boolean} hotwordEnabled Whether the hotword is enabled or not.
45 */ 48 */
46 function onAppListShown(hotwordEnabled) { 49 function onAppListShown(hotwordEnabled) {
47 speechManager.onShown(hotwordEnabled); 50 speechManager.onShown(hotwordEnabled);
48 } 51 }
49 52
50 /** 53 /**
54 * Sets the doodle's visibility, hiding or showing the default logo.
55 *
56 * @param {boolean} visible Whether the doodle should be made visible.
57 */
58 function setDoodleVisible(visible) {
Matt Giuca 2015/02/03 07:08:50 So if $('doodle') doesn't exist and visible == tru
calamity 2015/02/04 03:16:22 I don't think there's an assert in JS so..... Don
Matt Giuca 2015/02/04 04:36:10 Acknowledged.
59 var doodle = $('doodle');
60 var defaultLogo = $('default_logo');
61 if (doodle && visible) {
62 doodle.style.display = 'flex';
63 defaultLogo.style.display = 'none';
64 console.log(defaultLogo.style.display);
65 } else {
66 if (doodle)
67 doodle.style.display = 'none';
68
69 defaultLogo.style.display = 'block';
70 }
71 }
72
73 /**
51 * Invoked when the app-list doodle is updated. 74 * Invoked when the app-list doodle is updated.
52 * 75 *
53 * @param {Object} data The data object representing the current doodle. 76 * @param {Object} data The data object representing the current doodle.
54 */ 77 */
55 function onAppListDoodleUpdated(data, base_url) { 78 function onAppListDoodleUpdated(data, base_url) {
56 var defaultLogo = $('default_logo'); 79 if (this.doodle) {
57 var doodle = $('doodle'); 80 this.doodle.parentNode.removeChild(this.doodle);
58 if (!data.ddljson || !data.ddljson.transparent_large_image) { 81 this.doodle = null;
59 defaultLogo.style.display = 'block'; 82 }
60 doodle.style.display = 'none'; 83
84 var doodleData = data.ddljson;
85 if (!doodleData || !doodleData.transparent_large_image) {
86 setDoodleVisible(false);
61 return; 87 return;
62 } 88 }
63 89
64 doodle.onload = function() { 90 // Set the page's base URL so that links will resolve relative to the Google
65 defaultLogo.style.display = 'none'; 91 // homepage.
66 doodle.style.display = 'block'; 92 $('base').href = base_url;
93
94 this.doodle = document.createElement('div');
95 this.doodle.id = 'doodle';
96 this.doodle.style.display = 'none';
97
98 var doodleImage = document.createElement('img');
99 doodleImage.id = 'doodle_image';
100 if (doodleData.alt_text) {
101 doodleImage.alt = doodleData.alt_text;
102 doodleImage.title = doodleData.alt_text;
103 }
104
105 doodleImage.onload = function() {
106 setDoodleVisible(true);
67 }; 107 };
68 doodle.src = base_url + data.ddljson.transparent_large_image.url; 108 doodleImage.src = doodleData.transparent_large_image.url;
109
110 if (doodleData.target_url) {
111 var doodleLink = document.createElement('a');
Matt Giuca 2015/02/03 07:08:50 Curious: In my experience, when you have <a><img /
calamity 2015/02/04 03:16:22 I am not seeing this happen. I have no idea why. I
Matt Giuca 2015/02/04 04:36:10 Yeah, I'm not seeing it even on a totally fresh pa
112 doodleLink.id = 'doodle_link';
113 doodleLink.href = doodleData.target_url;
114 doodleLink.target = '_blank';
115 doodleLink.appendChild(doodleImage);
116 this.doodle.appendChild(doodleLink);
117 } else {
118 this.doodle.appendChild(doodleImage);
119 }
120 $('logo_container').appendChild(this.doodle);
69 } 121 }
70 122
71 /** 123 /**
72 * Invoked when the app-list bubble is hidden. 124 * Invoked when the app-list bubble is hidden.
73 */ 125 */
74 function onAppListHidden() { 126 function onAppListHidden() {
75 speechManager.onHidden(); 127 speechManager.onHidden();
76 } 128 }
77 129
78 /** 130 /**
79 * Invoked when the user explicitly wants to toggle the speech recognition 131 * Invoked when the user explicitly wants to toggle the speech recognition
80 * state. 132 * state.
81 */ 133 */
82 function toggleSpeechRecognition() { 134 function toggleSpeechRecognition() {
83 speechManager.toggleSpeechRecognition(); 135 speechManager.toggleSpeechRecognition();
84 } 136 }
85 137
86 return { 138 return {
87 initialize: initialize, 139 initialize: initialize,
88 setHotwordEnabled: setHotwordEnabled, 140 setHotwordEnabled: setHotwordEnabled,
89 setNaclArch: setNaclArch, 141 setNaclArch: setNaclArch,
90 onAppListDoodleUpdated: onAppListDoodleUpdated, 142 onAppListDoodleUpdated: onAppListDoodleUpdated,
91 onAppListShown: onAppListShown, 143 onAppListShown: onAppListShown,
92 onAppListHidden: onAppListHidden, 144 onAppListHidden: onAppListHidden,
93 toggleSpeechRecognition: toggleSpeechRecognition 145 toggleSpeechRecognition: toggleSpeechRecognition
94 }; 146 };
95 }); 147 });
96 148
97 document.addEventListener('DOMContentLoaded', appList.startPage.initialize); 149 document.addEventListener('DOMContentLoaded', appList.startPage.initialize);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698