summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api/qwebenginescriptcollection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginewidgets/api/qwebenginescriptcollection.cpp')
-rw-r--r--src/webenginewidgets/api/qwebenginescriptcollection.cpp45
1 files changed, 27 insertions, 18 deletions
diff --git a/src/webenginewidgets/api/qwebenginescriptcollection.cpp b/src/webenginewidgets/api/qwebenginescriptcollection.cpp
index 8d393924f..bcf0c127c 100644
--- a/src/webenginewidgets/api/qwebenginescriptcollection.cpp
+++ b/src/webenginewidgets/api/qwebenginescriptcollection.cpp
@@ -175,63 +175,72 @@ QWebEngineScriptCollectionPrivate::QWebEngineScriptCollectionPrivate(QtWebEngine
int QWebEngineScriptCollectionPrivate::count() const
{
- return m_scriptController->registeredScripts(m_contents.data()).count();
+ return m_scripts.count();
}
bool QWebEngineScriptCollectionPrivate::contains(const QWebEngineScript &s) const
{
- return m_scriptController->containsUserScript(*s.d, m_contents.data());
+ return m_scripts.contains(s);
}
void QWebEngineScriptCollectionPrivate::insert(const QWebEngineScript &script)
{
- if (!script.d)
+ if (!script.d || script.d->isNull())
return;
- m_scriptController->addUserScript(*script.d, m_contents.data());
+ m_scripts.append(script);
+ if (!m_contents || m_contents->isInitialized())
+ m_scriptController->addUserScript(*script.d, m_contents.data());
}
bool QWebEngineScriptCollectionPrivate::remove(const QWebEngineScript &script)
{
- if (!script.d)
+ if (!script.d || script.d->isNull())
return false;
- return m_scriptController->removeUserScript(*script.d, m_contents.data());
+ if (!m_contents || m_contents->isInitialized())
+ m_scriptController->removeUserScript(*script.d, m_contents.data());
+ return m_scripts.removeAll(script);
}
QList<QWebEngineScript> QWebEngineScriptCollectionPrivate::toList(const QString &scriptName) const
{
+ if (scriptName.isNull())
+ return m_scripts;
+
QList<QWebEngineScript> ret;
- Q_FOREACH (const UserScript &script, m_scriptController->registeredScripts(m_contents.data()))
- if (scriptName.isNull() || scriptName == script.name())
- ret.append(QWebEngineScript(script));
+ Q_FOREACH (const QWebEngineScript &script, m_scripts)
+ if (scriptName == script.name())
+ ret.append(script);
return ret;
}
QWebEngineScript QWebEngineScriptCollectionPrivate::find(const QString &name) const
{
- Q_FOREACH (const UserScript &script, m_scriptController->registeredScripts(m_contents.data()))
+ Q_FOREACH (const QWebEngineScript &script, m_scripts)
if (name == script.name())
- return QWebEngineScript(script);
+ return script;
return QWebEngineScript();
}
void QWebEngineScriptCollectionPrivate::clear()
{
- m_scriptController->clearAllScripts(m_contents.data());
+ m_scripts.clear();
+ if (!m_contents || m_contents->isInitialized())
+ m_scriptController->clearAllScripts(m_contents.data());
}
void QWebEngineScriptCollectionPrivate::reserve(int capacity)
{
- m_scriptController->reserve(m_contents.data(), capacity);
+ m_scripts.reserve(capacity);
+ if (!m_contents || m_contents->isInitialized())
+ m_scriptController->reserve(m_contents.data(), capacity);
}
-void QWebEngineScriptCollectionPrivate::rebindToContents(QSharedPointer<QtWebEngineCore::WebContentsAdapter> contents)
+void QWebEngineScriptCollectionPrivate::initializationFinished(QSharedPointer<QtWebEngineCore::WebContentsAdapter> contents)
{
Q_ASSERT(m_contents);
Q_ASSERT(contents);
- Q_ASSERT(m_contents != contents);
- Q_FOREACH (const UserScript &script, m_scriptController->registeredScripts(m_contents.data())) {
- m_scriptController->addUserScript(script, contents.data());
- }
+ Q_FOREACH (const QWebEngineScript &script, m_scripts)
+ m_scriptController->addUserScript(*script.d, contents.data());
m_contents = contents;
}