diff options
20 files changed, 165 insertions, 21 deletions
diff --git a/.qmake.conf b/.qmake.conf index b27946687..0be656f9e 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -3,4 +3,4 @@ MODULE_QMAKE_OUTDIR = $$shadowed($$PWD/Tools/qmake) QMAKEPATH += $$PWD/Tools/qmake $$MODULE_QMAKE_OUTDIR load(qt_build_config) -MODULE_VERSION = 5.5.1 +MODULE_VERSION = 5.6.0 diff --git a/Source/JavaScriptCore/LLIntOffsetsExtractor.pro b/Source/JavaScriptCore/LLIntOffsetsExtractor.pro index 5a66d1ff3..e522053d7 100644 --- a/Source/JavaScriptCore/LLIntOffsetsExtractor.pro +++ b/Source/JavaScriptCore/LLIntOffsetsExtractor.pro @@ -16,6 +16,7 @@ debug_and_release { # Don't try to link against any Qt libraries, but at least # pull in include paths as we include qglobal.h. INCLUDEPATH += $$QT.core.includes +DEFINES += QT_NO_VERSION_TAGGING CONFIG += console CONFIG -= qt @@ -61,6 +62,12 @@ macx { DESTDIR = $$targetSubDir() llint.output = $$targetSubDir()/$$llint.output INCLUDEPATH += $$targetSubDir() + contains(QT_CONFIG, qt_framework) { + # Add framework headers directly to make #include <qglobal.h> work + INCLUDEPATH += $$QT.core.libs/QtCore.framework/Headers + # Extend framework search path to make #include <QtCore/qconfig.h> work + QMAKE_CXXFLAGS += -F$$QT.core.libs + } } # Compilation of this file will automatically depend on LLIntDesiredOffsets.h diff --git a/Source/JavaScriptCore/assembler/ARMv7Assembler.h b/Source/JavaScriptCore/assembler/ARMv7Assembler.h index 28989549d..ddb57b19d 100644 --- a/Source/JavaScriptCore/assembler/ARMv7Assembler.h +++ b/Source/JavaScriptCore/assembler/ARMv7Assembler.h @@ -1960,8 +1960,10 @@ public: int jumpSizeDelta(JumpType jumpType, JumpLinkType jumpLinkType) { return JUMP_ENUM_SIZE(jumpType) - JUMP_ENUM_SIZE(jumpLinkType); } // Assembler admin methods: - - static ALWAYS_INLINE bool linkRecordSourceComparator(const LinkRecord& a, const LinkRecord& b) +#if !OS(QNX) + ALWAYS_INLINE +#endif + static bool linkRecordSourceComparator(const LinkRecord& a, const LinkRecord& b) { return a.from() < b.from(); } diff --git a/Source/JavaScriptCore/offlineasm/asm.rb b/Source/JavaScriptCore/offlineasm/asm.rb index bf2426399..ed0f15340 100644 --- a/Source/JavaScriptCore/offlineasm/asm.rb +++ b/Source/JavaScriptCore/offlineasm/asm.rb @@ -28,6 +28,7 @@ $: << File.dirname(__FILE__) require "config" require "backends" require "digest/sha1" +require "fileutils" require "offsets" require "parser" require "self_hash" @@ -244,6 +245,7 @@ if FileTest.exist? outputFlnm firstLine = inp.gets if firstLine and firstLine.chomp == inputHash $stderr.puts "offlineasm: Nothing changed." + FileUtils.touch(outputFlnm) exit 0 end } diff --git a/Source/ThirdParty/ANGLE/DerivedSources.pri b/Source/ThirdParty/ANGLE/DerivedSources.pri index 8f950e82c..686c8266f 100644 --- a/Source/ThirdParty/ANGLE/DerivedSources.pri +++ b/Source/ThirdParty/ANGLE/DerivedSources.pri @@ -11,6 +11,13 @@ sanitizedFile = $$toSanitizedPath($$_FILE_) equals(sanitizedFile, $$toSanitizedPath($$_PRO_FILE_)):TEMPLATE = derived +INCLUDEPATH += \ + $$PWD/include \ + $$PWD/include/GLSLANG \ + $$PWD/include/KHR \ + $$PWD/src \ + $$PWD/src/compiler/preprocessor + ANGLE_FLEX_SOURCES = \ $$PWD/src/compiler/glslang.l \ $$PWD/src/compiler/preprocessor/Tokenizer.l diff --git a/Source/WTF/wtf/AutodrainedPool.h b/Source/WTF/wtf/AutodrainedPool.h index 2448eea11..6c74ccaeb 100644 --- a/Source/WTF/wtf/AutodrainedPool.h +++ b/Source/WTF/wtf/AutodrainedPool.h @@ -31,7 +31,11 @@ #include <wtf/Noncopyable.h> +#ifdef Q_FORWARD_DECLARE_OBJC_CLASS +Q_FORWARD_DECLARE_OBJC_CLASS(NSAutoreleasePool); +#else OBJC_CLASS NSAutoreleasePool; +#endif namespace WTF { diff --git a/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp b/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp index d183dd8ee..65b93535a 100644 --- a/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp +++ b/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp @@ -49,6 +49,7 @@ #include "Font.h" #include "ImageBuffer.h" #include "NotImplemented.h" +#include "KURL.h" #include "Path.h" #include "Pattern.h" #include "ShadowBlur.h" @@ -65,9 +66,12 @@ #include <QPixmap> #include <QPolygonF> #include <QStack> +#include <QUrl> #include <QVector> #include <wtf/MathExtras.h> +#include <private/qpdf_p.h> + #if OS(WINDOWS) QT_BEGIN_NAMESPACE Q_GUI_EXPORT QPixmap qt_pixmapFromWinHBITMAP(HBITMAP, int hbitmapFormat = 0); @@ -1558,9 +1562,18 @@ void GraphicsContext::set3DTransform(const TransformationMatrix& transform) } #endif -void GraphicsContext::setURLForRect(const KURL&, const IntRect&) +void GraphicsContext::setURLForRect(const KURL& url, const IntRect& rect) { +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + if (paintingDisabled()) + return; + + QPainter* p = m_data->p(); + if (p->paintEngine()->type() == QPaintEngine::Pdf) + static_cast<QPdfEngine *>(p->paintEngine())->drawHyperlink(p->worldTransform().mapRect(QRectF(rect.x(), rect.y(), rect.width(), rect.height())), QUrl(url.string())); +#else notImplemented(); +#endif } void GraphicsContext::setPlatformStrokeColor(const Color& color, ColorSpace colorSpace) diff --git a/Source/WebKit2/Shared/WebPreferencesStore.h b/Source/WebKit2/Shared/WebPreferencesStore.h index fb6eabc45..46a5ffab5 100644 --- a/Source/WebKit2/Shared/WebPreferencesStore.h +++ b/Source/WebKit2/Shared/WebPreferencesStore.h @@ -161,6 +161,7 @@ namespace WebKit { macro(HiddenPageDOMTimerThrottlingEnabled, hiddenPageDOMTimerThrottlingEnabled, Bool, bool, DEFAULT_HIDDEN_PAGE_DOM_TIMER_THROTTLING_ENABLED) \ macro(HiddenPageCSSAnimationSuspensionEnabled, hiddenPageCSSAnimationSuspensionEnabled, Bool, bool, DEFAULT_HIDDEN_PAGE_CSS_ANIMATION_SUSPENSION_ENABLED) \ macro(LowPowerVideoAudioBufferSizeEnabled, lowPowerVideoAudioBufferSizeEnabled, Bool, bool, false) \ + macro(SpatialNavigationEnabled, spatialNavigationEnabled, Bool, bool, false) \ \ #define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \ diff --git a/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp b/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp index 86af62ea6..b4deaac84 100644 --- a/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp +++ b/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp @@ -1144,3 +1144,13 @@ double WKPreferencesGetIncrementalRenderingSuppressionTimeout(WKPreferencesRef p { return toAPI(toImpl(preferencesRef)->incrementalRenderingSuppressionTimeout()); } + +void WKPreferencesSetSpatialNavigationEnabled(WKPreferencesRef preferencesRef, bool enabled) +{ + toImpl(preferencesRef)->setSpatialNavigationEnabled(enabled); +} + +bool WKPreferencesGetSpatialNavigationEnabled(WKPreferencesRef preferencesRef) +{ + return toImpl(preferencesRef)->spatialNavigationEnabled(); +} diff --git a/Source/WebKit2/UIProcess/API/C/WKPreferences.h b/Source/WebKit2/UIProcess/API/C/WKPreferences.h index bf36bb60e..a9865d15f 100644 --- a/Source/WebKit2/UIProcess/API/C/WKPreferences.h +++ b/Source/WebKit2/UIProcess/API/C/WKPreferences.h @@ -240,6 +240,10 @@ WK_EXPORT bool WKPreferencesGetQTKitEnabled(WKPreferencesRef preferencesRef); WK_EXPORT void WKPreferencesSetAsynchronousSpellCheckingEnabled(WKPreferencesRef preferencesRef, bool enabled); WK_EXPORT bool WKPreferencesGetAsynchronousSpellCheckingEnabled(WKPreferencesRef preferencesRef); +// Defaults to false. +WK_EXPORT void WKPreferencesSetSpatialNavigationEnabled(WKPreferencesRef preferencesRef, bool enabled); +WK_EXPORT bool WKPreferencesGetSpatialNavigationEnabled(WKPreferencesRef preferencesRef); + #ifdef __cplusplus } #endif diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp index 11ebb4f81..bc2d5d21c 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp @@ -621,6 +621,7 @@ void QQuickWebViewPrivate::didRelaunchProcess() updateViewportSize(); updateUserScripts(); + updateUserStyleSheets(); updateSchemeDelegates(); } @@ -874,27 +875,32 @@ void QQuickWebViewPrivate::setNavigatorQtObjectEnabled(bool enabled) WKPagePostMessageToInjectedBundle(webPage.get(), messageName, wkEnabled.get()); } -static WKRetainPtr<WKStringRef> readUserScript(const QUrl& url) +static WKRetainPtr<WKStringRef> readUserFile(const QUrl& url, const char* userFileType) { + if (!url.isValid()) { + qWarning("QQuickWebView: Couldn't open '%s' as %s because URL is invalid.", qPrintable(url.toString()), userFileType); + return 0; + } + QString path; if (url.isLocalFile()) path = url.toLocalFile(); else if (url.scheme() == QLatin1String("qrc")) path = QStringLiteral(":") + url.path(); else { - qWarning("QQuickWebView: Couldn't open '%s' as user script because only file:/// and qrc:/// URLs are supported.", qPrintable(url.toString())); + qWarning("QQuickWebView: Couldn't open '%s' as %s because only file:/// and qrc:/// URLs are supported.", qPrintable(url.toString()), userFileType); return 0; } QFile file(path); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - qWarning("QQuickWebView: Couldn't open '%s' as user script due to error '%s'.", qPrintable(url.toString()), qPrintable(file.errorString())); + qWarning("QQuickWebView: Couldn't open '%s' as %s due to error '%s'.", qPrintable(url.toString()), userFileType, qPrintable(file.errorString())); return 0; } QByteArray contents = file.readAll(); if (contents.isEmpty()) - qWarning("QQuickWebView: Ignoring '%s' as user script because file is empty.", qPrintable(url.toString())); + qWarning("QQuickWebView: Ignoring '%s' as %s because file is empty.", qPrintable(url.toString()), userFileType); return adoptWK(WKStringCreateWithUTF8CString(contents.constData())); } @@ -905,17 +911,25 @@ void QQuickWebViewPrivate::updateUserScripts() // each Page/WebView pair we create. WKPageGroupRemoveAllUserScripts(pageGroup.get()); - for (unsigned i = 0; i < userScripts.size(); ++i) { - const QUrl& url = userScripts.at(i); - if (!url.isValid()) { - qWarning("QQuickWebView: Couldn't open '%s' as user script because URL is invalid.", qPrintable(url.toString())); + foreach (const QUrl& url, userScripts) { + WKRetainPtr<WKStringRef> contents = readUserFile(url, "user script"); + if (!contents || WKStringIsEmpty(contents.get())) continue; - } + WKPageGroupAddUserScript(pageGroup.get(), contents.get(), /*baseURL*/ 0, /*whitelistedURLPatterns*/ 0, /*blacklistedURLPatterns*/ 0, kWKInjectInTopFrameOnly, kWKInjectAtDocumentEnd); + } +} + +void QQuickWebViewPrivate::updateUserStyleSheets() +{ + // This feature works per-WebView because we keep an unique page group for + // each Page/WebView pair we create. + WKPageGroupRemoveAllUserStyleSheets(pageGroup.get()); - WKRetainPtr<WKStringRef> contents = readUserScript(url); + foreach (const QUrl& url, userStyleSheets) { + WKRetainPtr<WKStringRef> contents = readUserFile(url, "user style sheet"); if (!contents || WKStringIsEmpty(contents.get())) continue; - WKPageGroupAddUserScript(pageGroup.get(), contents.get(), /*baseURL*/ 0, /*whitelistedURLPatterns*/ 0, /*blacklistedURLPatterns*/ 0, kWKInjectInTopFrameOnly, kWKInjectAtDocumentEnd); + WKPageGroupAddUserStyleSheet(pageGroup.get(), contents.get(), /*baseURL*/ 0, /*whitelistedURLPatterns*/ 0, /*blacklistedURLPatterns*/ 0, kWKInjectInTopFrameOnly); } } @@ -1524,6 +1538,22 @@ void QQuickWebViewExperimental::setUserScripts(const QList<QUrl>& userScripts) emit userScriptsChanged(); } +QList<QUrl> QQuickWebViewExperimental::userStyleSheets() const +{ + Q_D(const QQuickWebView); + return d->userStyleSheets; +} + +void QQuickWebViewExperimental::setUserStyleSheets(const QList<QUrl>& userStyleSheets) +{ + Q_D(QQuickWebView); + if (d->userStyleSheets == userStyleSheets) + return; + d->userStyleSheets = userStyleSheets; + d->updateUserStyleSheets(); + emit userStyleSheetsChanged(); +} + QUrl QQuickWebViewExperimental::remoteInspectorUrl() const { #if ENABLE(INSPECTOR_SERVER) diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h index 8604dead2..1daf5db0a 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h @@ -281,6 +281,7 @@ class QWEBKIT_EXPORT QQuickWebViewExperimental : public QObject { Q_PROPERTY(QQmlListProperty<QQuickUrlSchemeDelegate> urlSchemeDelegates READ schemeDelegates) Q_PROPERTY(QString userAgent READ userAgent WRITE setUserAgent NOTIFY userAgentChanged) Q_PROPERTY(QList<QUrl> userScripts READ userScripts WRITE setUserScripts NOTIFY userScriptsChanged) + Q_PROPERTY(QList<QUrl> userStyleSheets READ userStyleSheets WRITE setUserStyleSheets NOTIFY userStyleSheetsChanged) Q_PROPERTY(QUrl remoteInspectorUrl READ remoteInspectorUrl NOTIFY remoteInspectorUrlChanged FINAL) #ifdef HAVE_WEBCHANNEL Q_PROPERTY(QQmlWebChannel* webChannel READ webChannel WRITE setWebChannel NOTIFY webChannelChanged) @@ -331,6 +332,8 @@ public: void setDeviceHeight(int); QList<QUrl> userScripts() const; void setUserScripts(const QList<QUrl>& userScripts); + QList<QUrl> userStyleSheets() const; + void setUserStyleSheets(const QList<QUrl>& userScripts); QUrl remoteInspectorUrl() const; QWebKitTest* test(); @@ -396,6 +399,7 @@ Q_SIGNALS: void enterFullScreenRequested(); void exitFullScreenRequested(); void userScriptsChanged(); + void userStyleSheetsChanged(); void preferredMinimumContentsWidthChanged(); void remoteInspectorUrlChanged(); void textFound(int matchCount); diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h index f09c16e90..a7358b5cf 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h @@ -122,6 +122,7 @@ public: bool transparentBackground() const; void setNavigatorQtObjectEnabled(bool); void updateUserScripts(); + void updateUserStyleSheets(); void updateSchemeDelegates(); QPointF contentPos() const; @@ -214,6 +215,7 @@ protected: QQmlComponent* colorChooser; QList<QUrl> userScripts; + QList<QUrl> userStyleSheets; bool m_betweenLoadCommitAndFirstFrame; bool m_useDefaultContentItemSize; diff --git a/Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp b/Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp index 26eb944e9..edca4c901 100644 --- a/Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp +++ b/Source/WebKit2/UIProcess/API/qt/qwebpreferences.cpp @@ -79,6 +79,10 @@ bool QWebPreferencesPrivate::testAttribute(QWebPreferencesPrivate::WebAttribute return WKPreferencesGetCaretBrowsingEnabled(preferencesRef); case NotificationsEnabled: return WKPreferencesGetNotificationsEnabled(preferencesRef); + case SpatialNavigationEnabled: + return WKPreferencesGetSpatialNavigationEnabled(preferencesRef); + case LinksIncludedInFocusChain: + return WKPreferencesGetTabsToLinks(preferencesRef); case UniversalAccessFromFileURLsAllowed: return WKPreferencesGetUniversalAccessFromFileURLsAllowed(preferencesRef); case FileAccessFromFileURLsAllowed: @@ -149,6 +153,12 @@ void QWebPreferencesPrivate::setAttribute(QWebPreferencesPrivate::WebAttribute a case NotificationsEnabled: WKPreferencesSetNotificationsEnabled(preferencesRef, enable); break; + case SpatialNavigationEnabled: + WKPreferencesSetSpatialNavigationEnabled(preferencesRef, enable); + break; + case LinksIncludedInFocusChain: + WKPreferencesSetTabsToLinks(preferencesRef, enable); + break; case UniversalAccessFromFileURLsAllowed: WKPreferencesSetUniversalAccessFromFileURLsAllowed(preferencesRef, enable); break; @@ -604,6 +614,32 @@ void QWebPreferences::setFileAccessFromFileURLsAllowed(bool enable) emit fileAccessFromFileURLsAllowedChanged(); } +bool QWebPreferences::spatialNavigationEnabled() const +{ + return d->testAttribute(QWebPreferencesPrivate::SpatialNavigationEnabled); +} + +void QWebPreferences::setSpatialNavigationEnabled(bool enable) +{ + if (spatialNavigationEnabled() == enable) + return; + d->setAttribute(QWebPreferencesPrivate::SpatialNavigationEnabled, enable); + emit spatialNavigationEnabledChanged(); +} + +bool QWebPreferences::linksIncludedInFocusChain() const +{ + return d->testAttribute(QWebPreferencesPrivate::LinksIncludedInFocusChain); +} + +void QWebPreferences::setLinksIncludedInFocusChain(bool enable) +{ + if (linksIncludedInFocusChain() == enable) + return; + d->setAttribute(QWebPreferencesPrivate::LinksIncludedInFocusChain, enable); + emit linksIncludedInFocusChainChanged(); +} + QWebPreferencesPrivate* QWebPreferencesPrivate::get(QWebPreferences* preferences) { return preferences->d; diff --git a/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p.h b/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p.h index 9c503d431..08c4df2d8 100644 --- a/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p.h +++ b/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p.h @@ -49,6 +49,8 @@ public: Q_PROPERTY(bool notificationsEnabled READ notificationsEnabled WRITE setNotificationsEnabled NOTIFY notificationsEnabledChanged FINAL) Q_PROPERTY(bool universalAccessFromFileURLsAllowed READ universalAccessFromFileURLsAllowed WRITE setUniversalAccessFromFileURLsAllowed NOTIFY universalAccessFromFileURLsAllowedChanged FINAL) Q_PROPERTY(bool fileAccessFromFileURLsAllowed READ fileAccessFromFileURLsAllowed WRITE setFileAccessFromFileURLsAllowed NOTIFY fileAccessFromFileURLsAllowedChanged FINAL) + Q_PROPERTY(bool spatialNavigationEnabled READ spatialNavigationEnabled WRITE setSpatialNavigationEnabled NOTIFY spatialNavigationEnabledChanged FINAL) + Q_PROPERTY(bool linksIncludedInFocusChain READ linksIncludedInFocusChain WRITE setLinksIncludedInFocusChain NOTIFY linksIncludedInFocusChainChanged FINAL) Q_PROPERTY(QString standardFontFamily READ standardFontFamily WRITE setStandardFontFamily NOTIFY standardFontFamilyChanged FINAL) Q_PROPERTY(QString fixedFontFamily READ fixedFontFamily WRITE setFixedFontFamily NOTIFY fixedFontFamilyChanged FINAL) @@ -115,6 +117,12 @@ public: bool fileAccessFromFileURLsAllowed() const; void setFileAccessFromFileURLsAllowed(bool enable); + bool spatialNavigationEnabled() const; + void setSpatialNavigationEnabled(bool enable); + + bool linksIncludedInFocusChain() const; + void setLinksIncludedInFocusChain(bool enable); + QString standardFontFamily() const; void setStandardFontFamily(const QString& family); @@ -159,6 +167,8 @@ Q_SIGNALS: void webAudioEnabledChanged(); void caretBrowsingEnabledChanged(); void notificationsEnabledChanged(); + void spatialNavigationEnabledChanged(); + void linksIncludedInFocusChainChanged(); void universalAccessFromFileURLsAllowedChanged(); void fileAccessFromFileURLsAllowedChanged(); diff --git a/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h b/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h index 844fd5b4e..f978a5bd2 100644 --- a/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h +++ b/Source/WebKit2/UIProcess/API/qt/qwebpreferences_p_p.h @@ -43,7 +43,9 @@ public: CaretBrowsingEnabled, NotificationsEnabled, UniversalAccessFromFileURLsAllowed, - FileAccessFromFileURLsAllowed + FileAccessFromFileURLsAllowed, + SpatialNavigationEnabled, + LinksIncludedInFocusChain }; enum FontFamily { diff --git a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp index 6d75b2b83..1351a095d 100644 --- a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp +++ b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp @@ -679,8 +679,12 @@ EditorState WebPage::editorState() const // FIXME: We should only transfer innerText when it changes and do this on the UI side. - if (result.isContentEditable && !result.isInPasswordField) { - result.surroundingText = scope->innerText(); + if (result.isContentEditable) { + if (isHTMLTextFormControlElement(scope)) + result.surroundingText = toHTMLTextFormControlElement(scope)->innerTextValue(); + else + result.surroundingText = scope->innerText(); + if (result.hasComposition) { // The anchor is always the left position when they represent a composition. result.surroundingText.remove(result.anchorPosition, result.cursorPosition - result.anchorPosition); @@ -2522,6 +2526,7 @@ void WebPage::updatePreferences(const WebPreferencesStore& store) settings->setScrollAnimatorEnabled(store.getBoolValueForKey(WebPreferencesKey::scrollAnimatorEnabledKey())); #endif settings->setInteractiveFormValidationEnabled(store.getBoolValueForKey(WebPreferencesKey::interactiveFormValidationEnabledKey())); + settings->setSpatialNavigationEnabled(store.getBoolValueForKey(WebPreferencesKey::spatialNavigationEnabledKey())); #if ENABLE(SQL_DATABASE) DatabaseManager::manager().setIsAvailable(store.getBoolValueForKey(WebPreferencesKey::databasesEnabledKey())); diff --git a/Source/api.pri b/Source/api.pri index e0a09e829..de04652ca 100644 --- a/Source/api.pri +++ b/Source/api.pri @@ -28,7 +28,7 @@ use?(3D_GRAPHICS): WEBKIT += angle use?(leveldb):!use?(system_leveldb) WEBKIT += leveldb MODULE = webkit -CONFIG += creating_module +CONFIG += creating_module no_linker_version_script # This is the canonical list of dependencies for the public API of # the QtWebKit library, and will end up in the library's prl file. diff --git a/Tools/qmake/mkspecs/features/default_pre.prf b/Tools/qmake/mkspecs/features/default_pre.prf index 2397c54aa..dbad90d5f 100644 --- a/Tools/qmake/mkspecs/features/default_pre.prf +++ b/Tools/qmake/mkspecs/features/default_pre.prf @@ -37,7 +37,7 @@ equals(OUT_PWD, $${ROOT_BUILD_DIR}) { } # Try to detect if we're running under Windows cmd.exe or not -win32:isEmpty(MINGW_IN_SHELL): CONFIG += win_cmd_shell +equals(QMAKE_DIR_SEP, \\): CONFIG += win_cmd_shell # Default location of generated sources GENERATED_SOURCES_DESTDIR = generated diff --git a/Tools/qmake/mkspecs/features/functions.prf b/Tools/qmake/mkspecs/features/functions.prf index 7b3ab01c4..dc0c78f97 100644 --- a/Tools/qmake/mkspecs/features/functions.prf +++ b/Tools/qmake/mkspecs/features/functions.prf @@ -269,7 +269,8 @@ defineTest(linkAgainstLibrary) { mac { LIBS += -Wl,-force_load,$${path}$${QMAKE_DIR_SEP}lib$${target}.a } else:win32-msvc*|wince*|win32-icc { - LIBS += /OPT:REF -l$$target + LIBS += -l$$target + QMAKE_LFLAGS += /OPT:REF } else { CONFIG *= no_smart_library_merge LIBS += -Wl,-whole-archive -l$$target -Wl,-no-whole-archive @@ -351,6 +352,10 @@ defineReplace(configDefines) { plugin_architecture: defines += $$upper($$config)=1 next() } + equals(config, "use_system_malloc") { + use: defines += $$upper($$config)=1 + next() + } match = $$find(config, "^use_") !isEmpty(match) { use: defines += WTF_$$upper($$config)=1 |