Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 /** | |
| 6 * @return {!Help.ReleaseNote} | |
| 7 */ | |
| 8 Help.latestReleaseNote = function() { | |
| 9 if (!Help._latestReleaseNote) { | |
| 10 /** @type {!Help.ReleaseNote} */ | |
| 11 Help._latestReleaseNote = Help._getReleaseNoteByVersion(Help.browserVersion( )); | |
| 12 } | |
| 13 return Help._latestReleaseNote; | |
| 14 }; | |
| 15 | |
| 16 /** | |
| 17 * @param {number} version | |
| 18 * @return {!Help.ReleaseNote} | |
| 19 */ | |
| 20 Help._getReleaseNoteByVersion = function(version) { | |
| 21 const originalVersion = version; | |
|
alph
2017/02/23 00:39:07
please avoid using const
chenwilliam
2017/02/23 02:31:05
Done.
| |
| 22 while (version) { | |
| 23 var note = Help.releaseNoteText.find(note => note.version === version); | |
| 24 if (note) | |
| 25 return note; | |
| 26 version--; | |
| 27 } | |
| 28 console.error(`Unable to find release note for version ${originalVersion} - us ing last release note as fallback`); | |
| 29 return Help.releaseNoteText[Help.releaseNoteText.length - 1]; | |
|
alph
2017/02/23 00:39:07
peekLast
chenwilliam
2017/02/23 02:31:05
Done. Had to add a cast because of this Closure wa
| |
| 30 }; | |
| 31 | |
| 32 /** | |
| 33 * @return {!Common.Setting} | |
| 34 */ | |
| 35 Help.releaseNoteVersionSetting = function() { | |
| 36 if (!Help._releaseNoteVersionSetting) { | |
| 37 /** @type {!Common.Setting} */ | |
| 38 Help._releaseNoteVersionSetting = Common.settings.createSetting('releaseNote VersionSeen', 0, false); | |
| 39 } | |
| 40 return Help._releaseNoteVersionSetting; | |
| 41 }; | |
| 42 | |
| 43 Help.showReleaseNoteIfNeeded = function() { | |
| 44 Help._showReleaseNoteIfNeeded(Help.releaseNoteVersionSetting().get(), Help.bro wserVersion()); | |
| 45 }; | |
| 46 | |
| 47 /** | |
| 48 * @param {number} lastSeenVersion | |
| 49 * @param {number} browserVersion | |
| 50 * @return {?Promise<?UI.Panel>} | |
|
alph
2017/02/23 00:39:07
Can't see where the Promise is used
chenwilliam
2017/02/23 02:31:05
Used it for testing in release-note-unit.html. I'v
| |
| 51 */ | |
| 52 Help._showReleaseNoteIfNeeded = function(lastSeenVersion, browserVersion) { | |
| 53 if (!Runtime.experiments.isEnabled('releaseNote')) | |
| 54 return null; | |
| 55 if (lastSeenVersion >= browserVersion) | |
| 56 return null; | |
| 57 if (Help.latestReleaseNote().version !== browserVersion) | |
| 58 return null; | |
| 59 Help.releaseNoteVersionSetting().set(Help.browserVersion()); | |
| 60 return UI.inspectorView.showPanel(Help._releaseNoteViewId); | |
| 61 }; | |
| 62 | |
| 63 /** | |
| 64 * @return {number} | |
| 65 */ | |
| 66 Help.browserVersion = function() { | |
| 67 if (!Help._browserVersion) { | |
| 68 var chromeRegex = new RegExp('(?:^|\\W)Chrome/(\\d+)'); | |
| 69 var chromeMatch = navigator.userAgent.match(chromeRegex); | |
| 70 /** @type {number} */ | |
|
alph
2017/02/23 00:39:07
is it needed?
chenwilliam
2017/02/23 02:31:05
Not strictly needed, but just to make sure I don't
| |
| 71 Help._browserVersion = Number(chromeMatch[1]); | |
| 72 } | |
| 73 return Help._browserVersion; | |
| 74 }; | |
| 75 | |
| 76 /** | |
| 77 * @const | |
| 78 * @type {string} | |
| 79 */ | |
| 80 Help._releaseNoteViewId = 'release-note'; | |
| 81 | |
| 82 /** @typedef {!{src: string}} */ | |
| 83 Help.ReleaseNoteImage; | |
| 84 | |
| 85 /** @typedef {!{text: string, link: string, featured: (boolean | undefined)}} */ | |
| 86 Help.ReleaseNoteHighlight; | |
| 87 | |
| 88 /** | |
| 89 * @typedef {!{version: number, highlights: !Array<!Help.ReleaseNoteHighlight>, | |
| 90 * link: string, image: !Help.ReleaseNoteImage}} | |
| 91 */ | |
| 92 Help.ReleaseNote; | |
| OLD | NEW |