Title: [239524] trunk/Source
Revision
239524
Author
[email protected]
Date
2018-12-21 15:40:30 -0800 (Fri, 21 Dec 2018)

Log Message

Expand use of sourceApplicationAuditData
https://bugs.webkit.org/show_bug.cgi?id=192995
<rdar://problem/46627875>

Reviewed by Brady Eidson.

Source/WebKit:

sourceApplicationAuditData has been used for a long time on iOS, but it's needed on more platforms.
I also made it return an Optional instead of a bool and returning by reference. Ahhh. So much nicer.

* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::sourceApplicationAuditData const):
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::getAuditToken):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::sourceApplicationAuditData const):

Source/WTF:

* wtf/Platform.h:

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (239523 => 239524)


--- trunk/Source/WTF/ChangeLog	2018-12-21 23:27:27 UTC (rev 239523)
+++ trunk/Source/WTF/ChangeLog	2018-12-21 23:40:30 UTC (rev 239524)
@@ -1,5 +1,15 @@
 2018-12-21  Alex Christensen  <[email protected]>
 
+        Expand use of sourceApplicationAuditData
+        https://bugs.webkit.org/show_bug.cgi?id=192995
+        <rdar://problem/46627875>
+
+        Reviewed by Brady Eidson.
+
+        * wtf/Platform.h:
+
+2018-12-21  Alex Christensen  <[email protected]>
+
         Revert r239503.
         https://bugs.webkit.org/show_bug.cgi?id=192944
 

Modified: trunk/Source/WTF/wtf/Platform.h (239523 => 239524)


--- trunk/Source/WTF/wtf/Platform.h	2018-12-21 23:27:27 UTC (rev 239523)
+++ trunk/Source/WTF/wtf/Platform.h	2018-12-21 23:40:30 UTC (rev 239524)
@@ -1359,6 +1359,10 @@
 #define HAVE_RSA_PSS 1
 #endif
 
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500) || PLATFORM(IOS_FAMILY)
+#define USE_SOURCE_APPLICATION_AUDIT_DATA 1
+#endif
+
 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || PLATFORM(IOS) || PLATFORM(IOSMAC)
 #define HAVE_URL_FORMATTING 1
 #endif

Modified: trunk/Source/WebKit/ChangeLog (239523 => 239524)


--- trunk/Source/WebKit/ChangeLog	2018-12-21 23:27:27 UTC (rev 239523)
+++ trunk/Source/WebKit/ChangeLog	2018-12-21 23:40:30 UTC (rev 239524)
@@ -1,3 +1,24 @@
+2018-12-21  Alex Christensen  <[email protected]>
+
+        Expand use of sourceApplicationAuditData
+        https://bugs.webkit.org/show_bug.cgi?id=192995
+        <rdar://problem/46627875>
+
+        Reviewed by Brady Eidson.
+
+        sourceApplicationAuditData has been used for a long time on iOS, but it's needed on more platforms.
+        I also made it return an Optional instead of a bool and returning by reference. Ahhh. So much nicer.
+
+        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
+        (WebKit::NetworkProcess::sourceApplicationAuditData const):
+        * Platform/IPC/Connection.h:
+        * Platform/IPC/mac/ConnectionMac.mm:
+        (IPC::Connection::getAuditToken):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::initializeWebProcess):
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::sourceApplicationAuditData const):
+
 2018-12-21  Jiewen Tan  <[email protected]>
 
         [Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https.html and http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky

Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm (239523 => 239524)


--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm	2018-12-21 23:27:27 UTC (rev 239523)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm	2018-12-21 23:40:30 UTC (rev 239524)
@@ -133,12 +133,14 @@
 
 RetainPtr<CFDataRef> NetworkProcess::sourceApplicationAuditData() const
 {
-#if PLATFORM(IOS_FAMILY) && !PLATFORM(IOSMAC)
-    audit_token_t auditToken;
+#if USE(SOURCE_APPLICATION_AUDIT_DATA)
     ASSERT(parentProcessConnection());
-    if (!parentProcessConnection() || !parentProcessConnection()->getAuditToken(auditToken))
+    if (!parentProcessConnection())
         return nullptr;
-    return adoptCF(CFDataCreate(nullptr, (const UInt8*)&auditToken, sizeof(auditToken)));
+    Optional<audit_token_t> auditToken = parentProcessConnection()->getAuditToken();
+    if (!auditToken)
+        return nullptr;
+    return adoptCF(CFDataCreate(nullptr, (const UInt8*)&*auditToken, sizeof(*auditToken)));
 #else
     return nullptr;
 #endif

Modified: trunk/Source/WebKit/Platform/IPC/Connection.h (239523 => 239524)


--- trunk/Source/WebKit/Platform/IPC/Connection.h	2018-12-21 23:27:27 UTC (rev 239523)
+++ trunk/Source/WebKit/Platform/IPC/Connection.h	2018-12-21 23:40:30 UTC (rev 239524)
@@ -137,7 +137,7 @@
     };
     static bool identifierIsValid(Identifier identifier) { return MACH_PORT_VALID(identifier.port); }
     xpc_connection_t xpcConnection() const { return m_xpcConnection.get(); }
-    bool getAuditToken(audit_token_t&);
+    Optional<audit_token_t> getAuditToken();
     pid_t remoteProcessID() const;
 #elif OS(WINDOWS)
     typedef HANDLE Identifier;

Modified: trunk/Source/WebKit/Platform/IPC/mac/ConnectionMac.mm (239523 => 239524)


--- trunk/Source/WebKit/Platform/IPC/mac/ConnectionMac.mm	2018-12-21 23:27:27 UTC (rev 239523)
+++ trunk/Source/WebKit/Platform/IPC/mac/ConnectionMac.mm	2018-12-21 23:40:30 UTC (rev 239524)
@@ -603,13 +603,14 @@
     return Identifier(m_isServer ? m_receivePort : m_sendPort, m_xpcConnection);
 }
 
-bool Connection::getAuditToken(audit_token_t& auditToken)
+Optional<audit_token_t> Connection::getAuditToken()
 {
     if (!m_xpcConnection)
-        return false;
+        return WTF::nullopt;
     
+    audit_token_t auditToken;
     xpc_connection_get_audit_token(m_xpcConnection.get(), &auditToken);
-    return true;
+    return WTFMove(auditToken);
 }
 
 bool Connection::kill()

Modified: trunk/Source/WebKit/WebProcess/WebProcess.cpp (239523 => 239524)


--- trunk/Source/WebKit/WebProcess/WebProcess.cpp	2018-12-21 23:27:27 UTC (rev 239523)
+++ trunk/Source/WebKit/WebProcess/WebProcess.cpp	2018-12-21 23:40:30 UTC (rev 239524)
@@ -401,9 +401,8 @@
 #endif
 
 #if ENABLE(REMOTE_INSPECTOR) && PLATFORM(COCOA)
-    audit_token_t auditToken;
-    if (parentProcessConnection()->getAuditToken(auditToken)) {
-        RetainPtr<CFDataRef> auditData = adoptCF(CFDataCreate(nullptr, (const UInt8*)&auditToken, sizeof(auditToken)));
+    if (Optional<audit_token_t> auditToken = parentProcessConnection()->getAuditToken()) {
+        RetainPtr<CFDataRef> auditData = adoptCF(CFDataCreate(nullptr, (const UInt8*)&*auditToken, sizeof(*auditToken)));
         Inspector::RemoteInspector::singleton().setParentProcessInformation(WebCore::presentingApplicationPID(), auditData);
     }
 #endif

Modified: trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm (239523 => 239524)


--- trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2018-12-21 23:27:27 UTC (rev 239523)
+++ trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm	2018-12-21 23:40:30 UTC (rev 239524)
@@ -417,12 +417,14 @@
 
 RetainPtr<CFDataRef> WebProcess::sourceApplicationAuditData() const
 {
-#if PLATFORM(IOS_FAMILY)
-    audit_token_t auditToken;
+#if USE(SOURCE_APPLICATION_AUDIT_DATA)
     ASSERT(parentProcessConnection());
-    if (!parentProcessConnection() || !parentProcessConnection()->getAuditToken(auditToken))
+    if (!parentProcessConnection())
         return nullptr;
-    return adoptCF(CFDataCreate(nullptr, (const UInt8*)&auditToken, sizeof(auditToken)));
+    Optional<audit_token_t> auditToken = parentProcessConnection()->getAuditToken();
+    if (!auditToken)
+        return nullptr;
+    return adoptCF(CFDataCreate(nullptr, (const UInt8*)&*auditToken, sizeof(*auditToken)));
 #else
     return nullptr;
 #endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to