summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael BrĂ¼ning <michael.bruning@qt.io>2021-04-16 11:09:34 +0200
committerMichael BrĂ¼ning <michael.bruning@qt.io>2021-04-20 14:44:58 +0200
commit1bfd7557938e0a41422b2af4409353286f4cdf11 (patch)
tree8f60bc3768f586433bd00560e33eba032396f2bd
parentc772c8c0745c925818926420844543d25a073c8e (diff)
Update Chromium and adapt PermissionManagerQt
Submodule src/3rdparty 6764c29f..c38ae3ec: > [Backport] Security bug 1190525 > [Backport] Security bug 1161759 > [Backport] Security bug 1175503 > [Backport] Security bugs 1175522 and 1181276 > [Backport] CVE-2021-21219: Uninitialized Use in PDFium > [Backport] CVE-2021-21217 and CVE-2021-21218: Uninitialized Use in PDFium > [Backport] CVE-2021-21214: Use after free in Network API > [Backport] CVE-2021-21213: Use after free in WebMIDI > [Backport] CVE-2021-21207: Use after free in IndexedDB > [Backport] CVE-2021-21221: Insufficient validation of untrusted input in Mojo > [Backport] CVE-2021-21204: Use after free in Blink. > [Backport] CVE-2021-21203: Use after free in Blink > [Backport] CVE-2021-21202: Use after free in extensions. > [Backport] CVE-2021-21201: Use after free in permissions Task-number: QTBUG-92895 Change-Id: I7e6f3d443366bb291cab027510f76788c14fc023 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
m---------src/3rdparty0
-rw-r--r--src/core/permission_manager_qt.cpp7
-rw-r--r--src/core/permission_manager_qt.h8
3 files changed, 7 insertions, 8 deletions
diff --git a/src/3rdparty b/src/3rdparty
-Subproject 6764c29f7c5aaf9ecbe6532f9e2b845604c926a
+Subproject c38ae3ec48030dea4f83cda3a83d8377f772de9
diff --git a/src/core/permission_manager_qt.cpp b/src/core/permission_manager_qt.cpp
index 885a40c15..40090f8ec 100644
--- a/src/core/permission_manager_qt.cpp
+++ b/src/core/permission_manager_qt.cpp
@@ -122,7 +122,6 @@ static blink::mojom::PermissionStatus toBlink(ProfileAdapter::PermissionState re
PermissionManagerQt::PermissionManagerQt()
: m_requestIdCount(0)
- , m_subscriberIdCount(0)
{
}
@@ -339,19 +338,19 @@ void PermissionManagerQt::ResetPermission(
m_permissions.remove(key);
}
-int PermissionManagerQt::SubscribePermissionStatusChange(
+content::PermissionControllerDelegate::SubscriptionId PermissionManagerQt::SubscribePermissionStatusChange(
content::PermissionType permission,
content::RenderFrameHost * /* render_frame_host */,
const GURL& requesting_origin,
base::RepeatingCallback<void(blink::mojom::PermissionStatus)> callback)
{
- int subscriber_id = ++m_subscriberIdCount;
+ auto subscriber_id = subscription_id_generator_.GenerateNextId();
m_subscribers.insert( { subscriber_id,
Subscription { toQt(permission), toQt(requesting_origin), std::move(callback) } });
return subscriber_id;
}
-void PermissionManagerQt::UnsubscribePermissionStatusChange(int subscription_id)
+void PermissionManagerQt::UnsubscribePermissionStatusChange(content::PermissionControllerDelegate::SubscriptionId subscription_id)
{
if (!m_subscribers.erase(subscription_id))
LOG(WARNING) << "PermissionManagerQt::UnsubscribePermissionStatusChange called on unknown subscription id" << subscription_id;
diff --git a/src/core/permission_manager_qt.h b/src/core/permission_manager_qt.h
index e046174df..f8d7e0ee3 100644
--- a/src/core/permission_manager_qt.h
+++ b/src/core/permission_manager_qt.h
@@ -89,13 +89,13 @@ public:
base::OnceCallback<void(
const std::vector<blink::mojom::PermissionStatus>&)> callback) override;
- int SubscribePermissionStatusChange(
+ content::PermissionControllerDelegate::SubscriptionId SubscribePermissionStatusChange(
content::PermissionType permission,
content::RenderFrameHost* render_frame_host,
const GURL& requesting_origin,
const base::RepeatingCallback<void(blink::mojom::PermissionStatus)> callback) override;
- void UnsubscribePermissionStatusChange(int subscription_id) override;
+ void UnsubscribePermissionStatusChange(content::PermissionControllerDelegate::SubscriptionId subscription_id) override;
private:
QHash<QPair<QUrl, ProfileAdapter::PermissionType>, bool> m_permissions;
@@ -118,9 +118,9 @@ private:
};
std::vector<Request> m_requests;
std::vector<MultiRequest> m_multiRequests;
- std::map<int, Subscription> m_subscribers;
+ std::map<content::PermissionControllerDelegate::SubscriptionId, Subscription> m_subscribers;
+ content::PermissionControllerDelegate::SubscriptionId::Generator subscription_id_generator_;
int m_requestIdCount;
- int m_subscriberIdCount;
};