这是indexloc提供的服务,不要输入任何密码

Changeset 46518 in webkit


Ignore:
Timestamp:
Jul 28, 2009, 9:53:53 PM (16 years ago)
Author:
timothy@apple.com
Message:

Automatically refresh DOM Storage grids in the Web Inspector.

2009-07-28 Joseph Pecoraro <joepeck02@gmail.com>

Inspector: Automatically Refresh DOM Storage Grids on "storage" event

https://bugs.webkit.org/show_bug.cgi?id=27400

Reviewed by Timothy Hatcher.

  • inspector/front-end/DatabasesPanel.js: (WebInspector.DatabasesPanel.prototype.show): trigger adding the listener (WebInspector.DatabasesPanel.prototype.reset): trigger removing the listener (WebInspector.DatabasesPanel.prototype._registerStorageEventListener): register the listener on the inspected window (WebInspector.DatabasesPanel.prototype._unregisterStorageEventListener): unregister the listener on the inspected window (WebInspector.DatabasesPanel.prototype._storageEvent): handle the storage event
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r46517 r46518  
     12009-07-28  Joseph Pecoraro  <joepeck02@gmail.com>
     2
     3        Inspector: Automatically Refresh DOM Storage Grids on "storage" event
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=27400
     6
     7        Reviewed by Timothy Hatcher.
     8
     9        * inspector/front-end/DatabasesPanel.js:
     10        (WebInspector.DatabasesPanel.prototype.show): trigger adding the listener
     11        (WebInspector.DatabasesPanel.prototype.reset): trigger removing the listener
     12        (WebInspector.DatabasesPanel.prototype._registerStorageEventListener): register the listener on the inspected window
     13        (WebInspector.DatabasesPanel.prototype._unregisterStorageEventListener): unregister the listener on the inspected window
     14        (WebInspector.DatabasesPanel.prototype._storageEvent): handle the storage event
     15
    1162009-07-28  Keishi Hattori  <casey.hattori@gmail.com>
    217
  • trunk/WebCore/inspector/front-end/DatabasesPanel.js

    r46517 r46518  
    11/*
    22 * Copyright (C) 2007, 2008 Apple Inc.  All rights reserved.
     3 * Copyright (C) 2009 Joseph Pecoraro
    34 *
    45 * Redistribution and use in source and binary forms, with or without
     
    8687        WebInspector.Panel.prototype.show.call(this);
    8788        this._updateSidebarWidth();
     89        this._registerStorageEventListener();
    8890    },
    8991
     
    101103
    102104        this._databases = [];
     105
     106        this._unregisterStorageEventListener();
    103107
    104108        if (this._domStorage) {
     
    397401    },
    398402
     403    _registerStorageEventListener: function()
     404    {
     405        var inspectedWindow = InspectorController.inspectedWindow();
     406        if (!inspectedWindow || !inspectedWindow.document)
     407            return;
     408
     409        this._storageEventListener = InspectorController.wrapCallback(this._storageEvent.bind(this));
     410        inspectedWindow.addEventListener("storage", this._storageEventListener, true);
     411    },
     412
     413    _unregisterStorageEventListener: function()
     414    {
     415        var inspectedWindow = InspectorController.inspectedWindow();
     416        if (!inspectedWindow || !inspectedWindow.document)
     417            return;
     418
     419        inspectedWindow.removeEventListener("storage", this._storageEventListener, true);
     420        delete this._storageEventListener;
     421    },
     422
     423    _storageEvent: function(event)
     424    {
     425        if (!this._domStorage)
     426            return;
     427
     428        var isLocalStorage = (event.storageArea === InspectorController.inspectedWindow().localStorage);
     429        var domStorageLength = this._domStorage.length;
     430        for (var i = 0; i < domStorageLength; ++i) {
     431            var domStorage = this._domStorage[i];
     432            if (isLocalStorage === domStorage.isLocalStorage) {
     433                var view = domStorage._domStorageView;
     434                if (this.visibleView && view === this.visibleView)
     435                    domStorage._domStorageView.update();
     436            }
     437        }
     438    },
     439
    399440    _startSidebarDragging: function(event)
    400441    {
Note: See TracChangeset for help on using the changeset viewer.