<?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>150031</bug_id>
          
          <creation_ts>2015-10-12 09:31:27 -0700</creation_ts>
          <short_desc>[GTK] Fix MacCLang build errors in Tools</short_desc>
          <delta_ts>2015-10-30 01:33:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>126492</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>philip.chimento</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1132322</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-10-12 09:31:27 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132325</commentid>
    <comment_count>1</comment_count>
      <attachid>262892</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-10-12 09:38:13 -0700</bug_when>
    <thetext>Created attachment 262892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132721</commentid>
    <comment_count>2</comment_count>
      <attachid>262892</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-10-13 00:55:52 -0700</bug_when>
    <thetext>Comment on attachment 262892
Patch

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

I don&apos;t understand why the casts are needed.

&gt; Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:64
&gt; +    gtk_widget_destroy(GTK_WIDGET(m_window));

isn&apos;t m_window a GtkWidget* already? 

typedef GtkWidget *PlatformWindow;

&gt; Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:70
&gt; +    m_window = reinterpret_cast&lt;PlatformWindow&gt;(gtk_window_new(GTK_WINDOW_TOPLEVEL));
&gt; +    m_view = reinterpret_cast&lt;PlatformWKView&gt;(WKViewCreate(configuration));

I don&apos;t understand why we need the casts, gtk_window_new() returns a GtkWidget* and WKViewCreate a WKViewRef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132723</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-10-13 00:58:03 -0700</bug_when>
    <thetext>CLang errors out without the casts... I&apos;ll post the error messages here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135222</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-10-21 09:05:41 -0700</bug_when>
    <thetext>../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:62:5: error: no matching function for call to &apos;gtk_widget_destroy&apos;
    gtk_widget_destroy(m_window);
    ^~~~~~~~~~~~~~~~~~
../DependenciesGTK/Root/include/gtk-3.0/gtk/gtkwidget.h:639:6: note: candidate function not viable: cannot convert argument of incomplete type &apos;PlatformWindow&apos; (aka &apos;NSWindow *&apos;) to &apos;GtkWidget *&apos; (aka &apos;_GtkWidget *&apos;)
void gtk_widget_destroy (GtkWidget *widget);
     ^
../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:67:14: error: assigning to &apos;PlatformWindow&apos; (aka &apos;NSWindow *&apos;) from incompatible type &apos;GtkWidget *&apos; (aka &apos;_GtkWidget *&apos;)
    m_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:68:14: error: use of undeclared identifier &apos;WKViewCreate&apos;; did you mean &apos;WKSizeCreate&apos;?
    m_view = WKViewCreate(configuration);
             ^~~~~~~~~~~~
             WKSizeCreate
../../Source/WebKit2/Shared/API/c/WKGeometry.h:84:50: note: &apos;WKSizeCreate&apos; declared here
__attribute__((visibility(&quot;default&quot;))) WKSizeRef WKSizeCreate(WKSize size);
                                                 ^
../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:68:27: error: no viable conversion from &apos;WKPageConfigurationRef&apos; (aka &apos;const OpaqueWKPageConfiguration *&apos;) to &apos;WKSize&apos;
    m_view = WKViewCreate(configuration);
                          ^~~~~~~~~~~~~
../../Source/WebKit2/Shared/API/c/WKGeometry.h:49:8: note: candidate constructor (the implicit copy constructor) not viable: cannot convert argument of incomplete type &apos;WKPageConfigurationRef&apos; (aka &apos;const OpaqueWKPageConfiguration *&apos;) to &apos;const WKSize &amp;&apos;
struct WKSize {
       ^
../../Source/WebKit2/Shared/API/c/WKGeometry.h:49:8: note: candidate constructor (the implicit move constructor) not viable: cannot convert argument of incomplete type &apos;WKPageConfigurationRef&apos; (aka &apos;const OpaqueWKPageConfiguration *&apos;) to &apos;WKSize &amp;&amp;&apos;
struct WKSize {
       ^
../../Source/WebKit2/Shared/API/c/WKGeometry.h:84:70: note: passing argument to parameter &apos;size&apos; here
__attribute__((visibility(&quot;default&quot;))) WKSizeRef WKSizeCreate(WKSize size);
                                                                     ^
../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:71:5: error: no matching function for call to &apos;gtk_widget_show&apos;
    gtk_widget_show(m_window);
    ^~~~~~~~~~~~~~~
../DependenciesGTK/Root/include/gtk-3.0/gtk/gtkwidget.h:646:6: note: candidate function not viable: cannot convert argument of incomplete type &apos;PlatformWindow&apos; (aka &apos;NSWindow *&apos;) to &apos;GtkWidget *&apos; (aka &apos;_GtkWidget *&apos;)
void gtk_widget_show (GtkWidget *widget);
     ^
../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:76:12: error: use of undeclared identifier &apos;WKViewGetPage&apos;
    return WKViewGetPage(m_view);
           ^
../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:109:9: error: no matching function for call to &apos;gtk_widget_show&apos;
        gtk_widget_show(m_window);
        ^~~~~~~~~~~~~~~
../DependenciesGTK/Root/include/gtk-3.0/gtk/gtkwidget.h:646:6: note: candidate function not viable: cannot convert argument of incomplete type &apos;PlatformWindow&apos; (aka &apos;NSWindow *&apos;) to &apos;GtkWidget *&apos; (aka &apos;_GtkWidget *&apos;)
void gtk_widget_show (GtkWidget *widget);
     ^
../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:117:9: error: no matching function for call to &apos;gtk_widget_show&apos;
        gtk_widget_show(m_window);
        ^~~~~~~~~~~~~~~
../DependenciesGTK/Root/include/gtk-3.0/gtk/gtkwidget.h:646:6: note: candidate function not viable: cannot convert argument of incomplete type &apos;PlatformWindow&apos; (aka &apos;NSWindow *&apos;) to &apos;GtkWidget *&apos; (aka &apos;_GtkWidget *&apos;)
void gtk_widget_show (GtkWidget *widget);
     ^
../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:145:9: error: no matching function for call to &apos;gtk_widget_show&apos;
        gtk_widget_show(m_window);
        ^~~~~~~~~~~~~~~
../DependenciesGTK/Root/include/gtk-3.0/gtk/gtkwidget.h:646:6: note: candidate function not viable: cannot convert argument of incomplete type &apos;PlatformWindow&apos; (aka &apos;NSWindow *&apos;) to &apos;GtkWidget *&apos; (aka &apos;_GtkWidget *&apos;)
void gtk_widget_show (GtkWidget *widget);
     ^
../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:161:9: error: no matching function for call to &apos;gtk_widget_show&apos;
        gtk_widget_show(m_window);
        ^~~~~~~~~~~~~~~
../DependenciesGTK/Root/include/gtk-3.0/gtk/gtkwidget.h:646:6: note: candidate function not viable: cannot convert argument of incomplete type &apos;PlatformWindow&apos; (aka &apos;NSWindow *&apos;) to &apos;GtkWidget *&apos; (aka &apos;_GtkWidget *&apos;)
void gtk_widget_show (GtkWidget *widget);
     ^
10 errors generated.
[4446/4564] Building CXX object Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/gtk/PlatformWebViewGtk.cpp.o
FAILED: /usr/local/opt/ccache/libexec/c++   -DBUILDING_GTK__=1 -DBUILDING_WITH_CMAKE=1 -DDATA_DIR=\&quot;share\&quot; -DFONTS_CONF_DIR=\&quot;/Users/philn/dev/WebKit/Tools/WebKitTestRunner/gtk/fonts\&quot; -DGETTEXT_PACKAGE=\&quot;WebKit2GTK-4.0\&quot; -DHAVE_CONFIG_H=1 -DTOP_LEVEL_DIR=\&quot;/Users/philn/dev/WebKit\&quot; -DUSER_AGENT_GTK_MAJOR_VERSION=602 -DUSER_AGENT_GTK_MINOR_VERSION=1 -DWEBKITGTK_API_VERSION_STRING=\&quot;4.0\&quot; -std=c++11 -fcolor-diagnostics -Qunused-arguments -O3 -DNDEBUG -fno-exceptions -fno-strict-aliasing -fno-rtti -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -I../../Tools/WebKitTestRunner -I../../Tools/WebKitTestRunner/InjectedBundle -I../../Tools/WebKitTestRunner/InjectedBundle/Bindings -I../../Tools/WebKitTestRunner/InjectedBundle/atk -I../../Tools/WebKitTestRunner/UIScriptContext -I../../Tools/WebKitTestRunner/UIScriptContext/Bindings -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/ForwardingHeaders -IDerivedSources/JavaScriptCore -I../../Source/WebCore/editing -I../../Source/WebCore/platform -I../../Source/WebCore/platform/graphics -I../../Source/WebCore/platform/graphics/harfbuzz -I../../Source/WebCore/platform/graphics/harfbuzz/ng -I../../Source/WebCore/platform/network -I../../Source/WebCore/platform/text -I../../Source/WebCore/testing/js -I../../Source/WebKit2/Platform/IPC -I../../Source/WebKit2/Shared -I../../Source/WebKit2/Shared/API/c -I../../Source/WebKit2/Shared/Plugins -I../../Source/WebKit2/UIProcess -I../../Source/WebKit2/UIProcess/API/C/soup -I../../Source/WebKit2/WebProcess/InjectedBundle -I../../Source/WebKit2/WebProcess/InjectedBundle/API/c -I../../Source/WTF -IDerivedSources/InjectedBundle -IDerivedSources/UIScriptContext -I. -I../../Source -IDerivedSources/ForwardingHeaders -I../../Source/WTF/wtf/glib -isystem ../DependenciesGTK/Root/include/libsoup-2.4 -isystem ../DependenciesGTK/Root/include/atk-1.0 -isystem ../DependenciesGTK/Root/include/cairo -isystem ../DependenciesGTK/Root/include/gtk-3.0 -isystem ../DependenciesGTK/Root/include/gio-unix-2.0 -isystem ../DependenciesGTK/Root/include/pango-1.0 -isystem ../DependenciesGTK/Root/include/pixman-1 -isystem ../DependenciesGTK/Root/include/freetype2 -isystem ../DependenciesGTK/Root/include/libxml2 -isystem ../DependenciesGTK/Root/include/gdk-pixbuf-2.0 -isystem ../DependenciesGTK/Root/include/glib-2.0 -isystem ../DependenciesGTK/Root/lib/glib-2.0/include -isystem /usr/local/Cellar/libepoxy/1.3.1/include -isystem /usr/local/Cellar/libpng/1.6.18/include/libpng16 -MMD -MT Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/gtk/PlatformWebViewGtk.cpp.o -MF Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/gtk/PlatformWebViewGtk.cpp.o.d -o Tools/WebKitTestRunner/CMakeFiles/WebKitTestRunner.dir/gtk/PlatformWebViewGtk.cpp.o -c ../../Tools/WebKitTestRunner/gtk/PlatformWebViewGtk.cpp
../../Tools/WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:40:14: error: use of undeclared identifier &apos;WKViewCreate&apos;; did you mean &apos;WKSizeCreate&apos;?
    : m_view(WKViewCreate(configuration))
             ^~~~~~~~~~~~
             WKSizeCreate
../../Source/WebKit2/Shared/API/c/WKGeometry.h:84:50: note: &apos;WKSizeCreate&apos; declared here
__attribute__((visibility(&quot;default&quot;))) WKSizeRef WKSizeCreate(WKSize size);
                                                 ^
../../Tools/WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:40:27: error: no viable conversion from &apos;WKPageConfigurationRef&apos; (aka &apos;const OpaqueWKPageConfiguration *&apos;) to &apos;WKSize&apos;
    : m_view(WKViewCreate(configuration))
                          ^~~~~~~~~~~~~
../../Source/WebKit2/Shared/API/c/WKGeometry.h:49:8: note: candidate constructor (the implicit copy constructor) not viable: cannot convert argument of incomplete type &apos;WKPageConfigurationRef&apos; (aka &apos;const OpaqueWKPageConfiguration *&apos;) to &apos;const WKSize &amp;&apos;
struct WKSize {
       ^
../../Source/WebKit2/Shared/API/c/WKGeometry.h:49:8: note: candidate constructor (the implicit move constructor) not viable: cannot convert argument of incomplete type &apos;WKPageConfigurationRef&apos; (aka &apos;const OpaqueWKPageConfiguration *&apos;) to &apos;WKSize &amp;&amp;&apos;
struct WKSize {
       ^
../../Source/WebKit2/Shared/API/c/WKGeometry.h:84:70: note: passing argument to parameter &apos;size&apos; here
__attribute__((visibility(&quot;default&quot;))) WKSizeRef WKSizeCreate(WKSize size);
                                                                     ^
../../Tools/WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:76:12: error: use of undeclared identifier &apos;WKViewGetPage&apos;
    return WKViewGetPage(m_view);
           ^
3 errors generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135223</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-10-21 09:06:55 -0700</bug_when>
    <thetext>There is something fishy here. I&apos;ll rework this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135595</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-10-22 00:01:40 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; ../../Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:62:5: error: no
&gt; matching function for call to &apos;gtk_widget_destroy&apos;
&gt;     gtk_widget_destroy(m_window);
&gt;     ^~~~~~~~~~~~~~~~~~
&gt; ../DependenciesGTK/Root/include/gtk-3.0/gtk/gtkwidget.h:639:6: note:
&gt; candidate function not viable: cannot convert argument of incomplete type
&gt; &apos;PlatformWindow&apos; (aka &apos;NSWindow *&apos;) to &apos;GtkWidget *&apos; (aka &apos;_GtkWidget *&apos;)
&gt; void gtk_widget_destroy (GtkWidget *widget);
&gt;      ^

So, this is the actual problem, PlatformWindow is NSWindow and not GtkWidget as expected. A cast would fix the build, but will not work at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135692</commentid>
    <comment_count>7</comment_count>
      <attachid>263826</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-10-22 08:29:22 -0700</bug_when>
    <thetext>Created attachment 263826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136444</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-25 16:48:11 -0700</bug_when>
    <thetext>That looks better, though I wonder why you needed to use BUILDING_GTK_ instead of PLATFORM(GTK)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136501</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-10-26 00:49:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; That looks better, though I wonder why you needed to use BUILDING_GTK_
&gt; instead of PLATFORM(GTK)?

It is used below in the same file. I can replace all occurrences with PLATFORM(GTK) if needed...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137835</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2015-10-30 01:33:36 -0700</bug_when>
    <thetext>Committed r191783: &lt;http://trac.webkit.org/changeset/191783&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262892</attachid>
            <date>2015-10-12 09:38:13 -0700</date>
            <delta_ts>2015-10-22 08:29:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150031-20151012183736.patch</filename>
            <type>text/plain</type>
            <size>5861</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNzgyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjBiYjY4ODIxZjhlNzQ0Y2E2NzY4NTBiMWYyMGU1YTIw
ZTA3NTE5ZS4uMTE2YzViMzhjZGIxOWFjNGU3MzY0MzRjOWY2NDI3ZTRmNTgzMTU4MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDE1LTEwLTEyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXSBGaXggTWFjQ0xhbmcgYnVpbGQgZXJyb3JzIGluIFRvb2xzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAwMzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvUGxhdGZvcm1XZWJWaWV3Lmg6IEZpeCBQbGF0Zm9ybVdLVmlldyBhbmQgUGxhdGZvcm1XaW5k
b3cgZGVmaW5lcyBvbiBHVEsvTWFjLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1BsYXRm
b3JtV2ViVmlld0d0ay5jcHA6IEZpeCBjYXN0IGVycm9ycyBzcG90dGVkIGJ5IENMYW5nLgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVNwYWNlYmFyS2V5UHJlc3Mp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZUFsdEtl
eVByZXNzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxh
dGVSaWdodENsaWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6
c2ltdWxhdGVNb3VzZU1vdmUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRm
b3JtV2ViVmlld0d0ay5jcHA6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZv
cm1XZWJWaWV3KToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJW
aWV3KToKKwogMjAxNS0xMC0wOSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIEZpeCB3ZWJraXRweSB0ZXN0cyBhZnRlciByMTkwNzc5CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCBlYjYzMmUyNTk1NGE0MTc0ZDQ1MDFkMTUxYmM2
YjJhNTM3YmExNzY4Li42NjIxZDkyZjdkNDE3ZmY1NWNmZjA4ZjI1OGM5ZDYzOTlkYzQ3OGU3IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTM0LDcgKzM0LDcgQEAKICNp
bmNsdWRlIDxvYmpjL29iamMuaD4KICNlbmRpZgogCi0jaWZkZWYgX19BUFBMRV9fCisjaWYgZGVm
aW5lZChfX0FQUExFX18pICYmICFQTEFURk9STShHVEspCiAjaWZkZWYgX19PQkpDX18KIEBjbGFz
cyBXS1ZpZXc7CiBAY2xhc3MgTlNXaW5kb3c7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsv
UGxhdGZvcm1XZWJWaWV3R3RrLmNwcAppbmRleCBmMmY2YTFiNzI2NmYzN2UwMTgxMjFmMjYwMWRi
YzJjM2Y2YWQwOWZlLi5iNjQ0ODkwZDlkNzNiYzAxOTg2MzhjMjBhNDRiMjg4OWE4ZDVlODE4IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKQEAg
LTI4LDYgKzI4LDggQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXcuaD4K
KwogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+
CiAKQEAgLTU5LDIxICs2MSwyMSBAQCBQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhX
S1BhZ2VSZWYgcmVsYXRlZFBhZ2UpCiAKIFBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmll
dygpCiB7Ci0gICAgZ3RrX3dpZGdldF9kZXN0cm95KG1fd2luZG93KTsKKyAgICBndGtfd2lkZ2V0
X2Rlc3Ryb3koR1RLX1dJREdFVChtX3dpbmRvdykpOwogfQogCiB2b2lkIFBsYXRmb3JtV2ViVmll
dzo6aW5pdGlhbGl6ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCiB7Ci0g
ICAgbV93aW5kb3cgPSBndGtfd2luZG93X25ldyhHVEtfV0lORE9XX1RPUExFVkVMKTsKLSAgICBt
X3ZpZXcgPSBXS1ZpZXdDcmVhdGUoY29uZmlndXJhdGlvbik7CisgICAgbV93aW5kb3cgPSByZWlu
dGVycHJldF9jYXN0PFBsYXRmb3JtV2luZG93PihndGtfd2luZG93X25ldyhHVEtfV0lORE9XX1RP
UExFVkVMKSk7CisgICAgbV92aWV3ID0gcmVpbnRlcnByZXRfY2FzdDxQbGF0Zm9ybVdLVmlldz4o
V0tWaWV3Q3JlYXRlKGNvbmZpZ3VyYXRpb24pKTsKICAgICBndGtfY29udGFpbmVyX2FkZChHVEtf
Q09OVEFJTkVSKG1fd2luZG93KSwgR1RLX1dJREdFVChtX3ZpZXcpKTsKICAgICBndGtfd2lkZ2V0
X3Nob3coR1RLX1dJREdFVChtX3ZpZXcpKTsKLSAgICBndGtfd2lkZ2V0X3Nob3cobV93aW5kb3cp
OworICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKG1fd2luZG93KSk7CiB9CiAKIFdLUGFn
ZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UoKSBjb25zdAogewotICAgIHJldHVybiBXS1ZpZXdH
ZXRQYWdlKG1fdmlldyk7CisgICAgcmV0dXJuIFdLVmlld0dldFBhZ2UocmVpbnRlcnByZXRfY2Fz
dDxXS1ZpZXdSZWY+KG1fdmlldykpOwogfQogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVzaXpl
VG8odW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKQEAgLTEwNiw3ICsxMDgsNyBAQCB2
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKCkKIHsKICAgICBH
dGtXaWRnZXQqIHZpZXdXaWRnZXQgPSBHVEtfV0lER0VUKG1fdmlldyk7CiAgICAgaWYgKCFndGtf
d2lkZ2V0X2dldF9yZWFsaXplZCh2aWV3V2lkZ2V0KSkKLSAgICAgICAgZ3RrX3dpZGdldF9zaG93
KG1fd2luZG93KTsKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQobV93aW5kb3cp
KTsKICAgICBkb0tleVN0cm9rZSh2aWV3V2lkZ2V0LCBHREtfS0VZX0tQX1NwYWNlKTsKIH0KIApA
QCAtMTE0LDcgKzExNiw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZUFsdEtleVBy
ZXNzKCkKIHsKICAgICBHdGtXaWRnZXQqIHZpZXdXaWRnZXQgPSBHVEtfV0lER0VUKG1fdmlldyk7
CiAgICAgaWYgKCFndGtfd2lkZ2V0X2dldF9yZWFsaXplZCh2aWV3V2lkZ2V0KSkKLSAgICAgICAg
Z3RrX3dpZGdldF9zaG93KG1fd2luZG93KTsKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19X
SURHRVQobV93aW5kb3cpKTsKICAgICBkb0tleVN0cm9rZSh2aWV3V2lkZ2V0LCBHREtfS0VZX0Fs
dF9MKTsKIH0KIApAQCAtMTQyLDcgKzE0NCw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11
bGF0ZVJpZ2h0Q2xpY2sodW5zaWduZWQgeCwgdW5zaWduZWQgeSkKIHsKICAgICBHdGtXaWRnZXQq
IHZpZXdXaWRnZXQgPSBHVEtfV0lER0VUKG1fdmlldyk7CiAgICAgaWYgKCFndGtfd2lkZ2V0X2dl
dF9yZWFsaXplZCh2aWV3V2lkZ2V0KSkKLSAgICAgICAgZ3RrX3dpZGdldF9zaG93KG1fd2luZG93
KTsKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQobV93aW5kb3cpKTsKICAgICBk
b01vdXNlQnV0dG9uRXZlbnQodmlld1dpZGdldCwgR0RLX0JVVFRPTl9QUkVTUywgeCwgeSwgMyk7
CiAgICAgZG9Nb3VzZUJ1dHRvbkV2ZW50KHZpZXdXaWRnZXQsIEdES19CVVRUT05fUkVMRUFTRSwg
eCwgeSwgMyk7CiB9CkBAIC0xNTgsNyArMTYwLDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNp
bXVsYXRlTW91c2VNb3ZlKHVuc2lnbmVkIHgsIHVuc2lnbmVkIHkpCiAKICAgICBHdGtXaWRnZXQq
IHZpZXdXaWRnZXQgPSBHVEtfV0lER0VUKG1fdmlldyk7CiAgICAgaWYgKCFndGtfd2lkZ2V0X2dl
dF9yZWFsaXplZCh2aWV3V2lkZ2V0KSkKLSAgICAgICAgZ3RrX3dpZGdldF9zaG93KG1fd2luZG93
KTsKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KEdUS19XSURHRVQobV93aW5kb3cpKTsKICAgICBl
dmVudC0+bW90aW9uLndpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3dpbmRvdyh2aWV3V2lkZ2V0KTsK
ICAgICBnX29iamVjdF9yZWYoZXZlbnQtPm1vdGlvbi53aW5kb3cpOwogICAgIGV2ZW50LT5tb3Rp
b24uZGV2aWNlID0gZ2RrX2RldmljZV9tYW5hZ2VyX2dldF9jbGllbnRfcG9pbnRlcihnZGtfZGlz
cGxheV9nZXRfZGV2aWNlX21hbmFnZXIoZ3RrX3dpZGdldF9nZXRfZGlzcGxheSh2aWV3V2lkZ2V0
KSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJW
aWV3R3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0
ay5jcHAKaW5kZXggMDY2NDczMGJhMzE1N2Y0MWIyMjdlMzc0YjY5NTMzNDQ1NTU1MDFjZi4uNDNk
YzUyNTM5OWY5NDQ0ODM5MzgxMzM0OWE2NzNmNTI2MDVhNDY0MiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAKICNpbmNsdWRlIDxXZWJLaXQvV0tJbWFnZUNhaXJvLmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLUGFnZUNvbmZpZ3VyYXRpb25SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3Lmg+CiAj
aW5jbHVkZSA8V2ViS2l0L1dLVmlld1ByaXZhdGUuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAj
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTM4LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdU
UiB7CiAKIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBt
X3ZpZXcoV0tWaWV3Q3JlYXRlKGNvbmZpZ3VyYXRpb24pKQotICAgICwgbV93aW5kb3coZ3RrX3dp
bmRvd19uZXcoR1RLX1dJTkRPV19QT1BVUCkpCisgICAgLCBtX3dpbmRvdyhyZWludGVycHJldF9j
YXN0PFBsYXRmb3JtV2luZG93PihndGtfd2luZG93X25ldyhHVEtfV0lORE9XX1BPUFVQKSkpCiAg
ICAgLCBtX3dpbmRvd0lzS2V5KHRydWUpCiAgICAgLCBtX29wdGlvbnMob3B0aW9ucykKIHsKQEAg
LTU1LDcgKzU2LDcgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29u
ZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBUZXMKIAogUGxhdGZvcm1XZWJWaWV3
Ojp+UGxhdGZvcm1XZWJWaWV3KCkKIHsKLSAgICBndGtfd2lkZ2V0X2Rlc3Ryb3kobV93aW5kb3cp
OworICAgIGd0a193aWRnZXRfZGVzdHJveShHVEtfV0lER0VUKG1fd2luZG93KSk7CiB9CiAKIHZv
aWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dJc0tleShib29sIGlzS2V5KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263826</attachid>
            <date>2015-10-22 08:29:22 -0700</date>
            <delta_ts>2015-10-30 01:29:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150031-20151022172837.patch</filename>
            <type>text/plain</type>
            <size>2941</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNDUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGRiMmY0OTU4YTFlYTg0NzI1ZTgyNGRmNmFmZjEzZjdk
M2VkMmM0MS4uODM5MWM2YzIzZjdiYjQ5NTM4NDg5MGZjNzU4NGIzMWNlYjViZmIyYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE1LTEwLTIyICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXSBGaXggTWFjQ0xhbmcgYnVpbGQgZXJyb3JzIGluIFRvb2xzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAwMzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvUGxhdGZvcm1XZWJWaWV3Lmg6IEZpeCBQbGF0Zm9ybVdpbmRvdyB0eXBlZGVmIG9uIE9TWCBm
bGF2b3Igb2YgdGhlIEdUSyBwb3J0LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1BsYXRm
b3JtV2ViVmlld0d0ay5jcHA6IEluY2x1ZGUgV0tWaWV3LmggZm9yIFdLVmlld0NyZWF0ZSgpLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6IEZpeCBQbGF0Zm9y
bVdpbmRvdyB0eXBlZGVmIG9uIE9TWCBmbGF2b3Igb2YgdGhlIEdUSyBwb3J0LgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHA6IEluY2x1ZGUgV0tW
aWV3LmggZm9yIFdLVmlld0NyZWF0ZSgpLgorCiAyMDE1LTEwLTIyICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxODE5NzIpOiBTY3JvbGwg
cG9zaXRpb24gY2hhbmdlcyB0byB0b3Agb2YgeW91dHViZSBwYWdlIHdoZW4gc3dpdGNoaW5nIHRh
YnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmggYi9U
b29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IGViNjMyZTI1OTU0YTQx
NzRkNDUwMWQxNTFiYzZiMmE1MzdiYTE3NjguLjY2MjFkOTJmN2Q0MTdmZjU1Y2ZmMDhmMjU4Yzlk
NjM5OWRjNDc4ZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJW
aWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtMzQs
NyArMzQsNyBAQAogI2luY2x1ZGUgPG9iamMvb2JqYy5oPgogI2VuZGlmCiAKLSNpZmRlZiBfX0FQ
UExFX18KKyNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgIVBMQVRGT1JNKEdUSykKICNpZmRlZiBf
X09CSkNfXwogQGNsYXNzIFdLVmlldzsKIEBjbGFzcyBOU1dpbmRvdzsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCmluZGV4IGYyZjZhMWI3MjY2ZjM3
ZTAxODEyMWYyNjAxZGJjMmMzZjZhZDA5ZmUuLmIzN2NlZDc0ZTliMDk5MGNiOGZhMjk1ODc1NzVl
OTljNjdmNjY5OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1BsYXRmb3Jt
V2ViVmlld0d0ay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvUGxhdGZvcm1XZWJW
aWV3R3RrLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVl
UHRyR3RrLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLVmlldy5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9H
VW5pcXVlUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCmlu
ZGV4IDU1NjY0YzhiNGMxYTllMjI4ODAzMmY4MGNiNWUzY2U5ZGIwZGQ0MTEuLmM4MjZhMWFiODlj
ZjRiZDQwN2MzMWYyZjY4NTVkY2VjNGNmMDc1MjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdlYlZpZXcuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIlRlc3RPcHRpb25z
LmgiCiAjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CiAKLSNpZiBQTEFURk9STShDT0NP
QSkKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgIWRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjaW5j
bHVkZSA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpDX0NM
QVNTIFVJVmlldzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRm
b3JtV2ViVmlld0d0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9QbGF0Zm9ybVdl
YlZpZXdHdGsuY3BwCmluZGV4IDA2NjQ3MzBiYTMxNTdmNDFiMjI3ZTM3NGI2OTUzMzQ0NTU1NTAx
Y2YuLmJlY2IxNzA1ZDM3NGFjZGNkZTdlZGJiYWFiOGVmZDJkMjQzNzk1ZGUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcApAQCAtMzAs
NiArMzAsNyBAQAogCiAjaW5jbHVkZSA8V2ViS2l0L1dLSW1hZ2VDYWlyby5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVmll
dy5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXdQcml2YXRlLmg+CiAjaW5jbHVkZSA8Z3RrL2d0
ay5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Cg==
</data>
<flag name="review"
          id="288938"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>