У меня есть приложение Angular (v.5.2.8), которое в настоящий момент падает в Safari.Прежде чем я попытаюсь описать мою проблему, обратите внимание, что я не могу поделиться большой частью кода, поскольку это частный продукт, близкий к запуску в производство.
В настоящий момент проблема заключается в том, что в какой-то момент загружается анимация холстаи это, кажется, приводит к сбою браузера - это не всегда происходит, но, кажется, это происходит чаще, когда открывается «Веб-инспектор».Глядя на журналы сбоев в Safari, я думаю, что это происходит сбой при создании холста, но я не совсем уверен, что это так, поскольку в других случаях это происходит сбой.
Единственный «общий знаменатель»Пока я выясняю, что в журнале сбоев Safari всегда указывается EXC_BREAKPOINT
в качестве типа исключения, я не уверен, что это значит.
Это первая часть журнала сбоев Safari:
Process: com.apple.WebKit.WebContent [3080]
Path: /System/Library/StagedFrameworks/Safari/WebKit.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent
Identifier: com.apple.WebKit.WebContent
Version: 13606 (13606.2.104.1.2)
Build Info: WebKit2-7606002104001002~3
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Safari [353]
User ID: 502
Date/Time: 2019-01-28 16:25:01.150 +0100
OS Version: Mac OS X 10.13.6 (17G3025)
Report Version: 12
Anonymous UUID: 7D568E92-21E8-F9BB-DAFD-D8EAAC3BF229
Sleep/Wake UUID: 30E121C4-6783-425C-8D0B-E9556BC15F90
Time Awake Since Boot: 17000 seconds
Time Since Wake: 6700 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [0]
Application Specific Information:
Bundle controller class:
BrowserBundleController
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 com.apple.WebCore
0x000000010e6d0355 WebCore::Document::updateStyleIfNeeded() + 389
1 com.apple.WebCore
0x000000010f124b2c WebCore::AXObjectCache::getOrCreate(WebCore::Node*) + 348
2 com.apple.WebCore
0x000000010f637d04 WebCore::InspectorDOMAgent::buildObjectForNode(WebCore::Node*, int, WTF::HashMap<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> >, int, WTF::PtrHash<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<int> >*) + 4628
3 com.apple.WebCore
0x000000010f6381a5 WebCore::InspectorDOMAgent::buildArrayForContainerChildren(WebCore::Node*, int, WTF::HashMap<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> >, int, WTF::PtrHash<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<int> >*) + 197
4 com.apple.WebCore
0x000000010f63807f WebCore::InspectorDOMAgent::pushChildNodesToFrontend(int, int) + 511
5 com.apple.WebCore
0x000000010f64227c WebCore::InspectorDOMAgent::pseudoElementCreated(WebCore::PseudoElement&) + 76
6 com.apple.WebCore
0x000000010f3fb906 WebCore::PseudoElement::create(WebCore::Element&, WebCore::PseudoId) + 246
7 com.apple.WebCore
0x000000010faf425e WebCore::Style::TreeResolver::resolvePseudoStyle(WebCore::Element&, WebCore::Style::ElementUpdate const&, WebCore::PseudoId) + 254
8 com.apple.WebCore
0x000000010faf3d1e WebCore::Style::TreeResolver::resolveElement(WebCore::Element&) + 1102
9 com.apple.WebCore
0x000000010faf4847 WebCore::Style::TreeResolver::resolveComposedTree() + 791
10 com.apple.WebCore
0x000000010faf5556 WebCore::Style::TreeResolver::resolve() + 886
11 com.apple.WebCore
0x000000010f39c263 WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType) + 755
12 com.apple.WebCore
0x000000010e6d02ea WebCore::Document::updateStyleIfNeeded() + 282
13 com.apple.WebCore
0x000000010f124b2c WebCore::AXObjectCache::getOrCreate(WebCore::Node*) + 348
14 com.apple.WebCore
0x000000010f637d04 WebCore::InspectorDOMAgent::buildObjectForNode(WebCore::Node*, int, WTF::HashMap<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> >, int, WTF::PtrHash<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<int> >*) + 4628
15 com.apple.WebCore
0x000000010f6382de WebCore::InspectorDOMAgent::buildArrayForContainerChildren(WebCore::Node*, int, WTF::HashMap<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> >, int, WTF::PtrHash<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<int> >*) + 510
16 com.apple.WebCore
0x000000010f636fb9 WebCore::InspectorDOMAgent::buildObjectForNode(WebCore::Node*, int, WTF::HashMap<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> >, int, WTF::PtrHash<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<int> >*) + 1225
17 com.apple.WebCore
0x000000010f6381a5 WebCore::InspectorDOMAgent::buildArrayForContainerChildren(WebCore::Node*, int, WTF::HashMap<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> >, int, WTF::PtrHash<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<WTF::RefPtr<WebCore::Node, WTF::DumbPtrTraits<WebCore::Node> > >, WTF::HashTraits<int> >*) + 197
18 com.apple.WebCore
0x000000010f63807f WebCore::InspectorDOMAgent::pushChildNodesToFrontend(int, int) + 511
19 com.apple.WebCore
0x000000010f6386ff WebCore::InspectorDOMAgent::pushNodePathToFrontend(WebCore::Node*) + 815
20 com.apple.WebCore
0x000000010f600846 WebCore::InspectorCanvas::buildObjectForCanvas(WebCore::InstrumentingAgents&, bool) + 582
21 com.apple.WebCore
0x000000010f634340 WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext(WebCore::CanvasRenderingContext&) + 240
22 com.apple.WebCore
0x000000010f5aa60a WebCore::CanvasRenderingContext2D::create(WebCore::CanvasBase&, bool, bool) + 298
23 com.apple.WebCore
0x000000010f4efa22 WebCore::HTMLCanvasElement::createContext2d(WTF::String const&) + 450
24 com.apple.WebCore
0x000000010f4ef48b WebCore::HTMLCanvasElement::getContext(JSC::ExecState&, WTF::String const&, WTF::Vector<JSC::Strong<JSC::Unknown>, 0ul, WTF::CrashOnOverflow, 16ul>&&) + 107
25 com.apple.WebCore
0x000000010e7afa74 WebCore::jsHTMLCanvasElementPrototypeFunctionGetContext(JSC::ExecState*) + 388
Я протестировал веб-сайт на Mac с использованием Chrome, Firefox и Safari, и он только в Safari дает сбой.
Используется тестовое устройство:
- Mac Mini (конец 2012 г.)
- macOS High Sierra (v.10.13.6)
Информация о Safari:
- v.12.0.1 (13606.2.104.1.2)