[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

paroga at webkit.org paroga at webkit.org
Wed Dec 22 13:41:08 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 9e782812ef40bed00d2bde75ea8de876bbe210f9
Author: paroga at webkit.org <paroga at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Sep 23 14:24:55 2010 +0000

    2010-09-23  Patrick Gansterer  <paroga at webkit.org>
    
            Reviewed by Adam Roben.
    
            Add ChromeClientWinCE
            https://bugs.webkit.org/show_bug.cgi?id=46294
    
            * WebCoreSupport/ChromeClientWinCE.cpp: Added.
            * WebCoreSupport/ChromeClientWinCE.h: Added.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68137 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/wince/ChangeLog b/WebKit/wince/ChangeLog
index 8ad0a81..78811ba 100644
--- a/WebKit/wince/ChangeLog
+++ b/WebKit/wince/ChangeLog
@@ -1,5 +1,15 @@
 2010-09-23  Patrick Gansterer  <paroga at webkit.org>
 
+        Reviewed by Adam Roben.
+
+        Add ChromeClientWinCE
+        https://bugs.webkit.org/show_bug.cgi?id=46294
+
+        * WebCoreSupport/ChromeClientWinCE.cpp: Added.
+        * WebCoreSupport/ChromeClientWinCE.h: Added.
+
+2010-09-23  Patrick Gansterer  <paroga at webkit.org>
+
         Unreviewed.
 
         Build fix for FrameLoaderClientWinCE.
diff --git a/WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp b/WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp
new file mode 100644
index 0000000..468d86c
--- /dev/null
+++ b/WebKit/wince/WebCoreSupport/ChromeClientWinCE.cpp
@@ -0,0 +1,393 @@
+/*
+ * Copyright (C) 2010 Patrick Gansterer <paroga at paroga.com>
+ *
+ * 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 "ChromeClientWinCE.h"
+
+#include "FileChooser.h"
+#include "Icon.h"
+#include "NotImplemented.h"
+#include "PopupMenuWin.h"
+#include "SearchPopupMenuWin.h"
+#include "WebView.h"
+#include <wtf/text/CString.h>
+
+using namespace WebCore;
+
+namespace WebKit {
+
+ChromeClientWinCE::ChromeClientWinCE(WebView* webView)
+    : m_webView(webView)
+{
+    ASSERT(m_webView);
+}
+
+void ChromeClientWinCE::chromeDestroyed()
+{
+    delete this;
+}
+
+FloatRect ChromeClientWinCE::windowRect()
+{
+    if (!m_webView)
+        return FloatRect();
+
+    RECT rect;
+    m_webView->frameRect(&rect);
+    return rect;
+}
+
+void ChromeClientWinCE::setWindowRect(const FloatRect&)
+{
+    notImplemented();
+}
+
+FloatRect ChromeClientWinCE::pageRect()
+{
+    return windowRect();
+}
+
+float ChromeClientWinCE::scaleFactor()
+{
+    return 1.0;
+}
+
+void ChromeClientWinCE::focus()
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::unfocus()
+{
+    notImplemented();
+}
+
+Page* ChromeClientWinCE::createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&)
+{
+    notImplemented();
+    return 0;
+}
+
+void ChromeClientWinCE::show()
+{
+    notImplemented();
+}
+
+bool ChromeClientWinCE::canRunModal()
+{
+    notImplemented();
+    return false;
+}
+
+void ChromeClientWinCE::runModal()
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::setToolbarsVisible(bool)
+{
+    notImplemented();
+}
+
+bool ChromeClientWinCE::toolbarsVisible()
+{
+    return false;
+}
+
+void ChromeClientWinCE::setStatusbarVisible(bool)
+{
+    notImplemented();
+}
+
+bool ChromeClientWinCE::statusbarVisible()
+{
+    notImplemented();
+    return false;
+}
+
+void ChromeClientWinCE::setScrollbarsVisible(bool)
+{
+    notImplemented();
+}
+
+bool ChromeClientWinCE::scrollbarsVisible()
+{
+    notImplemented();
+    return false;
+}
+
+void ChromeClientWinCE::setMenubarVisible(bool)
+{
+    notImplemented();
+}
+
+bool ChromeClientWinCE::menubarVisible()
+{
+    notImplemented();
+    return false;
+}
+
+void ChromeClientWinCE::setResizable(bool)
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::closeWindowSoon()
+{
+    PostMessageW(m_webView->windowHandle(), WM_CLOSE, 0, 0);
+}
+
+bool ChromeClientWinCE::canTakeFocus(FocusDirection)
+{
+    return true;
+}
+
+void ChromeClientWinCE::takeFocus(FocusDirection)
+{
+    unfocus();
+}
+
+void ChromeClientWinCE::focusedNodeChanged(Node*)
+{
+    notImplemented();
+}
+
+bool ChromeClientWinCE::canRunBeforeUnloadConfirmPanel()
+{
+    return true;
+}
+
+bool ChromeClientWinCE::runBeforeUnloadConfirmPanel(const String& message, Frame* frame)
+{
+    return runJavaScriptConfirm(frame, message);
+}
+
+void ChromeClientWinCE::addMessageToConsole(MessageSource, MessageType, MessageLevel, const String&, unsigned int, const String&)
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::runJavaScriptAlert(Frame*, const String& message)
+{
+    m_webView->runJavaScriptAlert(message);
+}
+
+bool ChromeClientWinCE::runJavaScriptConfirm(Frame*, const String& message)
+{
+    return m_webView->runJavaScriptConfirm(message);
+}
+
+bool ChromeClientWinCE::runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result)
+{
+    return m_webView->runJavaScriptPrompt(message, defaultValue, result);
+}
+
+void ChromeClientWinCE::setStatusbarText(const String&)
+{
+    notImplemented();
+}
+
+bool ChromeClientWinCE::shouldInterruptJavaScript()
+{
+    notImplemented();
+    return false;
+}
+
+bool ChromeClientWinCE::tabsToLinks() const
+{
+    return true;
+}
+
+IntRect ChromeClientWinCE::windowResizerRect() const
+{
+    notImplemented();
+    return IntRect();
+}
+
+void ChromeClientWinCE::invalidateWindow(const IntRect&, bool)
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::invalidateContentsAndWindow(const IntRect& updateRect, bool immediate)
+{
+    RECT rect = updateRect;
+    InvalidateRect(m_webView->windowHandle(), &rect, FALSE);
+
+    if (immediate)
+        UpdateWindow(m_webView->windowHandle());
+}
+
+void ChromeClientWinCE::invalidateContentsForSlowScroll(const IntRect& updateRect, bool immediate)
+{
+    invalidateContentsAndWindow(updateRect, immediate);
+}
+
+void ChromeClientWinCE::scroll(const IntSize&, const IntRect& rectToScroll, const IntRect&)
+{
+    invalidateContentsAndWindow(rectToScroll, false);
+}
+
+IntRect ChromeClientWinCE::windowToScreen(const IntRect& rect) const
+{
+    notImplemented();
+    return rect;
+}
+
+IntPoint ChromeClientWinCE::screenToWindow(const IntPoint& point) const
+{
+    notImplemented();
+    return point;
+}
+
+PlatformPageClient ChromeClientWinCE::platformPageClient() const
+{
+    notImplemented();
+    return 0;
+}
+
+void ChromeClientWinCE::contentsSizeChanged(Frame*, const IntSize&) const
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::scrollRectIntoView(const IntRect&, const ScrollView*) const
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::scrollbarsModeDidChange() const
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::mouseDidMoveOverElement(const HitTestResult&, unsigned)
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::setToolTip(const String&, TextDirection)
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::print(Frame*)
+{
+    notImplemented();
+}
+
+#if ENABLE(DATABASE)
+void ChromeClientWinCE::exceededDatabaseQuota(Frame*, const String&)
+{
+    notImplemented()
+}
+#endif
+
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+void ChromeClientWinCE::reachedMaxAppCacheSize(int64_t)
+{
+    notImplemented();
+}
+#endif
+
+#if ENABLE(TOUCH_EVENTS)
+void ChromeClientWinCE::needTouchEvents(bool)
+{
+    notImplemented();
+}
+#endif
+
+#if USE(ACCELERATED_COMPOSITING)
+void ChromeClientWinCE::attachRootGraphicsLayer(Frame*, GraphicsLayer*)
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::setNeedsOneShotDrawingSynchronization()
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::scheduleCompositingLayerSync()
+{
+    notImplemented();
+}
+#endif
+
+void ChromeClientWinCE::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChooser)
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::chooseIconForFiles(const Vector<String>& filenames, FileChooser* chooser)
+{
+    chooser->iconLoaded(Icon::createIconForFiles(filenames));
+}
+
+void ChromeClientWinCE::setCursor(const Cursor&)
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::setLastSetCursorToCurrentCursor()
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::formStateDidChange(const Node*)
+{
+    notImplemented();
+}
+
+PassOwnPtr<HTMLParserQuirks> ChromeClientWinCE::createHTMLParserQuirks()
+{
+    return 0;
+}
+
+void ChromeClientWinCE::requestGeolocationPermissionForFrame(Frame*, Geolocation*)
+{
+    notImplemented();
+}
+
+void ChromeClientWinCE::cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*)
+{
+    notImplemented();
+}
+
+bool ChromeClientWinCE::selectItemWritingDirectionIsNatural()
+{
+    return false;
+}
+
+PassRefPtr<PopupMenu> ChromeClientWinCE::createPopupMenu(PopupMenuClient* client) const
+{
+    return adoptRef(new PopupMenuWin(client));
+}
+
+PassRefPtr<SearchPopupMenu> ChromeClientWinCE::createSearchPopupMenu(PopupMenuClient* client) const
+{
+    return adoptRef(new SearchPopupMenuWin(client));
+}
+
+} // namespace WebKit
diff --git a/WebKit/wince/WebCoreSupport/ChromeClientWinCE.h b/WebKit/wince/WebCoreSupport/ChromeClientWinCE.h
new file mode 100644
index 0000000..be9f643
--- /dev/null
+++ b/WebKit/wince/WebCoreSupport/ChromeClientWinCE.h
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2010 Patrick Gansterer <paroga at paroga.com>
+ *
+ * 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 ChromeClientWinCE_h
+#define ChromeClientWinCE_h
+
+#include "ChromeClient.h"
+
+class WebView;
+
+namespace WebKit {
+
+class ChromeClientWinCE : public WebCore::ChromeClient {
+public:
+    ChromeClientWinCE(WebView* webView);
+
+    virtual void chromeDestroyed();
+
+    virtual void setWindowRect(const WebCore::FloatRect&);
+    virtual WebCore::FloatRect windowRect();
+
+    virtual WebCore::FloatRect pageRect();
+
+    virtual float scaleFactor();
+
+    virtual void focus();
+    virtual void unfocus();
+
+    virtual bool canTakeFocus(WebCore::FocusDirection);
+    virtual void takeFocus(WebCore::FocusDirection);
+
+    virtual void focusedNodeChanged(WebCore::Node*);
+
+    // The Frame pointer provides the ChromeClient with context about which
+    // Frame wants to create the new Page.  Also, the newly created window
+    // should not be shown to the user until the ChromeClient of the newly
+    // created Page has its show method called.
+    virtual WebCore::Page* createWindow(WebCore::Frame*, const WebCore::FrameLoadRequest&, const WebCore::WindowFeatures&);
+    virtual void show();
+
+    virtual bool canRunModal();
+    virtual void runModal();
+
+    virtual void setToolbarsVisible(bool);
+    virtual bool toolbarsVisible();
+
+    virtual void setStatusbarVisible(bool);
+    virtual bool statusbarVisible();
+
+    virtual void setScrollbarsVisible(bool);
+    virtual bool scrollbarsVisible();
+
+    virtual void setMenubarVisible(bool);
+    virtual bool menubarVisible();
+
+    virtual void setResizable(bool);
+
+    virtual void addMessageToConsole(WebCore::MessageSource, WebCore::MessageType, WebCore::MessageLevel, const WTF::String& message, unsigned int lineNumber, const WTF::String& sourceID);
+
+    virtual bool canRunBeforeUnloadConfirmPanel();
+    virtual bool runBeforeUnloadConfirmPanel(const WTF::String& message, WebCore::Frame* frame);
+
+    virtual void closeWindowSoon();
+
+    virtual void runJavaScriptAlert(WebCore::Frame*, const WTF::String&);
+    virtual bool runJavaScriptConfirm(WebCore::Frame*, const WTF::String&);
+    virtual bool runJavaScriptPrompt(WebCore::Frame*, const WTF::String& message, const WTF::String& defaultValue, WTF::String& result);
+    virtual void setStatusbarText(const WTF::String&);
+    virtual bool shouldInterruptJavaScript();
+    virtual bool tabsToLinks() const;
+
+    virtual WebCore::IntRect windowResizerRect() const;
+
+    // Methods used by HostWindow.
+    virtual void invalidateWindow(const WebCore::IntRect&, bool);
+    virtual void invalidateContentsAndWindow(const WebCore::IntRect&, bool);
+    virtual void invalidateContentsForSlowScroll(const WebCore::IntRect&, bool);
+    virtual void scroll(const WebCore::IntSize&, const WebCore::IntRect&, const WebCore::IntRect&);
+    virtual WebCore::IntPoint screenToWindow(const WebCore::IntPoint&) const;
+    virtual WebCore::IntRect windowToScreen(const WebCore::IntRect&) const;
+    virtual PlatformPageClient platformPageClient() const;
+    virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&) const;
+    virtual void scrollRectIntoView(const WebCore::IntRect&, const WebCore::ScrollView*) const; // Currently only Mac has a non empty implementation.
+    virtual void scrollbarsModeDidChange() const;
+    virtual void setCursor(const WebCore::Cursor&);
+    // End methods used by HostWindow.
+
+    virtual void mouseDidMoveOverElement(const WebCore::HitTestResult&, unsigned modifierFlags);
+
+    virtual void setToolTip(const WTF::String&, WebCore::TextDirection);
+
+    virtual void print(WebCore::Frame*);
+
+#if ENABLE(DATABASE)
+    virtual void exceededDatabaseQuota(WebCore::Frame*, const WTF::String& databaseName) = 0;
+#endif
+
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+    // Callback invoked when the application cache fails to save a cache object
+    // because storing it would grow the database file past its defined maximum
+    // size or past the amount of free space on the device.
+    // The chrome client would need to take some action such as evicting some
+    // old caches.
+    virtual void reachedMaxAppCacheSize(int64_t spaceNeeded) = 0;
+#endif
+
+#if ENABLE(NOTIFICATIONS)
+    virtual WebCore::NotificationPresenter* notificationPresenter() const = 0;
+#endif
+
+    // This can be either a synchronous or asynchronous call. The ChromeClient can display UI asking the user for permission
+    // to use Geolocation.
+    virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*);
+    virtual void cancelGeolocationPermissionRequestForFrame(WebCore::Frame*, WebCore::Geolocation*);
+
+    virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
+    // Asynchronous request to load an icon for specified filenames.
+    virtual void chooseIconForFiles(const Vector<WTF::String>&, WebCore::FileChooser*);
+
+    // Notification that the given form element has changed. This function
+    // will be called frequently, so handling should be very fast.
+    virtual void formStateDidChange(const WebCore::Node*);
+
+    virtual PassOwnPtr<WebCore::HTMLParserQuirks> createHTMLParserQuirks();
+
+#if USE(ACCELERATED_COMPOSITING)
+    // Pass 0 as the GraphicsLayer to detatch the root layer.
+    virtual void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*);
+    // Sets a flag to specify that the next time content is drawn to the window,
+    // the changes appear on the screen in synchrony with updates to GraphicsLayers.
+    virtual void setNeedsOneShotDrawingSynchronization();
+    // Sets a flag to specify that the view needs to be updated, so we need
+    // to do an eager layout before the drawing.
+    virtual void scheduleCompositingLayerSync();
+#endif
+
+    virtual void setLastSetCursorToCurrentCursor();
+
+#if ENABLE(TOUCH_EVENTS)
+    virtual void needTouchEvents(bool);
+#endif
+
+    virtual bool selectItemWritingDirectionIsNatural();
+    virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const;
+    virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const;
+
+private:
+    WebView* m_webView;
+};
+
+} // namespace WebKit
+
+#endif // ChromeClientWinCE_h

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list