| 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 var originalVersion = version; |
| 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 /** @type {!Help.ReleaseNote} */ (Help.releaseNoteText.peekLast()); |
| 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 */ |
| 51 Help._showReleaseNoteIfNeeded = function(lastSeenVersion, browserVersion) { |
| 52 if (!Runtime.experiments.isEnabled('releaseNote')) |
| 53 return; |
| 54 if (lastSeenVersion >= browserVersion) |
| 55 return; |
| 56 if (Help.latestReleaseNote().version !== browserVersion) |
| 57 return; |
| 58 Help.releaseNoteVersionSetting().set(Help.browserVersion()); |
| 59 UI.inspectorView.showPanel(Help._releaseNoteViewId); |
| 60 }; |
| 61 |
| 62 /** |
| 63 * @return {number} |
| 64 */ |
| 65 Help.browserVersion = function() { |
| 66 if (!Help._browserVersion) { |
| 67 var chromeRegex = new RegExp('(?:^|\\W)Chrome/(\\d+)'); |
| 68 var chromeMatch = navigator.userAgent.match(chromeRegex); |
| 69 /** @type {number} */ |
| 70 Help._browserVersion = Number(chromeMatch[1]); |
| 71 } |
| 72 return Help._browserVersion; |
| 73 }; |
| 74 |
| 75 /** |
| 76 * @const |
| 77 * @type {string} |
| 78 */ |
| 79 Help._releaseNoteViewId = 'release-note'; |
| 80 |
| 81 /** @typedef {!{src: string}} */ |
| 82 Help.ReleaseNoteImage; |
| 83 |
| 84 /** @typedef {!{text: string, link: string, featured: (boolean | undefined)}} */ |
| 85 Help.ReleaseNoteHighlight; |
| 86 |
| 87 /** |
| 88 * @typedef {!{version: number, highlights: !Array<!Help.ReleaseNoteHighlight>, |
| 89 * link: string, image: !Help.ReleaseNoteImage}} |
| 90 */ |
| 91 Help.ReleaseNote; |
| OLD | NEW |