Skip to content
Rinat Mukhatrov edited this page Jan 28, 2016 · 23 revisions

Введение

Пошаговый отладчик провайдеров представляет собой расширение Google Chrome, которое симулирует среду выполнения провайдера в AnyBalance. Симуляция, однако, не полная, поэтому если провайдер работает в отладчике, то его необходимо проверить и непосредственно в приложении AnyBalance.

Установка

Для установки отладчика установите из магазина Google Chrome расширение. После установки выполните следующий шаги.

  1. В Chrome перейдите по ссылке chrome://settings/extensions.
  2. Для расширения AnyBalanceDebugger установите флаги: * Разрешить использование в режиме инкогнито * Разрешить открывать файлы по ссылкам

Обновление

В интерфейсе отладчика выводится информация о его версии в правом верхнем углу. Там же есть ссылка на эту документацию. После обновления провайдера браузером в автоматическом режиме или пользователем вручную отладчик может работать некорректно. Для его корректной работы необходимо снять и установить заново флаги:

  • Разрешить использование в режиме инкогнито
  • Разрешить открывать файлы по ссылкам

Подготовка к отладке

Для отладки необходимо сформировать специальный локальный html-файл, в котором должны быть прописаны ссылки на скрипты провайдера и определены необходимые для них настройки. Файл обязательно должен иметь имя, заканчивающееся на -anybalance.html, например, myprovider-anybalance.html

В противном случае отладчик к нему не присоединится. Эту страницу можно сохранить на локальный диск со ссылки chrome-extension://bjhpeieonkhafpmpkjolifioeodfoiag/debug-anybalance.html или скопировать из листинга ниже. Комментарии показывают, в каких местах следует сделать изменения.

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <script>
	var g_api_preferences = {
            //Вставьте сюда настройки, необходимые для вашего провайдера
            //Все настройки должны быть описаны в файле preferences.xml
            //Например:
            login: 'username',
            password: 'secretpass'
	};
  </script>
  <!-- Если у вас запущен локальный Fenix server (http://fenixwebserver.com/) (рекомендуется), 
       то указывать список файлов со скриптами, от которых зависит провайдер, здесь не нужно.
       Необходимо указать список модулей и файлов в манифесте. 
       Отладчик автоматически загрузит все js файлы согласно описанию блоков <depens> и <files> из файла манифеста!

       Если вы предпочитаете способ отладки без локального сервера, перечислите все скрипты, 
       указанные в манифесте вашего провайдера. Указывайте относительные пути к файлам.
       Библиотека JQuery уже включена, отдельно указывать её не нужно.
       Если в манифесте есть блок <depends>, то для каждого модуля необходимо использовать следующий шаблон:
           <script src="../../modules/{id_модуля}/build/{id_версии}/{id_модуля}.min.js"></script>
       Если в манифесте есть блок <files>, то для каждого js файла необходимо использовать следующий шаблон:
           <script src="{название_файла}"></script>
       Например:
          <script src="../../modules/library/build/head/library.min.js"></script>
          <script src="main.js"></script>
  -->
</head>
<body onload="">
  <div style="display:none" id="AnyBalanceDebuggerRPCContainer"></div>
  <button onclick="api_onload()">Execute</button>
  <div id="AnyBalanceDebuggerLog"></div>
</body>
</html>

Этот файл можно записать в любое место на локальном диске (но указанные в script тегах файлы отлаживаемого провайдера должны быть доступны. Так что лучше размещать этот файл прямо в каталоге с отлаживаемым провайдером). После этого его надо открыть в Google Chrome. Если расширение установлено, то по нажатию кнопки Execute должна быть выполнена функция main() провайдера. Отладочные сообщения направляются в консоль Chrome и на экран. Если вы поменяли исходные файлы провайдера, не забудьте обновить отладочную страницу в Chrome, иначе он не увидит ваши изменения!

Локальный Fenix сервер необходим для чтения файла манифеста и загрузки всех модулей и файлов, от которых зависит выполнение провайдера. Установка Fenix сервера очень простая и настраивать его не нужно!

Пошаговая отладка

Пошаговая отладка делается с помощью встроенного в Google Chrome отладчика JavaScript. Консоль JavaScript может быть вызвана комбинацией клавиш в Windows: CTRL-SHIFT-J, на Mac: ALT-⌘-J . Или в меню Инструменты / Консоль JavaScript. Можно устанавливать точки останова (кликнув на номер нужной строки в окне просмотра JavaScript файла).

Особенности среды выполнения отладчика

В Google Chrome есть Ошибка, приводящая к невозможности выполнения отладчиком запроса (NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'url'), если в процессе выполнения происходят перенаправления на другой домен или протокол. Для того, чтобы обойти эту ошибку, можно использовать Fiddler, Расширение AnyBalanceFiddlerExtension для Fiddler (нужно установить в %userprofile%\Documents\Fiddler2\Scripts\) и в отладчике поставить галочку Enable 3xx replace.

Куки и авторизация сохраняются между последовательными запросами к AnyBalance.requestGet и AnyBalance.requestPost также, как и в AnyBalance. Но более того, куки сохраняются и между несколькими вызовами отладчика. Это может влиять на процедуру логина и навигации по сайту провайдера. Поэтому можете открыть новое окно Инкогнито и выполнить провайдер там - инкогнито открывается чистым, как будто вы ни разу не заходили до этого на сайт. Но будьте внимательны, все открытые окна Инкогнито Google Chrome разделяют куки между собой. Они очистятся только после закрытия всех окон Инкогнито и открытия одного заново.

Поскольку расширение Google Chrome это просто подписанный Zip, то исходный код этого расширения вы всегда можете увидеть, просто открыв файл расширения как zip файл. Если в процессе использования возникнут вопросы и предложения, то добро пожаловать в группу.

Clone this wiki locally