Compare commits

...
This repository has been archived on 2026-09-10. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.

52 commits

Author SHA1 Message Date
Tomas Popela
256d15f664 Package was renamed to webkit2gtk3 2018-01-12 15:49:56 +01:00
Tomas Popela
03f6a2b2a6 Update to 2.19.5 2018-01-09 19:19:46 +01:00
Tomas Popela
ed730dc62d Update to 2.19.4 2018-01-09 13:13:41 +01:00
Tomas Popela
4cd57b35c6 Fix licenses
The build previously failed because one license was removed.
2017-12-13 16:55:13 +01:00
Tomas Popela
6fef8df7e0 Update to 2.19.3
Enable bmalloc again
2017-12-13 13:40:49 +01:00
b2c4344b8a Rebuild for ICU 60.1 2017-11-30 20:55:48 +00:00
Tomas Popela
87938f22d0 Fix compilation with BMalloc turned off 2017-11-30 15:28:00 +01:00
Tomas Popela
903c50089b Temporarily disable bmalloc 2017-11-30 07:52:45 +01:00
Tomas Popela
d514a8e303 Fix the build by including the missing file in tarball 2017-11-21 13:19:50 +01:00
Tomas Popela
1e50340e23 Add perl-File-Copy-Recursive to BR
And sort them.
2017-11-21 11:32:53 +01:00
Tomas Popela
3c86d3a40a Update to 2.19.2 2017-11-21 10:09:43 +01:00
Kalev Lember
1b94869d1b Fix gir directory ownership
Co-own the directories to make sure they get correctly removed when
uninstalling webkitgtk4.
2017-11-02 16:23:40 +01:00
Tomas Popela
465ca38ebe Update to 2.19.1 2017-10-31 17:11:53 +01:00
Tomas Popela
8f1c976234 Update to 2.18.2 2017-10-27 15:20:57 +02:00
Vít Ondruch
735ef250a3 Drop the explicit dependnecy on rubypick.
Better then depend on rubypick would be dependency on %{_bindir}/ruby. But
rubypick is pulled in via transitive dependencies anyway, so drop the
dependnecy altogether.
2017-10-26 12:23:02 +02:00
Tomas Popela
9f6f6e7617 Update to 2.18.1 2017-10-18 13:11:49 +02:00
Richard W.M. Jones
9c5df2c6b5 Rebuild to try to fix: libwebkit2gtk-4.0.so.37: undefined symbol:
soup_auth_manager_clear_cached_credentials
2017-09-13 21:38:23 +01:00
Tomas Popela
912491272f Fix JSC on big-endian arches 2017-09-11 14:50:20 +02:00
Tomas Popela
215dc52413 Commit SPEC file changes 2017-09-11 14:43:00 +02:00
Tomas Popela
0987868e44 Update to 2.18.0 2017-09-11 14:42:18 +02:00
Tomas Popela
0d98b2f496 Update to 2.17.92 2017-09-05 13:41:39 +02:00
Tomas Popela
524bbde06b Update to 2.17.91 2017-08-18 13:45:59 +02:00
Tomas Popela
5cb6048bb7 Update to 2.17.90 2017-08-09 13:33:58 +02:00
Fedora Release Engineering
8c528317d9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-03 10:13:46 +00:00
Tomas Popela
c4e47114bb Package WebKitWebDriver 2017-07-27 15:38:52 +02:00
Tomas Popela
836c7e33f5 Add missing BR on mesa-libGLES-devel 2017-07-27 13:12:00 +02:00
Tomas Popela
f3e6fa7795 Add missing BR 2017-07-26 11:20:01 +02:00
Tomas Popela
bcb93fa2b3 Update to 2.17.5 2017-07-26 10:43:24 +02:00
Tomas Popela
09677f6049 Rebuild for rhbz#1470692 2017-07-20 14:41:03 +02:00
Richard W.M. Jones
22bb3816ca Bump release and rebuild to attempt to fix _ZSt11__once_call
dynamic linking problem (RHBZ#1470692).

I tested this first in a scratch build and it appears to have fixed
the problem I was having with emacs on ppc64le.
2017-07-18 23:40:52 +01:00
Kalev Lember
cf7fc828d1 Add a missing build dep 2017-07-17 20:52:47 +02:00
Tomas Popela
78d867a7c3 Take two on increasing the DIE limit 2017-06-21 09:54:56 +02:00
Tomas Popela
48f41182c3 Fix compilation on secondary arches 2017-06-20 11:42:42 +02:00
Tomas Popela
d6ca44dda9 Fix build with gcc 7 2017-06-19 14:40:22 +02:00
Tomas Popela
37c684a2a2 Remove patches that were upstreamed 2017-06-19 13:59:59 +02:00
Tomas Popela
e9d5b2e8ca Update to 2.17.4 2017-06-19 13:17:06 +02:00
Tomas Popela
fedeb167b3 Increase the DIE limit so our debuginfo packages could be size optimized - rhbz#1456261 2017-06-19 11:34:12 +02:00
Tomas Popela
27eaaaa205 Update the last patch to the upstream version 2017-05-23 09:21:05 +02:00
Tomas Popela
c5f5b3a966 Fix the latest patch 2017-05-22 16:03:37 +02:00
Tomas Popela
214df592e5 Fix the compilation on arches where we don't use bmalloc 2017-05-22 15:52:14 +02:00
Tomas Popela
f93ef446ca Update to 2.17.3 2017-05-22 11:28:54 +02:00
Fedora Release Engineering
ca6f0d7140 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild 2017-05-15 20:21:27 +00:00
Tomas Popela
2a9683ba70 Update to 2.17.2 2017-05-15 10:48:10 +02:00
Michael Catanzaro
c24eeac162 Update to 2.17.1 2017-05-09 07:54:30 -05:00
Tomas Popela
1c1d5ef171 Enable JIT and bmalloc on aarch64 and MIPS 2017-04-10 16:11:37 +02:00
Tomas Popela
e0b63c1539 Add patch for freezing regression 2017-04-06 10:35:54 +02:00
Tomas Popela
760c3fb60e Update the SPEC file 2017-04-04 10:38:21 +02:00
Tomas Popela
04714da99b Update to 2.16.1 2017-04-04 10:37:35 +02:00
Tomas Popela
e8f4b0235c Update to 2.16.0 2017-03-20 14:06:26 +01:00
Tomas Popela
ba406e12bd Update the specfile 2017-03-14 10:42:37 +01:00
Tomas Popela
c1ad2a110f Update to 2.15.92 2017-03-14 10:41:46 +01:00
Tomas Popela
0627c6c7ad Update to 2.15.91 2017-03-01 15:50:57 +01:00
8 changed files with 1 additions and 1362 deletions

53
.gitignore vendored
View file

@ -1,53 +0,0 @@
/webkitgtk-2.5.3.tar.xz
/webkitgtk-2.5.90.tar.xz
/webkitgtk-2.6.0.tar.xz
/webkitgtk-2.6.1.tar.xz
/webkitgtk-2.6.2.tar.xz
/webkitgtk-2.7.1.tar.xz
/webkitgtk-2.7.2.tar.xz
/webkitgtk-2.7.3.tar.xz
/webkitgtk-2.7.4.tar.xz
/webkitgtk-2.7.90.tar.xz
/webkitgtk-2.7.91.tar.xz
/webkitgtk-2.7.92.tar.xz
/webkitgtk-2.8.0.tar.xz
/webkitgtk-2.8.1.tar.xz
/webkitgtk-2.9.1.tar.xz
/webkitgtk-2.9.2.tar.xz
/webkitgtk-2.9.3.tar.xz
/webkitgtk-2.9.4.tar.xz
/webkitgtk-2.9.5.tar.xz
/webkitgtk-2.9.90.tar.xz
/webkitgtk-2.9.91.tar.xz
/webkitgtk-2.9.92.tar.xz
/webkitgtk-2.10.0.tar.xz
/webkitgtk-2.10.1.tar.xz
/webkitgtk-2.10.2.tar.xz
/webkitgtk-2.10.3.tar.xz
/webkitgtk-2.11.1.tar.xz
/webkitgtk-2.11.2.tar.xz
/webkitgtk-2.11.3.tar.xz
/webkitgtk-2.11.4.tar.xz
/webkitgtk-2.11.5.tar.xz
/webkitgtk-2.11.90.tar.xz
/webkitgtk-2.11.91.tar.xz
/webkitgtk-2.11.92.tar.xz
/webkitgtk-2.12.0.tar.xz
/webkitgtk-2.12.1.tar.xz
/webkitgtk-2.12.2.tar.xz
/webkitgtk-2.12.3.tar.xz
/webkitgtk-2.13.1.tar.xz
/webkitgtk-2.13.2.tar.xz
/webkitgtk-2.13.3.tar.xz
/webkitgtk-2.13.4.tar.xz
/webkitgtk-2.13.90.tar.xz
/webkitgtk-2.13.91.tar.xz
/webkitgtk-2.13.92.tar.xz
/webkitgtk-2.14.0.tar.xz
/webkitgtk-2.14.1.tar.xz
/webkitgtk-2.15.1.tar.xz
/webkitgtk-2.14.2.tar.xz
/webkitgtk-2.15.2.tar.xz
/webkitgtk-2.15.3.tar.xz
/webkitgtk-2.15.4.tar.xz
/webkitgtk-2.15.90.tar.xz

View file

@ -1,589 +0,0 @@
From 7e013c8c5ff959cd71a939a4795ef7dfc18a51f1 Mon Sep 17 00:00:00 2001
From: Carlos Garcia Campos <cgarcia@igalia.com>
Date: Fri, 24 Feb 2017 13:03:14 +0100
Subject: [PATCH] [GTK] Hangs when showing Google search results
https://bugs.webkit.org/show_bug.cgi?id=168699
Reviewed by NOBODY (OOPS!).
Connection::sendOutgoingMessage() can poll forever if sendmsg fails with EAGAIN or EWOULDBLOCK. For example if
socket read buffers are full, poll will be blocked until we read the pending data, but we can't read because
the thread is blocked in the poll. In case of EAGAIN/EWOULDBLOCK we should poll using the run loop, to allow
reads to happen in thread while we wait for the socket to be writable again. In the GTK+ port we use
GSocketMonitor to poll socket file descriptor without blocking, using the run loop. This patch renames the
socket monitor as readSocketMonitor and adds another one for polling output. When sendmsg fails with
EAGAIN/EWOULDBLOCK, the pending message is saved and the write monitor starts polling. Once the socket is
writable again we send the pending message. Helper class MessageInfo and a new one UnixMessage have been moved
to its own header file to be able to use std::unique_ptr member to save the pending message.
* Platform/IPC/Connection.cpp: Include UnixMessage.h as required by std::unique_ptr.
* Platform/IPC/Connection.h: Add write socket monitor and also keep the GSocket as a member to reuse it.
* Platform/IPC/glib/GSocketMonitor.cpp: Use Function instead of std::function.
(IPC::GSocketMonitor::start):
* Platform/IPC/glib/GSocketMonitor.h:
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::platformInitialize): Initialize the GSocket here since we rely on it to take the ownership of
the descriptor. We were leaking it if the connection was invalidated without being opened.
(IPC::Connection::platformInvalidate): Destroy the GSocket even when not connected. Also stop the write monitor.
(IPC::Connection::processMessage):
(IPC::Connection::open):
(IPC::Connection::platformCanSendOutgoingMessages): Return false if we have a pending message to ensure
Connection doesn't try to send more messages until the pending message is dispatched. We don't need to check
m_isConnected because the caller already checks that.
(IPC::Connection::sendOutgoingMessage): Split it in two. This creates and prepares a UnixMessage and then calls
sendOutputMessage() to do the rest.
(IPC::Connection::sendOutputMessage): Send the message, or save it if sendmsg fails with EAGAIN or EWOULDBLOCK
to be sent later when the socket is writable.
* Platform/IPC/unix/UnixMessage.h: Added.
(IPC::MessageInfo::MessageInfo):
(IPC::MessageInfo::setMessageBodyIsOutOfLine):
(IPC::MessageInfo::isMessageBodyIsOutOfLine):
(IPC::MessageInfo::bodySize):
(IPC::MessageInfo::attachmentCount):
(IPC::UnixMessage::UnixMessage):
(IPC::UnixMessage::~UnixMessage):
(IPC::UnixMessage::attachments):
(IPC::UnixMessage::messageInfo):
(IPC::UnixMessage::body):
(IPC::UnixMessage::bodySize):
(IPC::UnixMessage::appendAttachment):
* PlatformGTK.cmake:
---
Source/WebKit2/Platform/IPC/Connection.cpp | 4 +
Source/WebKit2/Platform/IPC/Connection.h | 7 +-
.../WebKit2/Platform/IPC/glib/GSocketMonitor.cpp | 2 +-
Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h | 4 +-
.../WebKit2/Platform/IPC/unix/ConnectionUnix.cpp | 140 ++++++++++-----------
Source/WebKit2/Platform/IPC/unix/UnixMessage.h | 113 +++++++++++++++++
Source/WebKit2/PlatformGTK.cmake | 1 +
7 files changed, 194 insertions(+), 77 deletions(-)
create mode 100644 Source/WebKit2/Platform/IPC/unix/UnixMessage.h
diff --git a/Source/WebKit2/Platform/IPC/Connection.cpp b/Source/WebKit2/Platform/IPC/Connection.cpp
index daa6510..baf5306 100644
--- a/Source/WebKit2/Platform/IPC/Connection.cpp
+++ b/Source/WebKit2/Platform/IPC/Connection.cpp
@@ -39,6 +39,10 @@
#include "MachMessage.h"
#endif
+#if USE(UNIX_DOMAIN_SOCKETS)
+#include "UnixMessage.h"
+#endif
+
namespace IPC {
struct Connection::ReplyHandler {
diff --git a/Source/WebKit2/Platform/IPC/Connection.h b/Source/WebKit2/Platform/IPC/Connection.h
index 87a3d91..a5a8ad7 100644
--- a/Source/WebKit2/Platform/IPC/Connection.h
+++ b/Source/WebKit2/Platform/IPC/Connection.h
@@ -79,6 +79,7 @@ enum class WaitForOption {
while (0)
class MachMessage;
+class UnixMessage;
class Connection : public ThreadSafeRefCounted<Connection> {
public:
@@ -308,12 +309,16 @@ private:
// Called on the connection queue.
void readyReadHandler();
bool processMessage();
+ bool sendOutputMessage(UnixMessage&);
Vector<uint8_t> m_readBuffer;
Vector<int> m_fileDescriptors;
int m_socketDescriptor;
+ std::unique_ptr<UnixMessage> m_pendingOutputMessage;
#if PLATFORM(GTK)
- GSocketMonitor m_socketMonitor;
+ GRefPtr<GSocket> m_socket;
+ GSocketMonitor m_readSocketMonitor;
+ GSocketMonitor m_writeSocketMonitor;
#endif
#elif OS(DARWIN)
// Called on the connection queue.
diff --git a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp
index 0faf266..14329b9 100644
--- a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp
+++ b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.cpp
@@ -42,7 +42,7 @@ gboolean GSocketMonitor::socketSourceCallback(GSocket*, GIOCondition condition,
return monitor->m_callback(condition);
}
-void GSocketMonitor::start(GSocket* socket, GIOCondition condition, RunLoop& runLoop, std::function<gboolean (GIOCondition)>&& callback)
+void GSocketMonitor::start(GSocket* socket, GIOCondition condition, RunLoop& runLoop, Function<gboolean (GIOCondition)>&& callback)
{
stop();
diff --git a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h
index 11e528a..ff37bf9 100644
--- a/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h
+++ b/Source/WebKit2/Platform/IPC/glib/GSocketMonitor.h
@@ -43,7 +43,7 @@ public:
GSocketMonitor() = default;
~GSocketMonitor();
- void start(GSocket*, GIOCondition, RunLoop&, std::function<gboolean (GIOCondition)>&&);
+ void start(GSocket*, GIOCondition, RunLoop&, Function<gboolean (GIOCondition)>&&);
void stop();
private:
@@ -51,7 +51,7 @@ private:
GRefPtr<GSource> m_source;
GRefPtr<GCancellable> m_cancellable;
- std::function<gboolean (GIOCondition)> m_callback;
+ Function<gboolean (GIOCondition)> m_callback;
};
} // namespace IPC
diff --git a/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp b/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp
index fcd1047..0e04238 100644
--- a/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp
+++ b/Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp
@@ -30,6 +30,7 @@
#include "DataReference.h"
#include "SharedMemory.h"
+#include "UnixMessage.h"
#include <sys/socket.h>
#include <unistd.h>
#include <errno.h>
@@ -60,60 +61,20 @@ namespace IPC {
static const size_t messageMaxSize = 4096;
static const size_t attachmentMaxAmount = 255;
-enum {
- MessageBodyIsOutOfLine = 1U << 31
-};
-
-class MessageInfo {
-public:
- MessageInfo() { }
-
- MessageInfo(size_t bodySize, size_t initialAttachmentCount)
- : m_bodySize(bodySize)
- , m_attachmentCount(initialAttachmentCount)
- , m_isMessageBodyOutOfLine(false)
- {
- }
-
- void setMessageBodyIsOutOfLine()
- {
- ASSERT(!isMessageBodyIsOutOfLine());
-
- m_isMessageBodyOutOfLine = true;
- m_attachmentCount++;
- }
-
- bool isMessageBodyIsOutOfLine() const { return m_isMessageBodyOutOfLine; }
-
- size_t bodySize() const { return m_bodySize; }
-
- size_t attachmentCount() const { return m_attachmentCount; }
-
-private:
- size_t m_bodySize;
- size_t m_attachmentCount;
- bool m_isMessageBodyOutOfLine;
-};
-
class AttachmentInfo {
WTF_MAKE_FAST_ALLOCATED;
public:
- AttachmentInfo()
- : m_type(Attachment::Uninitialized)
- , m_size(0)
- , m_isNull(false)
- {
- }
+ AttachmentInfo() = default;
void setType(Attachment::Type type) { m_type = type; }
- Attachment::Type getType() { return m_type; }
+ Attachment::Type type() const { return m_type; }
void setSize(size_t size)
{
ASSERT(m_type == Attachment::MappedMemoryType);
m_size = size;
}
- size_t getSize()
+ size_t size() const
{
ASSERT(m_type == Attachment::MappedMemoryType);
return m_size;
@@ -121,25 +82,30 @@ public:
// The attachment is not null unless explicitly set.
void setNull() { m_isNull = true; }
- bool isNull() { return m_isNull; }
+ bool isNull() const { return m_isNull; }
private:
- Attachment::Type m_type;
- size_t m_size;
- bool m_isNull;
+ Attachment::Type m_type { Attachment::Uninitialized };
+ size_t m_size { 0 };
+ bool m_isNull { false };
};
void Connection::platformInitialize(Identifier identifier)
{
m_socketDescriptor = identifier;
+#if PLATFORM(GTK)
+ m_socket = adoptGRef(g_socket_new_from_fd(m_socketDescriptor, nullptr));
+#endif
m_readBuffer.reserveInitialCapacity(messageMaxSize);
m_fileDescriptors.reserveInitialCapacity(attachmentMaxAmount);
}
void Connection::platformInvalidate()
{
- // In GTK+ platform the socket is closed by the work queue.
-#if !PLATFORM(GTK)
+#if PLATFORM(GTK)
+ // In GTK+ platform the socket descriptor is owned by GSocket.
+ m_socket = nullptr;
+#else
if (m_socketDescriptor != -1)
closeWithRetry(m_socketDescriptor);
#endif
@@ -148,7 +114,8 @@ void Connection::platformInvalidate()
return;
#if PLATFORM(GTK)
- m_socketMonitor.stop();
+ m_readSocketMonitor.stop();
+ m_writeSocketMonitor.stop();
#endif
m_socketDescriptor = -1;
@@ -165,7 +132,7 @@ bool Connection::processMessage()
memcpy(&messageInfo, messageData, sizeof(messageInfo));
messageData += sizeof(messageInfo);
- size_t messageLength = sizeof(MessageInfo) + messageInfo.attachmentCount() * sizeof(AttachmentInfo) + (messageInfo.isMessageBodyIsOutOfLine() ? 0 : messageInfo.bodySize());
+ size_t messageLength = sizeof(MessageInfo) + messageInfo.attachmentCount() * sizeof(AttachmentInfo) + (messageInfo.isBodyOutOfLine() ? 0 : messageInfo.bodySize());
if (m_readBuffer.size() < messageLength)
return false;
@@ -179,7 +146,7 @@ bool Connection::processMessage()
messageData += sizeof(AttachmentInfo) * attachmentCount;
for (size_t i = 0; i < attachmentCount; ++i) {
- switch (attachmentInfo[i].getType()) {
+ switch (attachmentInfo[i].type()) {
case Attachment::MappedMemoryType:
case Attachment::SocketType:
if (!attachmentInfo[i].isNull())
@@ -191,7 +158,7 @@ bool Connection::processMessage()
}
}
- if (messageInfo.isMessageBodyIsOutOfLine())
+ if (messageInfo.isBodyOutOfLine())
attachmentCount--;
}
@@ -201,11 +168,11 @@ bool Connection::processMessage()
size_t fdIndex = 0;
for (size_t i = 0; i < attachmentCount; ++i) {
int fd = -1;
- switch (attachmentInfo[i].getType()) {
+ switch (attachmentInfo[i].type()) {
case Attachment::MappedMemoryType:
if (!attachmentInfo[i].isNull())
fd = m_fileDescriptors[fdIndex++];
- attachments[attachmentCount - i - 1] = Attachment(fd, attachmentInfo[i].getSize());
+ attachments[attachmentCount - i - 1] = Attachment(fd, attachmentInfo[i].size());
break;
case Attachment::SocketType:
if (!attachmentInfo[i].isNull())
@@ -219,7 +186,7 @@ bool Connection::processMessage()
}
}
- if (messageInfo.isMessageBodyIsOutOfLine()) {
+ if (messageInfo.isBodyOutOfLine()) {
ASSERT(messageInfo.bodySize());
if (attachmentInfo[attachmentCount].isNull()) {
@@ -228,7 +195,7 @@ bool Connection::processMessage()
}
WebKit::SharedMemory::Handle handle;
- handle.adoptAttachment(IPC::Attachment(m_fileDescriptors[attachmentFileDescriptorCount - 1], attachmentInfo[attachmentCount].getSize()));
+ handle.adoptAttachment(IPC::Attachment(m_fileDescriptors[attachmentFileDescriptorCount - 1], attachmentInfo[attachmentCount].size()));
oolMessageBody = WebKit::SharedMemory::map(handle, WebKit::SharedMemory::Protection::ReadOnly);
if (!oolMessageBody) {
@@ -237,10 +204,10 @@ bool Connection::processMessage()
}
}
- ASSERT(attachments.size() == (messageInfo.isMessageBodyIsOutOfLine() ? messageInfo.attachmentCount() - 1 : messageInfo.attachmentCount()));
+ ASSERT(attachments.size() == (messageInfo.isBodyOutOfLine() ? messageInfo.attachmentCount() - 1 : messageInfo.attachmentCount()));
uint8_t* messageBody = messageData;
- if (messageInfo.isMessageBodyIsOutOfLine())
+ if (messageInfo.isBodyOutOfLine())
messageBody = reinterpret_cast<uint8_t*>(oolMessageBody->data());
auto decoder = std::make_unique<Decoder>(messageBody, messageInfo.bodySize(), nullptr, WTFMove(attachments));
@@ -365,8 +332,7 @@ bool Connection::open()
RefPtr<Connection> protectedThis(this);
m_isConnected = true;
#if PLATFORM(GTK)
- GRefPtr<GSocket> socket = adoptGRef(g_socket_new_from_fd(m_socketDescriptor, nullptr));
- m_socketMonitor.start(socket.get(), G_IO_IN, m_connectionQueue->runLoop(), [protectedThis] (GIOCondition condition) -> gboolean {
+ m_readSocketMonitor.start(m_socket.get(), G_IO_IN, m_connectionQueue->runLoop(), [protectedThis] (GIOCondition condition) -> gboolean {
if (condition & G_IO_HUP || condition & G_IO_ERR || condition & G_IO_NVAL) {
protectedThis->connectionDidClose();
return G_SOURCE_REMOVE;
@@ -392,22 +358,21 @@ bool Connection::open()
bool Connection::platformCanSendOutgoingMessages() const
{
- return m_isConnected;
+ return !m_pendingOutputMessage;
}
bool Connection::sendOutgoingMessage(std::unique_ptr<Encoder> encoder)
{
COMPILE_ASSERT(sizeof(MessageInfo) + attachmentMaxAmount * sizeof(size_t) <= messageMaxSize, AttachmentsFitToMessageInline);
- Vector<Attachment> attachments = encoder->releaseAttachments();
- if (attachments.size() > (attachmentMaxAmount - 1)) {
+ UnixMessage outputMessage(encoder.get());
+ if (outputMessage.attachments().size() > (attachmentMaxAmount - 1)) {
ASSERT_NOT_REACHED();
return false;
}
- MessageInfo messageInfo(encoder->bufferSize(), attachments.size());
- size_t messageSizeWithBodyInline = sizeof(messageInfo) + (attachments.size() * sizeof(AttachmentInfo)) + encoder->bufferSize();
- if (messageSizeWithBodyInline > messageMaxSize && encoder->bufferSize()) {
+ size_t messageSizeWithBodyInline = sizeof(MessageInfo) + (outputMessage.attachments().size() * sizeof(AttachmentInfo)) + outputMessage.bodySize();
+ if (messageSizeWithBodyInline > messageMaxSize && outputMessage.bodySize()) {
RefPtr<WebKit::SharedMemory> oolMessageBody = WebKit::SharedMemory::allocate(encoder->bufferSize());
if (!oolMessageBody)
return false;
@@ -416,13 +381,21 @@ bool Connection::sendOutgoingMessage(std::unique_ptr<Encoder> encoder)
if (!oolMessageBody->createHandle(handle, WebKit::SharedMemory::Protection::ReadOnly))
return false;
- messageInfo.setMessageBodyIsOutOfLine();
+ outputMessage.messageInfo().setBodyOutOfLine();
- memcpy(oolMessageBody->data(), encoder->buffer(), encoder->bufferSize());
+ memcpy(oolMessageBody->data(), outputMessage.body(), outputMessage.bodySize());
- attachments.append(handle.releaseAttachment());
+ outputMessage.appendAttachment(handle.releaseAttachment());
}
+ return sendOutputMessage(outputMessage);
+}
+
+bool Connection::sendOutputMessage(UnixMessage& outputMessage)
+{
+ ASSERT(!m_pendingOutputMessage);
+
+ auto& messageInfo = outputMessage.messageInfo();
struct msghdr message;
memset(&message, 0, sizeof(message));
@@ -438,6 +411,7 @@ bool Connection::sendOutgoingMessage(std::unique_ptr<Encoder> encoder)
std::unique_ptr<AttachmentInfo[]> attachmentInfo;
MallocPtr<char> attachmentFDBuffer;
+ auto& attachments = outputMessage.attachments();
if (!attachments.isEmpty()) {
int* fdPtr = 0;
@@ -488,9 +462,9 @@ bool Connection::sendOutgoingMessage(std::unique_ptr<Encoder> encoder)
++iovLength;
}
- if (!messageInfo.isMessageBodyIsOutOfLine() && encoder->bufferSize()) {
- iov[iovLength].iov_base = reinterpret_cast<void*>(encoder->buffer());
- iov[iovLength].iov_len = encoder->bufferSize();
+ if (!messageInfo.isBodyOutOfLine() && outputMessage.bodySize()) {
+ iov[iovLength].iov_base = reinterpret_cast<void*>(outputMessage.body());
+ iov[iovLength].iov_len = outputMessage.bodySize();
++iovLength;
}
@@ -500,6 +474,25 @@ bool Connection::sendOutgoingMessage(std::unique_ptr<Encoder> encoder)
if (errno == EINTR)
continue;
if (errno == EAGAIN || errno == EWOULDBLOCK) {
+#if PLATFORM(GTK)
+ m_pendingOutputMessage = std::make_unique<UnixMessage>(WTFMove(outputMessage));
+ m_writeSocketMonitor.start(m_socket.get(), G_IO_OUT, m_connectionQueue->runLoop(), [this, protectedThis = makeRef(*this)] (GIOCondition condition) -> gboolean {
+ if (condition & G_IO_OUT) {
+ ASSERT(m_pendingOutputMessage);
+ // We can't stop the monitor from this lambda, because stop destroys the lambda.
+ m_connectionQueue->dispatch([this, protectedThis = makeRef(*this)] {
+ m_writeSocketMonitor.stop();
+ auto message = WTFMove(m_pendingOutputMessage);
+ if (m_isConnected) {
+ sendOutputMessage(*message);
+ sendOutgoingMessages();
+ }
+ });
+ }
+ return G_SOURCE_REMOVE;
+ });
+ return false;
+#else
struct pollfd pollfd;
pollfd.fd = m_socketDescriptor;
@@ -507,6 +500,7 @@ bool Connection::sendOutgoingMessage(std::unique_ptr<Encoder> encoder)
pollfd.revents = 0;
poll(&pollfd, 1, -1);
continue;
+#endif
}
if (m_isConnected)
diff --git a/Source/WebKit2/Platform/IPC/unix/UnixMessage.h b/Source/WebKit2/Platform/IPC/unix/UnixMessage.h
new file mode 100644
index 0000000..e99a0a4
--- /dev/null
+++ b/Source/WebKit2/Platform/IPC/unix/UnixMessage.h
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ * Copyright (C) 2011,2017 Igalia S.L.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "Attachment.h"
+#include <wtf/Vector.h>
+
+namespace IPC {
+
+class MessageInfo {
+public:
+ MessageInfo() = default;
+
+ MessageInfo(size_t bodySize, size_t initialAttachmentCount)
+ : m_bodySize(bodySize)
+ , m_attachmentCount(initialAttachmentCount)
+ {
+ }
+
+ void setBodyOutOfLine()
+ {
+ ASSERT(!isBodyOutOfLine());
+
+ m_isBodyOutOfLine = true;
+ m_attachmentCount++;
+ }
+
+ bool isBodyOutOfLine() const { return m_isBodyOutOfLine; }
+ size_t bodySize() const { return m_bodySize; }
+ size_t attachmentCount() const { return m_attachmentCount; }
+
+private:
+ size_t m_bodySize { 0 };
+ size_t m_attachmentCount { 0 };
+ bool m_isBodyOutOfLine { false };
+};
+
+class UnixMessage {
+ WTF_MAKE_FAST_ALLOCATED;
+public:
+ UnixMessage(Encoder* encoder)
+ : m_attachments(encoder->releaseAttachments())
+ , m_messageInfo(encoder->bufferSize(), m_attachments.size())
+ , m_body(encoder->buffer())
+ {
+ }
+
+ UnixMessage(UnixMessage&& other)
+ {
+ m_attachments = WTFMove(other.m_attachments);
+ m_messageInfo = WTFMove(other.m_messageInfo);
+ if (other.m_bodyOwned) {
+ std::swap(m_body, other.m_body);
+ std::swap(m_bodyOwned, other.m_bodyOwned);
+ } else if (!m_messageInfo.isBodyOutOfLine()) {
+ m_body = static_cast<uint8_t*>(fastMalloc(m_messageInfo.bodySize()));
+ memcpy(m_body, other.m_body, m_messageInfo.bodySize());
+ m_bodyOwned = true;
+ other.m_body = nullptr;
+ other.m_bodyOwned = false;
+ }
+ }
+
+ ~UnixMessage()
+ {
+ if (m_bodyOwned)
+ fastFree(m_body);
+ }
+
+ const Vector<Attachment>& attachments() const { return m_attachments; }
+ MessageInfo& messageInfo() { return m_messageInfo; }
+
+ uint8_t* body() const { return m_body; }
+ size_t bodySize() const { return m_messageInfo.bodySize(); }
+
+ void appendAttachment(Attachment&& attachment)
+ {
+ m_attachments.append(WTFMove(attachment));
+ }
+
+private:
+ Vector<Attachment> m_attachments;
+ MessageInfo m_messageInfo;
+ uint8_t* m_body { nullptr };
+ bool m_bodyOwned { false };
+};
+
+} // namespace IPC
diff --git a/Source/WebKit2/PlatformGTK.cmake b/Source/WebKit2/PlatformGTK.cmake
index ebede75..2c6bc5f 100644
--- a/Source/WebKit2/PlatformGTK.cmake
+++ b/Source/WebKit2/PlatformGTK.cmake
@@ -850,6 +850,7 @@ list(APPEND WebKit2_INCLUDE_DIRECTORIES
"${WEBKIT2_DIR}/NetworkProcess/soup"
"${WEBKIT2_DIR}/NetworkProcess/unix"
"${WEBKIT2_DIR}/Platform/IPC/glib"
+ "${WEBKIT2_DIR}/Platform/IPC/unix"
"${WEBKIT2_DIR}/Shared/API/c/gtk"
"${WEBKIT2_DIR}/Shared/Plugins/unix"
"${WEBKIT2_DIR}/Shared/glib"
--
2.11.1

1
dead.package Normal file
View file

@ -0,0 +1 @@
Package was renamed to webkit2gtk3

View file

@ -1,39 +0,0 @@
From e583c6f7deb86406f7e0375c560503858f4831ca Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@igalia.com>
Date: Sun, 19 Jun 2016 21:10:03 -0500
Subject: [PATCH] https://fedoraproject.org/wiki/Packaging:CryptoPolicies
---
Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp | 2 +-
Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp b/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp
index b282e16..ed8bbbd 100644
--- a/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp
+++ b/Source/WebKit2/NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp
@@ -39,7 +39,7 @@ int main(int argc, char** argv)
// overwrite this priority string if it's already set by the user.
// https://bugzilla.gnome.org/show_bug.cgi?id=738633
// WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp.
- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0);
+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0);
return NetworkProcessMainUnix(argc, argv);
}
diff --git a/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp b/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp
index 5f45d01..2b34ead 100644
--- a/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp
+++ b/Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp
@@ -39,7 +39,7 @@ int main(int argc, char** argv)
// overwrite this priority string if it's already set by the user.
// https://bugzilla.gnome.org/show_bug.cgi?id=738633
// WARNING: This needs to be KEPT IN SYNC with WebProcessMain.cpp.
- setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0);
+ setenv("G_TLS_GNUTLS_PRIORITY", "@SYSTEM:%COMPAT:%LATEST_RECORD_VERSION:!VERS-SSL3.0:!ARCFOUR-128", 0);
return WebProcessMainUnix(argc, argv);
}
--
2.7.4

View file

@ -1,12 +0,0 @@
diff -up webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake.gcc7 webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake
--- webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake.gcc7 2017-02-21 09:57:13.168916004 +0100
+++ webkitgtk-2.15.90/Source/cmake/OptionsCommon.cmake 2017-02-21 09:58:12.811563156 +0100
@@ -41,6 +41,8 @@ if (COMPILER_IS_GCC_OR_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions -fno-strict-aliasing")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-strict-aliasing -fno-rtti")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-expansion-to-defined")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-expansion-to-defined")
endif ()
if (COMPILER_IS_CLANG AND CMAKE_GENERATOR STREQUAL "Ninja")

View file

@ -1 +0,0 @@
SHA512 (webkitgtk-2.15.90.tar.xz) = f06bbde9ed06fb7ba426629e130d2a1a9f9d137a864d5f6874f1a0c14dde043a51ffe9ea31f3be5252f852621ddcef5385f75f8624cdc2e1f357cd14c839a4cc

View file

@ -1,13 +0,0 @@
diff -up webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp.orig webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp
--- webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp.orig 2016-10-12 07:59:25.670057792 +0200
+++ webkitgtk-2.14.1/Source/WebCore/platform/gtk/UserAgentGtk.cpp 2016-10-12 08:01:06.251878684 +0200
@@ -85,6 +85,9 @@ static String buildUserAgentString(const UserAgentQuirks& quirks)
else {
uaString.append(platformForUAString());
uaString.appendLiteral("; ");
+#if defined(USER_AGENT_GTK_DISTRIBUTOR_NAME)
+ uaString.appendLiteral(USER_AGENT_GTK_DISTRIBUTOR_NAME "; ");
+#endif
uaString.append(platformVersionForUAString());
}

View file

@ -1,655 +0,0 @@
## NOTE: Lots of files in various subdirectories have the same name (such as
## "LICENSE") so this short macro allows us to distinguish them by using their
## directory names (from the source tree) as prefixes for the files.
%global add_to_license_files() \
mkdir -p _license_files ; \
cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g')
Name: webkitgtk4
Version: 2.15.90
Release: 2%{?dist}
Summary: GTK+ Web content engine library
License: LGPLv2
URL: http://www.webkitgtk.org/
Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz
# https://bugs.webkit.org/show_bug.cgi?id=162611
Patch0: webkitgtk-2.14.1-user-agent-branding.patch
# https://fedoraproject.org/wiki/Packaging:CryptoPolicies
# https://bugs.webkit.org/show_bug.cgi?id=158785
Patch1: fedora-crypto-policy.patch
# https://bugs.webkit.org/show_bug.cgi?id=167643
Patch2: gcc7.patch
# https://bugs.webkit.org/show_bug.cgi?id=168699
Patch3: 0001-GTK-Hangs-when-showing-Google-search-results.patch
BuildRequires: at-spi2-core-devel
BuildRequires: bison
BuildRequires: cairo-devel
BuildRequires: cmake
BuildRequires: enchant-devel
BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
BuildRequires: geoclue2-devel
BuildRequires: gettext
BuildRequires: glib2-devel
BuildRequires: gobject-introspection-devel
BuildRequires: gperf
BuildRequires: gstreamer1-devel
BuildRequires: gstreamer1-plugins-base-devel
BuildRequires: gtk2-devel
BuildRequires: gtk3-devel
BuildRequires: gtk-doc
BuildRequires: harfbuzz-devel
BuildRequires: libicu-devel
BuildRequires: libjpeg-devel
BuildRequires: libnotify-devel
BuildRequires: libpng-devel
BuildRequires: libsecret-devel
BuildRequires: libsoup-devel
BuildRequires: libwebp-devel
BuildRequires: libxslt-devel
BuildRequires: libXt-devel
BuildRequires: libwayland-client-devel
BuildRequires: libwayland-egl-devel
BuildRequires: libwayland-server-devel
BuildRequires: mesa-libGL-devel
BuildRequires: pcre-devel
BuildRequires: perl-Switch
BuildRequires: perl-JSON-PP
BuildRequires: ruby rubypick rubygems
BuildRequires: sqlite-devel
BuildRequires: hyphen-devel
BuildRequires: gnutls-devel
%ifarch ppc
BuildRequires: libatomic
%endif
Requires: geoclue2
# Obsolete libwebkit2gtk from the webkitgtk3 package
Obsoletes: libwebkit2gtk < 2.5.0
Provides: libwebkit2gtk = %{version}-%{release}
# We're supposed to specify versions here, but these crap Google libs don't do
# normal releases. Accordingly, they're not suitable to be system libs.
Provides: bundled(angle)
Provides: bundled(brotli)
Provides: bundled(woff2)
# Require the jsc subpackage
Requires: %{name}-jsc%{?_isa} = %{version}-%{release}
# Recommend the support for the GTK+ 2 based NPAPI plugins
Recommends: %{name}-plugin-process-gtk2%{?_isa} = %{version}-%{release}
Obsoletes: %{name} < 2.12.0-3
# Filter out provides for private libraries
%global __provides_exclude_from ^%{_libdir}/webkit2gtk-4\\.0/.*\\.so$
%description
WebKitGTK+ is the port of the portable web rendering engine WebKit to the
GTK+ platform.
This package contains WebKitGTK+ for GTK+ 3.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-jsc-devel%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries, build data, and header
files for developing applications that use %{name}.
%package doc
Summary: Documentation files for %{name}
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
%description doc
This package contains developer documentation for %{name}.
%package jsc
Summary: JavaScript engine from %{name}
%description jsc
This package contains JavaScript engine from %{name}.
%package jsc-devel
Summary: Development files for JavaScript engine from %{name}
Requires: %{name}-jsc%{?_isa} = %{version}-%{release}
%description jsc-devel
The %{name}-jsc-devel package contains libraries, build data, and header
files for developing applications that use JavaScript engine from %{name}.
%package plugin-process-gtk2
Summary: GTK+ 2 based NPAPI plugins support for %{name}
Obsoletes: %{name} < 2.12.0-3
%description plugin-process-gtk2
Support for the GTK+ 2 based NPAPI plugins (such as Adobe Flash) for %{name}.
%prep
%autosetup -p1 -n webkitgtk-%{version}
# Remove bundled libraries
rm -rf Source/ThirdParty/gtest/
rm -rf Source/ThirdParty/qunit/
%build
%ifarch s390 aarch64
# Use linker flags to reduce memory consumption - on other arches the ld.gold is
# used and also it doesn't have the --reduce-memory-overheads option
%global optflags %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
%endif
# Decrease debuginfo even on ix86 because of:
# https://bugs.webkit.org/show_bug.cgi?id=140176
%ifarch s390 s390x %{arm} %{ix86} ppc %{power64} %{mips}
# Decrease debuginfo verbosity to reduce memory consumption even more
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
%endif
%ifarch ppc
# Use linker flag -relax to get WebKit build under ppc(32) with JIT disabled
%global optflags %{optflags} -Wl,-relax
%endif
%if 0%{?fedora}
%global optflags %{optflags} -DUSER_AGENT_GTK_DISTRIBUTOR_NAME=\'\\"Fedora\\"\'
%endif
# Disable ld.gold on s390 as it does not have it.
# Also for aarch64 as the support is in upstream, but not packaged in Fedora.
mkdir -p %{_target_platform}
pushd %{_target_platform}
%cmake \
-DPORT=GTK \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_GTKDOC=ON \
-DENABLE_MINIBROWSER=ON \
%ifarch s390 aarch64
-DUSE_LD_GOLD=OFF \
%endif
%ifarch s390 s390x ppc %{power64} aarch64 %{mips}
-DENABLE_JIT=OFF \
%endif
%ifarch s390 s390x ppc %{power64} aarch64 %{mips}
-DUSE_SYSTEM_MALLOC=ON \
%endif
..
popd
make %{?_smp_mflags} -C %{_target_platform}
%install
%make_install -C %{_target_platform}
%find_lang WebKit2GTK-4.0
# Finally, copy over and rename various files for %%license inclusion
%add_to_license_files Source/JavaScriptCore/COPYING.LIB
%add_to_license_files Source/JavaScriptCore/icu/LICENSE
%add_to_license_files Source/ThirdParty/ANGLE/LICENSE
%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/compiler/LICENSE
%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/murmurhash/LICENSE
%add_to_license_files Source/WebCore/icu/LICENSE
%add_to_license_files Source/WebCore/LICENSE-APPLE
%add_to_license_files Source/WebCore/LICENSE-LGPL-2
%add_to_license_files Source/WebCore/LICENSE-LGPL-2.1
%add_to_license_files Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE
%add_to_license_files Source/WebInspectorUI/UserInterface/External/Esprima/LICENSE
%add_to_license_files Source/WTF/icu/LICENSE
%add_to_license_files Source/WTF/wtf/dtoa/COPYING
%add_to_license_files Source/WTF/wtf/dtoa/LICENSE
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post jsc -p /sbin/ldconfig
%postun jsc -p /sbin/ldconfig
%files -f WebKit2GTK-4.0.lang
%license _license_files/*ThirdParty*
%license _license_files/*WebCore*
%license _license_files/*WebInspectorUI*
%license _license_files/*WTF*
%{_libdir}/libwebkit2gtk-4.0.so.*
%{_libdir}/girepository-1.0/WebKit2-4.0.typelib
%{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib
%{_libdir}/webkit2gtk-4.0/
%{_libexecdir}/webkit2gtk-4.0/
%exclude %{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2
%files devel
%{_libexecdir}/webkit2gtk-4.0/MiniBrowser
%{_includedir}/webkitgtk-4.0/
%exclude %{_includedir}/webkitgtk-4.0/JavaScriptCore
%{_libdir}/libwebkit2gtk-4.0.so
%{_libdir}/pkgconfig/webkit2gtk-4.0.pc
%{_libdir}/pkgconfig/webkit2gtk-web-extension-4.0.pc
%{_datadir}/gir-1.0/WebKit2-4.0.gir
%{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir
%files jsc
%license _license_files/*JavaScriptCore*
%{_libdir}/libjavascriptcoregtk-4.0.so.*
%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib
%files jsc-devel
%{_libexecdir}/webkit2gtk-4.0/jsc
%dir %{_includedir}/webkitgtk-4.0
%{_includedir}/webkitgtk-4.0/JavaScriptCore/
%{_libdir}/libjavascriptcoregtk-4.0.so
%{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc
%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir
%files plugin-process-gtk2
%{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2
%files doc
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%{_datadir}/gtk-doc/html/webkit2gtk-4.0/
%{_datadir}/gtk-doc/html/webkitdomgtk-4.0/
%changelog
* Fri Feb 24 2017 Bastien Nocera <bnocera@redhat.com> - 2.15.90-2
- Add patch to fix hangs when showing the Google search page
* Tue Feb 21 2017 Tomas Popela <tpopela@redhat.com> - 2.15.90-1
- Update to 2.15.90
* Tue Feb 07 2017 Tomas Popela <tpopela@redhat.com> - 2.15.4-4
- Add patches to make Evolution usable again - rhbz#1418413
* Thu Feb 02 2017 Tomas Popela <tpopela@redhat.com> - 2.15.4-3
- Push gcc7 fixes, only buildable with gcc-7.0.1-0.5.fc26 and higher
* Wed Feb 01 2017 Sandro Mani <manisandro@gmail.com> - 2.15.4-2
- Rebuild (libwebp)
* Tue Jan 31 2017 Tomas Popela <tpopela@redhat.com> - 2.15.4-1
- Update to 2.15.4
* Mon Jan 23 2017 Tomas Popela <tpopela@redhat.com> - 2.15.3-1
- Update to 2.15.3
* Mon Nov 21 2016 Tomas Popela <tpopela@redhat.com> - 2.15.2-1
- Update to 2.15.2
* Wed Oct 26 2016 Tomas Popela <tpopela@redhat.com> - 2.15.1-1
- Update to 2.15.1
* Wed Oct 12 2016 Adam Jackson <ajax@redhat.com> - 2.14.1-2
- Prefer eglGetPlatformDisplay to eglGetDisplay
* Wed Oct 12 2016 Tomas Popela <tpopela@redhat.com> - 2.14.1-1
- Update to 2.14.1
* Tue Sep 20 2016 Tomas Popela <tpopela@redhat.com> - 2.14.0-1
- Update to 2.14.0
* Thu Sep 15 2016 Tomas Popela <tpopela@redhat.com> - 2.13.92-1
- Update to 2.13.92
* Mon Sep 12 2016 Tomas Popela <tpopela@redhat.com> - 2.13.91-1
- Update to 2.13.91
* Wed Aug 31 2016 Tomas Popela <tpopela@redhat.com> - 2.13.90-1
- Update to 2.13.90
* Wed Jul 27 2016 Tomas Popela <tpopela@redhat.com> - 2.13.4-1
- Update to 2.13.4
* Mon Jul 18 2016 Tomas Popela <tpopela@redhat.com> - 2.13.3-1
- Update to 2.13.3
- Enable JIT on ARMv7
* Fri Jul 08 2016 Tomas Popela <tpopela@redhat.com> - 2.13.2-4
- Remove the wrong patch for THUMB2 support
* Tue Jun 28 2016 Michael Catanzaro <mcatanzaro@igalia.com> - 2.13.2-3
- Disable NPAPI in Wayland
- Specify more bundled provides
- Again disable JIT on ARMv7 until rhbz#1350982 is fixed
* Tue Jun 28 2016 Tomas Popela <tpopela@redhat.com> - 2.13.2-2
- Enable JIT and BMalloc on ARMv7
* Thu Jun 23 2016 Tomas Popela <tpopela@redhat.com> - 2.13.2-1
- Update to 2.13.2
- Disable JIT on ARM until https://bugs.webkit.org/show_bug.cgi?id=159083 is fixed
* Sun Jun 19 2016 Michael Catanzaro <mcatanzaro@igalia.com> - 2.13.1-2
- Add patch to comply with Fedora crypto policy
* Tue May 31 2016 Tomas Popela <tpopela@redhat.com> - 2.13.1-1
- Update to 2.13.1
* Tue May 24 2016 Tomas Popela <tpopela@redhat.com> - 2.12.3-1
- Update to 2.12.3
* Fri Apr 29 2016 Igor Gnatenko <ignatenko@redhat.com> - 2.12.2-2
- Remove typelib from jsc-devel because it is in jsc
* Thu Apr 28 2016 Tomas Popela <tpopela@redhat.com> - 2.12.2-1
- Update to 2.12.2
* Tue Apr 26 2016 Tomas Popela <tpopela@redhat.com> - 2.12.1-3
- Fix the build on aarch64 - disable bmalloc as it's crashing when generating
the documentation
* Fri Apr 15 2016 David Tardon <dtardon@redhat.com> - 2.12.1-2
- rebuild for ICU 57.1
* Thu Apr 14 2016 Tomas Popela <tpopela@redhat.com> - 2.12.1-1
- Update to 2.12.1
* Thu Apr 07 2016 Michael Catanzaro <mcatanzaro@igalia.com> - 2.12.0-3
- Attempt harder to ensure plugin-process-gtk2 is installed on upgrade
* Wed Apr 06 2016 Michael Catanzaro <mcatanzaro@igalia.com> - 2.12.0-2
- Attempt to ensure plugin-process-gtk2 is installed on upgrade
- Add patch for WebKit#155885
* Tue Mar 22 2016 Tomas Popela <tpopela@redhat.com> - 2.12.0-1
- Update to 2.12.0
* Sun Mar 20 2016 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.11.92-3
- Add missing ldconfig call for jsc subpkg
* Thu Mar 17 2016 Tomas Popela <tpopela@redhat.com> - 2.11.92-2
- Fix the build with gcc6
* Thu Mar 17 2016 Tomas Popela <tpopela@redhat.com> - 2.11.92-1
- Update to 2.11.92
* Tue Mar 15 2016 Tomas Popela <tpopela@redhat.com> - 2.11.91-2
- Subpackage the WebKitPluginProcess2
- Resolves: rhbz#1317692
* Tue Mar 01 2016 Tomas Popela <tpopela@redhat.com> - 2.11.91-1
- Update to 2.11.91
* Mon Feb 29 2016 David King <amigadave@amigadave.com> - 2.11.90-4
- Move JavaScriptCore headers to jsc-devel subpackage (#1312894)
* Wed Feb 24 2016 Michael Catanzaro <mcatanzaro@igalia.com> - 2.11.90-3
- Stop building with ENABLE_OPENGL=OFF, see WebKit#126122 and WebKit#150955.
* Mon Feb 22 2016 Tomas Popela <tpopela@redhat.com> - 2.11.90-1
- Update to 2.11.90
* Tue Feb 9 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2.11.5-2
- Add ruby deps for build
* Tue Feb 09 2016 Tomas Popela <tpopela@redhat.com> - 2.11.5-1
- Update to 2.11.5
- Drop the llvm dependencies as we switched to B3
- Rebase the YouTube patch
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Jan 28 2016 Tomas Popela <tpopela@redhat.com> - 2.11.4-2
- Rebuilt for LLVM rebase
* Wed Jan 20 2016 Tomas Popela <tpopela@redhat.com> - 2.11.4-1
- Update to 2.11.4
* Wed Jan 13 2016 Michael Catanzaro <mcatanzaro@igalia.com> - 2.11.3-2
- Build with ENABLE_OPENGL=OFF as I think it is causing bugs.
- Stop static linking to LLVM.
* Wed Jan 13 2016 Tomas Popela <tpopela@redhat.com> - 2.11.3-1
- Update to 2.11.3
* Wed Dec 30 2015 Michael Catanzaro <mcatanzaro@igalia.com> - 2.11.2-6
- Remove webkitgtk-2.5.90-cloop_fix.patch and
webkitgtk-2.8.0-page_size_align.patch. These have been broken for ages.
- Remove webkitgtk-2.8.0-s390_fixes.patch since this is a patch for bmalloc, but
we disable bmalloc on s390.
- Don't request hardened build, it's the default.
- Use public USE_SYSTEM_MALLOC option instead of unsupported USE_BMALLOC.
- lldb is not bundled anymore.
* Wed Dec 30 2015 Michal Toman <mtoman@fedoraproject.org> - 2.11.2-5
- Add support for MIPS
* Mon Dec 28 2015 Igor Gnatenko <i.gnatenko.brain@gmail.com> - 2.11.2-4
- Rebuilt for libwebp soname bump
* Mon Dec 07 2015 Tomas Popela <tpopela@redhat.com> - 2.11.2-3
- rhbz#1289053 - Retire nspluginwrapper and remove from Fedora 24
* Mon Nov 30 2015 Tomas Popela <tpopela@redhat.com> - 2.11.2-2
- Introduce the jsc and jsc-devel subpackages with JavaScriptCore packaged
- Resolves: rhbz#1176677
* Mon Nov 23 2015 Tomas Popela <tpopela@redhat.com> - 2.11.2-1
- Update to 2.11.2
- Enable FTL on x86_64
* Tue Nov 03 2015 Tomas Popela <tpopela@redhat.com> - 2.11.1-1
- Update to 2.11.1
* Wed Oct 28 2015 David Tardon <dtardon@redhat.com> - 2.10.3-2
- rebuild for ICU 56.1
* Tue Oct 27 2015 Tomas Popela <tpopela@redhat.com> - 2.10.3-1
- Update to 2.10.3
* Thu Oct 15 2015 Tomas Popela <tpopela@redhat.com> - 2.10.2-1
- Update to 2.10.2
* Thu Oct 15 2015 Kalev Lember <klember@redhat.com> - 2.10.1-2
- Rebuilt
* Wed Oct 14 2015 Tomas Popela <tpopela@redhat.com> - 2.10.1-1
- Update to 2.10.1
* Fri Oct 09 2015 Michael Catanzaro <mcatanzaro@igalia.com> - 2.10.0-2
- Add provides bundled(angle) since it's finally safe to do so.
* Mon Sep 21 2015 Kalev Lember <klember@redhat.com> - 2.10.0-1
- Update to 2.10.0
* Wed Sep 16 2015 Tomas Popela <tpopela@redhat.com> - 2.9.92-1
- Update to 2.9.92
* Wed Aug 26 2015 Kalev Lember <klember@redhat.com> - 2.9.91-1
- Update to 2.9.91
* Mon Aug 24 2015 Michael Catanzaro <mcatanzaro@igalia.com> - 2.9.90-2
- Remove the address space limit patch: it was causing too many problems.
- (Warning! This means Red Hat Bugzilla can hang your computer again.)
- Improve the YouTube patch to avoid spamming the journal with rpm output.
- Add patch from upstream to workaround severe a performance regression.
- No need to explicitly enable Wayland support anymore; it's now default.
* Wed Aug 19 2015 Kalev Lember <klember@redhat.com> - 2.9.90-1
- Update to 2.9.90
* Mon Aug 03 2015 Tomas Popela <tpopela@redhat.com> - 2.9.5-1
- Update to 2.9.5
* Sat Aug 01 2015 Michael Catanzaro <mcatanzaro@igalia.com> - 2.9.4-3
- Make YouTube work.
* Tue Jul 28 2015 Michael Catanzaro <mcatanzaro@igalia.com> - 2.9.4-2
- Exempt the plugin process from the address space limit.
* Wed Jul 22 2015 Tomas Popela <tpopela@redhat.com> - 2.9.4-1
- Update to 2.9.4
* Thu Jul 09 2015 Michael Catanzaro <mcatanzaro@igalia.com> - 2.9.3-3
- Prevent runaway web processes from using unlimited memory.
* Wed Jul 01 2015 Michael Catanzaro <mcatanzaro@igalia.com> - 2.9.3-2
- Enable Wayland support at long last. Hopefully fixes #1220811.
* Tue Jun 23 2015 Tomas Popela <tpopela@redhat.com> - 2.9.3-1
- Update to 2.9.3
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.9.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Wed May 27 2015 Tomas Popela <tpopela@redhat.com> - 2.9.2-1
- Update to 2.9.2
* Thu May 07 2015 Tomas Popela <tpopela@redhat.com> - 2.9.1-1
- Update to 2.9.1
- Add hyphen-devel as BR
* Tue Apr 21 2015 Michael Catanzaro <mcatanzaro@igalia.com> - 2.8.1-2
- Reenable fast matrix multiplication on x86_64
* Tue Apr 14 2015 Tomas Popela <tpopela@redhat.com> - 2.8.1-1
- Update to 2.8.1
* Wed Apr 08 2015 Michael Catanzaro <mcatanzaro@igalia.com> - 2.8.0-4
- Build with support for HTML5 desktop notifications
* Wed Apr 08 2015 Tomas Popela <tpopela@redhat.com> - 2.8.0-3
- Fix CLoop on secondary arches
* Fri Mar 27 2015 Than Ngo <than@redhat.com> - 2.8.0-2
- Fix build failures on s390
- Fix build failures with gcc 5
- Decrease the debuginfo verbosity on ppc and others
* Mon Mar 23 2015 Tomas Popela <tpopela@redhat.com> - 2.8.0-1
- Update to 2.8.0
* Tue Mar 17 2015 Tomas Popela <tpopela@redhat.com> - 2.7.92-1
- Update to 2.7.92
- Re-enable parallel build
- Compile and ship MiniBrowser
* Mon Mar 16 2015 Michael Catanzaro <mcatanzaro@gnome.org> 2.7.91-3
- Add a couple patches to fix more crashes
* Wed Mar 04 2015 Michael Catanzaro <mcatanzaro@gnome.org> 2.7.91-2
- Add patch to make gnome-online-accounts 3.15.91 not crash
* Tue Mar 03 2015 Tomas Popela <tpopela@redhat.com> - 2.7.91-1
- Update to 2.7.91
* Thu Feb 26 2015 Michael Catanzaro <mcatanzaro@gnome.org> - 2.7.90-10
- Add Fedora branding to the user agent
* Thu Feb 19 2015 Tomas Popela <tpopela@redhat.com> - 2.7.90-9
- Fix the build with cmake 3.2.x
* Thu Feb 19 2015 Tomas Popela <tpopela@redhat.com> - 2.7.90-8
- Fix crash in CLoop
- Forgot to reset the release number so continuing with 8
- Decrease the debuginfo verbosity on s390x
* Wed Feb 18 2015 Tomas Popela <tpopela@redhat.com> - 2.7.90-7
- Update to 2.7.90
- Add JIT and CLoop fixes
* Mon Feb 16 2015 Michael Catanzaro <mcatanzaro@gnome.org> - 2.7.4-7
- Remove disable codec installer patch, not needed in GNOME 3.15.90
* Tue Feb 10 2015 Michael Catanzaro <mcatanzaro@gnome.org> - 2.7.4-6
- Temporarily disable cloop patch since it breaks js
- Add patch for gmutexlocker namespace collision with glib 2.43.4
* Fri Feb 06 2015 Michael Catanzaro <mcatanzaro@gnome.org> - 2.7.4-5
- Revert yesterday's changes since they don't help.
* Thu Feb 05 2015 Michael Catanzaro <mcatanzaro@gnome.org> - 2.7.4-4
- Disable JIT to see if it fixes js.
* Thu Feb 05 2015 Michael Catanzaro <mcatanzaro@gnome.org> - 2.7.4-3
- Disable hardened build to see if it fixes js
* Mon Jan 26 2015 David Tardon <dtardon@redhat.com> - 2.7.4-2
- rebuild for ICU 54.1
* Tue Jan 20 2015 Tomas Popela <tpopela@redhat.com> - 2.7.4-1
- Update to 2.7.4
* Mon Jan 19 2015 Tomas Popela <tpopela@redhat.com> - 2.7.3-3
- Fix compilation on secondary arches
* Thu Jan 08 2015 Tomas Popela <tpopela@redhat.com> - 2.7.3-2
- Decrease debuginfo verbosity on ix86 to let it build
* Tue Dec 16 2014 Tomas Popela <tpopela@redhat.com> - 2.7.3-1
- Update to 2.7.3
* Tue Dec 09 2014 Michael Catanzaro <mcatanzaro@gnome.org> - 2.7.2-3
- Disable the PackageKit codec installer
* Sun Dec 07 2014 Michael Catanzaro <mcatanzaro@gnome.org> - 2.7.2-2
- Enable hardened build
* Mon Nov 24 2014 Tomas Popela <tpopela@redhat.com> - 2.7.2-1
- Update to 2.7.2
- Don't use ld.gold on s390 and aarch64
* Wed Nov 12 2014 Tomas Popela <tpopela@redhat.com> - 2.7.1-5
- Enable JIT where possible (accidentally turned off when updating to 2.5.90)
* Fri Nov 07 2014 Kalev Lember <kalevlember@gmail.com> - 2.7.1-4
- Build developer documentation
* Fri Oct 31 2014 Michael Catanzaro <mcatanzaro@gnome.org> - 2.7.1-3
- Obsolete libwebkit2gtk < 2.5.0 to be future-proof
* Fri Oct 31 2014 Kalev Lember <kalevlember@gmail.com> - 2.7.1-2
- Bump libwebkit2gtk obsoletes version
* Wed Oct 29 2014 Tomas Popela <tpopela@redhat.com> - 2.7.1-1
- Update to 2.7.1
* Wed Oct 22 2014 Tomas Popela <tpopela@redhat.com> - 2.6.2-1
- Update to 2.6.2
* Tue Oct 21 2014 Tomas Popela <tpopela@redhat.com> - 2.6.1-2
- Disable the SSLv3 to address the POODLE vulnerability
* Tue Oct 14 2014 Tomas Popela <tpopela@redhat.com> - 2.6.1-1
- Update to 2.6.1
* Thu Sep 25 2014 Tomas Popela <tpopela@redhat.com> - 2.6.0-1
- Add the wrongly removed CLoop patch and remove the one that was upstreamed
* Wed Sep 24 2014 Kalev Lember <kalevlember@gmail.com> - 2.6.0-1
- Update to 2.6.0
* Mon Sep 22 2014 Tomas Popela <tpopela@redhat.com> - 2.5.90-1
- Update to 2.5.90
* Tue Aug 26 2014 Kalev Lember <kalevlember@gmail.com> - 2.5.3-7
- Obsolete libwebkit2gtk from the webkitgtk3 package
* Tue Aug 26 2014 David Tardon <dtardon@redhat.com> - 2.5.3-6
- rebuild for ICU 53.1
* Mon Aug 25 2014 Tomas Popela <tpopela@redhat.com> - 2.5.3-5
- Add support for secondary arches
* Fri Aug 22 2014 Michael Catanzaro <mcatanzaro@gnome.org> - 2.5.3-4
- Add webkitgtk-2.5.3-toggle-buttons.patch
* Thu Aug 21 2014 Kalev Lember <kalevlember@gmail.com> - 2.5.3-3
- More package review fixes (#1131284)
- Correct the license tag to read LGPLv2
- Filter out provides for private libraries
* Tue Aug 19 2014 Kalev Lember <kalevlember@gmail.com> - 2.5.3-2
- Remove bundled leveldb, gtest, qunit in %%prep (#1131284)
* Fri Aug 15 2014 Kalev Lember <kalevlember@gmail.com> - 2.5.3-1
- Update to 2.5.3
* Fri Aug 01 2014 Kalev Lember <kalevlember@gmail.com> - 2.5.1-1
- Initial Fedora packaging, based on the webkitgtk3 package