diff options
Diffstat (limited to 'src/webenginewidgets/api/qwebenginescriptcollection.cpp')
-rw-r--r-- | src/webenginewidgets/api/qwebenginescriptcollection.cpp | 45 |
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; } |