コード例 #1
0
ファイル: PageGroup.cpp プロジェクト: gobihun/webkit
void PageGroup::removeUserStyleSheetFromWorld(DOMWrapperWorld* world, const KURL& url)
{
    ASSERT_ARG(world, world);

    if (!m_userStyleSheets)
        return;

    UserStyleSheetMap::iterator it = m_userStyleSheets->find(world);
    bool sheetsChanged = false;
    if (it == m_userStyleSheets->end())
        return;
    
    UserStyleSheetVector* stylesheets = it->value.get();
    for (int i = stylesheets->size() - 1; i >= 0; --i) {
        if (stylesheets->at(i)->url() == url) {
            stylesheets->remove(i);
            sheetsChanged = true;
        }
    }
        
    if (!sheetsChanged)
        return;

    if (stylesheets->isEmpty())
        m_userStyleSheets->remove(it);

    resetUserStyleCacheInAllFrames();
}
コード例 #2
0
ファイル: PageGroup.cpp プロジェクト: gobihun/webkit
void PageGroup::removeAllUserContent()
{
    m_userScripts.clear();

    if (m_userStyleSheets) {
        m_userStyleSheets.clear();
        resetUserStyleCacheInAllFrames();
    }
}
コード例 #3
0
void PageGroup::removeAllUserContent()
{
    if (m_userScripts) {
        deleteAllValues(*m_userScripts);
        m_userScripts.clear();
    }

    if (m_userStyleSheets) {
        deleteAllValues(*m_userStyleSheets);
        m_userStyleSheets.clear();
        resetUserStyleCacheInAllFrames();
    }
}
コード例 #4
0
ファイル: PageGroup.cpp プロジェクト: gobihun/webkit
void PageGroup::removeUserStyleSheetsFromWorld(DOMWrapperWorld* world)
{
    ASSERT_ARG(world, world);

    if (!m_userStyleSheets)
        return;
    
    UserStyleSheetMap::iterator it = m_userStyleSheets->find(world);
    if (it == m_userStyleSheets->end())
        return;
    
    m_userStyleSheets->remove(it);

    resetUserStyleCacheInAllFrames();
}
コード例 #5
0
void PageGroup::addUserStyleSheetToWorld(DOMWrapperWorld* world, const String& source, const KURL& url,
                                         PassOwnPtr<Vector<String> > whitelist, PassOwnPtr<Vector<String> > blacklist,
                                         UserContentInjectedFrames injectedFrames,
                                         UserStyleSheet::Level level)
{
    ASSERT_ARG(world, world);

    OwnPtr<UserStyleSheet> userStyleSheet(new UserStyleSheet(source, url, whitelist, blacklist, injectedFrames, level));
    if (!m_userStyleSheets)
        m_userStyleSheets.set(new UserStyleSheetMap);
    UserStyleSheetVector*& styleSheetsInWorld = m_userStyleSheets->add(world, 0).first->second;
    if (!styleSheetsInWorld)
        styleSheetsInWorld = new UserStyleSheetVector;
    styleSheetsInWorld->append(userStyleSheet.release());

    resetUserStyleCacheInAllFrames();
}
コード例 #6
0
ファイル: PageGroup.cpp プロジェクト: gobihun/webkit
void PageGroup::addUserStyleSheetToWorld(DOMWrapperWorld* world, const String& source, const KURL& url,
                                         const Vector<String>& whitelist, const Vector<String>& blacklist,
                                         UserContentInjectedFrames injectedFrames,
                                         UserStyleLevel level,
                                         UserStyleInjectionTime injectionTime)
{
    ASSERT_ARG(world, world);

    OwnPtr<UserStyleSheet> userStyleSheet = adoptPtr(new UserStyleSheet(source, url, whitelist, blacklist, injectedFrames, level));
    if (!m_userStyleSheets)
        m_userStyleSheets = adoptPtr(new UserStyleSheetMap);
    OwnPtr<UserStyleSheetVector>& styleSheetsInWorld = m_userStyleSheets->add(world, nullptr).iterator->value;
    if (!styleSheetsInWorld)
        styleSheetsInWorld = adoptPtr(new UserStyleSheetVector);
    styleSheetsInWorld->append(userStyleSheet.release());

    if (injectionTime == InjectInExistingDocuments)
        resetUserStyleCacheInAllFrames();
}