Ошибка системной трассы. Uncaught SecurityError: не удалось выполнить «pushState» в «Истории»

Я пытаюсь открыть файл HTML, сгенерированный systrace. Когда я нажимаю на один блок, я использовал для получения информации о выбранном фрагменте, такой как «Продолжительность», «Общее время» и т. Д. Но с последней версией Chrome это не работает.

Попробовал последнюю версию Chrome (версия 45), бета-версию Chrome (вер. 46) и версию Chrome Dev (вер. 47), и я вижу одну и ту же проблему во всех версиях.

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

Uncaught SecurityError: не удалось выполнить «pushState» для «Истории»: объект состояния истории с URL-адресом «file:///C:/Users/ssundark/Desktop/vsync_off_default_sclk.html» не может быть создан в документе с источником «null» .

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


person Shyam Sundar Kulkarni    schedule 10.09.2015    source источник
comment
Файл создается после запуска утилиты Android systrace. Ожидается, что он выйдет из коробки. Но с последней версией хрома это не работает. В старом дампе системной трассы я вижу это, window.history.pushState({view_guid:this.guid_,selection_guid:b.guid}); но с последним дампом системной трассы window.history.pushState({view_guid:this.guid_,selection_guid:b.guid}, );   -  person Shyam Sundar Kulkarni    schedule 10.09.2015


Ответы (4)


Мне удалось исправить это, следуя инструкциям здесь: https://stackoverflow.com/a/13262673/1292598

Короче говоря: запустите Chrome с флагом --allow-file-access-from-files.

person Tom Mulcahy    schedule 10.09.2015
comment
Спасибо за предложение. Пытался. Это не работает для меня. - person Shyam Sundar Kulkarni; 11.09.2015

Проблема в том, что window.history.pushState выдает ошибку, когда window.history.state равно null или undefined.

Чтобы решить эту проблему, просто выполните:

if (window.history.state) {
   window.history.pushState(state, title, href);
}
person Vinicius José Latorre    schedule 16.09.2015
comment
У меня есть сборка reactjs, и я столкнулся с той же проблемой, где добавить это исправление, могу ли я узнать? - person Pardeep Jain; 14.09.2017

При создании маршрутизатора на стороне клиента я нашел решение, состоящее в том, чтобы убедиться, что у меня есть базовый тег href в моем html-документе, а затем настроить маршрутизатор так, чтобы он имел параметры, позволяющие установить корень моего маршрутизатора для использования базового href в истории html5. режим. И базовый атрибут Href, и свойство root в вашем коде при использовании API истории HTML 5 должны совпадать, иначе я обнаружил, что вы получите подобные ошибки.

person JBreit    schedule 07.05.2016

эту ошибку безопасности из браузера, вы должны запустить на веб-сервере. я тестирую в webstorm, и это сработало!

person Emir Mamashov    schedule 30.12.2016