diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-14 16:29:47 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-14 16:29:47 +0200 |
commit | d0424a769059c84ae20beb3c217812792ea6726b (patch) | |
tree | 6f94a5c3db8c52c6694ee56498542a6c35417350 /Source/WebKit/chromium/src | |
parent | 88a04ac016f57c2d78e714682445dff2e7db4ade (diff) | |
download | qtwebkit-d0424a769059c84ae20beb3c217812792ea6726b.tar.gz |
Imported WebKit commit 37c5e5041d39a14ea0d429a77ebd352e4bd26516 (http://svn.webkit.org/repository/webkit/trunk@128608)
New snapshot that enables WebKit2 build on Windows (still some bugs) and allows for WebKit to be built with qmake && make
Diffstat (limited to 'Source/WebKit/chromium/src')
20 files changed, 83 insertions, 76 deletions
diff --git a/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp b/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp index 2fd6431c1..5b0b01014 100644 --- a/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp +++ b/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp @@ -122,7 +122,7 @@ static String selectMisspelledWord(const ContextMenu* defaultMenu, Frame* select // Selection is empty, so change the selection to the word under the cursor. HitTestResult hitTestResult = selectedFrame->eventHandler()-> - hitTestResultAtPoint(selectedFrame->page()->contextMenuController()->hitTestResult().point(), HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::AllowShadowContent); + hitTestResultAtPoint(selectedFrame->page()->contextMenuController()->hitTestResult().point(), true); Node* innerNode = hitTestResult.innerNode(); VisiblePosition pos(innerNode->renderer()->positionForPoint( hitTestResult.localPoint())); @@ -160,7 +160,7 @@ PlatformMenuDescription ContextMenuClientImpl::getCustomMenuFromDefaultItems( Frame* selectedFrame = r.innerNonSharedNode()->document()->frame(); WebContextMenuData data; - data.mousePosition = selectedFrame->view()->contentsToWindow(r.roundedPoint()); + data.mousePosition = r.roundedPoint(); // Compute edit flags. data.editFlags = WebContextMenuData::CanDoNone; diff --git a/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp b/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp index c99bd7c57..5dd02b563 100644 --- a/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp +++ b/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp @@ -997,7 +997,8 @@ void FrameLoaderClientImpl::dispatchDecidePolicyForNavigationAction( if (event->isMouseEvent()) { const MouseEvent* mouseEvent = static_cast<const MouseEvent*>(event); - node = m_webFrame->frame()->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation()).innerNonSharedNode(); + node = m_webFrame->frame()->eventHandler()->hitTestResultAtPoint( + mouseEvent->absoluteLocation(), false).innerNonSharedNode(); break; } } diff --git a/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp b/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp index 193bf2b5f..af4984a77 100644 --- a/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp +++ b/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp @@ -34,13 +34,15 @@ #include "IDBCursorBackendInterface.h" #include "IDBDatabaseBackendInterface.h" #include "IDBDatabaseBackendProxy.h" +#include "IDBDatabaseCallbacksProxy.h" #include "IDBDatabaseError.h" #include "IDBObjectStoreBackendInterface.h" #include "IDBTransactionBackendInterface.h" #include "WebIDBCallbacks.h" #include "WebIDBCursorImpl.h" -#include "WebIDBDatabaseImpl.h" +#include "WebIDBDatabaseCallbacks.h" #include "WebIDBDatabaseError.h" +#include "WebIDBDatabaseImpl.h" #include "WebIDBKey.h" #include "WebIDBTransactionImpl.h" #include "platform/WebSerializedScriptValue.h" @@ -75,7 +77,8 @@ void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBCursorBackendInterface> idbCurso void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> backend) { - m_callbacks->onSuccess(new WebIDBDatabaseImpl(backend)); + ASSERT(m_databaseCallbacks.get()); + m_callbacks->onSuccess(new WebIDBDatabaseImpl(backend, m_databaseCallbacks.release())); } void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBKey> idbKey) @@ -137,9 +140,17 @@ void IDBCallbacksProxy::onBlocked(int64_t existingVersion) void IDBCallbacksProxy::onUpgradeNeeded(int64_t oldVersion, PassRefPtr<IDBTransactionBackendInterface> transaction, PassRefPtr<IDBDatabaseBackendInterface> database) { - m_callbacks->onUpgradeNeeded(oldVersion, new WebIDBTransactionImpl(transaction), new WebIDBDatabaseImpl(database)); + ASSERT(m_databaseCallbacks); + m_callbacks->onUpgradeNeeded(oldVersion, new WebIDBTransactionImpl(transaction), new WebIDBDatabaseImpl(database, m_databaseCallbacks)); +} + +void IDBCallbacksProxy::setDatabaseCallbacks(PassRefPtr<IDBDatabaseCallbacksProxy> databaseCallbacks) +{ + ASSERT(!m_databaseCallbacks); + m_databaseCallbacks = databaseCallbacks; } } // namespace WebKit + #endif // ENABLE(INDEXED_DATABASE) diff --git a/Source/WebKit/chromium/src/IDBCallbacksProxy.h b/Source/WebKit/chromium/src/IDBCallbacksProxy.h index 825758aad..f613a85c2 100644 --- a/Source/WebKit/chromium/src/IDBCallbacksProxy.h +++ b/Source/WebKit/chromium/src/IDBCallbacksProxy.h @@ -39,6 +39,7 @@ namespace WebKit { class WebIDBCallbacks; +class IDBDatabaseCallbacksProxy; class IDBCallbacksProxy : public WebCore::IDBCallbacks { public: @@ -59,10 +60,13 @@ public: virtual void onBlocked(int64_t existingVersion); virtual void onUpgradeNeeded(int64_t oldVersion, PassRefPtr<WebCore::IDBTransactionBackendInterface>, PassRefPtr<WebCore::IDBDatabaseBackendInterface>); + void setDatabaseCallbacks(PassRefPtr<IDBDatabaseCallbacksProxy>); + private: IDBCallbacksProxy(PassOwnPtr<WebIDBCallbacks>); OwnPtr<WebIDBCallbacks> m_callbacks; + RefPtr<IDBDatabaseCallbacksProxy> m_databaseCallbacks; }; } // namespace WebKit diff --git a/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp b/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp index 56afe5fb5..501ce61fb 100644 --- a/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp +++ b/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.cpp @@ -107,11 +107,6 @@ void IDBDatabaseBackendProxy::close(PassRefPtr<IDBDatabaseCallbacks>) m_webIDBDatabase->close(); } -void IDBDatabaseBackendProxy::registerFrontendCallbacks(PassRefPtr<IDBDatabaseCallbacks> databaseCallbacks) -{ - m_webIDBDatabase->open(new WebIDBDatabaseCallbacksImpl(databaseCallbacks)); -} - } // namespace WebKit #endif // ENABLE(INDEXED_DATABASE) diff --git a/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h b/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h index 2a93600c6..795610aa6 100644 --- a/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h +++ b/Source/WebKit/chromium/src/IDBDatabaseBackendProxy.h @@ -50,8 +50,6 @@ public: virtual PassRefPtr<WebCore::IDBTransactionBackendInterface> transaction(WebCore::DOMStringList* storeNames, unsigned short mode, WebCore::ExceptionCode&); virtual void close(PassRefPtr<WebCore::IDBDatabaseCallbacks>); - virtual void registerFrontendCallbacks(PassRefPtr<WebCore::IDBDatabaseCallbacks>); - private: IDBDatabaseBackendProxy(PassOwnPtr<WebIDBDatabase>); diff --git a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp index babcbae18..28995ec66 100755 --- a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp +++ b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp @@ -34,12 +34,14 @@ #include "CrossThreadTask.h" #include "DOMStringList.h" #include "IDBDatabaseBackendProxy.h" +#include "IDBDatabaseCallbacks.h" #include "IDBDatabaseError.h" #include "ScriptExecutionContext.h" #include "SecurityOrigin.h" #include "WebFrameImpl.h" #include "WebIDBCallbacksImpl.h" #include "WebIDBDatabase.h" +#include "WebIDBDatabaseCallbacksImpl.h" #include "WebIDBDatabaseError.h" #include "WebIDBFactory.h" #include "WebKit.h" @@ -203,15 +205,16 @@ void IDBFactoryBackendProxy::getDatabaseNames(PassRefPtr<IDBCallbacks> prpCallba } -void IDBFactoryBackendProxy::open(const String& name, int64_t version, PassRefPtr<IDBCallbacks> prpCallbacks, PassRefPtr<SecurityOrigin> securityOrigin, ScriptExecutionContext* context, const String& dataDir) +void IDBFactoryBackendProxy::open(const String& name, int64_t version, PassRefPtr<IDBCallbacks> prpCallbacks, PassRefPtr<IDBDatabaseCallbacks> prpDatabaseCallbacks, PassRefPtr<SecurityOrigin> securityOrigin, ScriptExecutionContext* context, const String& dataDir) { RefPtr<IDBCallbacks> callbacks(prpCallbacks); + RefPtr<IDBDatabaseCallbacks> databaseCallbacks(prpDatabaseCallbacks); WebSecurityOrigin origin(securityOrigin); if (!allowIndexedDB(context, name, origin, callbacks)) return; WebFrameImpl* webFrame = getWebFrame(context); - m_webIDBFactory->open(name, version, new WebIDBCallbacksImpl(callbacks), origin, webFrame, dataDir); + m_webIDBFactory->open(name, version, new WebIDBCallbacksImpl(callbacks), new WebIDBDatabaseCallbacksImpl(databaseCallbacks), origin, webFrame, dataDir); } void IDBFactoryBackendProxy::deleteDatabase(const String& name, PassRefPtr<IDBCallbacks> prpCallbacks, PassRefPtr<SecurityOrigin> securityOrigin, ScriptExecutionContext* context, const String& dataDir) diff --git a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h index c0de910a9..88380d7a4 100644 --- a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h +++ b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h @@ -49,7 +49,7 @@ public: virtual ~IDBFactoryBackendProxy(); virtual void getDatabaseNames(PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir); - virtual void open(const String& name, int64_t version, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir); + virtual void open(const String& name, int64_t version, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::IDBDatabaseCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir); virtual void deleteDatabase(const String& name, PassRefPtr<WebCore::IDBCallbacks>, PassRefPtr<WebCore::SecurityOrigin>, WebCore::ScriptExecutionContext*, const String& dataDir); private: diff --git a/Source/WebKit/chromium/src/WebFrameImpl.cpp b/Source/WebKit/chromium/src/WebFrameImpl.cpp index 1d187f09e..eb02351da 100644 --- a/Source/WebKit/chromium/src/WebFrameImpl.cpp +++ b/Source/WebKit/chromium/src/WebFrameImpl.cpp @@ -1265,7 +1265,7 @@ size_t WebFrameImpl::characterIndexForPoint(const WebPoint& webPoint) const return notFound; IntPoint point = frame()->view()->windowToContents(webPoint); - HitTestResult result = frame()->eventHandler()->hitTestResultAtPoint(point); + HitTestResult result = frame()->eventHandler()->hitTestResultAtPoint(point, false); RefPtr<Range> range = frame()->rangeForPoint(result.roundedPoint()); if (!range) return notFound; @@ -2571,13 +2571,13 @@ void WebFrameImpl::invalidateArea(AreaToInvalidate area) contentArea.move(-frameRect.x(), -frameRect.y()); view->invalidateRect(contentArea); } + } - if ((area & InvalidateScrollbar) == InvalidateScrollbar) { - // Invalidate the vertical scroll bar region for the view. - Scrollbar* scrollbar = view->verticalScrollbar(); - if (scrollbar) - scrollbar->invalidate(); - } + if ((area & InvalidateScrollbar) == InvalidateScrollbar) { + // Invalidate the vertical scroll bar region for the view. + Scrollbar* scrollbar = view->verticalScrollbar(); + if (scrollbar) + scrollbar->invalidate(); } } diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp index 0d142bc02..52879a9a7 100644 --- a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp +++ b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.cpp @@ -45,8 +45,9 @@ using namespace WebCore; namespace WebKit { -WebIDBDatabaseImpl::WebIDBDatabaseImpl(PassRefPtr<IDBDatabaseBackendInterface> databaseBackend) +WebIDBDatabaseImpl::WebIDBDatabaseImpl(PassRefPtr<IDBDatabaseBackendInterface> databaseBackend, WTF::PassRefPtr<IDBDatabaseCallbacksProxy> databaseCallbacks) : m_databaseBackend(databaseBackend) + , m_databaseCallbacks(databaseCallbacks) , m_closePending(false) { } @@ -93,7 +94,7 @@ WebIDBTransaction* WebIDBDatabaseImpl::transaction(const WebDOMStringList& names void WebIDBDatabaseImpl::close() { - // Use the callbacks that ::open gave us so that the backend in + // 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; @@ -113,15 +114,6 @@ void WebIDBDatabaseImpl::forceClose() callbacks->onForcedClose(); } -void WebIDBDatabaseImpl::open(WebIDBDatabaseCallbacks* callbacks) -{ - ASSERT(!m_databaseCallbacks); - m_databaseCallbacks = IDBDatabaseCallbacksProxy::create(adoptPtr(callbacks)); - m_databaseBackend->registerFrontendCallbacks(m_databaseCallbacks); - if (m_closePending) - close(); -} - } // namespace WebKit #endif // ENABLE(INDEXED_DATABASE) diff --git a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h index 4a8284ce5..9cd1caf59 100644 --- a/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h +++ b/Source/WebKit/chromium/src/WebIDBDatabaseImpl.h @@ -47,7 +47,7 @@ class WebIDBTransaction; // See comment in WebIDBFactory for a high level overview these classes. class WebIDBDatabaseImpl : public WebIDBDatabase { public: - WebIDBDatabaseImpl(WTF::PassRefPtr<WebCore::IDBDatabaseBackendInterface>); + WebIDBDatabaseImpl(WTF::PassRefPtr<WebCore::IDBDatabaseBackendInterface>, WTF::PassRefPtr<IDBDatabaseCallbacksProxy>); virtual ~WebIDBDatabaseImpl(); virtual WebIDBMetadata metadata() const; @@ -59,9 +59,6 @@ public: virtual void forceClose(); virtual void close(); - // FIXME: Rename "open" to registerFrontendCallbacks. - virtual void open(WebIDBDatabaseCallbacks*); - private: WTF::RefPtr<WebCore::IDBDatabaseBackendInterface> m_databaseBackend; WTF::RefPtr<IDBDatabaseCallbacksProxy> m_databaseCallbacks; diff --git a/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp b/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp index ad71476b7..94a8d468a 100755 --- a/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp +++ b/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp @@ -35,8 +35,10 @@ #include "DOMStringList.h" #include "IDBCallbacksProxy.h" +#include "IDBDatabaseCallbacksProxy.h" #include "IDBFactoryBackendImpl.h" #include "SecurityOrigin.h" +#include "WebIDBDatabaseCallbacks.h" #include "WebIDBDatabaseError.h" #include <wtf/OwnPtr.h> @@ -63,9 +65,12 @@ void WebIDBFactoryImpl::getDatabaseNames(WebIDBCallbacks* callbacks, const WebSe m_idbFactoryBackend->getDatabaseNames(IDBCallbacksProxy::create(adoptPtr(callbacks)), origin, 0, dataDir); } -void WebIDBFactoryImpl::open(const WebString& name, long long version, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame*, const WebString& dataDir) +void WebIDBFactoryImpl::open(const WebString& name, long long version, WebIDBCallbacks* callbacks, WebIDBDatabaseCallbacks* databaseCallbacks, const WebSecurityOrigin& origin, WebFrame*, const WebString& dataDir) { - m_idbFactoryBackend->open(name, version, IDBCallbacksProxy::create(adoptPtr(callbacks)).get(), origin, 0, dataDir); + RefPtr<IDBCallbacksProxy> callbacksProxy = IDBCallbacksProxy::create(adoptPtr(callbacks)); + RefPtr<IDBDatabaseCallbacksProxy> databaseCallbacksProxy = IDBDatabaseCallbacksProxy::create(adoptPtr(databaseCallbacks)); + callbacksProxy->setDatabaseCallbacks(databaseCallbacksProxy); + m_idbFactoryBackend->open(name, version, callbacksProxy.get(), databaseCallbacksProxy.get(), origin, 0, dataDir); } void WebIDBFactoryImpl::deleteDatabase(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame*, const WebString& dataDir) diff --git a/Source/WebKit/chromium/src/WebIDBFactoryImpl.h b/Source/WebKit/chromium/src/WebIDBFactoryImpl.h index 833eeb591..33f5a21d2 100644 --- a/Source/WebKit/chromium/src/WebIDBFactoryImpl.h +++ b/Source/WebKit/chromium/src/WebIDBFactoryImpl.h @@ -45,7 +45,7 @@ public: virtual ~WebIDBFactoryImpl(); virtual void getDatabaseNames(WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir); - virtual void open(const WebString& name, long long version, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir); + virtual void open(const WebString& name, long long version, WebIDBCallbacks*, WebIDBDatabaseCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir); virtual void deleteDatabase(const WebString& name, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir); private: diff --git a/Source/WebKit/chromium/src/WebInputEvent.cpp b/Source/WebKit/chromium/src/WebInputEvent.cpp index 96123c62e..10d1f2107 100644 --- a/Source/WebKit/chromium/src/WebInputEvent.cpp +++ b/Source/WebKit/chromium/src/WebInputEvent.cpp @@ -60,7 +60,7 @@ struct SameSizeAsWebMouseWheelEvent : public SameSizeAsWebMouseEvent { }; struct SameSizeAsWebGestureEvent : public SameSizeAsWebInputEvent { - int gestureData[14]; + int gestureData[8]; }; struct SameSizeAsWebTouchEvent : public SameSizeAsWebInputEvent { diff --git a/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp b/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp index 524ba80f8..5c164319e 100644 --- a/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp +++ b/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp @@ -507,7 +507,7 @@ bool WebPluginContainerImpl::isRectTopmost(const WebRect& rect) LayoutPoint center = documentRect.center(); // Make the rect we're checking (the point surrounded by padding rects) contained inside the requested rect. (Note that -1/2 is 0.) LayoutSize padding((documentRect.width() - 1) / 2, (documentRect.height() - 1) / 2); - HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(center, HitTestRequest::ReadOnly | HitTestRequest::Active, padding); + HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(center, false, false, DontHitTestScrollbars, HitTestRequest::ReadOnly | HitTestRequest::Active, padding); const HitTestResult::NodeSet& nodes = result.rectBasedTestResult(); if (nodes.size() != 1) return false; diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.cpp b/Source/WebKit/chromium/src/WebSettingsImpl.cpp index 5026ee94b..51731fd8f 100644 --- a/Source/WebKit/chromium/src/WebSettingsImpl.cpp +++ b/Source/WebKit/chromium/src/WebSettingsImpl.cpp @@ -428,6 +428,12 @@ void WebSettingsImpl::setAcceleratedCompositingForVideoEnabled(bool enabled) m_settings->setAcceleratedCompositingForVideoEnabled(enabled); } +void WebSettingsImpl::setAcceleratedCompositingForOverflowScrollEnabled( + bool enabled) +{ + m_settings->setAcceleratedCompositingForOverflowScrollEnabled(enabled); +} + void WebSettingsImpl::setAcceleratedCompositingForPluginsEnabled(bool enabled) { m_settings->setAcceleratedCompositingForPluginsEnabled(enabled); diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.h b/Source/WebKit/chromium/src/WebSettingsImpl.h index 6cee2af23..a5f7c0235 100644 --- a/Source/WebKit/chromium/src/WebSettingsImpl.h +++ b/Source/WebKit/chromium/src/WebSettingsImpl.h @@ -53,6 +53,7 @@ public: virtual void setAcceleratedCompositingForAnimationEnabled(bool); virtual void setAcceleratedCompositingForCanvasEnabled(bool); virtual void setAcceleratedCompositingForFixedPositionEnabled(bool); + virtual void setAcceleratedCompositingForOverflowScrollEnabled(bool); virtual void setAcceleratedCompositingForPluginsEnabled(bool); virtual void setAcceleratedCompositingForVideoEnabled(bool); virtual void setAcceleratedFiltersEnabled(bool); diff --git a/Source/WebKit/chromium/src/WebViewImpl.cpp b/Source/WebKit/chromium/src/WebViewImpl.cpp index 238b2f920..d18cd236c 100644 --- a/Source/WebKit/chromium/src/WebViewImpl.cpp +++ b/Source/WebKit/chromium/src/WebViewImpl.cpp @@ -120,7 +120,6 @@ #include "TextIterator.h" #include "Timer.h" #include "TraceEvent.h" -#include "UserGestureIndicator.h" #include "WebAccessibilityObject.h" #include "WebActiveWheelFlingParameters.h" #include "WebAutofillClient.h" @@ -639,7 +638,7 @@ void WebViewImpl::handleMouseUp(Frame& mainFrame, const WebMouseEvent& event) FrameView* view = m_page->mainFrame()->view(); IntPoint clickPoint(m_lastMouseDownPoint.x, m_lastMouseDownPoint.y); IntPoint contentPoint = view->windowToContents(clickPoint); - HitTestResult hitTestResult = focused->eventHandler()->hitTestResultAtPoint(contentPoint, HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::TestChildFrameScrollBars); + HitTestResult hitTestResult = focused->eventHandler()->hitTestResultAtPoint(contentPoint, false, false, ShouldHitTestScrollbars); // We don't want to send a paste when middle clicking a scroll bar or a // link (which will navigate later in the code). The main scrollbars // have to be handled separately. @@ -1008,8 +1007,9 @@ WebRect WebViewImpl::computeBlockBounds(const WebRect& rect, AutoZoomType zoomTy // Use the rect-based hit test to find the node. IntPoint point = mainFrameImpl()->frameView()->windowToContents(IntPoint(rect.x, rect.y)); - HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::Active | ((zoomType == FindInPage) ? HitTestRequest::IgnoreClipping : 0); - HitTestResult result = mainFrameImpl()->frame()->eventHandler()->hitTestResultAtPoint(point, hitType, IntSize(rect.width, rect.height)); + HitTestResult result = mainFrameImpl()->frame()->eventHandler()->hitTestResultAtPoint(point, + false, zoomType == FindInPage, DontHitTestScrollbars, HitTestRequest::Active | HitTestRequest::ReadOnly, + IntSize(rect.width, rect.height)); Node* node = result.innerNonSharedNode(); if (!node) @@ -1741,28 +1741,11 @@ void WebViewImpl::doPixelReadbackToCanvas(WebCanvas* canvas, const IntRect& rect { ASSERT(m_layerTreeView); - PlatformContextSkia context(canvas); - - // PlatformGraphicsContext is actually a pointer to PlatformContextSkia - GraphicsContext gc(reinterpret_cast<PlatformGraphicsContext*>(&context)); - int bitmapHeight = canvas->getDevice()->accessBitmap(false).height(); - - // Compute rect to sample from inverted GPU buffer. - IntRect invertRect(rect.x(), bitmapHeight - rect.maxY(), rect.width(), rect.height()); - - OwnPtr<ImageBuffer> imageBuffer(ImageBuffer::create(rect.size())); - RefPtr<Uint8ClampedArray> pixelArray(Uint8ClampedArray::createUninitialized(rect.width() * rect.height() * 4)); - if (imageBuffer && pixelArray) { - m_layerTreeView->compositeAndReadback(pixelArray->data(), invertRect); - imageBuffer->putByteArray(Premultiplied, pixelArray.get(), rect.size(), IntRect(IntPoint(), rect.size()), IntPoint()); - gc.save(); - gc.translate(IntSize(0, bitmapHeight)); - gc.scale(FloatSize(1.0f, -1.0f)); - // Use invertRect in next line, so that transform above inverts it back to - // desired destination rect. - gc.drawImageBuffer(imageBuffer.get(), ColorSpaceDeviceRGB, invertRect.location()); - gc.restore(); - } + SkBitmap target; + target.setConfig(SkBitmap::kARGB_8888_Config, rect.width(), rect.height(), rect.width() * 4); + target.allocPixels(); + m_layerTreeView->compositeAndReadback(target.getPixels(), rect); + canvas->writePixels(target, rect.x(), rect.y()); } #endif @@ -1923,8 +1906,6 @@ const WebInputEvent* WebViewImpl::m_currentInputEvent = 0; bool WebViewImpl::handleInputEvent(const WebInputEvent& inputEvent) { - UserGestureIndicator gestureIndicator(WebInputEvent::isUserGestureEventType(inputEvent.type) ? DefinitelyProcessingUserGesture : PossiblyProcessingUserGesture); - // If we've started a drag and drop operation, ignore input events until // we're done. if (m_doingDragAndDrop) diff --git a/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp b/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp index ccf90ca40..96f04fa4b 100644 --- a/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp +++ b/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp @@ -57,6 +57,7 @@ #include "FrameLoaderClientImpl.h" #include "PlatformMessagePortChannel.h" +#include "WebFileSystemCallbacks.h" #include "WebFrameClient.h" #include "WebFrameImpl.h" #include "WebMessagePortChannel.h" @@ -103,6 +104,7 @@ void WebWorkerClientImpl::startWorkerContext(const KURL& scriptURL, const String void WebWorkerClientImpl::terminateWorkerContext() { + m_webFrame = 0; m_proxy->terminateWorkerContext(); } @@ -209,7 +211,11 @@ bool WebWorkerClientImpl::allowFileSystem() void WebWorkerClientImpl::openFileSystem(WebFileSystem::Type type, long long size, bool create, WebFileSystemCallbacks* callbacks) { - m_webFrame->client()->openFileSystem(m_webFrame, type, size, create, callbacks); + if (m_proxy->askedToTerminate()) { + callbacks->didFail(WebFileErrorAbort); + return; + } + m_webFrame->client()->openFileSystem(m_webFrame, type, size, create, callbacks); } bool WebWorkerClientImpl::allowDatabase(WebFrame*, const WebString& name, const WebString& displayName, unsigned long estimatedSize) diff --git a/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp b/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp index 9bc70faca..d0db5fa9d 100644 --- a/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp +++ b/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp @@ -148,12 +148,21 @@ WebMouseWheelEvent WebInputEventFactory::mouseWheelEvent(MouseWheelDirectionType // WebGestureEvent ------------------------------------------------------------ +// FIXME: remove this obsolete version +WebGestureEvent WebInputEventFactory::gestureEvent(WebInputEvent::Type type, + double timeStampSeconds, + int x, + int y, + float, + float, + int modifiers) { + return gestureEvent(type, timeStampSeconds, x, y, modifiers); +} + WebGestureEvent WebInputEventFactory::gestureEvent(WebInputEvent::Type type, double timeStampSeconds, int x, int y, - float deltaX, - float deltaY, int modifiers) { WebGestureEvent result; @@ -161,8 +170,6 @@ WebGestureEvent WebInputEventFactory::gestureEvent(WebInputEvent::Type type, result.type = type; result.x = x; result.y = y; - result.deltaX = deltaX; - result.deltaY = deltaY; result.timeStampSeconds = timeStampSeconds; result.modifiers = modifiers; |