изменение аддона firefox - httpfox

Discussion in 'PHP' started by Дикс, 25 Sep 2010.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    есть такой сниффер для фф - https://addons.mozilla.org/en-US/firefox/addon/6647/

    попытался немного его модифицировать - убрать из выдачи все запросы с content-type - image/flash/css

    поначалу создалась видимость того, что получилось - фильтр запросов был модифицирован так, что при введении в него к примеру тире - в выдаче отображались только нужное содержимое

    однако потом все начало жестко глючить

    распишу всё по порядку, рассчитывая на вашу помощь в его модификации.

    1 распаковываем *.xpi как обычный zip
    2 распаковываем chrome/httpfox.jar тоже как zip
    3 открываем chrome/content/HttpFox.js
    4 находим в нём строку applyFilter: function ()
    Эта функция вызывается каждый раз, когда меняется содержимое поля Filter.
    Она перебирает все реквесты и те, URL которых содержит искомый текст (this.QuickFilterText) помещает в массив this.FilteredRequests, после чего перерисовывает таблицу

    this.clearRequestTree();
    this.clearRequestInfoTabs();


    оригинал функции:
    PHP:
        applyFilter: function ()
        {
            
    this.FilteredRequests = new Array();
            for (var 
    0this.HttpFoxService.Requests.lengthi++)
            {
                if (
    this.HttpFoxService.Requests[i].Url.indexOf(this.QuickFilterText) != -1)
                {
                    
    // filter matched
                    
    this.FilteredRequests.push(this.HttpFoxService.Requests[i]);
                }
            }

            
    this.clearRequestTree();
            
    this.clearRequestInfoTabs();
        },
    моя доработка
    PHP:
        applyFilter: function ()
        {
            var 
    isMegaFilter = (this.QuickFilterText == "-");

            
    this.FilteredRequests = new Array();
            for (var 
    0this.HttpFoxService.Requests.lengthi++)
            {
                
    isNotImage = (this.HttpFoxService.Requests[i].ContentType.indexOf("image") == -1);
                
    isNotFlash = (this.HttpFoxService.Requests[i].ContentType.indexOf("flash") == -1);
                
    isNotCss = (this.HttpFoxService.Requests[i].ContentType.indexOf("css") == -1);
                
    searched = (this.HttpFoxService.Requests[i].Url.indexOf(this.QuickFilterText) != -1);
                
                if((
    isMegaFilter && isNotImage && isNotFlash && isNotCss) || (!isMegaFilter && searched))
                {
                    
    this.FilteredRequests.push(this.HttpFoxService.Requests[i]);
                }

            }

            
    this.clearRequestTree();
            
    this.clearRequestInfoTabs();
        },
    казалось бы - проверка должна помещать в массив FilteredRequests только те запросы, ContentType которых не содержит "image/", "/css", "flash", однако наблюдаются глюки, когда все ячейки получают значение "Bad row: НОМЕР_СТРОКИ"

    данный глюк почему-то только на форме входа mail.ru, на других сайтах при введении в фильтр символа тире "-" - все картинки/флеш/ксс скрываются из результатов


    вот в общем архив - там исходники, батники для сборки и ридми с моими комментами

    http://www.sendspace.com/file/6ctm3f
     
  2. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Поиграй с функцией getCellText: function(row, column) в HttpFoxTree