| OLD | NEW |
| 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 <include src="../uber/uber_utils.js"> | 5 <include src="../uber/uber_utils.js"> |
| 6 <include src="history_focus_manager.js"> | 6 <include src="history_focus_manager.js"> |
| 7 | 7 |
| 8 /////////////////////////////////////////////////////////////////////////////// | 8 /////////////////////////////////////////////////////////////////////////////// |
| 9 // Globals: | 9 // Globals: |
| 10 /** @const */ var RESULTS_PER_PAGE = 150; | 10 /** @const */ var RESULTS_PER_PAGE = 150; |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 var setActiveVisit = function(e) { | 217 var setActiveVisit = function(e) { |
| 218 activeVisit = self; | 218 activeVisit = self; |
| 219 var menu = $('action-menu'); | 219 var menu = $('action-menu'); |
| 220 menu.dataset.devicename = self.deviceName; | 220 menu.dataset.devicename = self.deviceName; |
| 221 menu.dataset.devicetype = self.deviceType; | 221 menu.dataset.devicetype = self.deviceType; |
| 222 }; | 222 }; |
| 223 domain.textContent = this.domain_; | 223 domain.textContent = this.domain_; |
| 224 | 224 |
| 225 entryBox.appendChild(time); | 225 entryBox.appendChild(time); |
| 226 | 226 |
| 227 var bookmarkSection = createElementWithClassName('div', 'bookmark-section'); | 227 var bookmarkSection = createElementWithClassName( |
| 228 'button', 'bookmark-section custom-appearance'); |
| 228 if (this.starred_) { | 229 if (this.starred_) { |
| 229 bookmarkSection.title = loadTimeData.getString('removeBookmark'); | 230 bookmarkSection.title = loadTimeData.getString('removeBookmark'); |
| 230 bookmarkSection.classList.add('starred'); | 231 bookmarkSection.classList.add('starred'); |
| 231 bookmarkSection.addEventListener('click', function f(e) { | 232 bookmarkSection.addEventListener('click', function f(e) { |
| 232 recordUmaAction('HistoryPage_BookmarkStarClicked'); | 233 recordUmaAction('HistoryPage_BookmarkStarClicked'); |
| 234 chrome.send('removeBookmark', [self.url_]); |
| 235 |
| 236 this.model_.getView().onBeforeUnstarred(this); |
| 233 bookmarkSection.classList.remove('starred'); | 237 bookmarkSection.classList.remove('starred'); |
| 234 chrome.send('removeBookmark', [self.url_]); | 238 this.model_.getView().onAfterUnstarred(this); |
| 239 |
| 235 bookmarkSection.removeEventListener('click', f); | 240 bookmarkSection.removeEventListener('click', f); |
| 236 e.preventDefault(); | 241 e.preventDefault(); |
| 237 }); | 242 }.bind(this)); |
| 238 } | 243 } |
| 239 entryBox.appendChild(bookmarkSection); | 244 entryBox.appendChild(bookmarkSection); |
| 240 | 245 |
| 241 var visitEntryWrapper = /** @type {HTMLElement} */( | 246 var visitEntryWrapper = /** @type {HTMLElement} */( |
| 242 entryBox.appendChild(document.createElement('div'))); | 247 entryBox.appendChild(document.createElement('div'))); |
| 243 if (addTitleFavicon || this.blockedVisit) | 248 if (addTitleFavicon || this.blockedVisit) |
| 244 visitEntryWrapper.classList.add('visit-entry'); | 249 visitEntryWrapper.classList.add('visit-entry'); |
| 245 if (this.blockedVisit) { | 250 if (this.blockedVisit) { |
| 246 visitEntryWrapper.classList.add('blocked-indicator'); | 251 visitEntryWrapper.classList.add('blocked-indicator'); |
| 247 visitEntryWrapper.appendChild(this.getVisitAttemptDOM_()); | 252 visitEntryWrapper.appendChild(this.getVisitAttemptDOM_()); |
| (...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1142 var pos = this.focusGrid_.getPositionForTarget(document.activeElement); | 1147 var pos = this.focusGrid_.getPositionForTarget(document.activeElement); |
| 1143 if (!pos) | 1148 if (!pos) |
| 1144 return; | 1149 return; |
| 1145 | 1150 |
| 1146 var row = this.focusGrid_.rows[pos.row + 1] || | 1151 var row = this.focusGrid_.rows[pos.row + 1] || |
| 1147 this.focusGrid_.rows[pos.row - 1]; | 1152 this.focusGrid_.rows[pos.row - 1]; |
| 1148 if (row) | 1153 if (row) |
| 1149 row.focusIndex(Math.min(pos.col, row.items.length - 1)); | 1154 row.focusIndex(Math.min(pos.col, row.items.length - 1)); |
| 1150 }; | 1155 }; |
| 1151 | 1156 |
| 1157 /** @param {Visit} visit The visit about to be unstarred. */ |
| 1158 HistoryView.prototype.onBeforeUnstarred = function(visit) { |
| 1159 assert(this.currentVisits_.indexOf(visit) >= 0); |
| 1160 assert(visit.bookmarkStar == document.activeElement); |
| 1161 |
| 1162 var pos = this.focusGrid_.getPositionForTarget(document.activeElement); |
| 1163 var row = this.focusGrid_.rows[pos.row]; |
| 1164 row.focusIndex(Math.min(pos.col + 1, row.items.length - 1)); |
| 1165 }; |
| 1166 |
| 1167 /** @param {Visit} visit The visit that was just unstarred. */ |
| 1168 HistoryView.prototype.onAfterUnstarred = function(visit) { |
| 1169 this.updateFocusGrid_(); |
| 1170 }; |
| 1171 |
| 1152 /** | 1172 /** |
| 1153 * Removes a single entry from the view. Also removes gaps before and after | 1173 * Removes a single entry from the view. Also removes gaps before and after |
| 1154 * entry if necessary. | 1174 * entry if necessary. |
| 1155 * @param {Visit} visit The visit to be removed. | 1175 * @param {Visit} visit The visit to be removed. |
| 1156 */ | 1176 */ |
| 1157 HistoryView.prototype.removeVisit = function(visit) { | 1177 HistoryView.prototype.removeVisit = function(visit) { |
| 1158 var entry = visit.domNode_; | 1178 var entry = visit.domNode_; |
| 1159 var previousEntry = entry.previousSibling; | 1179 var previousEntry = entry.previousSibling; |
| 1160 var nextEntry = entry.nextSibling; | 1180 var nextEntry = entry.nextSibling; |
| 1161 var toRemove = [entry]; | 1181 var toRemove = [entry]; |
| (...skipping 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2253 historyView.reload(); | 2273 historyView.reload(); |
| 2254 } | 2274 } |
| 2255 | 2275 |
| 2256 // Add handlers to HTML elements. | 2276 // Add handlers to HTML elements. |
| 2257 document.addEventListener('DOMContentLoaded', load); | 2277 document.addEventListener('DOMContentLoaded', load); |
| 2258 | 2278 |
| 2259 // This event lets us enable and disable menu items before the menu is shown. | 2279 // This event lets us enable and disable menu items before the menu is shown. |
| 2260 document.addEventListener('canExecute', function(e) { | 2280 document.addEventListener('canExecute', function(e) { |
| 2261 e.canExecute = true; | 2281 e.canExecute = true; |
| 2262 }); | 2282 }); |
| OLD | NEW |