summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/browser_accessibility_manager_qt.cpp5
-rw-r--r--src/core/browser_accessibility_qt.cpp8
-rw-r--r--src/core/permission_manager_qt.cpp19
3 files changed, 26 insertions, 6 deletions
diff --git a/src/core/browser_accessibility_manager_qt.cpp b/src/core/browser_accessibility_manager_qt.cpp
index 5a5138a08..8a0cfb94f 100644
--- a/src/core/browser_accessibility_manager_qt.cpp
+++ b/src/core/browser_accessibility_manager_qt.cpp
@@ -6,6 +6,7 @@
#include "ui/accessibility/platform/browser_accessibility_manager.h"
+#include <QtCore/qdebug.h>
#include <QtGui/qtguiglobal.h>
#if QT_CONFIG(accessibility)
@@ -100,6 +101,10 @@ void BrowserAccessibilityManagerQt::FireBlinkEvent(ax::mojom::Event event_type,
int action_request_id)
{
auto *iface = toQAccessibleInterface(node);
+ if (!iface) {
+ qWarning() << "Trying to fire accessibility event on deinitialized node, ax::mojom::Event:" << (int)event_type;
+ return;
+ }
switch (event_type) {
case ax::mojom::Event::kFocus: {
diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp
index c45557858..31ea541ca 100644
--- a/src/core/browser_accessibility_qt.cpp
+++ b/src/core/browser_accessibility_qt.cpp
@@ -38,6 +38,7 @@ public:
#endif
bool isReady() const;
+ bool CanFireEvents() const override;
QtWebEngineCore::BrowserAccessibilityInterface *interface = nullptr;
};
@@ -165,6 +166,13 @@ bool BrowserAccessibilityQt::isReady() const
return manager()->GetFromID(node()->id()) != nullptr;
}
+bool BrowserAccessibilityQt::CanFireEvents() const
+{
+ if (!node() || !interface || !isReady())
+ return false;
+ return BrowserAccessibility::CanFireEvents();
+}
+
#if defined(Q_OS_MACOS)
// Mac-only logic based on ui/accessibility/platform/browser_accessibility_mac.mm:
diff --git a/src/core/permission_manager_qt.cpp b/src/core/permission_manager_qt.cpp
index 502f4deb9..7a7f24b67 100644
--- a/src/core/permission_manager_qt.cpp
+++ b/src/core/permission_manager_qt.cpp
@@ -469,8 +469,15 @@ QList<QWebEnginePermission> PermissionManagerQt::listPermissions(
Q_ASSERT(origin.isEmpty() || permissionType == QWebEnginePermission::PermissionType::Unsupported);
QList<QWebEnginePermission> returnList;
- const GURL gorigin = toGurl(origin).DeprecatedGetOriginAsURL();
- const std::string originSpec = gorigin.spec();
+ const GURL gorigin = toGurl(origin);
+ std::string originString = url::Origin::Create(gorigin).Serialize();
+
+ if (originString == "null") {
+ // Origin::Serialize() returns "null" for empty URLs.
+ // Set originString to empty string so we don't have to do
+ // string comparisons for every permission in the loop below.
+ originString.clear();
+ }
if (!origin.isEmpty() && !gorigin.is_valid())
return returnList;
@@ -495,7 +502,7 @@ QList<QWebEnginePermission> PermissionManagerQt::listPermissions(
Q_ASSERT(prefDict);
for (auto &&entry : *prefDict) {
- if (!originSpec.empty() && entry.first != originSpec)
+ if (!originString.empty() && entry.first != originString)
continue;
auto *pvt = new QWebEnginePermissionPrivate(
@@ -695,7 +702,7 @@ blink::mojom::PermissionStatus PermissionManagerQt::GetPermissionStatus(
const auto *permissionsDict = pref->GetValue()->GetIfDict();
Q_ASSERT(permissionsDict);
- const auto requestedPermission = permissionsDict->FindBool(requesting_origin.DeprecatedGetOriginAsURL().spec());
+ const auto requestedPermission = permissionsDict->FindBool(url::Origin::Create(requesting_origin).Serialize());
if (!requestedPermission)
return blink::mojom::PermissionStatus::ASK; // Origin is not in the current permission type's database
@@ -790,7 +797,7 @@ void PermissionManagerQt::ResetPermission(
return;
ScopedDictPrefUpdate updater(m_prefService.get(), permissionTypeString(permissionType));
- updater.Get().Remove(requesting_origin.spec());
+ updater.Get().Remove(url::Origin::Create(requesting_origin).Serialize());
}
blink::mojom::PermissionStatus PermissionManagerQt::getTransientPermissionStatus(
@@ -829,7 +836,7 @@ void PermissionManagerQt::setPersistentPermission(
return;
ScopedDictPrefUpdate updater(m_prefService.get(), permissionTypeString(permissionTypeQt));
- updater.Get().Set(requesting_origin.spec(), granted);
+ updater.Get().Set(url::Origin::Create(requesting_origin).Serialize(), granted);
m_prefService->SchedulePendingLossyWrites();
}