diff options
Diffstat (limited to 'src/frontend/display/bthtmlreaddisplay.cpp')
-rw-r--r-- | src/frontend/display/bthtmlreaddisplay.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/frontend/display/bthtmlreaddisplay.cpp b/src/frontend/display/bthtmlreaddisplay.cpp index 2d95c38..d7ee33f 100644 --- a/src/frontend/display/bthtmlreaddisplay.cpp +++ b/src/frontend/display/bthtmlreaddisplay.cpp @@ -12,7 +12,6 @@ #include <QSharedPointer> #include <QMenu> #include <QString> -#include "backend/config/cbtconfig.h" #include "backend/keys/cswordkey.h" #include "backend/managers/referencemanager.h" #include "frontend/cdragdrop.h" @@ -55,7 +54,7 @@ void BtHtmlReadDisplay::initJavascript() { namespace DU = util::directory; // read bthtml.js javascript file once - if (javascript.size() == 0) { + if (javascript.isEmpty()) { QString jsFile = DU::getJavascriptDir().canonicalPath() + "/bthtml.js"; QFile file(jsFile); if (file.open(QFile::ReadOnly)) { @@ -75,6 +74,16 @@ void BtHtmlReadDisplay::initJavascript() { // When the QWebFrame is cleared, this function is called to install the // javascript object (BtHtmlJsObject class) into the Javascript model void BtHtmlReadDisplay::loadJSObject() { + // Starting with Qt 4.7.4 with QtWebKit 2.2 stronger security checking occurs. + // The BtHtmlJsObject that is associated with a given load of a page is rejected + // as causing a cross site security problem when a new page is loaded. Deleting + // the object and creating it new for each page loaded allows the object to access + // javascript variables without this security issue. + if (m_jsObject != 0) + delete m_jsObject; + m_jsObject = new BtHtmlJsObject(this); + m_jsObject->setObjectName("btHtmlJsObject"); + mainFrame()->addToJavaScriptWindowObject(m_jsObject->objectName(), m_jsObject); } @@ -248,7 +257,7 @@ void BtHtmlReadDisplay::slotGoToAnchor(const QString& anchor) { // Save the Lemma (Strongs number) attribute void BtHtmlReadDisplay::setLemma(const QString& lemma) { - m_nodeInfo[ CDisplay::Lemma ] = lemma; + m_nodeInfo = lemma; } // Open the Find text dialog @@ -263,7 +272,7 @@ void BtHtmlReadDisplay::slotLoadFinished(bool) { } // For debugging javascript - set breakpoint in this function to catch javascript error messages -#if DEBUG_JS +#ifdef DEBUG_JS void BtHtmlReadDisplay::javaScriptConsoleMessage (const QString& message, int lineNumber, const QString& sourceID ) { } #endif |