Title: [231852] trunk
Revision
231852
Author
utatane....@gmail.com
Date
2018-05-16 10:50:38 -0700 (Wed, 16 May 2018)

Log Message

[Win] Use C++17 in MSVC
https://bugs.webkit.org/show_bug.cgi?id=185232

Reviewed by Alex Christensen.

.:

Use /std:c++17 option.

* Source/cmake/OptionsMSVC.cmake:

Source/ThirdParty:

Use std::tuple instead of std::tr1::tuple since std::tr1::tuple is removed in C++17 MSVC.
In a subsequent patch, we will upgrade gtest too.

* gtest/include/gtest/internal/gtest-param-util-generated.h:
(testing::internal::CartesianProductHolder2::operator ParamGenerator< ::std::tuple<T1, T2> > const):
(testing::internal::CartesianProductHolder3::operator ParamGenerator< ::std::tuple<T1, T2, T3> > const):
(testing::internal::CartesianProductHolder4::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4> > const):
(testing::internal::CartesianProductHolder5::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5> > const):
(testing::internal::CartesianProductHolder6::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6> > const):
(testing::internal::CartesianProductHolder7:: const):
(testing::internal::CartesianProductHolder8:: const):
(testing::internal::CartesianProductHolder9:: const):
(testing::internal::CartesianProductHolder10:: const):
(testing::internal::CartesianProductHolder2::operator ParamGenerator< ::std::tr1::tuple<T1, T2> > const): Deleted.
(testing::internal::CartesianProductHolder3::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3> > const): Deleted.
(testing::internal::CartesianProductHolder4::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4> > const): Deleted.
(testing::internal::CartesianProductHolder5::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5> > const): Deleted.
(testing::internal::CartesianProductHolder6::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> > const): Deleted.
* gtest/include/gtest/internal/gtest-tuple.h:

Source/WebCore:

Workaround for MSVC + /std:c++17.

* Modules/geolocation/Coordinates.h:
(WebCore::Coordinates::isolatedCopy const):

Source/WTF:

Disable some WebKit defined C++17 features for MSVC.

* wtf/StdLibExtras.h:

Tools:

Do not use `using namespace std;`. In C++17, we have std::byte. This "byte"
conflicts with ::byte defined in Windows' header.

* DumpRenderTree/TestNetscapePlugIn/win/WindowedPluginTest.cpp:
(WindowedPluginTest::WindowedPluginTest):
* DumpRenderTree/win/AccessibilityControllerWin.cpp:
(logEventProc):
(stringEvent):
(AccessibilityController::winNotificationReceived):
* DumpRenderTree/win/TextInputController.cpp:
(markedRangeCallback):
(firstRectForCharacterRangeCallback):
(selectedRangeCallback):
* DumpRenderTree/win/TextInputController.h:
* DumpRenderTree/win/TextInputControllerWin.cpp:
(TextInputController::markedRange):
(TextInputController::firstRectForCharacterRange):
(TextInputController::selectedRange):

Modified Paths

Diff

Modified: trunk/ChangeLog (231851 => 231852)


--- trunk/ChangeLog	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/ChangeLog	2018-05-16 17:50:38 UTC (rev 231852)
@@ -1,3 +1,14 @@
+2018-05-14  Yusuke Suzuki  <utatane....@gmail.com>
+
+        [Win] Use C++17 in MSVC
+        https://bugs.webkit.org/show_bug.cgi?id=185232
+
+        Reviewed by Alex Christensen.
+
+        Use /std:c++17 option.
+
+        * Source/cmake/OptionsMSVC.cmake:
+
 2018-05-16  Alberto Garcia  <be...@igalia.com>
 
         [CMake] Properly detect compiler flags, needed libs, and fallbacks for usage of 64-bit atomic operations

Modified: trunk/Source/ThirdParty/ChangeLog (231851 => 231852)


--- trunk/Source/ThirdParty/ChangeLog	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Source/ThirdParty/ChangeLog	2018-05-16 17:50:38 UTC (rev 231852)
@@ -1,3 +1,30 @@
+2018-05-14  Yusuke Suzuki  <utatane....@gmail.com>
+
+        [Win] Use C++17 in MSVC
+        https://bugs.webkit.org/show_bug.cgi?id=185232
+
+        Reviewed by Alex Christensen.
+
+        Use std::tuple instead of std::tr1::tuple since std::tr1::tuple is removed in C++17 MSVC.
+        In a subsequent patch, we will upgrade gtest too.
+
+        * gtest/include/gtest/internal/gtest-param-util-generated.h:
+        (testing::internal::CartesianProductHolder2::operator ParamGenerator< ::std::tuple<T1, T2> > const):
+        (testing::internal::CartesianProductHolder3::operator ParamGenerator< ::std::tuple<T1, T2, T3> > const):
+        (testing::internal::CartesianProductHolder4::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4> > const):
+        (testing::internal::CartesianProductHolder5::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5> > const):
+        (testing::internal::CartesianProductHolder6::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6> > const):
+        (testing::internal::CartesianProductHolder7:: const):
+        (testing::internal::CartesianProductHolder8:: const):
+        (testing::internal::CartesianProductHolder9:: const):
+        (testing::internal::CartesianProductHolder10:: const):
+        (testing::internal::CartesianProductHolder2::operator ParamGenerator< ::std::tr1::tuple<T1, T2> > const): Deleted.
+        (testing::internal::CartesianProductHolder3::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3> > const): Deleted.
+        (testing::internal::CartesianProductHolder4::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4> > const): Deleted.
+        (testing::internal::CartesianProductHolder5::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5> > const): Deleted.
+        (testing::internal::CartesianProductHolder6::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> > const): Deleted.
+        * gtest/include/gtest/internal/gtest-tuple.h:
+
 2018-05-10  Michael Catanzaro  <mcatanz...@igalia.com>
 
         Fix some -Wstring-op-truncation warnings

Modified: trunk/Source/ThirdParty/gtest/include/gtest/internal/gtest-param-util-generated.h (231851 => 231852)


--- trunk/Source/ThirdParty/gtest/include/gtest/internal/gtest-param-util-generated.h	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Source/ThirdParty/gtest/include/gtest/internal/gtest-param-util-generated.h	2018-05-16 17:50:38 UTC (rev 231852)
@@ -38,7 +38,7 @@
 // and at most 10 arguments in Combine. Please contact
 // googletestframew...@googlegroups.com if you need more.
 // Please note that the number of arguments to Combine is limited
-// by the maximum arity of the implementation of tr1::tuple which is
+// by the maximum arity of the implementation of tuple which is
 // currently set at 10.
 
 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
@@ -2834,9 +2834,9 @@
 //
 template <typename T1, typename T2>
 class CartesianProductGenerator2
-    : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2> > {
+    : public ParamGeneratorInterface< ::std::tuple<T1, T2> > {
  public:
-  typedef ::std::tr1::tuple<T1, T2> ParamType;
+  typedef ::std::tuple<T1, T2> ParamType;
 
   CartesianProductGenerator2(const ParamGenerator<T1>& g1,
       const ParamGenerator<T2>& g2)
@@ -2949,9 +2949,9 @@
 
 template <typename T1, typename T2, typename T3>
 class CartesianProductGenerator3
-    : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3> > {
+    : public ParamGeneratorInterface< ::std::tuple<T1, T2, T3> > {
  public:
-  typedef ::std::tr1::tuple<T1, T2, T3> ParamType;
+  typedef ::std::tuple<T1, T2, T3> ParamType;
 
   CartesianProductGenerator3(const ParamGenerator<T1>& g1,
       const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3)
@@ -3081,9 +3081,9 @@
 
 template <typename T1, typename T2, typename T3, typename T4>
 class CartesianProductGenerator4
-    : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4> > {
+    : public ParamGeneratorInterface< ::std::tuple<T1, T2, T3, T4> > {
  public:
-  typedef ::std::tr1::tuple<T1, T2, T3, T4> ParamType;
+  typedef ::std::tuple<T1, T2, T3, T4> ParamType;
 
   CartesianProductGenerator4(const ParamGenerator<T1>& g1,
       const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
@@ -3232,9 +3232,9 @@
 
 template <typename T1, typename T2, typename T3, typename T4, typename T5>
 class CartesianProductGenerator5
-    : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5> > {
+    : public ParamGeneratorInterface< ::std::tuple<T1, T2, T3, T4, T5> > {
  public:
-  typedef ::std::tr1::tuple<T1, T2, T3, T4, T5> ParamType;
+  typedef ::std::tuple<T1, T2, T3, T4, T5> ParamType;
 
   CartesianProductGenerator5(const ParamGenerator<T1>& g1,
       const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
@@ -3400,10 +3400,10 @@
 template <typename T1, typename T2, typename T3, typename T4, typename T5,
     typename T6>
 class CartesianProductGenerator6
-    : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5,
+    : public ParamGeneratorInterface< ::std::tuple<T1, T2, T3, T4, T5,
         T6> > {
  public:
-  typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> ParamType;
+  typedef ::std::tuple<T1, T2, T3, T4, T5, T6> ParamType;
 
   CartesianProductGenerator6(const ParamGenerator<T1>& g1,
       const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
@@ -3586,10 +3586,10 @@
 template <typename T1, typename T2, typename T3, typename T4, typename T5,
     typename T6, typename T7>
 class CartesianProductGenerator7
-    : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6,
+    : public ParamGeneratorInterface< ::std::tuple<T1, T2, T3, T4, T5, T6,
         T7> > {
  public:
-  typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7> ParamType;
+  typedef ::std::tuple<T1, T2, T3, T4, T5, T6, T7> ParamType;
 
   CartesianProductGenerator7(const ParamGenerator<T1>& g1,
       const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
@@ -3789,10 +3789,10 @@
 template <typename T1, typename T2, typename T3, typename T4, typename T5,
     typename T6, typename T7, typename T8>
 class CartesianProductGenerator8
-    : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6,
+    : public ParamGeneratorInterface< ::std::tuple<T1, T2, T3, T4, T5, T6,
         T7, T8> > {
  public:
-  typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8> ParamType;
+  typedef ::std::tuple<T1, T2, T3, T4, T5, T6, T7, T8> ParamType;
 
   CartesianProductGenerator8(const ParamGenerator<T1>& g1,
       const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
@@ -4011,10 +4011,10 @@
 template <typename T1, typename T2, typename T3, typename T4, typename T5,
     typename T6, typename T7, typename T8, typename T9>
 class CartesianProductGenerator9
-    : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6,
+    : public ParamGeneratorInterface< ::std::tuple<T1, T2, T3, T4, T5, T6,
         T7, T8, T9> > {
  public:
-  typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> ParamType;
+  typedef ::std::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> ParamType;
 
   CartesianProductGenerator9(const ParamGenerator<T1>& g1,
       const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
@@ -4250,10 +4250,10 @@
 template <typename T1, typename T2, typename T3, typename T4, typename T5,
     typename T6, typename T7, typename T8, typename T9, typename T10>
 class CartesianProductGenerator10
-    : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6,
+    : public ParamGeneratorInterface< ::std::tuple<T1, T2, T3, T4, T5, T6,
         T7, T8, T9, T10> > {
  public:
-  typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ParamType;
+  typedef ::std::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ParamType;
 
   CartesianProductGenerator10(const ParamGenerator<T1>& g1,
       const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
@@ -4515,8 +4515,8 @@
 CartesianProductHolder2(const Generator1& g1, const Generator2& g2)
       : g1_(g1), g2_(g2) {}
   template <typename T1, typename T2>
-  operator ParamGenerator< ::std::tr1::tuple<T1, T2> >() const {
-    return ParamGenerator< ::std::tr1::tuple<T1, T2> >(
+  operator ParamGenerator< ::std::tuple<T1, T2> >() const {
+    return ParamGenerator< ::std::tuple<T1, T2> >(
         new CartesianProductGenerator2<T1, T2>(
         static_cast<ParamGenerator<T1> >(g1_),
         static_cast<ParamGenerator<T2> >(g2_)));
@@ -4537,8 +4537,8 @@
     const Generator3& g3)
       : g1_(g1), g2_(g2), g3_(g3) {}
   template <typename T1, typename T2, typename T3>
-  operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3> >() const {
-    return ParamGenerator< ::std::tr1::tuple<T1, T2, T3> >(
+  operator ParamGenerator< ::std::tuple<T1, T2, T3> >() const {
+    return ParamGenerator< ::std::tuple<T1, T2, T3> >(
         new CartesianProductGenerator3<T1, T2, T3>(
         static_cast<ParamGenerator<T1> >(g1_),
         static_cast<ParamGenerator<T2> >(g2_),
@@ -4562,8 +4562,8 @@
     const Generator3& g3, const Generator4& g4)
       : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {}
   template <typename T1, typename T2, typename T3, typename T4>
-  operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4> >() const {
-    return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4> >(
+  operator ParamGenerator< ::std::tuple<T1, T2, T3, T4> >() const {
+    return ParamGenerator< ::std::tuple<T1, T2, T3, T4> >(
         new CartesianProductGenerator4<T1, T2, T3, T4>(
         static_cast<ParamGenerator<T1> >(g1_),
         static_cast<ParamGenerator<T2> >(g2_),
@@ -4589,8 +4589,8 @@
     const Generator3& g3, const Generator4& g4, const Generator5& g5)
       : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {}
   template <typename T1, typename T2, typename T3, typename T4, typename T5>
-  operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5> >() const {
-    return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5> >(
+  operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5> >() const {
+    return ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5> >(
         new CartesianProductGenerator5<T1, T2, T3, T4, T5>(
         static_cast<ParamGenerator<T1> >(g1_),
         static_cast<ParamGenerator<T2> >(g2_),
@@ -4620,8 +4620,8 @@
       : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {}
   template <typename T1, typename T2, typename T3, typename T4, typename T5,
       typename T6>
-  operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> >() const {
-    return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> >(
+  operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6> >() const {
+    return ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6> >(
         new CartesianProductGenerator6<T1, T2, T3, T4, T5, T6>(
         static_cast<ParamGenerator<T1> >(g1_),
         static_cast<ParamGenerator<T2> >(g2_),
@@ -4653,9 +4653,9 @@
       : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {}
   template <typename T1, typename T2, typename T3, typename T4, typename T5,
       typename T6, typename T7>
-  operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6,
+  operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6,
       T7> >() const {
-    return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7> >(
+    return ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6, T7> >(
         new CartesianProductGenerator7<T1, T2, T3, T4, T5, T6, T7>(
         static_cast<ParamGenerator<T1> >(g1_),
         static_cast<ParamGenerator<T2> >(g2_),
@@ -4691,9 +4691,9 @@
           g8_(g8) {}
   template <typename T1, typename T2, typename T3, typename T4, typename T5,
       typename T6, typename T7, typename T8>
-  operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7,
+  operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6, T7,
       T8> >() const {
-    return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8> >(
+    return ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6, T7, T8> >(
         new CartesianProductGenerator8<T1, T2, T3, T4, T5, T6, T7, T8>(
         static_cast<ParamGenerator<T1> >(g1_),
         static_cast<ParamGenerator<T2> >(g2_),
@@ -4732,9 +4732,9 @@
           g9_(g9) {}
   template <typename T1, typename T2, typename T3, typename T4, typename T5,
       typename T6, typename T7, typename T8, typename T9>
-  operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
+  operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
       T9> >() const {
-    return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
+    return ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
         T9> >(
         new CartesianProductGenerator9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(
         static_cast<ParamGenerator<T1> >(g1_),
@@ -4776,9 +4776,9 @@
           g9_(g9), g10_(g10) {}
   template <typename T1, typename T2, typename T3, typename T4, typename T5,
       typename T6, typename T7, typename T8, typename T9, typename T10>
-  operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
+  operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
       T9, T10> >() const {
-    return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
+    return ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
         T9, T10> >(
         new CartesianProductGenerator10<T1, T2, T3, T4, T5, T6, T7, T8, T9,
             T10>(

Modified: trunk/Source/ThirdParty/gtest/include/gtest/internal/gtest-tuple.h (231851 => 231852)


--- trunk/Source/ThirdParty/gtest/include/gtest/internal/gtest-tuple.h	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Source/ThirdParty/gtest/include/gtest/internal/gtest-tuple.h	2018-05-16 17:50:38 UTC (rev 231852)
@@ -912,7 +912,7 @@
   template <class Tuple1, class Tuple2>
   static bool Eq(const Tuple1& t1, const Tuple2& t2) {
     return SameSizeTuplePrefixComparator<k - 1, k - 1>::Eq(t1, t2) &&
-        ::std::tr1::get<k - 1>(t1) == ::std::tr1::get<k - 1>(t2);
+        ::std::get<k - 1>(t1) == ::std::get<k - 1>(t2);
   }
 };
 

Modified: trunk/Source/WTF/ChangeLog (231851 => 231852)


--- trunk/Source/WTF/ChangeLog	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Source/WTF/ChangeLog	2018-05-16 17:50:38 UTC (rev 231852)
@@ -1,5 +1,16 @@
 2018-05-14  Yusuke Suzuki  <utatane....@gmail.com>
 
+        [Win] Use C++17 in MSVC
+        https://bugs.webkit.org/show_bug.cgi?id=185232
+
+        Reviewed by Alex Christensen.
+
+        Disable some WebKit defined C++17 features for MSVC.
+
+        * wtf/StdLibExtras.h:
+
+2018-05-14  Yusuke Suzuki  <utatane....@gmail.com>
+
         [JSC] timeClip(-0) should produce +0
         https://bugs.webkit.org/show_bug.cgi?id=185589
 

Modified: trunk/Source/WTF/wtf/StdLibExtras.h (231851 => 231852)


--- trunk/Source/WTF/wtf/StdLibExtras.h	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Source/WTF/wtf/StdLibExtras.h	2018-05-16 17:50:38 UTC (rev 231852)
@@ -545,7 +545,7 @@
 
 // Provide in_place_t when not building with -std=c++17, or when building with libstdc++ 6
 // (which doesn't define the _GLIBCXX_RELEASE macro that's been introduced in libstdc++ 7).
-#if __cplusplus < 201703L || (defined(__GLIBCXX__) && !defined(_GLIBCXX_RELEASE))
+#if (__cplusplus < 201703L || (defined(__GLIBCXX__) && !defined(_GLIBCXX_RELEASE))) && (!defined(_MSC_FULL_VER) || _MSC_FULL_VER < 190023918)
 
 // These are inline variable for C++17 and later.
 #define __IN_PLACE_INLINE_VARIABLE static const

Modified: trunk/Source/WebCore/ChangeLog (231851 => 231852)


--- trunk/Source/WebCore/ChangeLog	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Source/WebCore/ChangeLog	2018-05-16 17:50:38 UTC (rev 231852)
@@ -1,3 +1,15 @@
+2018-05-14  Yusuke Suzuki  <utatane....@gmail.com>
+
+        [Win] Use C++17 in MSVC
+        https://bugs.webkit.org/show_bug.cgi?id=185232
+
+        Reviewed by Alex Christensen.
+
+        Workaround for MSVC + /std:c++17.
+
+        * Modules/geolocation/Coordinates.h:
+        (WebCore::Coordinates::isolatedCopy const):
+
 2018-05-16  Chris Nardi  <cna...@chromium.org>
 
         Remove Document#selectedStylesheetSet/preferredStylesheetSet

Modified: trunk/Source/WebCore/Modules/geolocation/Coordinates.h (231851 => 231852)


--- trunk/Source/WebCore/Modules/geolocation/Coordinates.h	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Source/WebCore/Modules/geolocation/Coordinates.h	2018-05-16 17:50:38 UTC (rev 231852)
@@ -41,7 +41,7 @@
 
     Ref<Coordinates> isolatedCopy() const
     {
-        return Coordinates::create( GeolocationPosition { m_position });
+        return Coordinates::create(GeolocationPosition(m_position));
     }
 
     double latitude() const { return m_position.latitude; }

Modified: trunk/Source/cmake/OptionsMSVC.cmake (231851 => 231852)


--- trunk/Source/cmake/OptionsMSVC.cmake	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Source/cmake/OptionsMSVC.cmake	2018-05-16 17:50:38 UTC (rev 231852)
@@ -29,6 +29,10 @@
 # Turn off certain link features
 add_compile_options(/Gy- /openmp- /GF-)
 
+# Enable C++17
+# https://docs.microsoft.com/en-us/cpp/build/reference/std-specify-language-standard-version
+add_compile_options(/std:c++17)
+
 # Specify the source code encoding
 add_compile_options(/utf-8 /validate-charset)
 

Modified: trunk/Tools/ChangeLog (231851 => 231852)


--- trunk/Tools/ChangeLog	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Tools/ChangeLog	2018-05-16 17:50:38 UTC (rev 231852)
@@ -1,3 +1,29 @@
+2018-05-14  Yusuke Suzuki  <utatane....@gmail.com>
+
+        [Win] Use C++17 in MSVC
+        https://bugs.webkit.org/show_bug.cgi?id=185232
+
+        Reviewed by Alex Christensen.
+
+        Do not use `using namespace std;`. In C++17, we have std::byte. This "byte"
+        conflicts with ::byte defined in Windows' header.
+
+        * DumpRenderTree/TestNetscapePlugIn/win/WindowedPluginTest.cpp:
+        (WindowedPluginTest::WindowedPluginTest):
+        * DumpRenderTree/win/AccessibilityControllerWin.cpp:
+        (logEventProc):
+        (stringEvent):
+        (AccessibilityController::winNotificationReceived):
+        * DumpRenderTree/win/TextInputController.cpp:
+        (markedRangeCallback):
+        (firstRectForCharacterRangeCallback):
+        (selectedRangeCallback):
+        * DumpRenderTree/win/TextInputController.h:
+        * DumpRenderTree/win/TextInputControllerWin.cpp:
+        (TextInputController::markedRange):
+        (TextInputController::firstRectForCharacterRange):
+        (TextInputController::selectedRange):
+
 2018-05-16  Sihui Liu  <sihui_...@apple.com>
 
         Session cookies aren't reliably set when using default WKWebSiteDataStore

Modified: trunk/Tools/DumpRenderTree/TestNetscapePlugIn/win/WindowedPluginTest.cpp (231851 => 231852)


--- trunk/Tools/DumpRenderTree/TestNetscapePlugIn/win/WindowedPluginTest.cpp	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Tools/DumpRenderTree/TestNetscapePlugIn/win/WindowedPluginTest.cpp	2018-05-16 17:50:38 UTC (rev 231852)
@@ -25,11 +25,9 @@
 
 #include "WindowedPluginTest.h"
 
-using namespace std;
-
 static const wchar_t instancePointerProperty[] = L"org.webkit.TestNetscapePlugin.WindowedPluginTest.InstancePointer";
 
-WindowedPluginTest::WindowedPluginTest(NPP npp, const string& identifier)
+WindowedPluginTest::WindowedPluginTest(NPP npp, const std::string& identifier)
     : PluginTest(npp, identifier)
     , m_window(0)
     , m_originalWndProc(0)

Modified: trunk/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp (231851 => 231852)


--- trunk/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp	2018-05-16 17:50:38 UTC (rev 231852)
@@ -42,8 +42,6 @@
 #include <wtf/Assertions.h>
 #include <wtf/text/AtomicString.h>
 
-using namespace std;
-
 AccessibilityController::AccessibilityController()
     : m_focusEventHook(0)
     , m_scrollingStartEventHook(0)
@@ -189,7 +187,7 @@
     _bstr_t nameBSTR;
     hr = parentObject->get_accName(vChild, &nameBSTR.GetBSTR());
     ASSERT(SUCCEEDED(hr));
-    wstring name(nameBSTR, nameBSTR.length());
+    std::wstring name(nameBSTR, nameBSTR.length());
 
     switch (event) {
         case EVENT_OBJECT_FOCUS:
@@ -204,7 +202,7 @@
             _bstr_t valueBSTR;
             hr = parentObject->get_accValue(vChild, &valueBSTR.GetBSTR());
             ASSERT(SUCCEEDED(hr));
-            wstring value(valueBSTR, valueBSTR.length());
+            std::wstring value(valueBSTR, valueBSTR.length());
 
             fprintf(testResult, "Received value change event for object '%S', value '%S'.\n", name.c_str(), value.c_str());
             break;
@@ -304,7 +302,7 @@
     ASSERT(m_allEventsHook);
 }
 
-static string stringEvent(DWORD event)
+static std::string stringEvent(DWORD event)
 {
     switch(event) {
         case EVENT_OBJECT_VALUECHANGE:
@@ -341,7 +339,7 @@
 {
 }
 
-void AccessibilityController::winNotificationReceived(PlatformUIElement element, const string& eventName)
+void AccessibilityController::winNotificationReceived(PlatformUIElement element, const std::string& eventName)
 {
     for (auto& slot : m_notificationListeners) {
         COMPtr<IServiceProvider> thisServiceProvider(Query, slot.key);

Modified: trunk/Tools/DumpRenderTree/win/TextInputController.cpp (231851 => 231852)


--- trunk/Tools/DumpRenderTree/win/TextInputController.cpp	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Tools/DumpRenderTree/win/TextInputController.cpp	2018-05-16 17:50:38 UTC (rev 231852)
@@ -80,7 +80,7 @@
 {
     TextInputController* controller = static_cast<TextInputController*>(JSObjectGetPrivate(thisObject));
     if (controller) {
-        vector<int> range = controller->markedRange();
+        std::vector<int> range = controller->markedRange();
         if (range.size() == 2) {
             JSValueRef argumentsArrayValues[] = { JSValueMakeNumber(context, range[0]), JSValueMakeNumber(context, range[1]) };
             JSObjectRef result = JSObjectMakeArray(context, sizeof(argumentsArrayValues) / sizeof(JSValueRef), argumentsArrayValues, exception);
@@ -122,7 +122,7 @@
     TextInputController* controller = static_cast<TextInputController*>(JSObjectGetPrivate(thisObject));
 
     if (controller) {
-        vector<int> rect = controller->firstRectForCharacterRange(start, length);
+        std::vector<int> rect = controller->firstRectForCharacterRange(start, length);
         if (rect.size() == 4) {
             JSValueRef argumentsArrayValues[] = 
             { 
@@ -145,7 +145,7 @@
     TextInputController* controller = static_cast<TextInputController*>(JSObjectGetPrivate(thisObject));
 
     if (controller) {
-        vector<int> rect = controller->selectedRange();
+        std::vector<int> rect = controller->selectedRange();
         if (rect.size() == 2) {
             JSValueRef argumentsArrayValues[] = { 
                 JSValueMakeNumber(context, rect[0]), 

Modified: trunk/Tools/DumpRenderTree/win/TextInputController.h (231851 => 231852)


--- trunk/Tools/DumpRenderTree/win/TextInputController.h	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Tools/DumpRenderTree/win/TextInputController.h	2018-05-16 17:50:38 UTC (rev 231852)
@@ -35,8 +35,6 @@
 #include <_javascript_Core/JSValueRef.h>
 #include <vector>
 
-using namespace std;
-
 class TextInputController {
 public:
     void makeWindowObject(JSContextRef, JSObjectRef windowObject, JSValueRef* exception);
@@ -44,10 +42,10 @@
     void setMarkedText(JSStringRef text, unsigned int from, unsigned int length);
     bool hasMarkedText();
     void unmarkText();
-    vector<int> markedRange();
+    std::vector<int> markedRange();
     void insertText(JSStringRef text);
-    vector<int> firstRectForCharacterRange(unsigned int start, unsigned int length);
-    vector<int> selectedRange();
+    std::vector<int> firstRectForCharacterRange(unsigned int start, unsigned int length);
+    std::vector<int> selectedRange();
 
 private:    
     static JSClassRef getJSClass();

Modified: trunk/Tools/DumpRenderTree/win/TextInputControllerWin.cpp (231851 => 231852)


--- trunk/Tools/DumpRenderTree/win/TextInputControllerWin.cpp	2018-05-16 17:25:13 UTC (rev 231851)
+++ trunk/Tools/DumpRenderTree/win/TextInputControllerWin.cpp	2018-05-16 17:50:38 UTC (rev 231852)
@@ -36,8 +36,6 @@
 #include <comutil.h>
 #include <string>
 
-using namespace std;
-
 void TextInputController::setMarkedText(JSStringRef text, unsigned int from, unsigned int length) 
 {    
     COMPtr<IWebView> webView;
@@ -82,10 +80,10 @@
     viewPrivate->confirmCompositionForTesting(empty);
 }
 
-vector<int> TextInputController::markedRange()
+std::vector<int> TextInputController::markedRange()
 {
     // empty vector
-    vector<int> result;
+    std::vector<int> result;
 
     COMPtr<IWebView> webView;
     if (FAILED(frame->webView(&webView)))
@@ -121,10 +119,10 @@
     viewPrivate->confirmCompositionForTesting(bstr);
 }
 
-vector<int> TextInputController::firstRectForCharacterRange(unsigned int start, unsigned int length)
+std::vector<int> TextInputController::firstRectForCharacterRange(unsigned int start, unsigned int length)
 {
     // empty vector
-    vector<int> result;
+    std::vector<int> result;
 
     COMPtr<IWebView> webView;
     if (FAILED(frame->webView(&webView)))
@@ -146,10 +144,10 @@
     return result;
 }
 
-vector<int> TextInputController::selectedRange()
+std::vector<int> TextInputController::selectedRange()
 {
     // empty vector
-    vector<int> result;
+    std::vector<int> result;
 
     COMPtr<IWebView> webView;
     if (FAILED(frame->webView(&webView)))
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to