SecurityOriginData SecurityOriginData::fromFrame(Frame* frame) { if (!frame) return SecurityOriginData(); Document* document = frame->document(); if (!document) return SecurityOriginData(); SecurityOrigin* origin = document->securityOrigin(); if (!origin) return SecurityOriginData(); return SecurityOriginData::fromSecurityOrigin(*origin); }
void UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier) { #if ENABLE(MEDIA_STREAM) auto request = UserMediaPermissionCheckProxy::create(*this, userMediaID); m_pendingDeviceRequests.add(userMediaID, request.ptr()); auto userMediaOrigin = API::SecurityOrigin::create(SecurityOriginData::fromDatabaseIdentifier(userMediaDocumentOriginIdentifier).valueOr(SecurityOriginData()).securityOrigin()); auto topLevelOrigin = API::SecurityOrigin::create(SecurityOriginData::fromDatabaseIdentifier(topLevelDocumentOriginIdentifier).valueOr(SecurityOriginData()).securityOrigin()); if (!m_page.uiClient().checkUserMediaPermissionForOrigin(m_page, *m_page.process().webFrame(frameID), *userMediaOrigin.get(), *topLevelOrigin.get(), request.get())) { m_pendingDeviceRequests.take(userMediaID); m_page.process().send(Messages::WebPage::DidCompleteMediaDeviceEnumeration(userMediaID, Vector<WebCore::CaptureDevice>(), emptyString(), false), m_page.pageID()); } #else UNUSED_PARAM(userMediaID); UNUSED_PARAM(frameID); UNUSED_PARAM(userMediaDocumentOriginIdentifier); UNUSED_PARAM(topLevelDocumentOriginIdentifier); #endif }