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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/help/Help.js

Issue 2649023007: DevTools: implement release note behind an experiment (Closed)
Patch Set: make test platform independent Created 3 years, 9 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
(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;
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/BUILD.gn ('k') | third_party/WebKit/Source/devtools/front_end/help/ReleaseNote.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698