< prev index next >

modules/javafx.web/src/main/native/Source/WebCore/inspector/WebInjectedScriptManager.cpp

Print this page




  43 {
  44     InjectedScriptManager::disconnect();
  45 
  46     m_commandLineAPIHost->disconnect();
  47     m_commandLineAPIHost = nullptr;
  48 }
  49 
  50 void WebInjectedScriptManager::didCreateInjectedScript(InjectedScript injectedScript)
  51 {
  52     CommandLineAPIModule::injectIfNeeded(this, injectedScript);
  53 }
  54 
  55 void WebInjectedScriptManager::discardInjectedScriptsFor(DOMWindow* window)
  56 {
  57     if (m_scriptStateToId.isEmpty())
  58         return;
  59 
  60     Vector<long> idsToRemove;
  61     for (const auto& it : m_idToInjectedScript) {
  62         JSC::ExecState* scriptState = it.value.scriptState();
  63         // JDK-8164960
  64         if (scriptState == nullptr || window != domWindowFromExecState(scriptState))
  65             continue;
  66         m_scriptStateToId.remove(scriptState);
  67         idsToRemove.append(it.key);
  68     }
  69 
  70     for (size_t i = 0; i < idsToRemove.size(); i++)
  71         m_idToInjectedScript.remove(idsToRemove[i]);
  72 
  73     // Now remove script states that have id but no injected script.
  74     Vector<JSC::ExecState*> scriptStatesToRemove;
  75     for (const auto& it : m_scriptStateToId) {
  76         JSC::ExecState* scriptState = it.key;
  77         if (window == domWindowFromExecState(scriptState))
  78             scriptStatesToRemove.append(scriptState);
  79     }
  80 
  81     for (size_t i = 0; i < scriptStatesToRemove.size(); i++)
  82         m_scriptStateToId.remove(scriptStatesToRemove[i]);
  83 }


  43 {
  44     InjectedScriptManager::disconnect();
  45 
  46     m_commandLineAPIHost->disconnect();
  47     m_commandLineAPIHost = nullptr;
  48 }
  49 
  50 void WebInjectedScriptManager::didCreateInjectedScript(InjectedScript injectedScript)
  51 {
  52     CommandLineAPIModule::injectIfNeeded(this, injectedScript);
  53 }
  54 
  55 void WebInjectedScriptManager::discardInjectedScriptsFor(DOMWindow* window)
  56 {
  57     if (m_scriptStateToId.isEmpty())
  58         return;
  59 
  60     Vector<long> idsToRemove;
  61     for (const auto& it : m_idToInjectedScript) {
  62         JSC::ExecState* scriptState = it.value.scriptState();
  63         // JDK-8164076
  64         if (scriptState == nullptr || window != domWindowFromExecState(scriptState))
  65             continue;
  66         m_scriptStateToId.remove(scriptState);
  67         idsToRemove.append(it.key);
  68     }
  69 
  70     for (size_t i = 0; i < idsToRemove.size(); i++)
  71         m_idToInjectedScript.remove(idsToRemove[i]);
  72 
  73     // Now remove script states that have id but no injected script.
  74     Vector<JSC::ExecState*> scriptStatesToRemove;
  75     for (const auto& it : m_scriptStateToId) {
  76         JSC::ExecState* scriptState = it.key;
  77         if (window == domWindowFromExecState(scriptState))
  78             scriptStatesToRemove.append(scriptState);
  79     }
  80 
  81     for (size_t i = 0; i < scriptStatesToRemove.size(); i++)
  82         m_scriptStateToId.remove(scriptStatesToRemove[i]);
  83 }
< prev index next >