Changeset 142614 in webkit


Ignore:
Timestamp:
Feb 12, 2013 6:29:10 AM (11 years ago)
Author:
vsevik@chromium.org
Message:

Web Inspector: Introduce version controller to migrate settings versions.
https://bugs.webkit.org/show_bug.cgi?id=109553

Reviewed by Yury Semikhatsky.

Source/WebCore:

This patch introduces version controller that could be used to migrate inspector settings.

Test: inspector/version-controller.html

  • inspector/front-end/Settings.js:

(WebInspector.Settings):
(WebInspector.VersionController):
(WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
(WebInspector.VersionController.prototype._updateVersionFrom0To1):

  • inspector/front-end/inspector.js:

LayoutTests:

  • inspector/version-controller-expected.txt: Added.
  • inspector/version-controller.html: Added.
Location:
trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r142609 r142614  
     12013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
     2
     3        Web Inspector: Introduce version controller to migrate settings versions.
     4        https://bugs.webkit.org/show_bug.cgi?id=109553
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        * inspector/version-controller-expected.txt: Added.
     9        * inspector/version-controller.html: Added.
     10
    1112013-02-12  Zan Dobersek  <zdobersek@igalia.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r142613 r142614  
     12013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
     2
     3        Web Inspector: Introduce version controller to migrate settings versions.
     4        https://bugs.webkit.org/show_bug.cgi?id=109553
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        This patch introduces version controller that could be used to migrate inspector settings.
     9
     10        Test: inspector/version-controller.html
     11
     12        * inspector/front-end/Settings.js:
     13        (WebInspector.Settings):
     14        (WebInspector.VersionController):
     15        (WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
     16        (WebInspector.VersionController.prototype._updateVersionFrom0To1):
     17        * inspector/front-end/inspector.js:
     18
    1192013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
    220
  • trunk/Source/WebCore/inspector/front-end/Settings.js

    r142597 r142614  
    124124    this.workerInspectorHeight = this.createSetting("workerInspectorHeight", 600);
    125125    this.messageURLFilters = this.createSetting("messageURLFilters", {});
    126 
    127     // If there are too many breakpoints in a storage, it is likely due to a recent bug that caused
    128     // periodical breakpoints duplication leading to inspector slowness.
    129     if (this.breakpoints.get().length > 500000)
    130         this.breakpoints.set([]);
    131126}
    132127
     
    352347}
    353348
     349/**
     350 * @constructor
     351 */
     352WebInspector.VersionController = function()
     353{
     354}
     355
     356WebInspector.VersionController.currentVersion = 1;
     357
     358WebInspector.VersionController.prototype = {
     359    updateVersion: function()
     360    {
     361        var versionSetting = WebInspector.settings.createSetting("inspectorVersion", 0);
     362        var currentVersion = WebInspector.VersionController.currentVersion;
     363        var oldVersion = versionSetting.get();
     364        var methodsToRun = this._methodsToRunToUpdateVersion(oldVersion, currentVersion);
     365        for (var i = 0; i < methodsToRun.length; ++i)
     366            this[methodsToRun[i]].call(this);
     367        versionSetting.set(currentVersion);
     368    },
     369
     370    /**
     371     * @param {number} oldVersion
     372     * @param {number} currentVersion
     373     */
     374    _methodsToRunToUpdateVersion: function(oldVersion, currentVersion)
     375    {
     376        var result = [];
     377        for (var i = oldVersion; i < currentVersion; ++i)
     378            result.push("_updateVersionFrom" + i + "To" + (i + 1));
     379        return result;
     380    },
     381
     382    _updateVersionFrom0To1: function()
     383    {
     384        this._clearBreakpointsWhenTooMany(WebInspector.settings.breakpoints);
     385    },
     386
     387    /**
     388     * @param {WebInspector.Setting} breakpointsSetting
     389     */
     390    _clearBreakpointsWhenTooMany: function(breakpointsSetting)
     391    {
     392        // If there are too many breakpoints in a storage, it is likely due to a recent bug that caused
     393        // periodical breakpoints duplication leading to inspector slowness.
     394        if (breakpointsSetting.get().length > 500000)
     395            breakpointsSetting.set([]);
     396    }
     397}
     398
    354399WebInspector.settings = new WebInspector.Settings();
    355400WebInspector.experimentsSettings = new WebInspector.ExperimentsSettings();
  • trunk/Source/WebCore/inspector/front-end/inspector.js

    r142460 r142614  
    382382WebInspector._doLoadedDoneWithCapabilities = function()
    383383{
     384    new WebInspector.VersionController().updateVersion();
     385
    384386    WebInspector.shortcutsScreen = new WebInspector.ShortcutsScreen();
    385387    this._registerShortcuts();
Note: See TracChangeset for help on using the changeset viewer.