summaryrefslogtreecommitdiff
path: root/Source/WebKit
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit')
-rw-r--r--Source/WebKit/ChangeLog12
-rw-r--r--Source/WebKit/WebKit1.pri17
-rw-r--r--Source/WebKit/blackberry/Api/BackingStore.cpp16
-rw-r--r--Source/WebKit/blackberry/Api/BackingStore_p.h3
-rw-r--r--Source/WebKit/blackberry/Api/WebOverlay.cpp39
-rw-r--r--Source/WebKit/blackberry/Api/WebOverlay.h7
-rw-r--r--Source/WebKit/blackberry/Api/WebOverlay_p.h12
-rw-r--r--Source/WebKit/blackberry/Api/WebPage.cpp59
-rw-r--r--Source/WebKit/blackberry/Api/WebPage_p.h1
-rw-r--r--Source/WebKit/blackberry/ChangeLog229
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/BatteryClientBlackBerry.cpp3
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/BatteryClientBlackBerry.h6
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp8
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.h2
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/DeviceOrientationClientBlackBerry.cpp2
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h1
-rw-r--r--Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp1
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/AboutData.cpp2
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp12
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.cpp3
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp3
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp8
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/InputHandler.h5
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp4
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/TileIndexHash.h2
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp7
-rw-r--r--Source/WebKit/chromium/ChangeLog264
-rw-r--r--Source/WebKit/chromium/DEPS2
-rw-r--r--Source/WebKit/chromium/WebKit.gypi4
-rw-r--r--Source/WebKit/chromium/WebKitUnitTests.gyp15
-rw-r--r--Source/WebKit/chromium/features.gypi1
-rw-r--r--Source/WebKit/chromium/public/WebIDBDatabase.h3
-rw-r--r--Source/WebKit/chromium/public/WebIDBFactory.h4
-rw-r--r--Source/WebKit/chromium/public/WebInputEvent.h5
-rw-r--r--Source/WebKit/chromium/public/WebSettings.h1
-rw-r--r--Source/WebKit/chromium/src/ContextMenuClientImpl.cpp2
-rw-r--r--Source/WebKit/chromium/src/WebFrameImpl.cpp32
-rw-r--r--Source/WebKit/chromium/src/WebFrameImpl.h7
-rw-r--r--Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp9
-rw-r--r--Source/WebKit/chromium/src/WebIDBDatabaseImpl.h3
-rw-r--r--Source/WebKit/chromium/src/WebInputEventConversion.cpp4
-rw-r--r--Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp2
-rw-r--r--Source/WebKit/chromium/src/WebPopupMenuImpl.cpp2
-rw-r--r--Source/WebKit/chromium/src/WebSettingsImpl.cpp5
-rw-r--r--Source/WebKit/chromium/src/WebSettingsImpl.h1
-rw-r--r--Source/WebKit/chromium/src/WebViewImpl.cpp5
-rw-r--r--Source/WebKit/chromium/tests/ForwardIOStreamsAndroid.cpp125
-rw-r--r--Source/WebKit/chromium/tests/ForwardIOStreamsAndroid.h40
-rw-r--r--Source/WebKit/chromium/tests/IDBBindingUtilitiesTest.cpp68
-rw-r--r--Source/WebKit/chromium/tests/IDBKeyPathTest.cpp86
-rw-r--r--Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp98
-rw-r--r--Source/WebKit/chromium/tests/RunAllTests.cpp7
-rw-r--r--Source/WebKit/mac/ChangeLog35
-rw-r--r--Source/WebKit/mac/Configurations/FeatureDefines.xcconfig3
-rw-r--r--Source/WebKit/mac/Configurations/Version.xcconfig2
-rw-r--r--Source/WebKit/mac/WebView/WebView.mm6
-rw-r--r--Source/WebKit/qt/ChangeLog37
-rw-r--r--Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp161
-rw-r--r--Source/WebKit/qt/WebCoreSupport/InspectorServerQt.h3
-rw-r--r--Source/WebKit/qt/declarative/qdeclarativewebview.cpp4
-rw-r--r--Source/WebKit/qt/docs/qtwebkit.qdocconf8
-rw-r--r--Source/WebKit/win/ChangeLog78
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKit.sln21
63 files changed, 1277 insertions, 340 deletions
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index 4084fc269..d7f18027a 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,15 @@
+2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Make force_static_libs_as_shared work on Mac OS
+
+ We had to move a few LIBS += around that were in the wrong place,
+ and not caught when everything was just linked into the final
+ QtWebKit library.
+
+ Reviewed by Simon Hausmann.
+
+ * WebKit1.pri: Move multimedia-stuff to WebCore, to share with WK2
+
2012-09-11 Raphael Kubo da Costa <rakuco@webkit.org>
[EFL] Rewrite the EFL-related Find modules
diff --git a/Source/WebKit/WebKit1.pri b/Source/WebKit/WebKit1.pri
index fa2f6fa34..4a7e72e36 100644
--- a/Source/WebKit/WebKit1.pri
+++ b/Source/WebKit/WebKit1.pri
@@ -12,23 +12,6 @@ INCLUDEPATH += \
$$SOURCE_DIR/qt/WebCoreSupport \
$$ROOT_WEBKIT_DIR/Source/WTF/wtf/qt
-enable?(VIDEO):use?(QTKIT) {
- LIBS += -framework Security -framework IOKit
-
- # We can know the Mac OS version by using the Darwin major version
- DARWIN_VERSION = $$split(QMAKE_HOST.version, ".")
- DARWIN_MAJOR_VERSION = $$first(DARWIN_VERSION)
- equals(DARWIN_MAJOR_VERSION, "12") {
- LIBS += $${ROOT_WEBKIT_DIR}/WebKitLibraries/libWebKitSystemInterfaceMountainLion.a
- } else:equals(DARWIN_MAJOR_VERSION, "11") {
- LIBS += $${ROOT_WEBKIT_DIR}/WebKitLibraries/libWebKitSystemInterfaceLion.a
- } else:equals(DARWIN_MAJOR_VERSION, "10") {
- LIBS += $${ROOT_WEBKIT_DIR}/WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
- } else:equals(DARWIN_MAJOR_VERSION, "9") {
- LIBS += $${ROOT_WEBKIT_DIR}/WebKitLibraries/libWebKitSystemInterfaceLeopard.a
- }
-}
-
enable?(DEVICE_ORIENTATION)|enable?(ORIENTATION_EVENTS) {
QT += sensors
}
diff --git a/Source/WebKit/blackberry/Api/BackingStore.cpp b/Source/WebKit/blackberry/Api/BackingStore.cpp
index d626fec30..7ad6ce859 100644
--- a/Source/WebKit/blackberry/Api/BackingStore.cpp
+++ b/Source/WebKit/blackberry/Api/BackingStore.cpp
@@ -28,6 +28,7 @@
#include "FrameView.h"
#include "GraphicsContext.h"
#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "Page.h"
#include "SurfacePool.h"
#include "WebPage.h"
@@ -235,6 +236,16 @@ BackingStorePrivate::~BackingStorePrivate()
pthread_mutex_destroy(&m_mutex);
}
+void BackingStorePrivate::instrumentBeginFrame()
+{
+ WebCore::InspectorInstrumentation::didBeginFrame(WebPagePrivate::core(m_webPage));
+}
+
+void BackingStorePrivate::instrumentCancelFrame()
+{
+ WebCore::InspectorInstrumentation::didCancelFrame(WebPagePrivate::core(m_webPage));
+}
+
bool BackingStorePrivate::shouldDirectRenderingToWindow() const
{
// Direct rendering doesn't work with OpenGL compositing code paths due to
@@ -349,9 +360,14 @@ void BackingStorePrivate::resumeScreenAndBackingStoreUpdates(BackingStore::Resum
--m_suspendScreenUpdates;
BlackBerry::Platform::userInterfaceThreadMessageClient()->syncToCurrentMessage();
+#if USE(ACCELERATED_COMPOSITING)
+ // This will also blit since we set the OSDS flag above.
+ m_webPage->d->commitRootLayerIfNeeded();
+#else
// Do some blitting if necessary.
if ((op == BackingStore::Blit || op == BackingStore::RenderAndBlit) && !shouldDirectRenderingToWindow())
blitVisibleContents();
+#endif
}
void BackingStorePrivate::repaint(const Platform::IntRect& windowRect,
diff --git a/Source/WebKit/blackberry/Api/BackingStore_p.h b/Source/WebKit/blackberry/Api/BackingStore_p.h
index 71738951c..6ff040225 100644
--- a/Source/WebKit/blackberry/Api/BackingStore_p.h
+++ b/Source/WebKit/blackberry/Api/BackingStore_p.h
@@ -101,6 +101,9 @@ public:
enum TileMatrixDirection { Horizontal, Vertical };
BackingStorePrivate();
+ void instrumentBeginFrame();
+ void instrumentCancelFrame();
+
// Returns whether direct rendering is explicitly turned on or is
// required because the surface pool is not large enough to meet
// the minimum number of tiles required to scroll.
diff --git a/Source/WebKit/blackberry/Api/WebOverlay.cpp b/Source/WebKit/blackberry/Api/WebOverlay.cpp
index e01694cef..792a473b0 100644
--- a/Source/WebKit/blackberry/Api/WebOverlay.cpp
+++ b/Source/WebKit/blackberry/Api/WebOverlay.cpp
@@ -163,9 +163,9 @@ void WebOverlay::removeFromParent()
d->parent = 0;
}
-void WebOverlay::setContentsToImage(const unsigned char* data, const Platform::IntSize& imageSize)
+void WebOverlay::setContentsToImage(const unsigned char* data, const Platform::IntSize& imageSize, ImageDataAdoptionType adoptionType)
{
- d->setContentsToImage(data, imageSize);
+ d->setContentsToImage(data, imageSize, adoptionType);
}
void WebOverlay::setContentsToColor(int r, int g, int b, int a)
@@ -329,7 +329,7 @@ void WebOverlayPrivateWebKitThread::removeFromParent()
m_layer->removeFromParent();
}
-void WebOverlayPrivateWebKitThread::setContentsToImage(const unsigned char* data, const WebCore::IntSize& imageSize)
+void WebOverlayPrivateWebKitThread::setContentsToImage(const unsigned char* data, const WebCore::IntSize& imageSize, WebOverlay::ImageDataAdoptionType adoptionType)
{
notImplemented();
}
@@ -390,6 +390,7 @@ void WebOverlayLayerCompositingThreadClient::setDrawsContent(bool drawsContent)
void WebOverlayLayerCompositingThreadClient::invalidate()
{
m_texture.clear();
+ clearUploadedContents();
}
void WebOverlayLayerCompositingThreadClient::setContents(const SkBitmap& contents)
@@ -397,6 +398,12 @@ void WebOverlayLayerCompositingThreadClient::setContents(const SkBitmap& content
m_contents = contents;
m_color = Color();
m_texture.clear();
+ clearUploadedContents();
+}
+
+void WebOverlayLayerCompositingThreadClient::clearUploadedContents()
+{
+ m_uploadedContents = SkBitmap();
}
void WebOverlayLayerCompositingThreadClient::setContentsToColor(const Color& color)
@@ -404,6 +411,7 @@ void WebOverlayLayerCompositingThreadClient::setContentsToColor(const Color& col
m_contents = SkBitmap();
m_color = color;
m_texture.clear();
+ clearUploadedContents();
}
void WebOverlayLayerCompositingThreadClient::layerCompositingThreadDestroyed(WebCore::LayerCompositingThread*)
@@ -446,7 +454,8 @@ void WebOverlayLayerCompositingThreadClient::uploadTexturesIfNeeded(LayerComposi
m_texture = Texture::create();
m_texture->protect(IntSize(m_contents.width(), m_contents.height()));
IntRect bitmapRect(0, 0, m_contents.width(), m_contents.height());
- m_texture->updateContents(m_contents, bitmapRect, bitmapRect, false);
+ m_uploadedContents = m_contents;
+ m_texture->updateContents(m_uploadedContents, bitmapRect, bitmapRect, false);
}
void WebOverlayLayerCompositingThreadClient::drawTextures(LayerCompositingThread* layer, double /*scale*/, int positionLocation, int texCoordLocation)
@@ -464,6 +473,7 @@ void WebOverlayLayerCompositingThreadClient::drawTextures(LayerCompositingThread
void WebOverlayLayerCompositingThreadClient::deleteTextures(LayerCompositingThread*)
{
m_texture.clear();
+ clearUploadedContents();
}
WebOverlayPrivateCompositingThread::WebOverlayPrivateCompositingThread(PassRefPtr<LayerCompositingThread> layerCompositingThread)
@@ -594,7 +604,7 @@ void WebOverlayPrivateCompositingThread::removeFromParent()
scheduleCompositingRun();
}
-void WebOverlayPrivateCompositingThread::setContentsToImage(const unsigned char* data, const IntSize& imageSize)
+void WebOverlayPrivateCompositingThread::setContentsToImage(const unsigned char* data, const IntSize& imageSize, WebOverlay::ImageDataAdoptionType adoptionType)
{
if (!m_layerCompositingThreadClient)
return;
@@ -608,7 +618,22 @@ void WebOverlayPrivateCompositingThread::setContentsToImage(const unsigned char*
SkBitmap contents;
contents.setConfig(SkBitmap::kARGB_8888_Config, imageSize.width(), imageSize.height());
- contents.setPixels(const_cast<unsigned char*>(data));
+
+ switch (adoptionType) {
+ case WebOverlay::ReferenceImageData:
+ contents.setPixels(const_cast<unsigned char*>(data));
+ break;
+ case WebOverlay::CopyImageData:
+ if (contents.allocPixels()) {
+ contents.lockPixels();
+ size_t bytes = SkBitmap::ComputeSize(SkBitmap::kARGB_8888_Config, imageSize.width(), imageSize.height());
+ memcpy(contents.getPixels(), data, bytes);
+ contents.unlockPixels();
+ }
+ break;
+ default:
+ ASSERT_NOT_REACHED();
+ }
m_layerCompositingThreadClient->setContents(contents);
m_layerCompositingThread->setNeedsTexture(true);
@@ -733,7 +758,7 @@ void WebOverlay::removeAnimation(const WebString&)
{
}
-void WebOverlay::setContentsToImage(const unsigned char*, const Platform::IntSize&)
+void WebOverlay::setContentsToImage(const unsigned char*, const Platform::IntSize&, ImageDataAdoptionType)
{
}
diff --git a/Source/WebKit/blackberry/Api/WebOverlay.h b/Source/WebKit/blackberry/Api/WebOverlay.h
index 5fe80c423..a59f60e28 100644
--- a/Source/WebKit/blackberry/Api/WebOverlay.h
+++ b/Source/WebKit/blackberry/Api/WebOverlay.h
@@ -55,6 +55,11 @@ class WebString;
*/
class BLACKBERRY_EXPORT WebOverlay {
public:
+ enum ImageDataAdoptionType {
+ ReferenceImageData,
+ CopyImageData
+ };
+
WebOverlay();
WebOverlay(WebCore::GraphicsLayerClient*);
virtual ~WebOverlay();
@@ -94,7 +99,7 @@ public:
bool addChild(WebOverlay*);
void removeFromParent();
- void setContentsToImage(const unsigned char* data, const Platform::IntSize& imageSize);
+ void setContentsToImage(const unsigned char* data, const Platform::IntSize& imageSize, ImageDataAdoptionType = ReferenceImageData);
void setContentsToColor(int r, int g, int b, int a);
void setDrawsContent(bool);
diff --git a/Source/WebKit/blackberry/Api/WebOverlay_p.h b/Source/WebKit/blackberry/Api/WebOverlay_p.h
index bd274328a..d6c1dc176 100644
--- a/Source/WebKit/blackberry/Api/WebOverlay_p.h
+++ b/Source/WebKit/blackberry/Api/WebOverlay_p.h
@@ -24,6 +24,7 @@
#include "GraphicsLayer.h"
#include "LayerCompositingThread.h"
#include "Texture.h"
+#include "WebOverlay.h"
#include "WebOverlayOverride.h"
#include <SkBitmap.h>
@@ -45,7 +46,6 @@ class KeyframeValueList;
namespace BlackBerry {
namespace WebKit {
-class WebOverlay;
class WebOverlayClient;
class WebPagePrivate;
@@ -95,7 +95,7 @@ public:
virtual void addChild(WebOverlayPrivate*) = 0;
virtual void removeFromParent() = 0;
- virtual void setContentsToImage(const unsigned char* data, const WebCore::IntSize& imageSize) = 0;
+ virtual void setContentsToImage(const unsigned char* data, const WebCore::IntSize& imageSize, WebOverlay::ImageDataAdoptionType) = 0;
virtual void setContentsToColor(const WebCore::Color&) = 0;
virtual void setDrawsContent(bool) = 0;
@@ -152,7 +152,7 @@ public:
virtual void addChild(WebOverlayPrivate*);
virtual void removeFromParent();
- virtual void setContentsToImage(const unsigned char* data, const WebCore::IntSize& imageSize);
+ virtual void setContentsToImage(const unsigned char* data, const WebCore::IntSize& imageSize, WebOverlay::ImageDataAdoptionType);
virtual void setContentsToColor(const WebCore::Color&);
virtual void setDrawsContent(bool);
@@ -202,9 +202,13 @@ public:
virtual void deleteTextures(WebCore::LayerCompositingThread*);
private:
+ void clearUploadedContents();
+
+private:
RefPtr<WebCore::Texture> m_texture;
bool m_drawsContent;
SkBitmap m_contents;
+ SkBitmap m_uploadedContents;
WebCore::Color m_color;
WebCore::LayerCompositingThread* m_layerCompositingThread;
WebOverlay* m_owner;
@@ -243,7 +247,7 @@ public:
virtual void addChild(WebOverlayPrivate*);
virtual void removeFromParent();
- virtual void setContentsToImage(const unsigned char* data, const WebCore::IntSize& imageSize);
+ virtual void setContentsToImage(const unsigned char* data, const WebCore::IntSize& imageSize, WebOverlay::ImageDataAdoptionType);
virtual void setContentsToColor(const WebCore::Color&);
virtual void setDrawsContent(bool);
diff --git a/Source/WebKit/blackberry/Api/WebPage.cpp b/Source/WebKit/blackberry/Api/WebPage.cpp
index e4425607f..6b639bf46 100644
--- a/Source/WebKit/blackberry/Api/WebPage.cpp
+++ b/Source/WebKit/blackberry/Api/WebPage.cpp
@@ -386,10 +386,13 @@ WebPagePrivate::WebPagePrivate(WebPage* webPage, WebPageClient* client, const In
, m_cursorEventMode(ProcessedCursorEvents)
, m_touchEventMode(ProcessedTouchEvents)
#endif
-#if ENABLE(FULLSCREEN_API) && ENABLE(VIDEO)
+#if ENABLE(FULLSCREEN_API)
+#if ENABLE(VIDEO)
, m_scaleBeforeFullScreen(-1.0)
, m_xScrollOffsetBeforeFullScreen(-1)
#endif
+ , m_isTogglingFullScreenState(false)
+#endif
, m_currentCursor(Platform::CursorNone)
, m_dumpRenderTree(0) // Lazy initialization.
, m_initialScale(-1.0)
@@ -3811,54 +3814,21 @@ void WebPagePrivate::setViewportSize(const IntSize& transformedActualVisibleSize
if (atLeft)
anchor.setX(0);
- double clampedScale;
-
// Try and zoom here with clamping on.
+ // FIXME: Determine why the above comment says "clamping on", yet we
+ // don't set enforceScaleClamping to true.
+ // FIXME: Determine why ensureContentVisible() is only called for !success
+ // in the direct-rendering case, but in all cases otherwise. Chances are
+ // one of these is incorrect and we can unify two branches into one.
if (m_backingStore->d->shouldDirectRenderingToWindow()) {
bool success = zoomAboutPoint(scale, anchor, false /* enforceScaleClamping */, true /* forceRendering */);
if (!success && ensureFocusElementVisible)
ensureContentVisible(!newVisibleRectContainsOldVisibleRect);
- } else if (shouldZoomAboutPoint(scale, anchor, false /* enforceScaleClamping */, &clampedScale)) {
-
- // For some reason, the bitmap zoom wants an anchor in backingstore coordinates!
- // this is different from zoomAboutPoint, which wants content coordinates.
- // See RIM Bug #641.
-
- FloatPoint transformedAnchor = mapToTransformedFloatPoint(anchor);
- FloatPoint transformedScrollPosition = mapToTransformedFloatPoint(scrollPosition());
-
- // Prohibit backingstore from updating the window overtop of the bitmap.
- m_backingStore->d->suspendScreenAndBackingStoreUpdates();
-
- // Need to invert the previous transform to anchor the viewport.
- double zoomFraction = clampedScale / transformationMatrix()->m11();
-
- // Anchor offset from scroll position in float.
- FloatPoint anchorOffset(transformedAnchor.x() - transformedScrollPosition.x(),
- transformedAnchor.y() - transformedScrollPosition.y());
-
- IntPoint srcPoint(
- static_cast<int>(roundf(transformedAnchor.x() - anchorOffset.x() / zoomFraction)),
- static_cast<int>(roundf(transformedAnchor.y() - anchorOffset.y() / zoomFraction)));
-
- const IntRect viewportRect = IntRect(IntPoint::zero(), transformedViewportSize());
- const IntRect dstRect = viewportRect;
-
- // This is the rect to pass as the actual source rect in the backingstore
- // for the transform given by zoom.
- IntRect srcRect(srcPoint.x(),
- srcPoint.y(),
- viewportRect.width() / zoomFraction,
- viewportRect.height() / zoomFraction);
- m_backingStore->d->blitContents(dstRect, srcRect);
-
- zoomAboutPoint(clampedScale, anchor, false /*enforceScaleClamping*/, true /*forceRendering*/);
-
- m_backingStore->d->resumeScreenAndBackingStoreUpdates(BackingStore::RenderAndBlit);
-
+ } else if (zoomAboutPoint(scale, anchor, false /*enforceScaleClamping*/, true /*forceRendering*/)) {
if (ensureFocusElementVisible)
ensureContentVisible(!newVisibleRectContainsOldVisibleRect);
+
} else {
// Suspend all screen updates to the backingstore.
@@ -3892,6 +3862,13 @@ void WebPagePrivate::setViewportSize(const IntSize& transformedActualVisibleSize
// If we need layout then render and blit, otherwise just blit as our viewport has changed.
m_backingStore->d->resumeScreenAndBackingStoreUpdates(needsLayout ? BackingStore::RenderAndBlit : BackingStore::Blit);
}
+
+#if ENABLE(FULLSCREEN_API)
+ if (m_isTogglingFullScreenState) {
+ m_backingStore->d->resumeScreenAndBackingStoreUpdates(BackingStore::RenderAndBlit);
+ m_isTogglingFullScreenState = false;
+ }
+#endif
}
void WebPage::setViewportSize(const Platform::IntSize& viewportSize, bool ensureFocusElementVisible)
diff --git a/Source/WebKit/blackberry/Api/WebPage_p.h b/Source/WebKit/blackberry/Api/WebPage_p.h
index 7e427648a..15e1ab919 100644
--- a/Source/WebKit/blackberry/Api/WebPage_p.h
+++ b/Source/WebKit/blackberry/Api/WebPage_p.h
@@ -525,6 +525,7 @@ public:
double m_scaleBeforeFullScreen;
int m_xScrollOffsetBeforeFullScreen;
#endif
+ bool m_isTogglingFullScreenState;
#endif
Platform::BlackBerryCursor m_currentCursor;
diff --git a/Source/WebKit/blackberry/ChangeLog b/Source/WebKit/blackberry/ChangeLog
index aec03ffab..624acf7e3 100644
--- a/Source/WebKit/blackberry/ChangeLog
+++ b/Source/WebKit/blackberry/ChangeLog
@@ -1,3 +1,232 @@
+2012-09-18 Arvid Nilsson <anilsson@rim.com>
+
+ [BlackBerry] Prevent scroll adjustment of input fields when region of interest mechanism active
+ https://bugs.webkit.org/show_bug.cgi?id=96750
+
+ Reviewed by Antonio Gomes.
+
+ The region of interest mechanism replaces the scrolling/zooming
+ functionality in InputHandler::ensureFocusTextElementVisible().
+
+ We introduce a new fine-grained setting for the various adjustment
+ modes. The WebKit embedder can disable all scroll types in favor of the
+ region of interest mechanism by using the new setting.
+
+ PR #208387
+
+ Reviewed internally by Mike Fenton.
+
+ * WebKitSupport/AboutData.cpp:
+ (BlackBerry::WebKit::configPage):
+ * WebKitSupport/InputHandler.cpp:
+ (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
+ * WebKitSupport/InputHandler.h:
+
+2012-09-17 Jakob Petsovits <jpetsovits@rim.com>
+
+ [BlackBerry] Remove dysfunctional zoom blit in setViewportSize().
+ https://bugs.webkit.org/show_bug.cgi?id=96954
+ PR 178411
+
+ Reviewed by Antonio Gomes.
+
+ The blitContents() call removed by this patch used to
+ be part of scheduleZoomAboutPoint(). Its goal was to
+ display a preview of the zoomed contents, primarily
+ when auto-zoomed after rotation. Nested inside a pair
+ of screen suspend/resume calls, it has been a pointless
+ no-op for a while.
+
+ Antonio's recent change to remove scheduleZoomAboutPoint()
+ and call zoomAboutPoint() from setViewportSize() directly
+ (the only call site) obsoletes the call completely.
+ The zoomAboutPoint() call itself will cause a re-render
+ and blit right away, so we don't care about any preview.
+ zoomAboutPoint() will also take care of the necessary
+ screen/backingstore suspension.
+
+ The result is a vastly simplified block of code.
+
+ * Api/WebPage.cpp:
+ (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
+
+2012-09-17 Antonio Gomes <agomes@rim.com>
+
+ [BlackBerry] [FullScreen] entering/leaving fullscreen results in temporary glitches on the screen
+ https://bugs.webkit.org/show_bug.cgi?id=96927
+ PR #180866
+
+ Reviewed by Yong Li.
+
+ Suspend backing store and screen updates while entering fullscreen,
+ and only resume at the end, when viewport is resized.
+
+ * Api/WebPage.cpp:
+ (BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
+ (BlackBerry::WebKit::WebPagePrivate::setViewportSize):
+ * Api/WebPage_p.h:
+ (WebPagePrivate):
+ * WebCoreSupport/ChromeClientBlackBerry.cpp:
+ (WebCore::ChromeClientBlackBerry::enterFullScreenForElement):
+ (WebCore::ChromeClientBlackBerry::exitFullScreenForElement):
+
+2012-09-17 Rob Buis <rbuis@rim.com>
+
+ [BlackBerry] Fix compile problems in WebKit/blackberry
+ https://bugs.webkit.org/show_bug.cgi?id=96926
+
+ Reviewed by Antonio Gomes.
+
+ This code is slightly out of date and so will not compile, fix it.
+
+ * WebCoreSupport/BatteryClientBlackBerry.cpp:
+ (WebCore::BatteryClientBlackBerry::BatteryClientBlackBerry):
+ * WebCoreSupport/BatteryClientBlackBerry.h:
+ (WebKit):
+ * WebCoreSupport/CredentialTransformData.h:
+ * WebCoreSupport/DeviceOrientationClientBlackBerry.cpp:
+ (DeviceOrientationClientBlackBerry::onOrientation):
+ * WebCoreSupport/InspectorClientBlackBerry.h:
+ * WebCoreSupport/PagePopupBlackBerry.cpp:
+ * WebKitSupport/DOMSupport.cpp:
+ (BlackBerry::WebKit::DOMSupport::isDateTimeInputField):
+ (BlackBerry::WebKit::DOMSupport::isTextBasedContentEditableElement):
+ * WebKitSupport/DumpRenderTreeSupport.cpp:
+ (DumpRenderTreeSupport::numberOfPendingGeolocationPermissionRequests):
+ * WebKitSupport/InPageSearchManager.cpp:
+ (BlackBerry::WebKit::InPageSearchManager::scopeStringMatches):
+
+2012-09-17 Antonio Gomes <agomes@rim.com>
+
+ [BlackBerry] BackingStorePrivate::resumeScreenAndBackingStoreUpdates more atomic
+ https://bugs.webkit.org/show_bug.cgi?id=96925
+
+ [FullScreen] entering/leaving fullscreen results in temporary glitches on the screen (part 2/3)
+ PR #180866
+
+ Reviewed by Rob Buis.
+ Internally reviewed by Arvid Nilsson.
+
+ Paraphrasing Arvid "resumeBackingStore will be a truly atomic operation.
+ Well more atomic than it was before, with regards to a mix of accelerated and
+ non-accelerated compositing content".
+
+ I.e. by committing the root layer (if needed) when resuming the Backing
+ Store, we call blitVisibleContents right way, so we are actually shortcutting when
+ AC content will get on screen.
+
+ * Api/BackingStore.cpp:
+ (BlackBerry::WebKit::BackingStorePrivate::resumeScreenAndBackingStoreUpdates):
+
+2012-09-17 Peter Wang <peter.wang@torchmobile.com.cn>
+
+ [BlackBerry] To support "Frames View" of "TimeLine" panel in Inspector
+ https://bugs.webkit.org/show_bug.cgi?id=96077
+
+ Reviewed by Rob Buis.
+
+ Invoke the "instrumentBeginFrame" and "instrumentCancelFrame" at the start and end of processing
+ render message to record one time of page's update.
+
+ * Api/BackingStore.cpp:
+ (BlackBerry::WebKit::BackingStorePrivate::instrumentBeginFrame):
+ (WebKit):
+ (BlackBerry::WebKit::BackingStorePrivate::instrumentCancelFrame):
+ * Api/BackingStore_p.h:
+ * WebKitSupport/RenderQueue.cpp:
+ (BlackBerry::WebKit::RenderQueue::render):
+
+2012-09-17 Jakob Petsovits <jpetsovits@rim.com>
+
+ [BlackBerry] Support copying image data in WebOverlay.
+ https://bugs.webkit.org/show_bug.cgi?id=96684
+ RIM PR 195444
+
+ Reviewed by Rob Buis.
+ Internally reviewed by Arvid Nilsson.
+
+ The publicly exposed WebOverlay class provides a method
+ setContentsToImage() to assign a pointer to pixel data,
+ which is later used to provide texture data for the
+ underlying compositing layer. This works well for static
+ images that stay in memory and never change, but not
+ so well for images with changing contents or where the
+ image data is being reassigned from different image
+ sources that are not constantly kept around in memory.
+
+ Due to the delayed upload and delayed fetching of
+ EGLImage data by the GPU, we shouldn't assume the caller
+ to know how long the image should be retained. Instead,
+ we should offer another method of setting image data
+ that takes ownership of the pixel data.
+
+ This patch adds an option to setContentsToImage() that
+ copies the passed pixel data and doesn't destroy it
+ until both the texture is destroyed and the image
+ contents are changed. Using this method, the caller can
+ withdraw the passed pixel array right after the
+ setContentsToImage() call without consequences.
+
+ * Api/WebOverlay.cpp:
+ (BlackBerry::WebKit::WebOverlay::setContentsToImage):
+ (BlackBerry::WebKit::WebOverlayPrivateWebKitThread::setContentsToImage):
+ (BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::WebOverlayLayerCompositingThreadClient):
+ (BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::invalidate):
+ (BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::setContents):
+ (WebKit):
+ (BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::clearUploadedContents):
+ (BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::setContentsToColor):
+ (BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::uploadTexturesIfNeeded):
+ (BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::deleteTextures):
+ (BlackBerry::WebKit::WebOverlayPrivateCompositingThread::setContentsToImage):
+ * Api/WebOverlay.h:
+ * Api/WebOverlay_p.h:
+ (WebOverlayPrivate):
+ (WebOverlayPrivateWebKitThread):
+ (WebOverlayLayerCompositingThreadClient):
+ (WebOverlayPrivateCompositingThread):
+
+2012-09-14 Dana Jansens <danakj@chromium.org>
+
+ Minimize collisions when hashing pairs
+ https://bugs.webkit.org/show_bug.cgi?id=96022
+
+ Reviewed by Adrienne Walker.
+
+ Use WTF::pairIntHash() to hash a pair of integers.
+
+ * WebKitSupport/TileIndexHash.h:
+
+2012-09-14 Genevieve Mak <gmak@rim.com>
+
+ Always send mouse events on pages that don't scroll even if there
+ is no mouse move listener attatched.
+ PR #208228
+ https://bugs.webkit.org/show_bug.cgi?id=96800
+
+ Reviewed by Antonio Gomes.
+
+ Reviewed Internally By Antonio Gomes.
+
+ * WebKitSupport/TouchEventHandler.cpp:
+ (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
+
+2012-09-14 Mike Fenton <mifenton@rim.com>
+
+ [BlackBerry] Update the minimum zoom scale when focusing an input field.
+ https://bugs.webkit.org/show_bug.cgi?id=96789
+
+ Reviewed by Antonio Gomes.
+
+ PR 188751.
+
+ Increase the minimum font fix and base it on mm instead of pixels.
+
+ Reviewed Internally by Gen Mak.
+
+ * WebKitSupport/InputHandler.cpp:
+ (BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
+
2012-09-13 Antonio Gomes <agomes@rim.com>
[BlackBerry] Remove the ability to schedule a zoom about point call.
diff --git a/Source/WebKit/blackberry/WebCoreSupport/BatteryClientBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/BatteryClientBlackBerry.cpp
index c39f0698f..5b5f4e142 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/BatteryClientBlackBerry.cpp
+++ b/Source/WebKit/blackberry/WebCoreSupport/BatteryClientBlackBerry.cpp
@@ -22,13 +22,14 @@
#if ENABLE(BATTERY_STATUS)
#include "BatteryController.h"
+#include "WebPage_p.h"
#include <stdio.h>
namespace WebCore {
BatteryClientBlackBerry::BatteryClientBlackBerry(BlackBerry::WebKit::WebPagePrivate* webPagePrivate)
: m_webPagePrivate(webPagePrivate)
- : m_tracker(0)
+ , m_tracker(0)
{
}
diff --git a/Source/WebKit/blackberry/WebCoreSupport/BatteryClientBlackBerry.h b/Source/WebKit/blackberry/WebCoreSupport/BatteryClientBlackBerry.h
index a9f27a7e0..624cc7068 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/BatteryClientBlackBerry.h
+++ b/Source/WebKit/blackberry/WebCoreSupport/BatteryClientBlackBerry.h
@@ -26,6 +26,12 @@
#include <BlackBerryPlatformBatteryStatusTracker.h>
#include <BlackBerryPlatformBatteryStatusTrackerListener.h>
+namespace BlackBerry {
+namespace WebKit {
+class WebPagePrivate;
+}
+}
+
namespace WebCore {
class BatteryStatus;
diff --git a/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp
index 8fbf9a56a..5b4ac4aa4 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp
+++ b/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp
@@ -735,6 +735,11 @@ bool ChromeClientBlackBerry::supportsFullScreenForElement(const WebCore::Element
void ChromeClientBlackBerry::enterFullScreenForElement(WebCore::Element* element)
{
+ // To avoid glitches on the screen when entering fullscreen, lets suspend the
+ // Backing Store screen updates and only resume at the next call of WebPagePrivate::setViewportSize.
+ m_webPagePrivate->m_isTogglingFullScreenState = true;
+ m_webPagePrivate->m_backingStore->d->suspendScreenAndBackingStoreUpdates();
+
element->document()->webkitWillEnterFullScreenForElement(element);
m_webPagePrivate->enterFullScreenForElement(element);
element->document()->webkitDidEnterFullScreenForElement(element);
@@ -743,6 +748,9 @@ void ChromeClientBlackBerry::enterFullScreenForElement(WebCore::Element* element
void ChromeClientBlackBerry::exitFullScreenForElement(WebCore::Element*)
{
+ m_webPagePrivate->m_isTogglingFullScreenState = true;
+ m_webPagePrivate->m_backingStore->d->suspendScreenAndBackingStoreUpdates();
+
// The element passed into this function is not reliable, i.e. it could
// be null. In addition the parameter may be disappearing in the future.
// So we use the reference to the element we saved above.
diff --git a/Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.h b/Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.h
index 409c5776b..734a53b65 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.h
+++ b/Source/WebKit/blackberry/WebCoreSupport/CredentialTransformData.h
@@ -26,8 +26,6 @@
namespace WebCore {
-class HTMLFormElement;
-
struct CredentialTransformData {
// If the provided form is suitable for password completion, isValid() will
// return true;
diff --git a/Source/WebKit/blackberry/WebCoreSupport/DeviceOrientationClientBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/DeviceOrientationClientBlackBerry.cpp
index 683647506..8519b8fa3 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/DeviceOrientationClientBlackBerry.cpp
+++ b/Source/WebKit/blackberry/WebCoreSupport/DeviceOrientationClientBlackBerry.cpp
@@ -69,7 +69,7 @@ DeviceOrientationData* DeviceOrientationClientBlackBerry::lastOrientation() cons
void DeviceOrientationClientBlackBerry::onOrientation(const BlackBerry::Platform::DeviceOrientationEvent* event)
{
- m_currentOrientation = DeviceOrientation::create(true, event->alpha, true, event->beta, true, event->gamma);
+ m_currentOrientation = DeviceOrientationData::create(true, event->alpha, true, event->beta, true, event->gamma);
if (!m_controller)
return;
diff --git a/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h b/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h
index 34a553650..0591cdd03 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h
+++ b/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h
@@ -22,6 +22,7 @@
#include "InspectorClient.h"
#include "InspectorFrontendChannel.h"
+#include "InspectorOverlay.h"
#include "InspectorOverlayBlackBerry.h"
#include <wtf/HashMap.h>
#include <wtf/text/WTFString.h>
diff --git a/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp
index 81c148ffd..e00fb5809 100644
--- a/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp
+++ b/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp
@@ -19,6 +19,7 @@
#include "PagePopupBlackBerry.h"
+#include "DocumentLoader.h"
#include "EmptyClients.h"
#include "FrameView.h"
#include "JSDOMBinding.h"
diff --git a/Source/WebKit/blackberry/WebKitSupport/AboutData.cpp b/Source/WebKit/blackberry/WebKitSupport/AboutData.cpp
index 24260b039..5ccef3c0e 100644
--- a/Source/WebKit/blackberry/WebKitSupport/AboutData.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/AboutData.cpp
@@ -139,7 +139,7 @@ static String configPage()
page += numberToHTMLTr("selectionEnabled", settings->selectionEnabled());
page += numberToHTMLTr("fineCursorControlEnabled", settings->fineCursorControlEnabled());
page += numberToHTMLTr("alwaysShowKeyboardOnFocus", settings->alwaysShowKeyboardOnFocus());
- page += numberToHTMLTr("allowCenterScrollAdjustmentForInputFields", settings->allowCenterScrollAdjustmentForInputFields());
+ page += numberToHTMLTr("allowedScrollAdjustmentForInputFields", settings->allowedScrollAdjustmentForInputFields());
page += numberToHTMLTr("unrestrictedResizeEvents", settings->unrestrictedResizeEvents());
page += numberToHTMLTr("isBridgeBrowser", settings->isBridgeBrowser());
page += numberToHTMLTr("showImageLocationOptionsInGCM", settings->showImageLocationOptionsInGCM());
diff --git a/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp b/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp
index bb0a02851..a2c16d0d1 100644
--- a/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp
@@ -170,11 +170,11 @@ bool isDateTimeInputField(const Element* element)
const HTMLInputElement* inputElement = static_cast<const HTMLInputElement*>(element);
// The following types have popup's.
- if (inputElement->isDateControl()
- || inputElement->isDateTimeControl()
- || inputElement->isDateTimeLocalControl()
- || inputElement->isTimeControl()
- || inputElement->isMonthControl())
+ if (inputElement->isDateField()
+ || inputElement->isDateTimeField()
+ || inputElement->isDateTimeLocalField()
+ || inputElement->isTimeField()
+ || inputElement->isMonthField())
return true;
return false;
@@ -249,7 +249,7 @@ bool isTextBasedContentEditableElement(Element* element)
if (!element)
return false;
- if (element->isReadOnlyFormControl() || !element->isEnabledFormControl())
+ if (element->isReadOnlyNode() || !element->isEnabledFormControl())
return false;
if (isPopupInputField(element))
diff --git a/Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.cpp b/Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.cpp
index b777db06a..e4e4ef0c0 100644
--- a/Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/DumpRenderTreeSupport.cpp
@@ -28,7 +28,6 @@
#include "JSCSSStyleDeclaration.h"
#include "JSElement.h"
#include "Page.h"
-#include "ViewportArguments.h"
#include "WebPage_p.h"
#include "bindings/js/GCController.h"
#include <JavaScriptCore/APICast.h>
@@ -86,7 +85,7 @@ bool DumpRenderTreeSupport::linksIncludedInFocusChain()
int DumpRenderTreeSupport::numberOfPendingGeolocationPermissionRequests(WebPage* webPage)
{
- GeolocationClientMock* mockClient = toGeolocationClientMock(GeolocationController(corePage(webPage))->client());
+ GeolocationClientMock* mockClient = toGeolocationClientMock(GeolocationController::from(corePage(webPage))->client());
return mockClient->numberOfPendingPermissionRequests();
}
diff --git a/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp b/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp
index c57de91b0..b24fda3a6 100644
--- a/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp
@@ -27,6 +27,7 @@
#include "Node.h"
#include "Page.h"
#include "Range.h"
+#include "ShadowRoot.h"
#include "TextIterator.h"
#include "Timer.h"
#include "WebPage_p.h"
@@ -325,7 +326,7 @@ void InPageSearchManager::scopeStringMatches(const String& text, bool reset, boo
resultRange->ownerDocument()->markers()->addTextMatchMarker(resultRange.get(), foundActiveMatch);
searchRange->setStart(resultRange->endContainer(ec), resultRange->endOffset(ec), ec);
- Node* shadowTreeRoot = searchRange->shadowTreeRootNode();
+ ShadowRoot* shadowTreeRoot = searchRange->shadowRoot();
if (searchRange->collapsed(ec) && shadowTreeRoot)
searchRange->setEnd(shadowTreeRoot, shadowTreeRoot->childNodeCount(), ec);
m_resumeScopingFromRange = resultRange;
diff --git a/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp b/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
index 690c1bbb7..0048a6430 100644
--- a/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
@@ -66,6 +66,7 @@
#include <BlackBerryPlatformKeyboardEvent.h>
#include <BlackBerryPlatformLog.h>
#include <BlackBerryPlatformMisc.h>
+#include <BlackBerryPlatformScreen.h>
#include <BlackBerryPlatformSettings.h>
#include <sys/keycodes.h>
#include <wtf/text/CString.h>
@@ -1050,7 +1051,7 @@ void InputHandler::ensureFocusTextElementVisible(CaretScrollType scrollType)
if (!isActiveTextEdit() || !isInputModeEnabled() || !m_currentFocusElement->document())
return;
- if (!Platform::Settings::instance()->allowCenterScrollAdjustmentForInputFields() && scrollType != EdgeIfNeeded)
+ if (!(Platform::Settings::instance()->allowedScrollAdjustmentForInputFields() & scrollType))
return;
Frame* elementFrame = m_currentFocusElement->document()->frame();
@@ -1158,9 +1159,10 @@ void InputHandler::ensureFocusTextElementVisible(CaretScrollType scrollType)
}
// If the text is too small, zoom in to make it a minimum size.
- static const int s_minimumTextHeightInPixels = 6;
+ // The minimum size being defined as 3 mm is a good value based on my observations.
+ static const int s_minimumTextHeightInPixels = Graphics::Screen::primaryScreen()->widthInMMToPixels(3);
if (fontHeight && fontHeight < s_minimumTextHeightInPixels)
- m_webPage->zoomAboutPoint(s_minimumTextHeightInPixels / fontHeight, m_webPage->centerOfVisibleContentsRect());
+ m_webPage->zoomAboutPoint(s_minimumTextHeightInPixels / fontHeight, selectionFocusRect.location());
}
void InputHandler::ensureFocusPluginElementVisible()
diff --git a/Source/WebKit/blackberry/WebKitSupport/InputHandler.h b/Source/WebKit/blackberry/WebKitSupport/InputHandler.h
index e6d3297f7..c65b9916b 100644
--- a/Source/WebKit/blackberry/WebKitSupport/InputHandler.h
+++ b/Source/WebKit/blackberry/WebKitSupport/InputHandler.h
@@ -22,6 +22,7 @@
#include "TextChecking.h"
#include <BlackBerryPlatformInputEvents.h>
+#include <BlackBerryPlatformSettings.h>
#include <imf/events.h>
#include <imf/input_data.h>
@@ -65,7 +66,9 @@ public:
~InputHandler();
enum FocusElementType { TextEdit, TextPopup /* Date/Time & Color */, SelectPopup, Plugin };
- enum CaretScrollType { CenterAlways, CenterIfNeeded, EdgeIfNeeded };
+ enum CaretScrollType { CenterAlways = BlackBerry::Platform::Settings::ScrollAdjustmentCenterAlways,
+ CenterIfNeeded = BlackBerry::Platform::Settings::ScrollAdjustmentCenterIfNeeded,
+ EdgeIfNeeded = BlackBerry::Platform::Settings::ScrollAdjustmentEdgeIfNeeded };
bool isInputModeEnabled() const;
void setInputModeEnabled(bool active = true);
diff --git a/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp b/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp
index 110be1aa1..eb2593b21 100644
--- a/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp
@@ -564,6 +564,8 @@ void RenderQueue::render(bool shouldPerformRegularRenderJobs)
double time = WTF::currentTime();
#endif
+ m_parent->instrumentBeginFrame();
+
m_parent->requestLayoutIfNeeded();
#if DEBUG_RENDER_QUEUE
@@ -584,6 +586,8 @@ void RenderQueue::render(bool shouldPerformRegularRenderJobs)
renderRegularRenderJob();
} else if (!m_nonVisibleScrollJobs.empty())
renderNonVisibleScrollJob();
+
+ m_parent->instrumentCancelFrame();
}
void RenderQueue::renderAllCurrentRegularRenderJobs()
diff --git a/Source/WebKit/blackberry/WebKitSupport/TileIndexHash.h b/Source/WebKit/blackberry/WebKitSupport/TileIndexHash.h
index 0d4633b75..29d1603c5 100644
--- a/Source/WebKit/blackberry/WebKitSupport/TileIndexHash.h
+++ b/Source/WebKit/blackberry/WebKitSupport/TileIndexHash.h
@@ -28,7 +28,7 @@ using BlackBerry::WebKit::TileIndex;
namespace WTF {
template<> struct IntHash<TileIndex> {
- static unsigned hash(const TileIndex& key) { return intHash((static_cast<uint64_t>(key.i()) << 32 | key.j())); }
+ static unsigned hash(const TileIndex& key) { return pairIntHash(key.i(), key.j()); }
static bool equal(const TileIndex& a, const TileIndex& b) { return a == b; }
static const bool safeToCompareToEmptyOrDeleted = true;
};
diff --git a/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp b/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp
index 5aa77f5be..946ef7f6b 100644
--- a/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp
@@ -187,6 +187,7 @@ bool TouchEventHandler::handleTouchPoint(Platform::TouchPoint& point, bool useFa
// Enable input mode on any touch event.
m_webPage->m_inputHandler->setInputModeEnabled();
bool pureWithMouseConversion = m_webPage->m_touchEventMode == PureTouchEventsWithMouseConversion;
+ bool alwaysEnableMouseConversion = pureWithMouseConversion || (!isMainFrameScrollable(m_webPage) && !m_webPage->m_inRegionScroller->d->isActive());
switch (point.m_state) {
case Platform::TouchPoint::TouchPressed:
@@ -208,7 +209,7 @@ bool TouchEventHandler::handleTouchPoint(Platform::TouchPoint& point, bool useFa
// Set or reset the touch mode.
Element* possibleTargetNodeForMouseMoveEvents = static_cast<Element*>(m_lastFatFingersResult.positionWasAdjusted() ? elementUnderFatFinger : m_lastFatFingersResult.node());
- m_convertTouchToMouse = pureWithMouseConversion ? true : shouldConvertTouchToMouse(possibleTargetNodeForMouseMoveEvents);
+ m_convertTouchToMouse = alwaysEnableMouseConversion ? true : shouldConvertTouchToMouse(possibleTargetNodeForMouseMoveEvents);
if (!possibleTargetNodeForMouseMoveEvents || (!possibleTargetNodeForMouseMoveEvents->hasEventListeners(eventNames().touchmoveEvent) && !m_convertTouchToMouse))
m_webPage->client()->notifyNoMouseMoveOrTouchMoveHandlers();
@@ -274,9 +275,7 @@ bool TouchEventHandler::handleTouchPoint(Platform::TouchPoint& point, bool useFa
PlatformMouseEvent mouseEvent(point.m_pos, m_lastScreenPoint, PlatformEvent::MouseMoved, 1, LeftButton, TouchScreen);
m_lastScreenPoint = point.m_screenPos;
if (!m_webPage->handleMouseEvent(mouseEvent)) {
- // If the page is scrollable and the first event is not handled, ignore subsequent mouse moves.
- if (isMainFrameScrollable(m_webPage) || m_webPage->m_inRegionScroller->d->isActive() )
- m_convertTouchToMouse = pureWithMouseConversion;
+ m_convertTouchToMouse = alwaysEnableMouseConversion;
return false;
}
return true;
diff --git a/Source/WebKit/chromium/ChangeLog b/Source/WebKit/chromium/ChangeLog
index df6051fb3..851e43976 100644
--- a/Source/WebKit/chromium/ChangeLog
+++ b/Source/WebKit/chromium/ChangeLog
@@ -1,3 +1,267 @@
+2012-09-17 Brian Anderson <brianderson@chromium.org>
+
+ [chromium] Add rendering commit statistics
+ https://bugs.webkit.org/show_bug.cgi?id=96938
+
+ Reviewed by James Robinson.
+
+ Adds total commit time and total commit count to WebRenderingStats.
+ Allows us to caculate average commit time in performance tests.
+
+ * src/WebLayerTreeViewImpl.cpp:
+ (WebKit::WebLayerTreeViewImpl::renderingStats):
+
+2012-09-17 James Robinson <jamesr@chromium.org>
+
+ [chromium] Move a FilterOperationsTest and WebInputEventConversionTest back to webkit_unittest_files variable
+ https://bugs.webkit.org/show_bug.cgi?id=96964
+
+ Reviewed by Adrienne Walker.
+
+ These targets are really webkit unit tests and shouldn't be guarded by use_libcc_for_compositor.
+
+ * WebKit.gypi:
+
+2012-09-17 Rick Byers <rbyers@chromium.org>
+
+ Send GestureTapDownCancel to WebCore
+ https://bugs.webkit.org/show_bug.cgi?id=96060
+
+ Reviewed by Antonio Gomes.
+
+ Plumb WebInputEvent::GetsureTapCancel to
+ PlatformInputEvent::GestureTapDownCancel. After all the chromium code
+ was landed, it was suggested that 'TapDownCancel' was a better name
+ than 'TapCancel' since you can't cancel a Tap. I'm not changing the
+ WebInputEvent definition here because that would be a breaking change
+ to chromium, but I can do that as a series of follow-up CLs.
+ * src/WebInputEventConversion.cpp:
+ (WebKit::PlatformGestureEventBuilder::PlatformGestureEventBuilder):
+ * src/WebPopupMenuImpl.cpp:
+ (WebKit::WebPopupMenuImpl::handleInputEvent):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::handleGestureEvent):
+
+2012-09-17 Alec Flett <alecflett@chromium.org>
+
+ IndexedDB: Use ScriptValue instead of SerializedScriptValue for get/openCursor
+ https://bugs.webkit.org/show_bug.cgi?id=95409
+
+ Reviewed by Kentaro Hara.
+
+ This removes a bunch of tests that have been migrated to
+ LayoutTests, in https://bugs.webkit.org/show_bug.cgi?id=96818.
+
+ * tests/IDBBindingUtilitiesTest.cpp:
+ (WebCore::checkKeyFromValueAndKeyPathInternal):
+ (WebCore::checkKeyPathNullValue):
+ (WebCore::injectKey):
+ (WebCore::checkInjection):
+ (WebCore::checkInjectionFails):
+ (WebCore::checkKeyPathStringValue):
+ (WebCore::checkKeyPathNumberValue):
+ (WebCore::TEST):
+ * tests/IDBKeyPathTest.cpp:
+
+2012-09-17 Leandro Gracia Gil <leandrogracia@chromium.org>
+
+ [Chromium] Fix cases where find-in-page doesn't send a final update
+ https://bugs.webkit.org/show_bug.cgi?id=96402
+
+ Fix some issues in the WebKit implementation that prevented to send a final
+ reportFindInPageMatchCount message.
+
+ Reviewed by Adam Barth.
+
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::scopeStringMatches):
+ (WebKit):
+ (WebKit::WebFrameImpl::finishCurrentScopingEffort):
+ (WebKit::WebFrameImpl::cancelPendingScopingEffort):
+ (WebKit::WebFrameImpl::WebFrameImpl):
+ (WebKit::WebFrameImpl::shouldScopeMatches):
+ * src/WebFrameImpl.h:
+
+2012-09-17 Joshua Bell <jsbell@chromium.org>
+
+ [Chromium] IndexedDB: Remove legacy two-phase open() API members
+ https://bugs.webkit.org/show_bug.cgi?id=96802
+
+ Reviewed by Tony Chang.
+
+ Following http://webkit.org/b/90411 and subsequent cleanup on the Chromium side,
+ these entry points are no longer needed.
+
+ * public/WebIDBDatabase.h: Delete old second-phase open(db-callbacks)
+ * public/WebIDBFactory.h: Delete old first-phase open() w/o db-callbacks
+ * src/WebIDBDatabaseImpl.cpp: No longer need to account for a close between phases.
+ (WebKit::WebIDBDatabaseImpl::WebIDBDatabaseImpl):
+ (WebKit::WebIDBDatabaseImpl::close):
+ (WebKit::WebIDBDatabaseImpl::forceClose):
+ * src/WebIDBDatabaseImpl.h:
+ (WebIDBDatabaseImpl):
+
+2012-09-17 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Unreviewed. Temporary disable visited set counter check.
+
+ * tests/MemoryInstrumentationTest.cpp:
+ (WebCore::TEST):
+
+2012-09-17 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: NMI: now when we can detect instrumented classes we can
+ remove addInstrumentedMember and use addMember for everything.
+ https://bugs.webkit.org/show_bug.cgi?id=96913
+
+ Reviewed by Yury Semikhatsky.
+
+ * tests/MemoryInstrumentationTest.cpp:
+ (WebCore::InstrumentedDOM::reportMemoryUsage):
+ (WebCore::NonVirtualInstrumented::reportMemoryUsage):
+ (WebCore::InstrumentedOwner::reportMemoryUsage):
+
+2012-09-17 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Unreviewed single line fix for mac chromium canary bot.
+
+ * tests/MemoryInstrumentationTest.cpp:
+ (WebCore::TEST):
+
+2012-09-15 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: automatically detect if class has reportMemoryUsage method
+ https://bugs.webkit.org/show_bug.cgi?id=96756
+
+ Reviewed by Alexander Pavlov.
+
+ Test that reportMemoryUsage method will be called on the instrumented object
+ even if it is a template.
+
+ * tests/MemoryInstrumentationTest.cpp:
+ (WebCore):
+ (InstrumentedTemplate):
+ (WebCore::InstrumentedTemplate::InstrumentedTemplate):
+ (WebCore::InstrumentedTemplate::reportMemoryUsage):
+ (WebCore::TEST):
+
+2012-09-14 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: OwnPtr and RefPtr reported by pointer can be double counted by the memory instrumentation
+ https://bugs.webkit.org/show_bug.cgi?id=96791
+
+ Reviewed by Alexander Pavlov.
+
+ Test that pointers to RefPtr and OwnPtr won't be double counted by
+ the memory instrumentation.
+
+ * tests/MemoryInstrumentationTest.cpp:
+ (WebCore):
+ (TwoPointersToRefPtr):
+ (WebCore::TwoPointersToRefPtr::TwoPointersToRefPtr):
+ (WebCore::TwoPointersToRefPtr::reportMemoryUsage):
+ (WebCore::TEST):
+ (TwoPointersToOwnPtr):
+ (WebCore::TwoPointersToOwnPtr::TwoPointersToOwnPtr):
+ (WebCore::TwoPointersToOwnPtr::reportMemoryUsage):
+
+2012-09-16 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed. Rolled DEPS.
+
+ * DEPS:
+
+2012-09-14 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Revert r127457 and following fixes due to several hit-testing regressions
+ https://bugs.webkit.org/show_bug.cgi?id=96830
+
+ Reviewed by Antonio Gomes.
+
+ This change reverts r127457, r127863 and r128505.
+
+ * src/ContextMenuClientImpl.cpp:
+ (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):
+
+2012-09-14 Ojan Vafai <ojan@chromium.org>
+
+ Provide a runtime setting to disable position:sticky
+ https://bugs.webkit.org/show_bug.cgi?id=96827
+
+ Reviewed by James Robinson.
+
+ * public/WebSettings.h:
+ * src/WebSettingsImpl.cpp:
+ (WebKit::WebSettingsImpl::setCSSStickyPositionEnabled):
+ (WebKit):
+ * src/WebSettingsImpl.h:
+ (WebSettingsImpl):
+
+2012-09-14 Adam Barth <abarth@webkit.org>
+
+ Remove webkitPostMessage
+ https://bugs.webkit.org/show_bug.cgi?id=96577
+
+ Reviewed by Ojan Vafai.
+
+ Add ENABLE_LEGACY_VENDOR_PREFIXES flag.
+
+ * features.gypi:
+
+2012-09-14 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed. Rolled DEPS.
+
+ * DEPS:
+
+2012-09-14 Rick Byers <rbyers@chromium.org>
+
+ [chromium] add touch area to gestureTapDown data
+ https://bugs.webkit.org/show_bug.cgi?id=96806
+
+ Reviewed by Adam Barth.
+
+ Add width/height for GestureTapDown as for GestureTap/LongPress so that
+ we can eventually do fuzzing on it.
+ * public/WebInputEvent.h:
+ * src/WebInputEventConversion.cpp:
+ (WebKit::PlatformGestureEventBuilder::PlatformGestureEventBuilder):
+
+2012-09-14 Peter Beverloo <peter@chromium.org>
+
+ [Chromium] Support the --{in,out,err}-fifo arguments on TestWebKitAPI and webkit_unit_tests
+ https://bugs.webkit.org/show_bug.cgi?id=96687
+
+ Reviewed by Tony Chang.
+
+ Android's DumpRenderTree currently supports these arguments, implemented
+ as part of TestShellAndroid:
+ http://trac.webkit.org/browser/trunk/Tools/DumpRenderTree/chromium/TestShellAndroid.cpp?rev=128496
+
+ They're used by the layout test runner to get the STDOUT and STDERR while
+ a layout test run is in process, which is a safer alternative to parsing
+ all the logcat output manually. The implementation can be seen here:
+ http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py?rev=128496#L590
+
+ This patch generalizes parsing of and applying the effects of these arguments
+ so that they can be used for TestWebKitAPI and webkit_unit_tests as well.
+ After this patch, this will make it possible to pull out the output-reading
+ code from Android's layout test port and generalize it so it can be re-used
+ in the new test-runner for the other two test suites.
+
+ This has no effect when compiling and running these tests as part of Chromium
+ code, which has a much more advanced test-runner that does parse complete log
+ output, but also directly depends on code licensed under Apache 2.
+
+ * WebKit.gypi:
+ * tests/ForwardIOStreamsAndroid.cpp: Added.
+ (WebKit):
+ (WebKit::maybeInitIOStreamForwardingForAndroid):
+ * tests/ForwardIOStreamsAndroid.h: Added.
+ (WebKit):
+ * tests/RunAllTests.cpp:
+ (main):
+
2012-09-14 Keishi Hattori <keishi@webkit.org>
Make time input lang attribute aware for testing
diff --git a/Source/WebKit/chromium/DEPS b/Source/WebKit/chromium/DEPS
index a01b3757e..c5ab4a936 100644
--- a/Source/WebKit/chromium/DEPS
+++ b/Source/WebKit/chromium/DEPS
@@ -32,7 +32,7 @@
vars = {
'chromium_svn': 'http://src.chromium.org/svn/trunk/src',
- 'chromium_rev': '156485'
+ 'chromium_rev': '157063'
}
deps = {
diff --git a/Source/WebKit/chromium/WebKit.gypi b/Source/WebKit/chromium/WebKit.gypi
index 5d3f850d5..edebf1b3c 100644
--- a/Source/WebKit/chromium/WebKit.gypi
+++ b/Source/WebKit/chromium/WebKit.gypi
@@ -62,6 +62,7 @@
'tests/DecimalTest.cpp',
'tests/DragImageTest.cpp',
'tests/EventListenerTest.cpp',
+ 'tests/FilterOperationsTest.cpp',
'tests/FrameLoaderClientImplTest.cpp',
'tests/FrameTestHelpers.cpp',
'tests/FrameTestHelpers.h',
@@ -101,6 +102,7 @@
'tests/WebCompositorInitializer.h',
'tests/WebCompositorInputHandlerImplTest.cpp',
'tests/WebFrameTest.cpp',
+ 'tests/WebInputEventConversionTest.cpp',
'tests/WebMediaPlayerClientImplTest.cpp',
'tests/WebPageNewSerializerTest.cpp',
'tests/WebPageSerializerTest.cpp',
@@ -165,7 +167,6 @@
'tests/FakeWebCompositorOutputSurface.h',
'tests/FakeWebGraphicsContext3D.h',
'tests/FakeWebScrollbarThemeGeometry.h',
- 'tests/FilterOperationsTest.cpp',
'tests/FloatQuadTest.cpp',
'tests/LayerChromiumTest.cpp',
'tests/MockCCQuadCuller.h',
@@ -177,7 +178,6 @@
'tests/TreeSynchronizerTest.cpp',
'tests/WebAnimationTest.cpp',
'tests/WebFloatAnimationCurveTest.cpp',
- 'tests/WebInputEventConversionTest.cpp',
'tests/WebLayerTest.cpp',
'tests/WebLayerTreeViewTest.cpp',
'tests/WebLayerTreeViewTestCommon.h',
diff --git a/Source/WebKit/chromium/WebKitUnitTests.gyp b/Source/WebKit/chromium/WebKitUnitTests.gyp
index 18adac9f0..83b32cf6e 100644
--- a/Source/WebKit/chromium/WebKitUnitTests.gyp
+++ b/Source/WebKit/chromium/WebKitUnitTests.gyp
@@ -126,6 +126,7 @@
'type': 'shared_library',
'dependencies': [
'<(chromium_src_dir)/testing/android/native_test.gyp:native_test_native_code',
+ 'io_stream_forwarder_android',
],
}],
],
@@ -208,6 +209,20 @@
'<(android_app_abi)',
],
}],
+ },
+ # FIXME: When the Android test runner framework in Chromium has stabilized enough,
+ # we should switch to using that and will no longer need the stream forwarding.
+ # https://bugs.webkit.org/show_bug.cgi?id=96764
+ {
+ 'target_name': 'io_stream_forwarder_android',
+ 'type': 'static_library',
+ 'sources': [
+ 'tests/ForwardIOStreamsAndroid.cpp',
+ 'tests/ForwardIOStreamsAndroid.h',
+ ],
+ 'dependencies': [
+ '../../WebCore/WebCore.gyp/WebCore.gyp:webcore',
+ ],
}],
}],
],
diff --git a/Source/WebKit/chromium/features.gypi b/Source/WebKit/chromium/features.gypi
index b98db36d9..c51035d71 100644
--- a/Source/WebKit/chromium/features.gypi
+++ b/Source/WebKit/chromium/features.gypi
@@ -77,6 +77,7 @@
'ENABLE_JAVASCRIPT_DEBUGGER=1',
'ENABLE_LEGACY_CSS_VENDOR_PREFIXES=0',
'ENABLE_LEGACY_VIEWPORT_ADAPTION=1',
+ 'ENABLE_LEGACY_VENDOR_PREFIXES=1',
'ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1',
'ENABLE_LINK_PREFETCH=1',
'ENABLE_LINK_PRERENDER=1',
diff --git a/Source/WebKit/chromium/public/WebIDBDatabase.h b/Source/WebKit/chromium/public/WebIDBDatabase.h
index 592a10e3e..83b9a425f 100644
--- a/Source/WebKit/chromium/public/WebIDBDatabase.h
+++ b/Source/WebKit/chromium/public/WebIDBDatabase.h
@@ -66,9 +66,6 @@ public:
virtual void close() { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void forceClose() { WEBKIT_ASSERT_NOT_REACHED(); }
- // FIXME: Remove this method after WK90411 cleanup is complete on the Chromium side.
- virtual void open(WebIDBDatabaseCallbacks*) { WEBKIT_ASSERT_NOT_REACHED(); }
-
protected:
WebIDBDatabase() { }
};
diff --git a/Source/WebKit/chromium/public/WebIDBFactory.h b/Source/WebKit/chromium/public/WebIDBFactory.h
index 69a453abc..12ecf07c7 100644
--- a/Source/WebKit/chromium/public/WebIDBFactory.h
+++ b/Source/WebKit/chromium/public/WebIDBFactory.h
@@ -55,10 +55,6 @@ public:
virtual void getDatabaseNames(WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); }
- // FIXME: Remove this overload after WK90411 cleanup is complete on the Chromium side.
- // The WebKit implementation of open ignores the WebFrame* parameter.
- virtual void open(const WebString& name, long long version, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); }
-
// The WebKit implementation of open ignores the WebFrame* parameter.
virtual void open(const WebString& name, long long version, WebIDBCallbacks* callbacks, WebIDBDatabaseCallbacks* databaseCallbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); }
diff --git a/Source/WebKit/chromium/public/WebInputEvent.h b/Source/WebKit/chromium/public/WebInputEvent.h
index 075bd0c4e..f3edaf95e 100644
--- a/Source/WebKit/chromium/public/WebInputEvent.h
+++ b/Source/WebKit/chromium/public/WebInputEvent.h
@@ -388,6 +388,11 @@ public:
struct {
int width;
int height;
+ } tapDown;
+
+ struct {
+ int width;
+ int height;
} longPress;
struct {
diff --git a/Source/WebKit/chromium/public/WebSettings.h b/Source/WebKit/chromium/public/WebSettings.h
index fd0dcb649..5ff206b0a 100644
--- a/Source/WebKit/chromium/public/WebSettings.h
+++ b/Source/WebKit/chromium/public/WebSettings.h
@@ -93,6 +93,7 @@ public:
virtual void setEnableScrollAnimator(bool) = 0;
virtual void setExperimentalCSSCustomFilterEnabled(bool) = 0;
virtual void setExperimentalCSSGridLayoutEnabled(bool) = 0;
+ virtual void setCSSStickyPositionEnabled(bool) = 0;
virtual void setExperimentalCSSRegionsEnabled(bool) = 0;
virtual void setExperimentalCSSVariablesEnabled(bool) = 0;
virtual void setExperimentalWebGLEnabled(bool) = 0;
diff --git a/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp b/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
index 5b0b01014..641a585a0 100644
--- a/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
+++ b/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
@@ -160,7 +160,7 @@ PlatformMenuDescription ContextMenuClientImpl::getCustomMenuFromDefaultItems(
Frame* selectedFrame = r.innerNonSharedNode()->document()->frame();
WebContextMenuData data;
- data.mousePosition = r.roundedPoint();
+ data.mousePosition = selectedFrame->view()->contentsToWindow(r.roundedPoint());
// Compute edit flags.
data.editFlags = WebContextMenuData::CanDoNone;
diff --git a/Source/WebKit/chromium/src/WebFrameImpl.cpp b/Source/WebKit/chromium/src/WebFrameImpl.cpp
index eb02351da..7bb0efeea 100644
--- a/Source/WebKit/chromium/src/WebFrameImpl.cpp
+++ b/Source/WebKit/chromium/src/WebFrameImpl.cpp
@@ -1779,17 +1779,15 @@ void WebFrameImpl::scopeStringMatches(int identifier,
const WebFindOptions& options,
bool reset)
{
- if (!shouldScopeMatches(searchText))
- return;
-
WebFrameImpl* mainFrameImpl = viewImpl()->mainFrameImpl();
if (reset) {
// This is a brand new search, so we need to reset everything.
// Scoping is just about to begin.
m_scopingComplete = false;
+
// Clear highlighting for this frame.
- if (frame()->editor()->markedTextMatchesAreHighlighted())
+ if (frame() && frame()->editor()->markedTextMatchesAreHighlighted())
frame()->page()->unmarkAllTextMatches();
// Clear the tickmarks and results cache.
@@ -1812,6 +1810,14 @@ void WebFrameImpl::scopeStringMatches(int identifier,
return;
}
+ if (!shouldScopeMatches(searchText)) {
+ // Note that we want to defer the final update when resetting even if shouldScopeMatches returns false.
+ // This is done in order to prevent sending a final message based only on the results of the first frame
+ // since m_framesScopingCount would be 0 as other frames have yet to reset.
+ finishCurrentScopingEffort(identifier);
+ return;
+ }
+
RefPtr<Range> searchRange(rangeOfContents(frame()->document()));
Node* originalEndContainer = searchRange->endContainer();
@@ -1938,10 +1944,18 @@ void WebFrameImpl::scopeStringMatches(int identifier,
return; // Done for now, resume work later.
}
+ finishCurrentScopingEffort(identifier);
+}
+
+void WebFrameImpl::finishCurrentScopingEffort(int identifier)
+{
+ WebFrameImpl* mainFrameImpl = viewImpl()->mainFrameImpl();
+
// This frame has no further scoping left, so it is done. Other frames might,
// of course, continue to scope matches.
m_scopingComplete = true;
mainFrameImpl->m_framesScopingCount--;
+ m_lastFindRequestCompletedWithNoMatches = !m_lastMatchCount;
// If this is the last frame to finish scoping we need to trigger the final
// update to be sent.
@@ -1958,6 +1972,9 @@ void WebFrameImpl::cancelPendingScopingEffort()
m_deferredScopingWork.clear();
m_activeMatchIndexInCurrentFrame = -1;
+
+ if (!m_scopingComplete)
+ m_lastFindRequestCompletedWithNoMatches = false;
}
void WebFrameImpl::increaseMatchCount(int count, int identifier)
@@ -2330,6 +2347,7 @@ WebFrameImpl::WebFrameImpl(WebFrameClient* client)
, m_totalMatchCount(-1)
, m_framesScopingCount(-1)
, m_scopingComplete(false)
+ , m_lastFindRequestCompletedWithNoMatches(false)
, m_nextInvalidateAfter(0)
, m_findMatchMarkersVersion(0)
, m_findMatchRectsAreValid(false)
@@ -2612,9 +2630,9 @@ int WebFrameImpl::ordinalOfFirstMatchForFrame(WebFrameImpl* frame) const
bool WebFrameImpl::shouldScopeMatches(const String& searchText)
{
- // Don't scope if we can't find a frame or a view or if the frame is not visible.
+ // Don't scope if we can't find a frame or a view.
// The user may have closed the tab/application, so abort.
- if (!frame() || !frame()->view() || !hasVisibleContent())
+ if (!frame() || !frame()->view())
return false;
ASSERT(frame()->document() && frame()->view());
@@ -2622,7 +2640,7 @@ bool WebFrameImpl::shouldScopeMatches(const String& searchText)
// If the frame completed the scoping operation and found 0 matches the last
// time it was searched, then we don't have to search it again if the user is
// just adding to the search string or sending the same search string again.
- if (m_scopingComplete && !m_lastSearchString.isEmpty() && !m_lastMatchCount) {
+ if (m_lastFindRequestCompletedWithNoMatches && !m_lastSearchString.isEmpty()) {
// Check to see if the search string prefixes match.
String previousSearchPrefix =
searchText.substring(0, m_lastSearchString.length());
diff --git a/Source/WebKit/chromium/src/WebFrameImpl.h b/Source/WebKit/chromium/src/WebFrameImpl.h
index e59c932c5..58525d701 100644
--- a/Source/WebKit/chromium/src/WebFrameImpl.h
+++ b/Source/WebKit/chromium/src/WebFrameImpl.h
@@ -385,6 +385,9 @@ private:
// was searched.
bool shouldScopeMatches(const WTF::String& searchText);
+ // Finishes the current scoping effort and triggers any updates if appropriate.
+ void finishCurrentScopingEffort(int identifier);
+
// Queue up a deferred call to scopeStringMatches.
void scopeStringMatchesSoon(
int identifier, const WebString& searchText, const WebFindOptions&,
@@ -456,6 +459,10 @@ private:
// interrupt it before it completes by submitting a new search).
bool m_scopingComplete;
+ // Keeps track of whether the last find request completed its scoping effort
+ // without finding any matches in this frame.
+ bool m_lastFindRequestCompletedWithNoMatches;
+
// Keeps track of when the scoping effort should next invalidate the scrollbar
// and the frame area.
int m_nextInvalidateAfter;
diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
index 52879a9a7..b58cd5111 100644
--- a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
+++ b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp
@@ -48,7 +48,6 @@ namespace WebKit {
WebIDBDatabaseImpl::WebIDBDatabaseImpl(PassRefPtr<IDBDatabaseBackendInterface> databaseBackend, WTF::PassRefPtr<IDBDatabaseCallbacksProxy> databaseCallbacks)
: m_databaseBackend(databaseBackend)
, m_databaseCallbacks(databaseCallbacks)
- , m_closePending(false)
{
}
@@ -96,19 +95,15 @@ void WebIDBDatabaseImpl::close()
{
// Use the callbacks passed in to the constructor so that the backend in
// multi-process chromium knows which database connection is closing.
- if (!m_databaseCallbacks) {
- m_closePending = true;
+ if (!m_databaseCallbacks)
return;
- }
m_databaseBackend->close(m_databaseCallbacks.release());
}
void WebIDBDatabaseImpl::forceClose()
{
- if (!m_databaseCallbacks) {
- m_closePending = true;
+ if (!m_databaseCallbacks)
return;
- }
RefPtr<IDBDatabaseCallbacksProxy> callbacks = m_databaseCallbacks.release();
m_databaseBackend->close(callbacks);
callbacks->onForcedClose();
diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
index 9cd1caf59..518ffcdb9 100644
--- a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
+++ b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h
@@ -62,9 +62,6 @@ public:
private:
WTF::RefPtr<WebCore::IDBDatabaseBackendInterface> m_databaseBackend;
WTF::RefPtr<IDBDatabaseCallbacksProxy> m_databaseCallbacks;
- // FIXME: Remove this flag when we consolidate two-phase open.
- // http://wkb.ug/90411
- bool m_closePending;
};
} // namespace WebKit
diff --git a/Source/WebKit/chromium/src/WebInputEventConversion.cpp b/Source/WebKit/chromium/src/WebInputEventConversion.cpp
index 2afc7dcfe..0cc1e0c24 100644
--- a/Source/WebKit/chromium/src/WebInputEventConversion.cpp
+++ b/Source/WebKit/chromium/src/WebInputEventConversion.cpp
@@ -160,6 +160,10 @@ PlatformGestureEventBuilder::PlatformGestureEventBuilder(Widget* widget, const W
break;
case WebInputEvent::GestureTapDown:
m_type = PlatformEvent::GestureTapDown;
+ m_area = IntSize(e.data.tapDown.width, e.data.tapDown.height);
+ break;
+ case WebInputEvent::GestureTapCancel:
+ m_type = PlatformEvent::GestureTapDownCancel;
break;
case WebInputEvent::GestureDoubleTap:
m_type = PlatformEvent::GestureDoubleTap;
diff --git a/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp b/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp
index bb898c966..760cc6835 100644
--- a/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp
+++ b/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp
@@ -195,6 +195,8 @@ void WebLayerTreeViewImpl::renderingStats(WebRenderingStats& stats) const
stats.droppedFrameCount = ccStats.droppedFrameCount;
stats.totalPaintTimeInSeconds = ccStats.totalPaintTimeInSeconds;
stats.totalRasterizeTimeInSeconds = ccStats.totalRasterizeTimeInSeconds;
+ stats.totalCommitTimeInSeconds = ccStats.totalCommitTimeInSeconds;
+ stats.totalCommitCount = ccStats.totalCommitCount;
}
void WebLayerTreeViewImpl::setFontAtlas(SkBitmap bitmap, WebRect asciiToWebRectTable[128], int fontHeight)
diff --git a/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp b/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp
index 58a2855cd..51114020b 100644
--- a/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp
+++ b/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp
@@ -277,6 +277,7 @@ bool WebPopupMenuImpl::handleInputEvent(const WebInputEvent& inputEvent)
case WebInputEvent::GestureFlingCancel:
case WebInputEvent::GestureTap:
case WebInputEvent::GestureTapDown:
+ case WebInputEvent::GestureTapCancel:
case WebInputEvent::GestureDoubleTap:
case WebInputEvent::GestureTwoFingerTap:
case WebInputEvent::GestureLongPress:
@@ -288,7 +289,6 @@ bool WebPopupMenuImpl::handleInputEvent(const WebInputEvent& inputEvent)
case WebInputEvent::Undefined:
case WebInputEvent::MouseEnter:
case WebInputEvent::ContextMenu:
- case WebInputEvent::GestureTapCancel:
return false;
}
return false;
diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.cpp b/Source/WebKit/chromium/src/WebSettingsImpl.cpp
index 51731fd8f..4cc3ef727 100644
--- a/Source/WebKit/chromium/src/WebSettingsImpl.cpp
+++ b/Source/WebKit/chromium/src/WebSettingsImpl.cpp
@@ -337,6 +337,11 @@ void WebSettingsImpl::setExperimentalWebGLEnabled(bool enabled)
m_settings->setWebGLEnabled(enabled);
}
+void WebSettingsImpl::setCSSStickyPositionEnabled(bool enabled)
+{
+ m_settings->setCSSStickyPositionEnabled(enabled);
+}
+
void WebSettingsImpl::setExperimentalCSSRegionsEnabled(bool enabled)
{
m_settings->setCSSRegionsEnabled(enabled);
diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.h b/Source/WebKit/chromium/src/WebSettingsImpl.h
index a5f7c0235..e9e01bfcd 100644
--- a/Source/WebKit/chromium/src/WebSettingsImpl.h
+++ b/Source/WebKit/chromium/src/WebSettingsImpl.h
@@ -85,6 +85,7 @@ public:
virtual void setEnableScrollAnimator(bool);
virtual void setExperimentalCSSCustomFilterEnabled(bool);
virtual void setExperimentalCSSGridLayoutEnabled(bool);
+ virtual void setCSSStickyPositionEnabled(bool);
virtual void setExperimentalCSSRegionsEnabled(bool);
virtual void setExperimentalCSSVariablesEnabled(bool);
virtual void setExperimentalWebGLEnabled(bool);
diff --git a/Source/WebKit/chromium/src/WebViewImpl.cpp b/Source/WebKit/chromium/src/WebViewImpl.cpp
index d18cd236c..97416e024 100644
--- a/Source/WebKit/chromium/src/WebViewImpl.cpp
+++ b/Source/WebKit/chromium/src/WebViewImpl.cpp
@@ -765,15 +765,12 @@ bool WebViewImpl::handleGestureEvent(const WebGestureEvent& event)
m_client->cancelScheduledContentIntents();
case WebInputEvent::GestureScrollEnd:
case WebInputEvent::GestureScrollUpdate:
+ case WebInputEvent::GestureTapCancel:
case WebInputEvent::GesturePinchEnd:
case WebInputEvent::GesturePinchUpdate: {
PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
return mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent);
}
- case WebInputEvent::GestureTapCancel:
- // FIXME: Update WebCore to handle this event after chromium has been updated to send it
- // http://wkb.ug/96060
- return false;
default:
ASSERT_NOT_REACHED();
}
diff --git a/Source/WebKit/chromium/tests/ForwardIOStreamsAndroid.cpp b/Source/WebKit/chromium/tests/ForwardIOStreamsAndroid.cpp
new file mode 100644
index 000000000..0ca5c1b5b
--- /dev/null
+++ b/Source/WebKit/chromium/tests/ForwardIOStreamsAndroid.cpp
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#include "ForwardIOStreamsAndroid.h"
+
+#include <android/log.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <wtf/StdLibExtras.h>
+
+#ifndef EXIT_FAILURE
+#define EXIT_FAILURE 1
+#endif
+
+namespace {
+
+const char optionInFIFO[] = "--in-fifo=";
+const char optionOutFIFO[] = "--out-fifo=";
+const char optionErrFIFO[] = "--err-fifo=";
+
+void androidLogError(const char* format, ...) WTF_ATTRIBUTE_PRINTF(1, 2);
+
+void androidLogError(const char* format, ...)
+{
+ va_list args;
+ va_start(args, format);
+ __android_log_vprint(ANDROID_LOG_ERROR, "WebKit", format, args);
+ va_end(args);
+}
+
+void removeArg(int index, int* argc, char*** argv)
+{
+ for (int i = index; i < *argc; ++i)
+ (*argv)[i] = (*argv)[i + 1];
+ --*argc;
+}
+
+void createFIFO(const char* fifoPath)
+{
+ unlink(fifoPath);
+ // 0666 is rw-rw-rw-, to allow adb shell to read/write the fifo.
+ // Explicitly call chmod to ensure the mode is set despite umask.
+ if (mkfifo(fifoPath, 0666) || chmod(fifoPath, 0666)) {
+ androidLogError("Failed to create fifo %s: %s\n", fifoPath, strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+}
+
+void redirect(FILE* stream, const char* path, const char* mode)
+{
+ if (!freopen(path, mode, stream)) {
+ androidLogError("Failed to redirect stream to file: %s: %s\n", path, strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+}
+
+} // namespace
+
+namespace WebKit {
+
+void maybeInitIOStreamForwardingForAndroid(int* argc, char*** argv)
+{
+ const char* inFIFO = 0;
+ const char* outFIFO = 0;
+ const char* errFIFO = 0;
+ for (int i = 1; i < *argc; ) {
+ const char* argument = (*argv)[i];
+ if (strstr(argument, optionInFIFO) == argument) {
+ inFIFO = argument + WTF_ARRAY_LENGTH(optionInFIFO) - 1;
+ createFIFO(inFIFO);
+ removeArg(i, argc, argv);
+ } else if (strstr(argument, optionOutFIFO) == argument) {
+ outFIFO = argument + WTF_ARRAY_LENGTH(optionOutFIFO) - 1;
+ createFIFO(outFIFO);
+ removeArg(i, argc, argv);
+ } else if (strstr(argument, optionErrFIFO) == argument) {
+ errFIFO = argument + WTF_ARRAY_LENGTH(optionErrFIFO) - 1;
+ createFIFO(errFIFO);
+ removeArg(i, argc, argv);
+ } else
+ ++i;
+ }
+
+ // The order of createFIFO() and redirectToFIFO() is important to avoid deadlock.
+ if (outFIFO)
+ redirect(stdout, outFIFO, "w");
+ if (inFIFO)
+ redirect(stdin, inFIFO, "r");
+ if (errFIFO)
+ redirect(stderr, errFIFO, "w");
+ else {
+ // Redirect stderr to stdout.
+ dup2(1, 2);
+ }
+}
+
+} // namespace WebKit
diff --git a/Source/WebKit/chromium/tests/ForwardIOStreamsAndroid.h b/Source/WebKit/chromium/tests/ForwardIOStreamsAndroid.h
new file mode 100644
index 000000000..6dbc638b4
--- /dev/null
+++ b/Source/WebKit/chromium/tests/ForwardIOStreamsAndroid.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ForwardIOStreamsAndroid_h
+#define ForwardIOStreamsAndroid_h
+
+namespace WebKit {
+
+// The test executables for Android support three additional command line flags
+// (--in-fifo, --out-fifo and --err-fifo) to make it possible to retrieve input
+// from a file instead of STDIN, and to forward STDOUT and STDERR to files. When
+// running DumpRenderTree, TestWebKitAPI or webkit_unit_tests in WebKit
+// infrastructure, these will be used instead of parsing all log output.
+void maybeInitIOStreamForwardingForAndroid(int* argc, char*** argv);
+
+} // namespace WebKit
+
+#endif // ForwardIOStreamsAndroid_h
diff --git a/Source/WebKit/chromium/tests/IDBBindingUtilitiesTest.cpp b/Source/WebKit/chromium/tests/IDBBindingUtilitiesTest.cpp
index c2d5e7541..46710e745 100644
--- a/Source/WebKit/chromium/tests/IDBBindingUtilitiesTest.cpp
+++ b/Source/WebKit/chromium/tests/IDBBindingUtilitiesTest.cpp
@@ -27,7 +27,6 @@
#include "IDBBindingUtilities.h"
#include "IDBKey.h"
#include "IDBKeyPath.h"
-#include "SerializedScriptValue.h"
#include "V8PerIsolateData.h"
#include "V8Utilities.h"
@@ -40,41 +39,42 @@ using namespace WebCore;
namespace {
-PassRefPtr<IDBKey> checkKeyFromValueAndKeyPathInternal(SerializedScriptValue* value, const String& keyPath)
+PassRefPtr<IDBKey> checkKeyFromValueAndKeyPathInternal(const ScriptValue& value, const String& keyPath)
{
IDBKeyPath idbKeyPath(keyPath);
EXPECT_TRUE(idbKeyPath.isValid());
- return createIDBKeyFromSerializedValueAndKeyPath(value, idbKeyPath);
+
+ return createIDBKeyFromScriptValueAndKeyPath(value, idbKeyPath);
}
-void checkKeyPathNullValue(SerializedScriptValue* value, const String& keyPath)
+void checkKeyPathNullValue(const ScriptValue& value, const String& keyPath)
{
RefPtr<IDBKey> idbKey = checkKeyFromValueAndKeyPathInternal(value, keyPath);
ASSERT_FALSE(idbKey.get());
}
-PassRefPtr<SerializedScriptValue> injectKey(PassRefPtr<IDBKey> key, PassRefPtr<SerializedScriptValue> value, const String& keyPath)
+bool injectKey(PassRefPtr<IDBKey> key, ScriptValue& value, const String& keyPath)
{
IDBKeyPath idbKeyPath(keyPath);
EXPECT_TRUE(idbKeyPath.isValid());
- return injectIDBKeyIntoSerializedValue(key, value, idbKeyPath);
+ return injectIDBKeyIntoScriptValue(key, value, idbKeyPath);
}
-void checkInjection(PassRefPtr<IDBKey> prpKey, PassRefPtr<SerializedScriptValue> value, const String& keyPath)
+void checkInjection(PassRefPtr<IDBKey> prpKey, ScriptValue& value, const String& keyPath)
{
RefPtr<IDBKey> key = prpKey;
- RefPtr<SerializedScriptValue> newValue = injectKey(key, value, keyPath);
- ASSERT_TRUE(newValue);
- RefPtr<IDBKey> extractedKey = checkKeyFromValueAndKeyPathInternal(newValue.get(), keyPath);
+ bool result = injectKey(key, value, keyPath);
+ ASSERT_TRUE(result);
+ RefPtr<IDBKey> extractedKey = checkKeyFromValueAndKeyPathInternal(value, keyPath);
EXPECT_TRUE(key->isEqual(extractedKey.get()));
}
-void checkInjectionFails(PassRefPtr<IDBKey> key, PassRefPtr<SerializedScriptValue> value, const String& keyPath)
+void checkInjectionFails(PassRefPtr<IDBKey> key, ScriptValue& value, const String& keyPath)
{
EXPECT_FALSE(injectKey(key, value, keyPath));
}
-void checkKeyPathStringValue(SerializedScriptValue* value, const String& keyPath, const String& expected)
+void checkKeyPathStringValue(const ScriptValue& value, const String& keyPath, const String& expected)
{
RefPtr<IDBKey> idbKey = checkKeyFromValueAndKeyPathInternal(value, keyPath);
ASSERT_TRUE(idbKey.get());
@@ -82,7 +82,7 @@ void checkKeyPathStringValue(SerializedScriptValue* value, const String& keyPath
ASSERT_TRUE(expected == idbKey->string());
}
-void checkKeyPathNumberValue(SerializedScriptValue* value, const String& keyPath, int expected)
+void checkKeyPathNumberValue(const ScriptValue& value, const String& keyPath, int expected)
{
RefPtr<IDBKey> idbKey = checkKeyFromValueAndKeyPathInternal(value, keyPath);
ASSERT_TRUE(idbKey.get());
@@ -98,10 +98,10 @@ TEST(IDBKeyFromValueAndKeyPathTest, TopLevelPropertyStringValue)
v8::Local<v8::Object> object = v8::Object::New();
object->Set(v8::String::New("foo"), v8::String::New("zoo"));
- RefPtr<SerializedScriptValue> serializedScriptValue = SerializedScriptValue::create(object);
+ ScriptValue scriptValue(object);
- checkKeyPathStringValue(serializedScriptValue.get(), "foo", "zoo");
- checkKeyPathNullValue(serializedScriptValue.get(), "bar");
+ checkKeyPathStringValue(scriptValue, "foo", "zoo");
+ checkKeyPathNullValue(scriptValue, "bar");
}
TEST(IDBKeyFromValueAndKeyPathTest, TopLevelPropertyNumberValue)
@@ -112,10 +112,10 @@ TEST(IDBKeyFromValueAndKeyPathTest, TopLevelPropertyNumberValue)
v8::Local<v8::Object> object = v8::Object::New();
object->Set(v8::String::New("foo"), v8::Number::New(456));
- RefPtr<SerializedScriptValue> serializedScriptValue = SerializedScriptValue::create(object);
+ ScriptValue scriptValue(object);
- checkKeyPathNumberValue(serializedScriptValue.get(), "foo", 456);
- checkKeyPathNullValue(serializedScriptValue.get(), "bar");
+ checkKeyPathNumberValue(scriptValue, "foo", 456);
+ checkKeyPathNullValue(scriptValue, "bar");
}
TEST(IDBKeyFromValueAndKeyPathTest, SubProperty)
@@ -128,10 +128,10 @@ TEST(IDBKeyFromValueAndKeyPathTest, SubProperty)
subProperty->Set(v8::String::New("bar"), v8::String::New("zee"));
object->Set(v8::String::New("foo"), subProperty);
- RefPtr<SerializedScriptValue> serializedScriptValue = SerializedScriptValue::create(object);
+ ScriptValue scriptValue(object);
- checkKeyPathStringValue(serializedScriptValue.get(), "foo.bar", "zee");
- checkKeyPathNullValue(serializedScriptValue.get(), "bar");
+ checkKeyPathStringValue(scriptValue, "foo.bar", "zee");
+ checkKeyPathNullValue(scriptValue, "bar");
}
TEST(InjectIDBKeyTest, TopLevelPropertyStringValue)
@@ -142,10 +142,11 @@ TEST(InjectIDBKeyTest, TopLevelPropertyStringValue)
v8::Local<v8::Object> object = v8::Object::New();
object->Set(v8::String::New("foo"), v8::String::New("zoo"));
- checkInjection(IDBKey::createString("myNewKey"), SerializedScriptValue::create(object), "bar");
- checkInjection(IDBKey::createNumber(1234), SerializedScriptValue::create(object), "bar");
+ ScriptValue foozoo(object);
+ checkInjection(IDBKey::createString("myNewKey"), foozoo, "bar");
+ checkInjection(IDBKey::createNumber(1234), foozoo, "bar");
- checkInjectionFails(IDBKey::createString("key"), SerializedScriptValue::create(object), "foo.bar");
+ checkInjectionFails(IDBKey::createString("key"), foozoo, "foo.bar");
}
TEST(InjectIDBKeyTest, SubProperty)
@@ -158,15 +159,16 @@ TEST(InjectIDBKeyTest, SubProperty)
subProperty->Set(v8::String::New("bar"), v8::String::New("zee"));
object->Set(v8::String::New("foo"), subProperty);
- checkInjection(IDBKey::createString("myNewKey"), SerializedScriptValue::create(object), "foo.baz");
- checkInjection(IDBKey::createNumber(789), SerializedScriptValue::create(object), "foo.baz");
- checkInjection(IDBKey::createDate(4567), SerializedScriptValue::create(object), "foo.baz");
- checkInjection(IDBKey::createDate(4567), SerializedScriptValue::create(object), "bar");
- checkInjection(IDBKey::createArray(IDBKey::KeyArray()), SerializedScriptValue::create(object), "foo.baz");
- checkInjection(IDBKey::createArray(IDBKey::KeyArray()), SerializedScriptValue::create(object), "bar");
+ ScriptValue scriptObject(object);
+ checkInjection(IDBKey::createString("myNewKey"), scriptObject, "foo.baz");
+ checkInjection(IDBKey::createNumber(789), scriptObject, "foo.baz");
+ checkInjection(IDBKey::createDate(4567), scriptObject, "foo.baz");
+ checkInjection(IDBKey::createDate(4567), scriptObject, "bar");
+ checkInjection(IDBKey::createArray(IDBKey::KeyArray()), scriptObject, "foo.baz");
+ checkInjection(IDBKey::createArray(IDBKey::KeyArray()), scriptObject, "bar");
- checkInjectionFails(IDBKey::createString("zoo"), SerializedScriptValue::create(object), "foo.bar.baz");
- checkInjection(IDBKey::createString("zoo"), SerializedScriptValue::create(object), "foo.xyz.foo");
+ checkInjectionFails(IDBKey::createString("zoo"), scriptObject, "foo.bar.baz");
+ checkInjection(IDBKey::createString("zoo"), scriptObject, "foo.xyz.foo");
}
} // namespace
diff --git a/Source/WebKit/chromium/tests/IDBKeyPathTest.cpp b/Source/WebKit/chromium/tests/IDBKeyPathTest.cpp
index c3d47d788..cd240cc94 100644
--- a/Source/WebKit/chromium/tests/IDBKeyPathTest.cpp
+++ b/Source/WebKit/chromium/tests/IDBKeyPathTest.cpp
@@ -127,92 +127,6 @@ TEST(IDBKeyPathTest, InvalidKeyPath5)
checkKeyPath(keyPath, expected, 3);
}
-TEST(IDBKeyPathTest, Extract)
-{
- IDBKeyPath keyPath("foo");
- RefPtr<IDBKey> stringZooKey(IDBKey::createString("zoo"));
- RefPtr<IDBKey> invalidKey(IDBKey::createInvalid());
- RefPtr<SerializedScriptValue> ssv;
- RefPtr<IDBKey> result;
-
- // keypath: "foo", value: {foo: "zoo"}, expected: "zoo"
- UChar dataFooZoo[] = {0x0353, 0x6f66, 0x536f, 0x7a03, 0x6f6f, 0x017b};
- ssv = SerializedScriptValue::createFromWire(String(dataFooZoo, WTF_ARRAY_LENGTH(dataFooZoo)));
- result = createIDBKeyFromSerializedValueAndKeyPath(ssv, keyPath);
- EXPECT_TRUE(stringZooKey->isEqual(result.get()));
-
- // keypath: "foo", value: {foo: null}, expected: invalid
- UChar dataFooNull[] = {0x0353, 0x6f66, 0x306f, 0x017b};
- ssv = SerializedScriptValue::createFromWire(String(dataFooNull, WTF_ARRAY_LENGTH(dataFooNull)));
- result = createIDBKeyFromSerializedValueAndKeyPath(ssv, keyPath);
- EXPECT_FALSE(result->isValid());
-
- // keypath: "foo", value: {}, expected: null
- UChar dataObject[] = {0x017b};
- ssv = SerializedScriptValue::createFromWire(String(dataObject, WTF_ARRAY_LENGTH(dataObject)));
- result = createIDBKeyFromSerializedValueAndKeyPath(ssv, keyPath);
- EXPECT_EQ(0, result.get());
-
- // keypath: "foo", value: null, expected: null
- ssv = SerializedScriptValue::nullValue();
- result = createIDBKeyFromSerializedValueAndKeyPath(ssv, keyPath);
- EXPECT_EQ(0, result.get());
-}
-
-TEST(IDBKeyPathTest, IDBKeyPathPropertyNotAvailable)
-{
- IDBKeyPath keyPath("PropertyNotAvailable");
- RefPtr<SerializedScriptValue> ssv;
- // {foo: "zoo", bar: null}
- UChar data[] = {0x0353, 0x6f66, 0x536f, 0x7a03, 0x6f6f, 0x0353, 0x6162,
- 0x3072, 0x027b};
- ssv = SerializedScriptValue::createFromWire(String(data, WTF_ARRAY_LENGTH(data)));
- RefPtr<IDBKey> result = createIDBKeyFromSerializedValueAndKeyPath(ssv, keyPath);
- EXPECT_EQ(0, result.get());
-
- // null
- ssv = SerializedScriptValue::nullValue();
- result = createIDBKeyFromSerializedValueAndKeyPath(ssv, keyPath);
- EXPECT_EQ(0, result.get());
-}
-
-TEST(IDBKeyPathTest, InjectIDBKey)
-{
- // {foo: 'zoo'}
- const UChar initialData[] = {0x0353, 0x6f66, 0x536f, 0x7a03, 0x6f6f, 0x017b};
- RefPtr<SerializedScriptValue> value = SerializedScriptValue::createFromWire(String(initialData, WTF_ARRAY_LENGTH(initialData)));
-
- RefPtr<IDBKey> key = IDBKey::createString("myNewKey");
- IDBKeyPath keyPath("bar");
-
- // {foo: 'zoo', bar: 'myNewKey'}
- const UChar expectedData[] = {0x01ff, 0x003f, 0x3f6f, 0x5301, 0x6603,
- 0x6f6f, 0x013f, 0x0353, 0x6f7a, 0x3f6f,
- 0x5301, 0x6203, 0x7261, 0x013f, 0x0853,
- 0x796d, 0x654e, 0x4b77, 0x7965, 0x027b};
- RefPtr<SerializedScriptValue> expectedValue =
- SerializedScriptValue::createFromWire(String(expectedData, WTF_ARRAY_LENGTH(expectedData)));
- RefPtr<SerializedScriptValue> result = injectIDBKeyIntoSerializedValue(key, value, keyPath);
- EXPECT_EQ(expectedValue->toWireString(), result->toWireString());
-
- // Should fail - can't apply properties to string value of key foo
- keyPath = IDBKeyPath("foo.bad.path");
- result = injectIDBKeyIntoSerializedValue(key, value, keyPath);
- EXPECT_EQ(0, result.get());
-
- // {foo: 'zoo', bar: {baz: 'myNewKey'}}
- const UChar expectedData2[] = {0x01ff, 0x003f, 0x3f6f, 0x5301, 0x6603,
- 0x6f6f, 0x013f, 0x0353, 0x6f7a, 0x3f6f,
- 0x5301, 0x6203, 0x7261, 0x013f, 0x3f6f,
- 0x5302, 0x6203, 0x7a61, 0x023f, 0x0853,
- 0x796d, 0x654e, 0x4b77, 0x7965, 0x017b,
- 0x027b};
- RefPtr<SerializedScriptValue> expectedValue2 = SerializedScriptValue::createFromWire(String(expectedData2, WTF_ARRAY_LENGTH(expectedData2)));
- keyPath = IDBKeyPath("bar.baz");
- result = injectIDBKeyIntoSerializedValue(key, value, keyPath);
- EXPECT_EQ(expectedValue2->toWireString(), result->toWireString());
-}
-
} // namespace
#endif // ENABLE(INDEXED_DATABASE)
diff --git a/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp b/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp
index 4a0a3cf81..4acf496ad 100644
--- a/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp
+++ b/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp
@@ -50,6 +50,7 @@ namespace {
class NotInstrumented {
public:
+ NotInstrumented(const char* = 0) { }
char m_data[42];
};
@@ -192,7 +193,7 @@ public:
void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
{
MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
- info.addInstrumentedMember(m_instrumentedUndefined);
+ info.addMember(m_instrumentedUndefined);
}
OwnPtr<InstrumentedUndefined> m_instrumentedUndefined;
};
@@ -213,7 +214,7 @@ public:
void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
{
MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
- info.addInstrumentedMember(m_instrumented);
+ info.addMember(m_instrumented);
}
Instrumented m_instrumented;
@@ -237,7 +238,7 @@ public:
void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
{
MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
- info.addInstrumentedMember(m_value);
+ info.addMember(m_value);
}
T m_value;
@@ -275,5 +276,96 @@ TEST(MemoryInstrumentationTest, visitStrings)
}
}
+class TwoPointersToRefPtr {
+public:
+ TwoPointersToRefPtr(const RefPtr<StringImpl>& value) : m_ptr1(&value), m_ptr2(&value) { }
+ void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+ {
+ MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
+ info.addMember(m_ptr1);
+ info.addMember(m_ptr2);
+ }
+
+ const RefPtr<StringImpl>* m_ptr1;
+ const RefPtr<StringImpl>* m_ptr2;
+};
+
+TEST(MemoryInstrumentationTest, refPtrPtr)
+{
+ RefPtr<StringImpl> refPtr;
+ TwoPointersToRefPtr root(refPtr);
+ VisitedObjects visitedObjects;
+ MemoryInstrumentationImpl impl(visitedObjects);
+ impl.addRootObject(root);
+ EXPECT_EQ(sizeof(RefPtr<StringImpl>), impl.reportedSizeForAllTypes());
+ EXPECT_EQ(1, visitedObjects.size());
+}
+
+class TwoPointersToOwnPtr {
+public:
+ TwoPointersToOwnPtr(const OwnPtr<NotInstrumented>& value) : m_ptr1(&value), m_ptr2(&value) { }
+ void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+ {
+ MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
+ info.addMember(m_ptr1);
+ info.addMember(m_ptr2);
+ }
+
+ const OwnPtr<NotInstrumented>* m_ptr1;
+ const OwnPtr<NotInstrumented>* m_ptr2;
+};
+
+TEST(MemoryInstrumentationTest, ownPtrPtr)
+{
+ OwnPtr<NotInstrumented> ownPtr;
+ TwoPointersToOwnPtr root(ownPtr);
+ VisitedObjects visitedObjects;
+ MemoryInstrumentationImpl impl(visitedObjects);
+ impl.addRootObject(root);
+ EXPECT_EQ(sizeof(OwnPtr<NotInstrumented>), impl.reportedSizeForAllTypes());
+ EXPECT_EQ(1, visitedObjects.size());
+}
+
+template<typename T>
+class InstrumentedTemplate {
+public:
+ template<typename V>
+ InstrumentedTemplate(const V& value) : m_value(value) { }
+
+ template<typename MemoryObjectInfo>
+ void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+ {
+ typename MemoryObjectInfo::ClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
+ info.addMember(m_value);
+ }
+
+ T m_value;
+};
+
+TEST(MemoryInstrumentationTest, detectReportMemoryUsageMethod)
+{
+ {
+ VisitedObjects visitedObjects;
+ MemoryInstrumentationImpl impl(visitedObjects);
+
+ OwnPtr<InstrumentedTemplate<String> > value = adoptPtr(new InstrumentedTemplate<String>(""));
+ InstrumentedOwner<InstrumentedTemplate<String>* > root(value.get());
+ impl.addRootObject(root);
+ EXPECT_EQ(sizeof(InstrumentedTemplate<String>) + sizeof(StringImpl), impl.reportedSizeForAllTypes());
+ // FIXME: it is failing on Chromium Canary bots but works fine locally.
+ // EXPECT_EQ(2, visitedObjects.size());
+ }
+ {
+ VisitedObjects visitedObjects;
+ MemoryInstrumentationImpl impl(visitedObjects);
+
+ OwnPtr<InstrumentedTemplate<NotInstrumented> > value = adoptPtr(new InstrumentedTemplate<NotInstrumented>(""));
+ InstrumentedOwner<InstrumentedTemplate<NotInstrumented>* > root(value.get());
+ impl.addRootObject(root);
+ EXPECT_EQ(sizeof(InstrumentedTemplate<NotInstrumented>), impl.reportedSizeForAllTypes());
+ EXPECT_EQ(1, visitedObjects.size());
+ }
+}
+
} // namespace
diff --git a/Source/WebKit/chromium/tests/RunAllTests.cpp b/Source/WebKit/chromium/tests/RunAllTests.cpp
index 78fd7da3d..be4c7db29 100644
--- a/Source/WebKit/chromium/tests/RunAllTests.cpp
+++ b/Source/WebKit/chromium/tests/RunAllTests.cpp
@@ -43,6 +43,10 @@
#include "WebUnitTests.h"
#endif
+#if defined(OS_ANDROID)
+#include "ForwardIOStreamsAndroid.h"
+#endif
+
#include <gmock/gmock.h>
// TestSuite must be created before SetUpTestEnvironment so it performs
@@ -59,6 +63,9 @@ int main(int argc, char** argv)
WebKit::DeleteTestSuite();
#else
::testing::InitGoogleMock(&argc, argv);
+#if defined(OS_ANDROID)
+ WebKit::maybeInitIOStreamForwardingForAndroid(&argc, &argv);
+#endif
TestSuite testSuite(argc, argv);
webkit_support::SetUpTestEnvironmentForUnitTests();
int result = testSuite.Run();
diff --git a/Source/WebKit/mac/ChangeLog b/Source/WebKit/mac/ChangeLog
index 7d289c069..8ad470cfc 100644
--- a/Source/WebKit/mac/ChangeLog
+++ b/Source/WebKit/mac/ChangeLog
@@ -1,3 +1,38 @@
+2012-09-17 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/12316935> [mac WebKit1]: -[WebView _setPaginationBehavesLikeColumns:] is a no-op
+ https://bugs.webkit.org/show_bug.cgi?id=96971
+
+ Reviewed by Sam Weinig.
+
+ * WebView/WebView.mm:
+ (-[WebView _setPaginationBehavesLikeColumns:]): Added a call to setPagination().
+
+2012-09-14 Adam Barth <abarth@webkit.org>
+
+ Remove webkitPostMessage
+ https://bugs.webkit.org/show_bug.cgi?id=96577
+
+ Reviewed by Ojan Vafai.
+
+ Add ENABLE_LEGACY_VENDOR_PREFIXES flag.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-09-14 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=96688
+ Put position:fixed elements in their own layers and allow them to
+ create a stacking context
+ -and corresponding-
+ <rdar://problem/11467961>
+
+ Reviewed by Simon Fraser.
+
+ Enable these settings in WK1 too for consistency.
+ * WebView/WebView.mm:
+ (-[WebView _preferencesChanged:]):
+
2012-09-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r128552.
diff --git a/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig b/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig
index 6a674085e..cd9ca6ded 100644
--- a/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig
+++ b/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig
@@ -96,6 +96,7 @@ ENABLE_LEGACY_NOTIFICATIONS_macosx = $(ENABLE_LEGACY_NOTIFICATIONS_macosx_$(TARG
ENABLE_LEGACY_NOTIFICATIONS_macosx_1070 = ;
ENABLE_LEGACY_NOTIFICATIONS_macosx_1080 = ENABLE_LEGACY_NOTIFICATIONS;
ENABLE_LEGACY_NOTIFICATIONS_macosx_1090 = ENABLE_LEGACY_NOTIFICATIONS;
+ENABLE_LEGACY_VENDOR_PREFIXES = ENABLE_LEGACY_VENDOR_PREFIXES;
ENABLE_LINK_PREFETCH = ;
ENABLE_LINK_PRERENDER = ;
ENABLE_MATHML = ENABLE_MATHML;
@@ -140,4 +141,4 @@ ENABLE_WIDGET_REGION_macosx = ENABLE_WIDGET_REGION;
ENABLE_WORKERS = ENABLE_WORKERS;
ENABLE_XSLT = ENABLE_XSLT;
-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_HIERARCHIES) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_TEXT_DECORATION) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_UNDO_MANAGER) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WIDGET_REGION) $(ENABLE_WORKERS) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_HIERARCHIES) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_TEXT_DECORATION) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_UNDO_MANAGER) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WIDGET_REGION) $(ENABLE_WORKERS) $(ENABLE_XSLT);
diff --git a/Source/WebKit/mac/Configurations/Version.xcconfig b/Source/WebKit/mac/Configurations/Version.xcconfig
index d1bed77b3..179e74f7a 100644
--- a/Source/WebKit/mac/Configurations/Version.xcconfig
+++ b/Source/WebKit/mac/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 537;
-MINOR_VERSION = 10;
+MINOR_VERSION = 11;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/Source/WebKit/mac/WebView/WebView.mm b/Source/WebKit/mac/WebView/WebView.mm
index 7b8412cfe..e0ca33284 100644
--- a/Source/WebKit/mac/WebView/WebView.mm
+++ b/Source/WebKit/mac/WebView/WebView.mm
@@ -1547,6 +1547,10 @@ static bool needsSelfRetainWhileLoadingQuirk()
settings->setRequestAnimationFrameEnabled([preferences requestAnimationFrameEnabled]);
settings->setNeedsDidFinishLoadOrderQuirk(needsDidFinishLoadOrderQuirk());
settings->setDiagnosticLoggingEnabled([preferences diagnosticLoggingEnabled]);
+
+ // We have enabled this setting in WebKit2 for the sake of some ScrollingCoordinator work.
+ // To avoid possible rendering differences, we should enable it for WebKit1 too.
+ settings->setFixedPositionCreatesStackingContext(true);
NSTimeInterval timeout = [preferences incrementalRenderingSuppressionTimeoutInSeconds];
if (timeout > 0)
@@ -2866,6 +2870,8 @@ static PassOwnPtr<Vector<String> > toStringVector(NSArray* patterns)
Pagination pagination = page->pagination();
pagination.behavesLikeColumns = behavesLikeColumns;
+
+ page->setPagination(pagination);
}
- (BOOL)_paginationBehavesLikeColumns
diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog
index 53a092b85..874c99dee 100644
--- a/Source/WebKit/qt/ChangeLog
+++ b/Source/WebKit/qt/ChangeLog
@@ -1,3 +1,40 @@
+2012-09-17 Leo Franchi <lfranchi@kde.org>
+
+ [Qt] Inspector WebSocket backend protocol update
+ https://bugs.webkit.org/show_bug.cgi?id=77031
+
+ Also adds support for multi-frame messages and non-text messages.
+ Thanks to Jocelyn Turcotte for most of the WebSocket update code!
+
+ Reviewed by Simon Hausmann.
+
+ * WebCoreSupport/InspectorServerQt.cpp:
+ (WebCore):
+ (WebCore::generateWebSocketChallengeResponse):
+ (WebCore::InspectorServerRequestHandlerQt::tcpReadyRead):
+ (WebCore::InspectorServerRequestHandlerQt::webSocketSend):
+ (WebCore::applyMask):
+ (WebCore::InspectorServerRequestHandlerQt::webSocketReadyRead):
+ * WebCoreSupport/InspectorServerQt.h:
+ (InspectorServerRequestHandlerQt):
+
+2012-09-15 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt] QDoc fixes for Qt 5 documentation
+ https://bugs.webkit.org/show_bug.cgi?id=96796
+
+ Reviewed by Simon Hausmann.
+
+ Produce fewer warnings and a better documentation.
+ Having two QML modules providing a WebView component is a bit too much for poor old qdoc to
+ cope with (or would require a lot of painful disambiguation by hand). Since the plan is to have
+ QDeclarativeWebView living in the qtquick1 module, we can already take it out of the
+ documentation generation for now.
+
+ * declarative/qdeclarativewebview.cpp: s/qmlclass/qmltype/ out of principle
+ * docs/qtwebkit.qdocconf: Remove the \i alias that caused a warning. Use *.h as headers suffix, not sources.
+ Also remove QDeclarativeWebView from the documentation.
+
2012-09-13 Lauro Neto <lauro.neto@openbossa.org>
[Qt][WK2] fast/forms/access-key-for-all-elements.html fails
diff --git a/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp b/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp
index 14f5dd734..65bbad0f0 100644
--- a/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp
@@ -34,51 +34,26 @@
#include <QUrl>
#include <QWidget>
#include <qendian.h>
-#include <wtf/MD5.h>
+#include <wtf/SHA1.h>
+#include <wtf/text/Base64.h>
#include <wtf/text/CString.h>
namespace WebCore {
/*!
- Computes the WebSocket handshake response given the two challenge numbers and key3.
+ Computes the WebSocket handshake response given the input key
*/
-static void generateWebSocketChallengeResponse(uint32_t number1, uint32_t number2, const unsigned char key3[8], unsigned char response[16])
+static QByteArray generateWebSocketChallengeResponse(const QByteArray& key)
{
- uint8_t challenge[16];
- qToBigEndian<qint32>(number1, &challenge[0]);
- qToBigEndian<qint32>(number2, &challenge[4]);
- memcpy(&challenge[8], key3, 8);
- MD5 md5;
- md5.addBytes(challenge, sizeof(challenge));
- Vector<uint8_t, 16> digest;
- md5.checksum(digest);
- memcpy(response, digest.data(), 16);
-}
-
-/*!
- Parses and returns a WebSocket challenge number according to the
- method specified in the WebSocket protocol.
-
- The field contains numeric digits interspersed with spaces and
- non-numeric digits. The protocol ignores the characters that are
- neither digits nor spaces. The digits are concatenated and
- interpreted as a long int. The result is this number divided by
- the number of spaces.
- */
-static quint32 parseWebSocketChallengeNumber(QString field)
-{
- QString nString;
- int numSpaces = 0;
- for (int i = 0; i < field.size(); i++) {
- QChar c = field[i];
- if (c == QLatin1Char(' '))
- numSpaces++;
- else if ((c >= QLatin1Char('0')) && (c <= QLatin1Char('9')))
- nString.append(c);
- }
- quint32 num = nString.toULong();
- quint32 result = (numSpaces ? (num / numSpaces) : num);
- return result;
+ SHA1 sha1;
+ Vector<uint8_t, 20> digest;
+ Vector<char> encoded;
+ QByteArray toHash("258EAFA5-E914-47DA-95CA-C5AB0DC85B11");
+ toHash.prepend(key);
+ sha1.addBytes((uint8_t*)toHash.data(), toHash.size());
+ sha1.computeHash(digest);
+ base64Encode((char*)digest.data(), digest.size(), encoded);
+ return QByteArray(encoded.data(), encoded.size());
}
static InspectorServerQt* s_inspectorServer;
@@ -192,7 +167,7 @@ void InspectorServerRequestHandlerQt::tcpReadyRead()
m_path = header.path();
m_contentType = header.contentType().toLatin1();
m_contentLength = header.contentLength();
- if (header.hasKey(QLatin1String("Upgrade")) && (header.value(QLatin1String("Upgrade")) == QLatin1String("WebSocket")))
+ if (header.hasKey(QLatin1String("Upgrade")) && (header.value(QLatin1String("Upgrade")) == QLatin1String("websocket")))
isWebSocket = true;
m_data.clear();
@@ -211,23 +186,14 @@ void InspectorServerRequestHandlerQt::tcpReadyRead()
m_tcpConnection->disconnect(SIGNAL(readyRead()));
connect(m_tcpConnection, SIGNAL(readyRead()), SLOT(webSocketReadyRead()), Qt::QueuedConnection);
- QByteArray key3 = m_tcpConnection->read(8);
-
- quint32 number1 = parseWebSocketChallengeNumber(header.value(QLatin1String("Sec-WebSocket-Key1")));
- quint32 number2 = parseWebSocketChallengeNumber(header.value(QLatin1String("Sec-WebSocket-Key2")));
-
- char responseData[16];
- generateWebSocketChallengeResponse(number1, number2, (unsigned char*)key3.data(), (unsigned char*)responseData);
- QByteArray response(responseData, sizeof(responseData));
+ QByteArray key = header.value(QLatin1String("Sec-WebSocket-Key")).toLatin1();
+ QString accept = QString::fromLatin1(generateWebSocketChallengeResponse(key));
WebKit::QHttpResponseHeader responseHeader(101, QLatin1String("WebSocket Protocol Handshake"), 1, 1);
responseHeader.setValue(QLatin1String("Upgrade"), header.value(QLatin1String("Upgrade")));
responseHeader.setValue(QLatin1String("Connection"), header.value(QLatin1String("Connection")));
- responseHeader.setValue(QLatin1String("Sec-WebSocket-Origin"), header.value(QLatin1String("Origin")));
- responseHeader.setValue(QLatin1String("Sec-WebSocket-Location"), (QLatin1String("ws://") + header.value(QLatin1String("Host")) + m_path));
- responseHeader.setContentLength(response.size());
+ responseHeader.setValue(QLatin1String("Sec-WebSocket-Accept"), accept);
m_tcpConnection->write(responseHeader.toString().toLatin1());
- m_tcpConnection->write(response);
m_tcpConnection->flush();
if ((words.size() == 4)
@@ -306,26 +272,43 @@ void InspectorServerRequestHandlerQt::tcpConnectionDisconnected()
m_tcpConnection = 0;
}
-int InspectorServerRequestHandlerQt::webSocketSend(QByteArray payload)
+int InspectorServerRequestHandlerQt::webSocketSend(const QString& message)
{
- Q_ASSERT(m_tcpConnection);
- m_tcpConnection->putChar(0x00);
- int nBytes = m_tcpConnection->write(payload);
- m_tcpConnection->putChar(0xFF);
- m_tcpConnection->flush();
- return nBytes;
+ QByteArray payload = message.toUtf8();
+ return webSocketSend(payload.data(), payload.size());
}
int InspectorServerRequestHandlerQt::webSocketSend(const char* data, size_t length)
{
Q_ASSERT(m_tcpConnection);
- m_tcpConnection->putChar(0x00);
+ m_tcpConnection->putChar(0x81);
+ if (length <= 125)
+ m_tcpConnection->putChar(static_cast<uint8_t>(length));
+ else if (length <= pow(2, 16)) {
+ m_tcpConnection->putChar(126);
+ quint16 length16 = qToBigEndian<quint16>(static_cast<quint16>(length));
+ m_tcpConnection->write(reinterpret_cast<char*>(&length16), 2);
+ } else {
+ m_tcpConnection->putChar(127);
+ quint64 length64 = qToBigEndian<quint64>(static_cast<quint64>(length));
+ m_tcpConnection->write(reinterpret_cast<char*>(&length64), 8);
+ }
int nBytes = m_tcpConnection->write(data, length);
- m_tcpConnection->putChar(0xFF);
m_tcpConnection->flush();
return nBytes;
}
+static QByteArray applyMask(const QByteArray& payload, const QByteArray& maskingKey)
+{
+ Q_ASSERT(maskingKey.size() == 4);
+ QByteArray unmaskedPayload;
+ for (int i = 0; i < payload.size(); ++i) {
+ char unmaskedByte = payload[i] ^ maskingKey[i % 4];
+ unmaskedPayload.append(unmaskedByte);
+ }
+ return unmaskedPayload;
+}
+
void InspectorServerRequestHandlerQt::webSocketReadyRead()
{
Q_ASSERT(m_tcpConnection);
@@ -333,33 +316,43 @@ void InspectorServerRequestHandlerQt::webSocketReadyRead()
return;
QByteArray content = m_tcpConnection->read(m_tcpConnection->bytesAvailable());
m_data.append(content);
- while (m_data.size() > 0) {
- // first byte in websocket frame should be 0
- Q_ASSERT(!m_data[0]);
-
- // Start of WebSocket frame is indicated by 0
- if (m_data[0]) {
- qCritical() << "webSocketReadyRead: unknown frame type" << m_data[0];
- m_data.clear();
- m_tcpConnection->close();
- return;
+ while (m_data.size() > 0) {
+ const bool isMasked = m_data[1] & 0x80;
+ quint64 payloadLen = m_data[1] & 0x7F;
+ int pos = 2;
+
+ if (payloadLen == 126) {
+ payloadLen = qFromBigEndian<quint16>(*reinterpret_cast<quint16*>(m_data.mid(pos, 2).data()));
+ pos = 4;
+ } else if (payloadLen == 127) {
+ payloadLen = qFromBigEndian<quint64>(*reinterpret_cast<quint64*>(m_data.mid(pos, 8).data()));
+ pos = 8;
}
-
- // End of WebSocket frame indicated by 0xff.
- int pos = m_data.indexOf(0xff, 1);
- if (pos < 1)
- return;
-
- // After above checks, length will be >= 0.
- size_t length = pos - 1;
- if (length <= 0)
- return;
-
- QByteArray payload = m_data.mid(1, length);
-
+
+ QByteArray payload;
+ if (isMasked) {
+ QByteArray maskingKey = m_data.mid(pos, 4);
+ pos += 4;
+ payload = applyMask(m_data.mid(pos, payloadLen), maskingKey);
+ } else
+ payload = m_data.mid(pos, payloadLen);
+
+ // Handle fragmentation
+ if (!(m_data[0] & 0x80)) { // Non-last fragmented payload
+ m_fragmentedPayload.append(payload);
+ m_data = m_data.mid(pos + payloadLen);
+ continue;
+ }
+
+ if (!(m_data[0] & 0x0F)) { // Last fragment
+ m_fragmentedPayload.append(payload);
+ payload = m_fragmentedPayload;
+ m_fragmentedPayload.clear();
+ }
+
// Remove this WebSocket message from m_data (payload, start-of-frame byte, end-of-frame byte).
// Truncate data before delivering message in case of re-entrancy.
- m_data = m_data.mid(length + 2);
+ m_data = m_data.mid(pos + payloadLen);
#if ENABLE(INSPECTOR)
if (m_inspectorClient) {
diff --git a/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.h b/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.h
index b130b0a0d..b0bb0c79d 100644
--- a/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.h
+++ b/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.h
@@ -72,7 +72,7 @@ public:
InspectorServerRequestHandlerQt(QTcpSocket *tcpConnection, InspectorServerQt *server);
virtual ~InspectorServerRequestHandlerQt();
- virtual int webSocketSend(QByteArray payload);
+ virtual int webSocketSend(const QString& message);
virtual int webSocketSend(const char *payload, size_t length);
private Q_SLOTS:
@@ -89,6 +89,7 @@ private:
int m_contentLength;
bool m_endOfHeaders;
QByteArray m_data;
+ QByteArray m_fragmentedPayload;
InspectorClientQt* m_inspectorClient;
void handleInspectorRequest(QStringList words);
diff --git a/Source/WebKit/qt/declarative/qdeclarativewebview.cpp b/Source/WebKit/qt/declarative/qdeclarativewebview.cpp
index d184c087e..cdfcf53b8 100644
--- a/Source/WebKit/qt/declarative/qdeclarativewebview.cpp
+++ b/Source/WebKit/qt/declarative/qdeclarativewebview.cpp
@@ -152,7 +152,9 @@ bool GraphicsWebView::sceneEvent(QEvent *event)
}
/*!
- \qmlclass WebView QDeclarativeWebView
+ \qmltype WebView
+ \instantiates QDeclarativeWebView
+ \inqmlmodule QtWebKit 1.0
\ingroup qml-view-elements
\since 4.7
\brief The WebView item allows you to add Web content to a canvas.
diff --git a/Source/WebKit/qt/docs/qtwebkit.qdocconf b/Source/WebKit/qt/docs/qtwebkit.qdocconf
index 23d277001..adf5cbf2f 100644
--- a/Source/WebKit/qt/docs/qtwebkit.qdocconf
+++ b/Source/WebKit/qt/docs/qtwebkit.qdocconf
@@ -3,11 +3,12 @@
project = qtwebkit
description = "Qt WebKit API Documentation"
-headerdirs = $SRCDIR/WebKit/qt/Api $SRCDIR/WebKit/qt/declarative $SRCDIR/WebKit2/UIProcess/API/qt
-sourcedirs = $SRCDIR/WebKit/qt/Api $SRCDIR/WebKit/qt/docs $SRCDIR/Source/JavaScriptCore/qt/api $SRCDIR/WebKit/qt/declarative $SRCDIR/WebKit2/UIProcess/API/qt
+headerdirs = $SRCDIR/WebKit/qt/Api $SRCDIR/WebKit2/UIProcess/API/qt
+sourcedirs = $SRCDIR/WebKit/qt/Api $SRCDIR/WebKit/qt/docs $SRCDIR/Source/JavaScriptCore/qt/api $SRCDIR/WebKit2/UIProcess/API/qt
outputdir = $OUTPUT_DIR/doc/html
outputformats = HTML
-sources.fileextensions = "*.cpp *.doc *.qdoc *.h"
+sources.fileextensions = "*.cpp *.doc *.qdoc"
+headers.fileextensions = "*.h"
exampledirs = $SRCDIR/WebKit/qt/docs
imagedirs = $SRCDIR/WebKit/qt/docs
@@ -43,7 +44,6 @@ macro.mdash.HTML = "&mdash;"
# compat.qdocconf
-alias.i = e
alias.include = input
macro.0 = "\\\\0"
diff --git a/Source/WebKit/win/ChangeLog b/Source/WebKit/win/ChangeLog
index 14a9396d4..73b494a9f 100644
--- a/Source/WebKit/win/ChangeLog
+++ b/Source/WebKit/win/ChangeLog
@@ -1,3 +1,81 @@
+2012-09-17 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128809.
+ http://trac.webkit.org/changeset/128809
+ https://bugs.webkit.org/show_bug.cgi?id=96958
+
+ Broke the Windows build. (Requested by andersca on #webkit).
+
+ * DefaultPolicyDelegate.cpp:
+ (DefaultPolicyDelegate::decidePolicyForNavigationAction):
+ (DefaultPolicyDelegate::decidePolicyForMIMEType):
+ (DefaultPolicyDelegate::unableToImplementPolicyWithError):
+ * MarshallingHelpers.cpp:
+ (MarshallingHelpers::KURLToBSTR):
+ (MarshallingHelpers::CFStringRefToBSTR):
+ (MarshallingHelpers::stringArrayToSafeArray):
+ (MarshallingHelpers::safeArrayToStringArray):
+ * WebCoreSupport/WebChromeClient.cpp:
+ (WebChromeClient::runJavaScriptPrompt):
+ * WebCoreSupport/WebEditorClient.cpp:
+ (WebEditorClient::checkGrammarOfString):
+ (WebEditorClient::getGuessesForWord):
+ * WebFrame.cpp:
+ (WebFrame::canProvideDocumentSource):
+ * WebHistory.cpp:
+ (WebHistory::removeItem):
+ (WebHistory::addItem):
+ * WebIconDatabase.cpp:
+ (WebIconDatabase::startUpIconDatabase):
+ * WebNotificationCenter.cpp:
+ (WebNotificationCenter::postNotification):
+ * WebPreferences.cpp:
+ (WebPreferences::setStringValue):
+ * WebView.cpp:
+ (PreferencesChangedOrRemovedObserver::onNotify):
+ (WebView::close):
+ (WebView::canShowMIMEType):
+ (WebView::initWithFrame):
+ (WebView::setApplicationNameForUserAgent):
+ (WebView::setCustomUserAgent):
+ (WebView::userAgentForURL):
+ (WebView::setCustomTextEncodingName):
+ (WebView::customTextEncodingName):
+ (WebView::setPreferences):
+ (WebView::searchFor):
+ (WebView::executeCoreCommandByName):
+ (WebView::markAllMatchesForText):
+ (WebView::setGroupName):
+ (WebView::registerURLSchemeAsLocal):
+ (WebView::replaceSelectionWithText):
+ (WebView::onNotify):
+ (WebView::notifyPreferencesChanged):
+ (WebView::MIMETypeForExtension):
+ (WebView::standardUserAgentWithApplicationName):
+ (WebView::addAdditionalPluginDirectory):
+ (WebView::registerEmbeddedViewMIMEType):
+ (toString):
+ (toKURL):
+ (WebView::addOriginAccessWhitelistEntry):
+ (WebView::removeOriginAccessWhitelistEntry):
+ (WebView::geolocationDidFailWithError):
+ (WebView::setDomainRelaxationForbiddenForURLScheme):
+ (WebView::setCompositionForTesting):
+ (WebView::confirmCompositionForTesting):
+
+2012-09-16 Mark Lam <mark.lam@apple.com>
+
+ Added MSVC project changes to enable building the llint.
+ https://bugs.webkit.org/show_bug.cgi?id=96175.
+
+ Reviewed by Geoff Garen.
+
+ This only adds the ability to build the llint, but currently, only the
+ C++ backend is supported. By default, the Windows port will remain
+ running with the baseline JIT. The llint will not be enabled.
+
+ * WebKit.vcproj/WebKit.sln:
+
2012-09-13 Brent Fulgham <bfulgham@webkit.org>
[WinCairo] Unreviewed build fix.
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.sln b/Source/WebKit/win/WebKit.vcproj/WebKit.sln
index ab47a727f..0723b2e10 100644
--- a/Source/WebKit/win/WebKit.vcproj/WebKit.sln
+++ b/Source/WebKit/win/WebKit.vcproj/WebKit.sln
@@ -3,6 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCore", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCore.vcproj", "{011D10F1-B656-4A1B-A0C3-3842F02122C5}"
ProjectSection(ProjectDependencies) = postProject
+ {9221744B-5715-4F56-9590-42F7AB23DD8B} = {9221744B-5715-4F56-9590-42F7AB23DD8B}
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}
EndProjectSection
EndProject
@@ -190,6 +191,23 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WTF", "WTF", "{A671AE22-FBC
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTFGenerated", "..\..\..\WTF\WTF.vcproj\WTFGenerated.vcproj", "{5AE5F5E4-782D-4F63-B4D7-3977B52B9950}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LLIntDesiredOffsets", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\LLIntDesiredOffsets\LLIntDesiredOffsets.vcproj", "{877150A0-41B3-4730-9D98-1B8298098B14}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950} = {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LLIntOffsetsExtractor", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\LLIntOffsetsExtractor\LLIntOffsetsExtractor.vcproj", "{D595E3F6-24F2-4C60-935C-95D50C6B3E96}"
+ ProjectSection(ProjectDependencies) = postProject
+ {877150A0-41B3-4730-9D98-1B8298098B14} = {877150A0-41B3-4730-9D98-1B8298098B14}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LLIntAssembly", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\LLIntAssembly\LLIntAssembly.vcproj", "{9221744B-5715-4F56-9590-42F7AB23DD8B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {D595E3F6-24F2-4C60-935C-95D50C6B3E96} = {D595E3F6-24F2-4C60-935C-95D50C6B3E96}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_All|Win32 = Debug_All|Win32
@@ -640,6 +658,9 @@ Global
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
{14C94979-1ED3-4E1D-9B55-A80FCF4677D0} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {877150A0-41B3-4730-9D98-1B8298098B14} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {D595E3F6-24F2-4C60-935C-95D50C6B3E96} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {9221744B-5715-4F56-9590-42F7AB23DD8B} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
{0A324352-B3B6-496C-9E5B-4C7E923E628B} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
{E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}