void CWebCore::AllowPendingPages ( bool bRemember ) { for ( const auto& request : m_PendingRequests ) { AddAllowedPage ( request, !bRemember ? eWebFilterType::WEBFILTER_REQUEST : eWebFilterType::WEBFILTER_USER ); } // Trigger an event now auto pCurrentMod = CModManager::GetSingleton ().GetCurrentMod (); if ( !pCurrentMod ) return; pCurrentMod->WebsiteRequestResultHandler ( m_PendingRequests ); m_PendingRequests.clear (); if ( bRemember ) { std::vector<std::pair<SString, bool>> result; // Contains only allowed entries CCore::GetSingleton ().GetWebCore ()->GetFilterEntriesByType ( result, eWebFilterType::WEBFILTER_USER, eWebFilterState::WEBFILTER_ALLOWED ); std::vector<SString> customWhitelist; for ( std::vector<std::pair<SString, bool>>::iterator iter = result.begin (); iter != result.end (); ++iter ) customWhitelist.push_back ( iter->first ); WriteCustomList ( "customwhitelist", customWhitelist, false ); } }
std::unordered_set<SString> CWebCore::AllowPendingPages ( bool bRemember ) { for ( const auto& request : m_PendingRequests ) { AddAllowedPage ( request, !bRemember ? eWebFilterType::WEBFILTER_REQUEST : eWebFilterType::WEBFILTER_USER ); } // Trigger an event now auto pCurrentMod = g_pCore->GetModManager ()->GetCurrentMod (); if ( !pCurrentMod ) return std::unordered_set<SString>(); pCurrentMod->WebsiteRequestResultHandler ( m_PendingRequests ); if ( bRemember ) { std::vector<std::pair<SString, bool>> result; // Contains only allowed entries g_pCore->GetWebCore ()->GetFilterEntriesByType ( result, eWebFilterType::WEBFILTER_USER, eWebFilterState::WEBFILTER_ALLOWED ); std::vector<SString> customWhitelist; for ( std::vector<std::pair<SString, bool>>::iterator iter = result.begin (); iter != result.end (); ++iter ) customWhitelist.push_back ( iter->first ); WriteCustomList ( "customwhitelist", customWhitelist, false ); } auto allowedRequests(std::move(m_PendingRequests)); m_PendingRequests.clear(); // MSVC's move constructor already clears the list which isn't specified by the C++ standard though return allowedRequests; }