wk2-gtk does not display anything
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Apr 2014 16:00:45 +0000 (16:00 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Apr 2014 16:00:45 +0000 (16:00 +0000)
https://bugs.webkit.org/show_bug.cgi?id=125558

Reviewed by Martin Robinson.

Remove fcntl call to set access mode flags on the duplicated files
descriptor. Those flags are ignored in Linux and make fcntl to
fail in FreeBSD. We should handle the case where the passed
protection is ReadOnly.
Thanks to Raphael Kubo da Costa who proposed the solution.

* Platform/unix/SharedMemoryUnix.cpp:
(WebKit::SharedMemory::createHandle):
(WebKit::accessModeFile): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@167128 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/Platform/unix/SharedMemoryUnix.cpp

index 9123623..32c1f66 100644 (file)
@@ -1,3 +1,20 @@
+2014-04-11  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        wk2-gtk does not display anything
+        https://bugs.webkit.org/show_bug.cgi?id=125558
+
+        Reviewed by Martin Robinson.
+
+        Remove fcntl call to set access mode flags on the duplicated files
+        descriptor. Those flags are ignored in Linux and make fcntl to
+        fail in FreeBSD. We should handle the case where the passed
+        protection is ReadOnly.
+        Thanks to Raphael Kubo da Costa who proposed the solution.
+
+        * Platform/unix/SharedMemoryUnix.cpp:
+        (WebKit::SharedMemory::createHandle):
+        (WebKit::accessModeFile): Deleted.
+
 2014-04-11  Zan Dobersek  <zdobersek@igalia.com>
 
         [GTK][WK2] Move Vector objects into WebEditorClient::executePendingEditorCommands() invocations
index 7781806..399e13f 100644 (file)
@@ -179,24 +179,14 @@ SharedMemory::~SharedMemory()
     closeWithRetry(m_fileDescriptor);
 }
 
-static inline int accessModeFile(SharedMemory::Protection protection)
-{
-    switch (protection) {
-    case SharedMemory::ReadOnly:
-        return O_RDONLY;
-    case SharedMemory::ReadWrite:
-        return O_RDWR;
-    }
-
-    ASSERT_NOT_REACHED();
-    return O_RDWR;
-}
-
-bool SharedMemory::createHandle(Handle& handle, Protection protection)
+bool SharedMemory::createHandle(Handle& handle, Protection)
 {
     ASSERT_ARG(handle, !handle.m_size);
     ASSERT_ARG(handle, handle.isNull());
 
+    // FIXME: Handle the case where the passed Protection is ReadOnly.
+    // See https://bugs.webkit.org/show_bug.cgi?id=131542.
+
     int duplicatedHandle;
     while ((duplicatedHandle = dup(m_fileDescriptor)) == -1) {
         if (errno != EINTR) {
@@ -205,7 +195,7 @@ bool SharedMemory::createHandle(Handle& handle, Protection protection)
         }
     }
 
-    while (fcntl(duplicatedHandle, F_SETFD, FD_CLOEXEC) == -1 || fcntl(duplicatedHandle, F_SETFL, accessModeFile(protection)) == -1) {
+    while (fcntl(duplicatedHandle, F_SETFD, FD_CLOEXEC) == -1) {
         if (errno != EINTR) {
             ASSERT_NOT_REACHED();
             closeWithRetry(duplicatedHandle);