Example #1
0
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 );
    }
}
Example #2
0
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;
}