<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>194761</bug_id>
          
          <creation_ts>2019-02-17 09:26:02 -0800</creation_ts>
          <short_desc>Leak of CFErrorRef objects (1.92 Kbytes) in com.apple.WebKit.WebContent.Development running WebKit layout tests  on iOS Simulator</short_desc>
          <delta_ts>2019-02-21 19:12:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=194178</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=180062</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>lforschler</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1507093</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-17 09:26:02 -0800</bug_when>
    <thetext>Leak of CFErrorRef objects (1.92 Kbytes) in com.apple.WebKit.WebContent.Development running WebKit layout tests on iOS Simulator.

NOTE: Requires patch in Bug 193772 to gather leaks for the com.apple.WebKit.WebContent.Development process.

STACK OF 3 INSTANCES OF &apos;ROOT LEAK: &lt;CFError&gt;&apos;:
[thread 0x10d8dc5c0]:
45  libdyld.dylib                         0x10cbadca1 start + 1
44  com.apple.WebKit                      0x10a04906d 0x109f4f000 + 1024109
43  libxpc.dylib                          0x10ceebca7 xpc_main + 143
42  libxpc.dylib                          0x10cee97d2 _xpc_objc_main + 555
41  com.apple.Foundation                  0x109a05200 -[NSRunLoop(NSRunLoop) run] + 76
40  com.apple.Foundation                  0x109a04fe0 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 211
39  com.apple.CoreFoundation              0x10bdbf9f2 CFRunLoopRunSpecific + 626
38  com.apple.CoreFoundation              0x10bdc024f __CFRunLoopRun + 1295
37  com.apple.CoreFoundation              0x10bdc5bcf __CFRunLoopDoSources0 + 255
36  com.apple.CoreFoundation              0x10bdc6391 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
35  JavaScriptCore                        0x27a4e0d12 WTF::RunLoop::performWork(void*) + 34  RunLoopCF.cpp:39
34  JavaScriptCore                        0x27a4e0a84 WTF::RunLoop::performWork() + 228  Function.h:0
33  com.apple.WebKit                      0x109f61c4b IPC::Connection::dispatchOneIncomingMessage() + 181  Connection.cpp:0
32  com.apple.WebKit                      0x109f5e728 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;) + 108  memory:2603
31  com.apple.WebKit                      0x10a27cad1 WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) + 627  NetworkProcessConnection.cpp:0
30  com.apple.WebKit                      0x10a3629c6 WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&amp;, IPC::Decoder&amp;) + 762  HandleMessage.h:0
29  com.apple.WebKit                      0x10a282a21 WebKit::WebResourceLoader::didFinishResourceLoad(WebCore::NetworkLoadMetrics const&amp;) + 197  WebResourceLoader.cpp:0
28  com.apple.WebCore                     0x27ca94382 WebCore::SubresourceLoader::didFinishLoading(WebCore::NetworkLoadMetrics const&amp;) + 706  ResourceLoader.h:161
27  com.apple.WebCore                     0x27cac445c WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*) + 652  CachedRawResource.cpp:107
26  com.apple.WebCore                     0x27cac67bc WebCore::CachedResource::checkNotify() + 348  CachedResource.cpp:352
25  com.apple.WebCore                     0x27ca35215 WebCore::DocumentLoader::finishedLoading() + 485  RefPtr.h:81
24  com.apple.WebCore                     0x27c6299e9 WebCore::DecodedDataDocumentParser::flush(WebCore::DocumentWriter&amp;) + 89  utility:918
23  com.apple.WebCore                     0x27c92975e WebCore::HTMLDocumentParser::append(WTF::RefPtr&lt;WTF::StringImpl, WTF::DumbPtrTraits&lt;WTF::StringImpl&gt; &gt;&amp;&amp;) + 1006  DocumentParser.h:70
22  com.apple.WebCore                     0x27c928964 WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 116  DocumentParser.h:69
21  com.apple.WebCore                     0x27c928fa7 WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&amp;) + 615  HTMLDocumentParser.cpp:254
20  com.apple.WebCore                     0x27c928cdf WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() + 367  Ref.h:59
19  com.apple.WebCore                     0x27c9362b0 WebCore::HTMLScriptRunner::execute(WTF::Ref&lt;WebCore::ScriptElement, WTF::DumbPtrTraits&lt;WebCore::ScriptElement&gt; &gt;&amp;&amp;, WTF::TextPosition const&amp;) + 48  RefPtr.h:81
18  com.apple.WebCore                     0x27c936422 WebCore::HTMLScriptRunner::runScript(WebCore::ScriptElement&amp;, WTF::TextPosition const&amp;) + 290  ScriptElement.h:61
17  com.apple.WebCore                     0x27c6d03f9 WebCore::ScriptElement::prepareScript(WTF::TextPosition const&amp;, WebCore::ScriptElement::LegacyTypeSupport) + 1241  CachedResourceHandle.h:61
16  com.apple.WebCore                     0x27c6d24a5 WebCore::ScriptElement::executeClassicScript(WebCore::ScriptSourceCode const&amp;) + 581  CurrentScriptIncrementer.h:54
15  com.apple.WebCore                     0x27c3f1a4f WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;, WebCore::ExceptionDetails*) + 207  ScriptController.cpp:131
14  com.apple.WebCore                     0x27c3f1bf4 WebCore::JSExecState::profiledEvaluate(JSC::ExecState*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 84  JSExecState.h:80
13  JavaScriptCore                        0x27acb68b0 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 288  Completion.cpp:137
12  JavaScriptCore                        0x27aa35c3c JSC::Interpreter::executeProgram(JSC::SourceCode const&amp;, JSC::ExecState*, JSC::JSObject*) + 11324  JITCodeInlines.h:39
11  JavaScriptCore                        0x27a66add9 vmEntryToJavaScript + 200  LowLevelInterpreter64.asm:293
10  JavaScriptCore                        0x27a67a079 llint_entry + 61686  LowLevelInterpreter.asm:879
9                                      0x51026980102d 0x510269801000 + 45
8   JavaScriptCore                        0x27a6a67ef long long JSC::APICallbackFunction::call&lt;JSC::JSCallbackFunction&gt;(JSC::ExecState*) + 495  APICallbackFunction.h:63
7   com.apple.WebKitTestRunner.InjectedBundle        0x2928fcbe9 WTR::JSTestRunner::installFakeHelvetica(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) + 89  JSTestRunner.cpp:2861
6   com.apple.WebKitTestRunner.InjectedBundle        0x2929084c8 WTR::TestRunner::installFakeHelvetica(OpaqueJSString*) + 26  WKRetainPtr.h:87
5   com.apple.WebKitTestRunner.InjectedBundle        0x2928e2532 WTR::installFakeHelvetica(OpaqueWKString const*) + 120  RetainPtr.h:169
4   com.apple.CoreText                    0x278de02d0 CTFontManagerRegisterFontsForURL + 140
3   com.apple.CoreText                    0x278de0544 CreateErrorForFailureToActOnFontURLs(Action, __CFArray const*, int) + 162
2   com.apple.CoreFoundation              0x10bd74d9a CFErrorCreateWithUserInfoKeysAndValues + 58
1   com.apple.CoreFoundation              0x10bdc730e _CFRuntimeCreateInstance + 446
0   libsystem_malloc.dylib                0x10ce2bd57 malloc_zone_calloc + 139 
====
    24 (1.92K) &lt;&lt; TOTAL &gt;&gt;

      8 (656 bytes) ROOT LEAK: &lt;CFError 0x7fd261c063b0&gt; [48]
         7 (608 bytes) _userInfo --&gt; &lt;CFDictionary 0x7fd261c1a860&gt; [64]
            5 (512 bytes) &lt;CFDictionary (Value Storage) 0x7fd261c1aae0&gt; [32]
               3 (416 bytes) &lt;NSArray 0x7fd261c18590&gt; [16]
                  2 (400 bytes) __strong _object --&gt; &lt;NSURL 0x7fd261c2c1c0&gt; [96]
                     1 (304 bytes) _clients --&gt; &lt;CFString 0x7fd261c2bd00&gt; [304]
               1 (64 bytes) &lt;CFString 0x7fd261c2bfe0&gt; [64]
            1 (32 bytes) &lt;CFDictionary (Key Storage) 0x7fd261c19000&gt; [32]

      8 (656 bytes) ROOT LEAK: &lt;CFError 0x7fd261d03ba0&gt; [48]
         7 (608 bytes) _userInfo --&gt; &lt;CFDictionary 0x7fd261d4e670&gt; [64]
            5 (512 bytes) &lt;CFDictionary (Value Storage) 0x7fd261d430a0&gt; [32]
               3 (416 bytes) &lt;NSArray 0x7fd261d1b1b0&gt; [16]
                  2 (400 bytes) __strong _object --&gt; &lt;NSURL 0x7fd261d07510&gt; [96]
                     1 (304 bytes) _clients --&gt; &lt;CFString 0x7fd261d47950&gt; [304]
               1 (64 bytes) &lt;CFString 0x7fd261d4e630&gt; [64]
            1 (32 bytes) &lt;CFDictionary (Key Storage) 0x7fd261d07570&gt; [32]

      8 (656 bytes) ROOT LEAK: &lt;CFError 0x7fd261d49230&gt; [48]
         7 (608 bytes) _userInfo --&gt; &lt;CFDictionary 0x7fd261d49890&gt; [64]
            5 (512 bytes) &lt;CFDictionary (Value Storage) 0x7fd261d07b30&gt; [32]
               3 (416 bytes) &lt;NSArray 0x7fd261d49390&gt; [16]
                  2 (400 bytes) __strong _object --&gt; &lt;NSURL 0x7fd261ee3000&gt; [96]
                     1 (304 bytes) _clients --&gt; &lt;CFString 0x7fd261ee6bd0&gt; [304]
               1 (64 bytes) &lt;CFString 0x7fd261d34fc0&gt; [64]
            1 (32 bytes) &lt;CFDictionary (Key Storage) 0x7fd261d2daa0&gt; [32]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507094</commentid>
    <comment_count>1</comment_count>
      <attachid>362234</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-17 09:28:36 -0800</bug_when>
    <thetext>Created attachment 362234
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507095</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-17 09:29:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/48147429&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507111</commentid>
    <comment_count>3</comment_count>
      <attachid>362234</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-02-17 10:50:31 -0800</bug_when>
    <thetext>Comment on attachment 362234
Patch v1

View in context: https://bugs.webkit.org/attachment.cgi?id=362234&amp;action=review

&gt; Tools/ChangeLog:13
&gt; +        CTFontManagerRegisterFontsForURL() to ignore any errors, thereby
&gt; +        fixing the leaks.

Tangentially, what are the errors? Doesn&apos;t seem like we should be expecting any, so it may be an indication of something pretty terrible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507315</commentid>
    <comment_count>4</comment_count>
      <attachid>362303</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-18 10:50:01 -0800</bug_when>
    <thetext>Created attachment 362303
Patch v2

Now prints out error message when registration fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507316</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-18 10:54:58 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #3)
&gt; Comment on attachment 362234 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362234&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:13
&gt; &gt; +        CTFontManagerRegisterFontsForURL() to ignore any errors, thereby
&gt; &gt; +        fixing the leaks.
&gt; 
&gt; Tangentially, what are the errors? Doesn&apos;t seem like we should be expecting
&gt; any, so it may be an indication of something pretty terrible.

Only these four tests trigger the error:

$BUILD_ROOT/layout-test-results/fast/text/user-installed-fonts/shadow-family-stderr.txt

2019-02-18 10:29:46.488 com.apple.WebKit.WebContent.Development[62401:23370792] Failed to activate fake Helvetica: Error Domain=com.apple.CoreText.CTFontManagerErrorDomain Code=105 &quot;Could not register the font file(s)&quot; UserInfo={NSDescription=Could not register the font file(s), CTFontManagerErrorFontURLs=(
    &quot;file://$HOME/Library/Developer/CoreSimulator/Devices/453C9A70-C13B-4D78-AE6E-FE1A9F04643A/data/Containers/Bundle/Application/8D8B896F-A06F-4ED2-B157-C87593F9B230/WebKitTestRunnerApp.app/PlugIns/WebKitTestRunnerInjectedBundle.bundle/FakeHelvetica-Helvetica-500.ttf&quot;
)}

$BUILD_ROOT/layout-test-results/fast/text/user-installed-fonts/shadow-stderr.txt

2019-02-18 10:29:48.071 com.apple.WebKit.WebContent.Development[62401:23370792] Failed to activate fake Helvetica: Error Domain=com.apple.CoreText.CTFontManagerErrorDomain Code=105 &quot;Could not register the font file(s)&quot; UserInfo={NSDescription=Could not register the font file(s), CTFontManagerErrorFontURLs=(
    &quot;file://$HOME/Library/Developer/CoreSimulator/Devices/453C9A70-C13B-4D78-AE6E-FE1A9F04643A/data/Containers/Bundle/Application/8D8B896F-A06F-4ED2-B157-C87593F9B230/WebKitTestRunnerApp.app/PlugIns/WebKitTestRunnerInjectedBundle.bundle/FakeHelvetica-Helvetica-400.ttf&quot;
)}

$BUILD_ROOT/layout-test-results/fast/text/user-installed-fonts/shadow-family-disable-stderr.txt

2019-02-18 10:29:46.240 com.apple.WebKit.WebContent.Development[62401:23370792] Failed to activate fake Helvetica: Error Domain=com.apple.CoreText.CTFontManagerErrorDomain Code=105 &quot;Could not register the font file(s)&quot; UserInfo={NSDescription=Could not register the font file(s), CTFontManagerErrorFontURLs=(
    &quot;file://$HOME/Library/Developer/CoreSimulator/Devices/453C9A70-C13B-4D78-AE6E-FE1A9F04643A/data/Containers/Bundle/Application/8D8B896F-A06F-4ED2-B157-C87593F9B230/WebKitTestRunnerApp.app/PlugIns/WebKitTestRunnerInjectedBundle.bundle/FakeHelvetica-Helvetica-500.ttf&quot;
)}

$BUILD_ROOT/layout-test-results/fast/text/user-installed-fonts/shadow-disable-stderr.txt

2019-02-18 10:29:45.988 com.apple.WebKit.WebContent.Development[62401:23370792] Failed to activate fake Helvetica: Error Domain=com.apple.CoreText.CTFontManagerErrorDomain Code=105 &quot;Could not register the font file(s)&quot; UserInfo={NSDescription=Could not register the font file(s), CTFontManagerErrorFontURLs=(
    &quot;file://$HOME/Library/Developer/CoreSimulator/Devices/453C9A70-C13B-4D78-AE6E-FE1A9F04643A/data/Containers/Bundle/Application/8D8B896F-A06F-4ED2-B157-C87593F9B230/WebKitTestRunnerApp.app/PlugIns/WebKitTestRunnerInjectedBundle.bundle/FakeHelvetica-Helvetica-400.ttf&quot;
)}

Note that these files DO exist at this path, too.

Are they being registered more than once?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507317</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-18 10:58:39 -0800</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #5)
&gt; (In reply to Alexey Proskuryakov from comment #3)
&gt; &gt; Comment on attachment 362234 [details]
&gt; &gt; Patch v1
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=362234&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/ChangeLog:13
&gt; &gt; &gt; +        CTFontManagerRegisterFontsForURL() to ignore any errors, thereby
&gt; &gt; &gt; +        fixing the leaks.
&gt; &gt; 
&gt; &gt; Tangentially, what are the errors? Doesn&apos;t seem like we should be expecting
&gt; &gt; any, so it may be an indication of something pretty terrible.
&gt; 
&gt; Only these four tests trigger the error:
&gt; 
&gt; $BUILD_ROOT/layout-test-results/fast/text/user-installed-fonts/shadow-family-
&gt; stderr.txt
&gt; 
&gt; 2019-02-18 10:29:46.488
&gt; com.apple.WebKit.WebContent.Development[62401:23370792] Failed to activate
&gt; fake Helvetica: Error Domain=com.apple.CoreText.CTFontManagerErrorDomain
&gt; Code=105 &quot;Could not register the font file(s)&quot; UserInfo={NSDescription=Could
&gt; not register the font file(s), CTFontManagerErrorFontURLs=(
&gt;    
&gt; &quot;file://$HOME/Library/Developer/CoreSimulator/Devices/453C9A70-C13B-4D78-
&gt; AE6E-FE1A9F04643A/data/Containers/Bundle/Application/8D8B896F-A06F-4ED2-B157-
&gt; C87593F9B230/WebKitTestRunnerApp.app/PlugIns/WebKitTestRunnerInjectedBundle.
&gt; bundle/FakeHelvetica-Helvetica-500.ttf&quot;
&gt; )}
&gt; 
&gt; $BUILD_ROOT/layout-test-results/fast/text/user-installed-fonts/shadow-stderr.
&gt; txt
&gt; 
&gt; 2019-02-18 10:29:48.071
&gt; com.apple.WebKit.WebContent.Development[62401:23370792] Failed to activate
&gt; fake Helvetica: Error Domain=com.apple.CoreText.CTFontManagerErrorDomain
&gt; Code=105 &quot;Could not register the font file(s)&quot; UserInfo={NSDescription=Could
&gt; not register the font file(s), CTFontManagerErrorFontURLs=(
&gt;    
&gt; &quot;file://$HOME/Library/Developer/CoreSimulator/Devices/453C9A70-C13B-4D78-
&gt; AE6E-FE1A9F04643A/data/Containers/Bundle/Application/8D8B896F-A06F-4ED2-B157-
&gt; C87593F9B230/WebKitTestRunnerApp.app/PlugIns/WebKitTestRunnerInjectedBundle.
&gt; bundle/FakeHelvetica-Helvetica-400.ttf&quot;
&gt; )}
&gt; 
&gt; $BUILD_ROOT/layout-test-results/fast/text/user-installed-fonts/shadow-family-
&gt; disable-stderr.txt
&gt; 
&gt; 2019-02-18 10:29:46.240
&gt; com.apple.WebKit.WebContent.Development[62401:23370792] Failed to activate
&gt; fake Helvetica: Error Domain=com.apple.CoreText.CTFontManagerErrorDomain
&gt; Code=105 &quot;Could not register the font file(s)&quot; UserInfo={NSDescription=Could
&gt; not register the font file(s), CTFontManagerErrorFontURLs=(
&gt;    
&gt; &quot;file://$HOME/Library/Developer/CoreSimulator/Devices/453C9A70-C13B-4D78-
&gt; AE6E-FE1A9F04643A/data/Containers/Bundle/Application/8D8B896F-A06F-4ED2-B157-
&gt; C87593F9B230/WebKitTestRunnerApp.app/PlugIns/WebKitTestRunnerInjectedBundle.
&gt; bundle/FakeHelvetica-Helvetica-500.ttf&quot;
&gt; )}
&gt; 
&gt; $BUILD_ROOT/layout-test-results/fast/text/user-installed-fonts/shadow-
&gt; disable-stderr.txt
&gt; 
&gt; 2019-02-18 10:29:45.988
&gt; com.apple.WebKit.WebContent.Development[62401:23370792] Failed to activate
&gt; fake Helvetica: Error Domain=com.apple.CoreText.CTFontManagerErrorDomain
&gt; Code=105 &quot;Could not register the font file(s)&quot; UserInfo={NSDescription=Could
&gt; not register the font file(s), CTFontManagerErrorFontURLs=(
&gt;    
&gt; &quot;file://$HOME/Library/Developer/CoreSimulator/Devices/453C9A70-C13B-4D78-
&gt; AE6E-FE1A9F04643A/data/Containers/Bundle/Application/8D8B896F-A06F-4ED2-B157-
&gt; C87593F9B230/WebKitTestRunnerApp.app/PlugIns/WebKitTestRunnerInjectedBundle.
&gt; bundle/FakeHelvetica-Helvetica-400.ttf&quot;
&gt; )}
&gt; 
&gt; Note that these files DO exist at this path, too.
&gt; 
&gt; Are they being registered more than once?

Myles, is this expected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507562</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-02-18 18:02:06 -0800</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #6)
&gt; Myles, is this expected?

Nope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507586</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-18 20:45:54 -0800</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #7)
&gt; (In reply to David Kilzer (:ddkilzer) from comment #6)
&gt; &gt; Myles, is this expected?
&gt; 
&gt; Nope.

Should this block landing this patch since this fixes the leak, and adds stderr output to these tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507599</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-02-18 22:18:53 -0800</bug_when>
    <thetext>Seems like the right behavior here would probably be to RELEASE_ASSERT. But first the issue has to be fixed of course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507660</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-19 06:56:31 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #9)
&gt; Seems like the right behavior here would probably be to RELEASE_ASSERT. But
&gt; first the issue has to be fixed of course.

According to LayoutTests/platform/ios/TestExpectations which was added for Bug 180062 in r225641, this is expected behavior on iOS:

+# User-installed font infrastructure is ony present on certain OSes.
+webkit.org/b/180062 fast/text/user-installed-fonts/disable.html [ ImageOnlyFailure ]
+webkit.org/b/180062 fast/text/user-installed-fonts/shadow-family.html [ ImageOnlyFailure ]
+webkit.org/b/180062 fast/text/user-installed-fonts/shadow-postscript.html [ ImageOnlyFailure ]
+webkit.org/b/180062 fast/text/user-installed-fonts/shadow.html [ ImageOnlyFailure ]

In fact, it&apos;s only supposed to work on Mojave and above on WebKit2:

LayoutTests/platform/mac-wk1/TestExpectations

+# User-installed fonts test infrastructure is not present in WK1
+webkit.org/b/180062 fast/text/user-installed-fonts [ ImageOnlyFailure ]

LayoutTests/platform/mac/TestExpectations

+# User-installed font infrastructure is ony present on certain OSes.
+webkit.org/b/180062 [ ElCapitan Sierra HighSierra ] fast/text/user-installed-fonts/disable.html [ ImageOnlyFailure ]
+webkit.org/b/180062 [ ElCapitan Sierra HighSierra ] fast/text/user-installed-fonts/shadow-postscript.html [ ImageOnlyFailure ]
+webkit.org/b/180062 [ ElCapitan Sierra HighSierra ] fast/text/user-installed-fonts/shadow.html [ ImageOnlyFailure ]

So do we change the code to prevent the CFErrorRef objects from being created (going back to Patch v1 / Attachment #362234)?  Or get the errors, but only report them on macOS Mojave and newer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507671</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-02-19 08:42:34 -0800</bug_when>
    <thetext>Another alternative is to ifdef out the code where it&apos;s not going to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507694</commentid>
    <comment_count>12</comment_count>
      <attachid>362389</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-19 10:03:09 -0800</bug_when>
    <thetext>Created attachment 362389
Patch v3

Only log errors in installFakeHelvetica() if supported platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507695</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-19 10:04:05 -0800</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #12)
&gt; Created attachment 362389 [details]
&gt; Patch v3
&gt; 
&gt; Only log errors in installFakeHelvetica() if supported platform.

Patch v3 only logs on supported platforms.  Should we just make the whole WTR::installFakeHelvetica() method do nothing except on macOS Mojave or newer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507696</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-19 10:05:52 -0800</bug_when>
    <thetext>Attachment 362389 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:146:  Misplaced OS version check. Please use a named macro in wtf/Platform.h, wtf/FeatureDefines.h, or an appropriate internal file.  [build/version_check] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507700</commentid>
    <comment_count>15</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-19 10:10:49 -0800</bug_when>
    <thetext>(In reply to Build Bot from comment #14)
&gt; Attachment 362389 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR:
&gt; Tools/WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:146: 
&gt; Misplaced OS version check. Please use a named macro in wtf/Platform.h,
&gt; wtf/FeatureDefines.h, or an appropriate internal file. 
&gt; [build/version_check] [5]
&gt; Total errors found: 1 in 2 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against
&gt; check-webkit-style.

+ #if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101400

So this warning means we should make up a brand new macro for wtf/Platform.h for this specific case?

Or should we just change the macro to `#if USE(APPKIT)` because eventually this code will work on all macOS versions, and the expectations in LayoutTests/platform/mac/TestExpectations (see Comment #10) will eventually be removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507707</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-02-19 10:28:08 -0800</bug_when>
    <thetext>Perhaps we already have a feature macro for this? Adding one for testing code would be silly, but testing code features usually correspond to real features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507973</commentid>
    <comment_count>17</comment_count>
      <attachid>362389</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-02-19 19:16:06 -0800</bug_when>
    <thetext>Comment on attachment 362389
Patch v3

View in context: https://bugs.webkit.org/attachment.cgi?id=362389&amp;action=review

&gt; Tools/WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:92
&gt; +                if (!CTFontManagerRegisterFontsForURL((CFURLRef)fontURL, kCTFontManagerScopeProcess, &amp;error)) {

Shouldn&apos;t we be using C++-style casts?

&gt; Tools/WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:147
&gt; +        // Registering shadow fonts is only supported on macOS Mojave or newer. See Bugs 180062 &amp; 194761.

I think it&apos;s supposed to work on iOS, but we shouldn&apos;t block this patch on that. We can open a new bug to investigate why it doesn&apos;t work on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508664</commentid>
    <comment_count>18</comment_count>
      <attachid>362389</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-21 14:13:30 -0800</bug_when>
    <thetext>Comment on attachment 362389
Patch v3

View in context: https://bugs.webkit.org/attachment.cgi?id=362389&amp;action=review

&gt;&gt; Tools/WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:92
&gt;&gt; +                if (!CTFontManagerRegisterFontsForURL((CFURLRef)fontURL, kCTFontManagerScopeProcess, &amp;error)) {
&gt; 
&gt; Shouldn&apos;t we be using C++-style casts?

Will fix.

&gt;&gt; Tools/WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:147
&gt;&gt; +        // Registering shadow fonts is only supported on macOS Mojave or newer. See Bugs 180062 &amp; 194761.
&gt; 
&gt; I think it&apos;s supposed to work on iOS, but we shouldn&apos;t block this patch on that. We can open a new bug to investigate why it doesn&apos;t work on iOS.

It appears to work on iOS, but not iOS Simulator.  I will file a radar to track this internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508687</commentid>
    <comment_count>19</comment_count>
      <attachid>362389</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-21 15:09:16 -0800</bug_when>
    <thetext>Comment on attachment 362389
Patch v3

View in context: https://bugs.webkit.org/attachment.cgi?id=362389&amp;action=review

&gt;&gt;&gt; Tools/WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:92
&gt;&gt;&gt; +                if (!CTFontManagerRegisterFontsForURL((CFURLRef)fontURL, kCTFontManagerScopeProcess, &amp;error)) {
&gt;&gt; 
&gt;&gt; Shouldn&apos;t we be using C++-style casts?
&gt; 
&gt; Will fix.

Actually, to make these ARC-compliant (for a future switch to use ARC in this project), we have to use C-style casts:  (__bridge CFTypeRef).

Using static_cast&lt;__bridge CFTypeRef&gt;() doesn&apos;t work.  :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508724</commentid>
    <comment_count>20</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-02-21 16:03:53 -0800</bug_when>
    <thetext>Committed r241920: &lt;https://trac.webkit.org/changeset/241920&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508824</commentid>
    <comment_count>21</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-02-21 19:12:01 -0800</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #19)
&gt; Comment on attachment 362389 [details]
&gt; Patch v3
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362389&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Tools/WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:92
&gt; &gt;&gt;&gt; +                if (!CTFontManagerRegisterFontsForURL((CFURLRef)fontURL, kCTFontManagerScopeProcess, &amp;error)) {
&gt; &gt;&gt; 
&gt; &gt;&gt; Shouldn&apos;t we be using C++-style casts?
&gt; &gt; 
&gt; &gt; Will fix.
&gt; 
&gt; Actually, to make these ARC-compliant (for a future switch to use ARC in
&gt; this project), we have to use C-style casts:  (__bridge CFTypeRef).
&gt; 
&gt; Using static_cast&lt;__bridge CFTypeRef&gt;() doesn&apos;t work.  :(

👎</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362234</attachid>
            <date>2019-02-17 09:28:36 -0800</date>
            <delta_ts>2019-02-18 10:50:00 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-194761-20190217092834.patch</filename>
            <type>text/plain</type>
            <size>2569</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNjQ5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2ZhMDMxODFhMjMwNmUxMzRhMGUxN2ZjOWRlY2U0NWRk
MDZlN2Y0MC4uMzI4ZDMzMTRiZGM1NmI2Yjg2MWU0N2I4YzM4ZTI2YzNmYjNlZmZhZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE5LTAyLTE3ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAg
ICAgICAgTGVhayBvZiBDRkVycm9yUmVmIG9iamVjdHMgKDEuOTIgS2J5dGVzKSBpbiBjb20uYXBw
bGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQgcnVubmluZyBXZWJLaXQgbGF5b3V0IHRl
c3RzIG9uIGlPUyBTaW11bGF0b3IKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE5NDc2
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2EvQWN0aXZhdGVGb250c0NvY29hLm1t
OgorICAgICAgICAoV1RSOjphY3RpdmF0ZVN5c3RlbUNvcmVXZWJGb250cyk6IENoYW5nZSBgMGAg
dG8gYG51bGxwdHJgIGZvcgorICAgICAgICBDVEZvbnRNYW5hZ2VyUmVnaXN0ZXJGb250c0ZvclVS
TCgpIGVycm9yIHBhcmFtZXRlci4KKyAgICAgICAgKFdUUjo6aW5zdGFsbEZha2VIZWx2ZXRpY2Ep
OiBQYXNzIG51bGxwdHIgaW50bworICAgICAgICBDVEZvbnRNYW5hZ2VyUmVnaXN0ZXJGb250c0Zv
clVSTCgpIHRvIGlnbm9yZSBhbnkgZXJyb3JzLCB0aGVyZWJ5CisgICAgICAgIGZpeGluZyB0aGUg
bGVha3MuCisKIDIwMTgtMTItMTAgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBydW4td2Via2l0LXRlc3RzIC0tbGVha3Mgc2hvdWxkIHJ1biBgbGVha3NgIG9u
IGFsbCBjb20uYXBwbGUuV2ViS2l0LiogcHJvY2Vzc2VzCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2NvY29hL0FjdGl2YXRlRm9udHNDb2NvYS5tbSBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2EvQWN0aXZhdGVGb250
c0NvY29hLm1tCmluZGV4IDNkNmFkZjYyM2Y3YTI2NjUyYzZhZDQ4MTliZDEzMTdmNjA4YmFjY2Eu
LjZiNWVhYTg4ZWQ4Zjc1ZjU5ZWVlMDZjMmM1MTRmZjRhYzE0N2I1YWYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2EvQWN0aXZhdGVGb250c0Nv
Y29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2Ev
QWN0aXZhdGVGb250c0NvY29hLm1tCkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyB2b2lkIGFjdGl2
YXRlU3lzdGVtQ29yZVdlYkZvbnRzKCkKICAgICAgICAgLy8gYWxzbyBhY3RpdmF0ZXMgZS5nLiBB
cmlhbCBVbmljb2RlLCB3aGljaCBpcyBub3QgYSB2YXJpYXRpb24gb2YgQXJpYWwuCiAgICAgICAg
IGZvciAoTlNTdHJpbmcgKmNvcmVXZWJGb250TmFtZSBpbiBjb3JlV2ViRm9udE5hbWVzKSB7CiAg
ICAgICAgICAgICBpZiAoW2ZpbGVOYW1lIGhhc1ByZWZpeDpjb3JlV2ViRm9udE5hbWVdKSB7Ci0g
ICAgICAgICAgICAgICAgQ1RGb250TWFuYWdlclJlZ2lzdGVyRm9udHNGb3JVUkwoKENGVVJMUmVm
KWZvbnRVUkwsIGtDVEZvbnRNYW5hZ2VyU2NvcGVQcm9jZXNzLCAwKTsKKyAgICAgICAgICAgICAg
ICBDVEZvbnRNYW5hZ2VyUmVnaXN0ZXJGb250c0ZvclVSTCgoQ0ZVUkxSZWYpZm9udFVSTCwga0NU
Rm9udE1hbmFnZXJTY29wZVByb2Nlc3MsIG51bGxwdHIpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMzcsOCArMTM3LDcgQEAgdm9pZCBpbnN0
YWxsRmFrZUhlbHZldGljYShXS1N0cmluZ1JlZiBjb25maWd1cmF0aW9uKQogewogICAgIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4gY29uZmlndXJhdGlvblN0cmluZyA9IGFkb3B0Q0YoV0tTdHJpbmdD
b3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29uZmlndXJhdGlvbikpOwogICAgIE5T
VVJMICpyZXNvdXJjZVVSTCA9IFtyZXNvdXJjZXNEaXJlY3RvcnlVUkwoKSBVUkxCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJGYWtlSGVsdmV0aWNh
LSVALnR0ZiIsIGNvbmZpZ3VyYXRpb25TdHJpbmcuZ2V0KCldIGlzRGlyZWN0b3J5Ok5PXTsKLSAg
ICBDRkVycm9yUmVmIGVycm9yID0gbnVsbHB0cjsKLSAgICBDVEZvbnRNYW5hZ2VyUmVnaXN0ZXJG
b250c0ZvclVSTChzdGF0aWNfY2FzdDxDRlVSTFJlZj4ocmVzb3VyY2VVUkwpLCBrQ1RGb250TWFu
YWdlclNjb3BlUHJvY2VzcywgJmVycm9yKTsKKyAgICBDVEZvbnRNYW5hZ2VyUmVnaXN0ZXJGb250
c0ZvclVSTChzdGF0aWNfY2FzdDxDRlVSTFJlZj4ocmVzb3VyY2VVUkwpLCBrQ1RGb250TWFuYWdl
clNjb3BlUHJvY2VzcywgbnVsbHB0cik7CiB9CiAKIHZvaWQgdW5pbnN0YWxsRmFrZUhlbHZldGlj
YSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362303</attachid>
            <date>2019-02-18 10:50:01 -0800</date>
            <delta_ts>2019-02-19 10:03:07 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-194761-20190218105001.patch</filename>
            <type>text/plain</type>
            <size>3290</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNjQ5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2ZhMDMxODFhMjMwNmUxMzRhMGUxN2ZjOWRlY2U0NWRk
MDZlN2Y0MC4uM2I5NWMzZWMzNTdhYzk2Y2QyMGY3Mzc2MjQ0NDBlZGZkNmYzMzNkZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE5LTAyLTE4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAg
ICAgICAgTGVhayBvZiBDRkVycm9yUmVmIG9iamVjdHMgKDEuOTIgS2J5dGVzKSBpbiBjb20uYXBw
bGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQgcnVubmluZyBXZWJLaXQgbGF5b3V0IHRl
c3RzIG9uIGlPUyBTaW11bGF0b3IKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE5NDc2
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2EvQWN0aXZhdGVGb250c0NvY29hLm1t
OgorICAgICAgICAoV1RSOjphY3RpdmF0ZVN5c3RlbUNvcmVXZWJGb250cyk6IExvZyBgZXJyb3Jg
IHRvIGNvbnNvbGUgaWYKKyAgICAgICAgQ1RGb250TWFuYWdlclJlZ2lzdGVyRm9udHNGb3JVUkwo
KSBmYWlscyAobWFjT1Mgb25seSkuCisgICAgICAgIChXVFI6OmFjdGl2YXRlRm9udHMpOiBDaGFu
Z2UgYDBgIHRvIGBudWxscHRyYC4KKyAgICAgICAgKFdUUjo6aW5zdGFsbEZha2VIZWx2ZXRpY2Ep
OiBMb2cgYGVycm9yYCB0byBjb25zb2xlIGlmCisgICAgICAgIENURm9udE1hbmFnZXJSZWdpc3Rl
ckZvbnRzRm9yVVJMKCkgZmFpbHMuICBDYWxsIENGUmVsZWFzZSgpIG9uCisgICAgICAgIGBlcnJv
cmAgdG8gZml4IHRoZSBsZWFrLgorCiAyMDE4LTEyLTEwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHpl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgcnVuLXdlYmtpdC10ZXN0cyAtLWxlYWtzIHNob3VsZCBy
dW4gYGxlYWtzYCBvbiBhbGwgY29tLmFwcGxlLldlYktpdC4qIHByb2Nlc3NlcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9jb2NvYS9BY3RpdmF0ZUZv
bnRzQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2NvY29h
L0FjdGl2YXRlRm9udHNDb2NvYS5tbQppbmRleCAzZDZhZGY2MjNmN2EyNjY1MmM2YWQ0ODE5YmQx
MzE3ZjYwOGJhY2NhLi44NmVhNmZkYzNiOTQ2NDY1MjcyN2NmMGNlMmJiZmIwYjA3MmNhMmQxIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2NvY29hL0Fj
dGl2YXRlRm9udHNDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL2NvY29hL0FjdGl2YXRlRm9udHNDb2NvYS5tbQpAQCAtODgsNyArODgsMTEgQEAgc3Rh
dGljIHZvaWQgYWN0aXZhdGVTeXN0ZW1Db3JlV2ViRm9udHMoKQogICAgICAgICAvLyBhbHNvIGFj
dGl2YXRlcyBlLmcuIEFyaWFsIFVuaWNvZGUsIHdoaWNoIGlzIG5vdCBhIHZhcmlhdGlvbiBvZiBB
cmlhbC4KICAgICAgICAgZm9yIChOU1N0cmluZyAqY29yZVdlYkZvbnROYW1lIGluIGNvcmVXZWJG
b250TmFtZXMpIHsKICAgICAgICAgICAgIGlmIChbZmlsZU5hbWUgaGFzUHJlZml4OmNvcmVXZWJG
b250TmFtZV0pIHsKLSAgICAgICAgICAgICAgICBDVEZvbnRNYW5hZ2VyUmVnaXN0ZXJGb250c0Zv
clVSTCgoQ0ZVUkxSZWYpZm9udFVSTCwga0NURm9udE1hbmFnZXJTY29wZVByb2Nlc3MsIDApOwor
ICAgICAgICAgICAgICAgIENGRXJyb3JSZWYgZXJyb3IgPSBudWxscHRyOworICAgICAgICAgICAg
ICAgIGlmICghQ1RGb250TWFuYWdlclJlZ2lzdGVyRm9udHNGb3JVUkwoKENGVVJMUmVmKWZvbnRV
UkwsIGtDVEZvbnRNYW5hZ2VyU2NvcGVQcm9jZXNzLCAmZXJyb3IpKSB7CisgICAgICAgICAgICAg
ICAgICAgIE5TTG9nKEAiRmFpbGVkIHRvIGFjdGl2YXRlICVAOiAlQCIsIGNvcmVXZWJGb250TmFt
ZSwgZXJyb3IpOworICAgICAgICAgICAgICAgICAgICBDRlJlbGVhc2UoZXJyb3IpOworICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMTIxLDcgKzEyNSw3IEBAIHZvaWQgYWN0aXZhdGVGb250cygpCiAgICAgICAgIFtm
b250VVJMcyBhZGRPYmplY3Q6W2ZvbnRVUkwgYWJzb2x1dGVVUkxdXTsKICAgICB9CiAKLSAgICBD
RkFycmF5UmVmIGVycm9ycyA9IDA7CisgICAgQ0ZBcnJheVJlZiBlcnJvcnMgPSBudWxscHRyOwog
ICAgIGlmICghQ1RGb250TWFuYWdlclJlZ2lzdGVyRm9udHNGb3JVUkxzKChDRkFycmF5UmVmKWZv
bnRVUkxzLCBrQ1RGb250TWFuYWdlclNjb3BlUHJvY2VzcywgJmVycm9ycykpIHsKICAgICAgICAg
TlNMb2coQCJGYWlsZWQgdG8gYWN0aXZhdGUgZm9udHM6ICVAIiwgZXJyb3JzKTsKICAgICAgICAg
Q0ZSZWxlYXNlKGVycm9ycyk7CkBAIC0xMzgsNyArMTQyLDEwIEBAIHZvaWQgaW5zdGFsbEZha2VI
ZWx2ZXRpY2EoV0tTdHJpbmdSZWYgY29uZmlndXJhdGlvbikKICAgICBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+IGNvbmZpZ3VyYXRpb25TdHJpbmcgPSBhZG9wdENGKFdLU3RyaW5nQ29weUNGU3RyaW5n
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGNvbmZpZ3VyYXRpb24pKTsKICAgICBOU1VSTCAqcmVzb3Vy
Y2VVUkwgPSBbcmVzb3VyY2VzRGlyZWN0b3J5VVJMKCkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9u
ZW50OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiRmFrZUhlbHZldGljYS0lQC50dGYiLCBj
b25maWd1cmF0aW9uU3RyaW5nLmdldCgpXSBpc0RpcmVjdG9yeTpOT107CiAgICAgQ0ZFcnJvclJl
ZiBlcnJvciA9IG51bGxwdHI7Ci0gICAgQ1RGb250TWFuYWdlclJlZ2lzdGVyRm9udHNGb3JVUkwo
c3RhdGljX2Nhc3Q8Q0ZVUkxSZWY+KHJlc291cmNlVVJMKSwga0NURm9udE1hbmFnZXJTY29wZVBy
b2Nlc3MsICZlcnJvcik7CisgICAgaWYgKCFDVEZvbnRNYW5hZ2VyUmVnaXN0ZXJGb250c0ZvclVS
TChzdGF0aWNfY2FzdDxDRlVSTFJlZj4ocmVzb3VyY2VVUkwpLCBrQ1RGb250TWFuYWdlclNjb3Bl
UHJvY2VzcywgJmVycm9yKSkgeworICAgICAgICBOU0xvZyhAIkZhaWxlZCB0byBhY3RpdmF0ZSBm
YWtlIEhlbHZldGljYTogJUAiLCBlcnJvcik7CisgICAgICAgIENGUmVsZWFzZShlcnJvcik7Cisg
ICAgfQogfQogCiB2b2lkIHVuaW5zdGFsbEZha2VIZWx2ZXRpY2EoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362389</attachid>
            <date>2019-02-19 10:03:09 -0800</date>
            <delta_ts>2019-02-19 19:16:06 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-194761-20190219100308.patch</filename>
            <type>text/plain</type>
            <size>3536</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNjQ5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2ZhMDMxODFhMjMwNmUxMzRhMGUxN2ZjOWRlY2U0NWRk
MDZlN2Y0MC4uNzg2OWZlZDM4Mjc3YTZhMjM5ZGE5ZTgyYWY5NmZmNzFlZjZhZDZlYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDE5LTAyLTE5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAg
ICAgICAgTGVhayBvZiBDRkVycm9yUmVmIG9iamVjdHMgKDEuOTIgS2J5dGVzKSBpbiBjb20uYXBw
bGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQgcnVubmluZyBXZWJLaXQgbGF5b3V0IHRl
c3RzIG9uIGlPUyBTaW11bGF0b3IKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE5NDc2
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2EvQWN0aXZhdGVGb250c0NvY29hLm1t
OgorICAgICAgICAoV1RSOjphY3RpdmF0ZVN5c3RlbUNvcmVXZWJGb250cyk6IExvZyBgZXJyb3Jg
IHRvIGNvbnNvbGUgaWYKKyAgICAgICAgQ1RGb250TWFuYWdlclJlZ2lzdGVyRm9udHNGb3JVUkwo
KSBmYWlscyAobWFjT1Mgb25seSkuCisgICAgICAgIChXVFI6OmFjdGl2YXRlRm9udHMpOiBDaGFu
Z2UgYDBgIHRvIGBudWxscHRyYC4KKyAgICAgICAgKFdUUjo6aW5zdGFsbEZha2VIZWx2ZXRpY2Ep
OiBMb2cgYGVycm9yYCB0byBjb25zb2xlIGlmCisgICAgICAgIENURm9udE1hbmFnZXJSZWdpc3Rl
ckZvbnRzRm9yVVJMKCkgZmFpbHMsIGJ1dCBvbmx5IG9uIHN1cHBvcnRlZAorICAgICAgICBwbGF0
Zm9ybXMgKG1hY09TIE1vamF2ZSBhbmQgbmV3ZXIpLiAgQ2FsbCBDRlJlbGVhc2UoKSBvbiBgZXJy
b3JgCisgICAgICAgIHRvIGZpeCB0aGUgbGVhay4KKwogMjAxOC0xMi0xMCAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIHJ1bi13ZWJraXQtdGVzdHMgLS1sZWFr
cyBzaG91bGQgcnVuIGBsZWFrc2Agb24gYWxsIGNvbS5hcHBsZS5XZWJLaXQuKiBwcm9jZXNzZXMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2Ev
QWN0aXZhdGVGb250c0NvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9jb2NvYS9BY3RpdmF0ZUZvbnRzQ29jb2EubW0KaW5kZXggM2Q2YWRmNjIzZjdhMjY2NTJj
NmFkNDgxOWJkMTMxN2Y2MDhiYWNjYS4uYWM3ODkwNDA5ZTAxYTU3NzYzNTcwZGY1NjQwM2FkNDQz
YTlkOTIwOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9jb2NvYS9BY3RpdmF0ZUZvbnRzQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9jb2NvYS9BY3RpdmF0ZUZvbnRzQ29jb2EubW0KQEAgLTg4LDcgKzg4
LDExIEBAIHN0YXRpYyB2b2lkIGFjdGl2YXRlU3lzdGVtQ29yZVdlYkZvbnRzKCkKICAgICAgICAg
Ly8gYWxzbyBhY3RpdmF0ZXMgZS5nLiBBcmlhbCBVbmljb2RlLCB3aGljaCBpcyBub3QgYSB2YXJp
YXRpb24gb2YgQXJpYWwuCiAgICAgICAgIGZvciAoTlNTdHJpbmcgKmNvcmVXZWJGb250TmFtZSBp
biBjb3JlV2ViRm9udE5hbWVzKSB7CiAgICAgICAgICAgICBpZiAoW2ZpbGVOYW1lIGhhc1ByZWZp
eDpjb3JlV2ViRm9udE5hbWVdKSB7Ci0gICAgICAgICAgICAgICAgQ1RGb250TWFuYWdlclJlZ2lz
dGVyRm9udHNGb3JVUkwoKENGVVJMUmVmKWZvbnRVUkwsIGtDVEZvbnRNYW5hZ2VyU2NvcGVQcm9j
ZXNzLCAwKTsKKyAgICAgICAgICAgICAgICBDRkVycm9yUmVmIGVycm9yID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgICAgICBpZiAoIUNURm9udE1hbmFnZXJSZWdpc3RlckZvbnRzRm9yVVJMKChDRlVS
TFJlZilmb250VVJMLCBrQ1RGb250TWFuYWdlclNjb3BlUHJvY2VzcywgJmVycm9yKSkgeworICAg
ICAgICAgICAgICAgICAgICBOU0xvZyhAIkZhaWxlZCB0byBhY3RpdmF0ZSAlQDogJUAiLCBjb3Jl
V2ViRm9udE5hbWUsIGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgQ0ZSZWxlYXNlKGVycm9y
KTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTEyMSw3ICsxMjUsNyBAQCB2b2lkIGFjdGl2YXRlRm9udHMoKQog
ICAgICAgICBbZm9udFVSTHMgYWRkT2JqZWN0Oltmb250VVJMIGFic29sdXRlVVJMXV07CiAgICAg
fQogCi0gICAgQ0ZBcnJheVJlZiBlcnJvcnMgPSAwOworICAgIENGQXJyYXlSZWYgZXJyb3JzID0g
bnVsbHB0cjsKICAgICBpZiAoIUNURm9udE1hbmFnZXJSZWdpc3RlckZvbnRzRm9yVVJMcygoQ0ZB
cnJheVJlZilmb250VVJMcywga0NURm9udE1hbmFnZXJTY29wZVByb2Nlc3MsICZlcnJvcnMpKSB7
CiAgICAgICAgIE5TTG9nKEAiRmFpbGVkIHRvIGFjdGl2YXRlIGZvbnRzOiAlQCIsIGVycm9ycyk7
CiAgICAgICAgIENGUmVsZWFzZShlcnJvcnMpOwpAQCAtMTM4LDcgKzE0MiwxMyBAQCB2b2lkIGlu
c3RhbGxGYWtlSGVsdmV0aWNhKFdLU3RyaW5nUmVmIGNvbmZpZ3VyYXRpb24pCiAgICAgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBjb25maWd1cmF0aW9uU3RyaW5nID0gYWRvcHRDRihXS1N0cmluZ0Nv
cHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb25maWd1cmF0aW9uKSk7CiAgICAgTlNV
UkwgKnJlc291cmNlVVJMID0gW3Jlc291cmNlc0RpcmVjdG9yeVVSTCgpIFVSTEJ5QXBwZW5kaW5n
UGF0aENvbXBvbmVudDpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkZha2VIZWx2ZXRpY2Et
JUAudHRmIiwgY29uZmlndXJhdGlvblN0cmluZy5nZXQoKV0gaXNEaXJlY3Rvcnk6Tk9dOwogICAg
IENGRXJyb3JSZWYgZXJyb3IgPSBudWxscHRyOwotICAgIENURm9udE1hbmFnZXJSZWdpc3RlckZv
bnRzRm9yVVJMKHN0YXRpY19jYXN0PENGVVJMUmVmPihyZXNvdXJjZVVSTCksIGtDVEZvbnRNYW5h
Z2VyU2NvcGVQcm9jZXNzLCAmZXJyb3IpOworICAgIGlmICghQ1RGb250TWFuYWdlclJlZ2lzdGVy
Rm9udHNGb3JVUkwoc3RhdGljX2Nhc3Q8Q0ZVUkxSZWY+KHJlc291cmNlVVJMKSwga0NURm9udE1h
bmFnZXJTY29wZVByb2Nlc3MsICZlcnJvcikpIHsKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwCisgICAgICAgIC8vIFJlZ2lzdGVy
aW5nIHNoYWRvdyBmb250cyBpcyBvbmx5IHN1cHBvcnRlZCBvbiBtYWNPUyBNb2phdmUgb3IgbmV3
ZXIuIFNlZSBCdWdzIDE4MDA2MiAmIDE5NDc2MS4KKyAgICAgICAgTlNMb2coQCJGYWlsZWQgdG8g
YWN0aXZhdGUgZmFrZSBIZWx2ZXRpY2E6ICVAIiwgZXJyb3IpOworI2VuZGlmCisgICAgICAgIENG
UmVsZWFzZShlcnJvcik7CisgICAgfQogfQogCiB2b2lkIHVuaW5zdGFsbEZha2VIZWx2ZXRpY2Eo
KQo=
</data>
<flag name="review"
          id="379017"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
          </attachment>
      

    </bug>

</bugzilla>