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

Unified 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: address comments 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/app_list/start_page.html ('k') | chrome/browser/ui/app_list/start_page_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/app_list/start_page.js
diff --git a/chrome/browser/resources/app_list/start_page.js b/chrome/browser/resources/app_list/start_page.js
index ce8c734bf45d7fad5140fe3582094249d9cef3e3..e2055924bb0fb9754be036696958816b3e400720 100644
--- a/chrome/browser/resources/app_list/start_page.js
+++ b/chrome/browser/resources/app_list/start_page.js
@@ -13,6 +13,9 @@ cr.define('appList.startPage', function() {
var speechManager = null;
+ // The element containing the current Google Doodle.
+ var doodle = null;
+
/**
* Initialize the page.
*/
@@ -48,24 +51,72 @@ cr.define('appList.startPage', function() {
}
/**
+ * Sets the doodle's visibility, hiding or showing the default logo.
+ *
+ * @param {boolean} visible Whether the doodle should be made visible.
+ */
+ function setDoodleVisible(visible) {
+ var doodle = $('doodle');
+ var defaultLogo = $('default_logo');
+ if (visible) {
+ doodle.style.display = 'flex';
+ defaultLogo.style.display = 'none';
+ } else {
+ if (doodle)
+ doodle.style.display = 'none';
+
+ defaultLogo.style.display = 'block';
+ }
+ }
+
+ /**
* Invoked when the app-list doodle is updated.
*
* @param {Object} data The data object representing the current doodle.
*/
function onAppListDoodleUpdated(data, base_url) {
- var defaultLogo = $('default_logo');
- var doodle = $('doodle');
- if (!data.ddljson || !data.ddljson.transparent_large_image) {
- defaultLogo.style.display = 'block';
- doodle.style.display = 'none';
+ if (this.doodle) {
+ this.doodle.parentNode.removeChild(this.doodle);
+ this.doodle = null;
+ }
+
+ var doodleData = data.ddljson;
+ if (!doodleData || !doodleData.transparent_large_image) {
+ setDoodleVisible(false);
return;
}
- doodle.onload = function() {
- defaultLogo.style.display = 'none';
- doodle.style.display = 'block';
+ // Set the page's base URL so that links will resolve relative to the Google
+ // homepage.
+ $('base').href = base_url;
+
+ this.doodle = document.createElement('div');
+ this.doodle.id = 'doodle';
+ this.doodle.style.display = 'none';
+
+ var doodleImage = document.createElement('img');
+ doodleImage.id = 'doodle_image';
+ if (doodleData.alt_text) {
+ doodleImage.alt = doodleData.alt_text;
+ doodleImage.title = doodleData.alt_text;
+ }
+
+ doodleImage.onload = function() {
+ setDoodleVisible(true);
};
- doodle.src = base_url + data.ddljson.transparent_large_image.url;
+ doodleImage.src = doodleData.transparent_large_image.url;
+
+ if (doodleData.target_url) {
+ var doodleLink = document.createElement('a');
+ doodleLink.id = 'doodle_link';
+ doodleLink.href = doodleData.target_url;
+ doodleLink.target = '_blank';
+ doodleLink.appendChild(doodleImage);
+ this.doodle.appendChild(doodleLink);
+ } else {
+ this.doodle.appendChild(doodleImage);
+ }
+ $('logo_container').appendChild(this.doodle);
}
/**
@@ -94,4 +145,5 @@ cr.define('appList.startPage', function() {
};
});
+document.addEventListener('contextmenu', function(e) { e.preventDefault(); });
calamity 2015/02/04 03:16:22 Oops, this got lost.
document.addEventListener('DOMContentLoaded', appList.startPage.initialize);
« no previous file with comments | « chrome/browser/resources/app_list/start_page.html ('k') | chrome/browser/ui/app_list/start_page_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698