1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-22 02:02:10 +02:00

GreaseMonkey: Don't assume metadata block is at the start of script

See #1869
This commit is contained in:
David Rosca 2016-02-27 17:58:59 +01:00
parent 0da388f206
commit c2b5b479a4
2 changed files with 3 additions and 15 deletions

View File

@ -129,11 +129,6 @@ QString GM_Script::script() const
return m_script; return m_script;
} }
QString GM_Script::metaData() const
{
return m_metadata;
}
QString GM_Script::fileName() const QString GM_Script::fileName() const
{ {
return m_fileName; return m_fileName;
@ -161,7 +156,7 @@ QWebEngineScript GM_Script::webScript() const
script.setWorldId(QWebEngineScript::MainWorld); script.setWorldId(QWebEngineScript::MainWorld);
script.setInjectionPoint(injectionPoint); script.setInjectionPoint(injectionPoint);
script.setRunsOnSubFrames(!m_noframes); script.setRunsOnSubFrames(!m_noframes);
script.setSourceCode(QSL("%1\n%2\n%3").arg(m_metadata, m_manager->bootstrapScript(), m_script)); script.setSourceCode(QSL("%1\n%2").arg(m_manager->bootstrapScript(), m_script));
return script; return script;
} }
@ -211,7 +206,6 @@ void GM_Script::parseScript()
m_startAt = DocumentEnd; m_startAt = DocumentEnd;
m_noframes = false; m_noframes = false;
m_script.clear(); m_script.clear();
m_metadata.clear();
m_enabled = true; m_enabled = true;
m_valid = false; m_valid = false;
@ -225,7 +219,7 @@ void GM_Script::parseScript()
m_fileWatcher->addPath(m_fileName); m_fileWatcher->addPath(m_fileName);
} }
QString fileData = QString::fromUtf8(file.readAll()); const QString fileData = QString::fromUtf8(file.readAll());
QzRegExp rx(QSL("// ==UserScript==(.*)// ==/UserScript==")); QzRegExp rx(QSL("// ==UserScript==(.*)// ==/UserScript=="));
rx.indexIn(fileData); rx.indexIn(fileData);
@ -305,14 +299,9 @@ void GM_Script::parseScript()
m_include.append(GM_UrlMatcher("*")); m_include.append(GM_UrlMatcher("*"));
} }
int index = fileData.indexOf(QLatin1String("// ==/UserScript==")) + 18;
m_metadata = fileData.mid(0, index);
const QString script = fileData.mid(index).trimmed();
const QString nspace = QCryptographicHash::hash(fullName().toUtf8(), QCryptographicHash::Md4).toHex(); const QString nspace = QCryptographicHash::hash(fullName().toUtf8(), QCryptographicHash::Md4).toHex();
const QString gmValues = m_manager->valuesScript().arg(nspace); const QString gmValues = m_manager->valuesScript().arg(nspace);
m_script = QSL("(function(){%1\n%2\n%3\n})();").arg(gmValues, m_manager->requireScripts(requireList), script); m_script = QSL("(function(){%1\n%2\n%3\n})();").arg(gmValues, m_manager->requireScripts(requireList), fileData);
m_valid = true; m_valid = true;
} }

View File

@ -93,7 +93,6 @@ private:
bool m_noframes; bool m_noframes;
QString m_script; QString m_script;
QString m_metadata;
QString m_fileName; QString m_fileName;
bool m_enabled; bool m_enabled;
bool m_valid; bool m_valid;