[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.21-584-g1e41756

tkent at chromium.org tkent at chromium.org
Fri Feb 26 22:23:34 UTC 2010


The following commit has been merged in the webkit-1.1 branch:
commit 6643a434fd5fa955e06f9fc1daf3c36625d2e898
Author: tkent at chromium.org <tkent at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Feb 18 04:36:36 2010 +0000

    2010-02-17  Kent Tamura  <tkent at chromium.org>
    
            Reviewed by Eric Seidel.
    
            Introduces new Icon loading interface in order to support
            asynchronous loading.
            https://bugs.webkit.org/show_bug.cgi?id=32054
    
            It's hard for Chromium port to load an icon inside
            Icon::createIconForFiles() because of sanbox and multi-process
            architecture. So this change adds a method to request an icon to
            Chrome class, and makes FileChooser receives an Icon instance
            asynchronously.  Synchronous loading also works with the new interface.
    
            Because all ports don't have implementations of Chrome::iconForFiles()
            yet, FileChooser tries to load an Icon synchronously with
            Icon::createIconForFiles(), then tries to load an Icon asynchronously
            with Chrome::iconForFiles() if Icon::createIconForFiles() returns 0.
    
            The existing Icon::createIconForFiles() implementations should be
            moved to Chrome::iconForFiles(). We're going to remove
            Icon::createIconForFiles().
    
            * loader/EmptyClients.h:
            (WebCore::EmptyChromeClient::iconForFiles): Add an empty implementation.
            * page/Chrome.cpp:
            (WebCore::Chrome::iconForFiles): Delegate to ChromeClient::iconForFiles().
            * page/Chrome.h:
            * page/ChromeClient.h:
            (WebCore::ChromeClient::iconForFiles): Add a declaration as a pure virtual method.
            * platform/FileChooser.cpp:
            (WebCore::FileChooser::FileChooser): Use loadIcon().
            (WebCore::FileChooser::chooseFiles): ditto.
            (WebCore::FileChooser::loadIcon): Added.
            (WebCore::FileChooser::iconLoaded): Added.
            * platform/FileChooser.h: Add two methods to FileChooserClient; repaint() and iconForFiles().
            * platform/graphics/Icon.h: Add a FIXME comment.
            * platform/graphics/gtk/IconGtk.cpp: ditto.
            * platform/graphics/mac/IconMac.mm: ditto.
            * platform/graphics/qt/IconQt.cpp: ditto.
            * platform/graphics/win/IconWin.cpp: ditto.
            * rendering/RenderFileUploadControl.cpp:
            (WebCore::RenderFileUploadControl::iconForFiles): Delegate to Chrome::iconForFiles().
            (WebCore::RenderFileUploadControl::click): Use chrome().
            (WebCore::RenderFileUploadControl::chrome):
            * rendering/RenderFileUploadControl.h:
            (WebCore::RenderFileUploadControl::repaint):
    
    2010-02-17  Kent Tamura  <tkent at chromium.org>
    
            Reviewed by Eric Seidel.
    
            Introduces new Icon loading interface in order to support
            asynchronous loading.
            https://bugs.webkit.org/show_bug.cgi?id=32054
    
            Add an empty implementation of ChromeClient::iconForFiles().
    
            * src/ChromeClientImpl.cpp:
            (WebKit::ChromeClientImpl::iconForFiles):
            * src/ChromeClientImpl.h:
    
    2010-02-17  Kent Tamura  <tkent at chromium.org>
    
            Reviewed by Eric Seidel.
    
            Introduces new Icon loading interface in order to support
            asynchronous loading.
            https://bugs.webkit.org/show_bug.cgi?id=32054
    
            Add an empty implementation of ChromeClient::iconForFiles().
    
            * WebCoreSupport/ChromeClientGtk.cpp:
            (WebKit::ChromeClient::iconForFiles):
            * WebCoreSupport/ChromeClientGtk.h:
    
    2010-02-17  Kent Tamura  <tkent at chromium.org>
    
            Reviewed by Eric Seidel.
    
            Introduces new Icon loading interface in order to support
            asynchronous loading.
            https://bugs.webkit.org/show_bug.cgi?id=32054
    
            Add an empty implementation of ChromeClient::iconForFiles().
    
            * WebCoreSupport/ChromeClientHaiku.cpp:
            (WebCore::ChromeClientHaiku::iconForFiles):
            * WebCoreSupport/ChromeClientHaiku.h:
    
    2010-02-17  Kent Tamura  <tkent at chromium.org>
    
            Reviewed by Eric Seidel.
    
            Introduces new Icon loading interface in order to support
            asynchronous loading.
            https://bugs.webkit.org/show_bug.cgi?id=32054
    
            Add an empty implementation of ChromeClient::iconForFiles().
    
            * WebCoreSupport/WebChromeClient.h:
            * WebCoreSupport/WebChromeClient.mm:
            (WebChromeClient::iconForFiles):
    
    2010-02-17  Kent Tamura  <tkent at chromium.org>
    
            Reviewed by Eric Seidel.
    
            Introduces new Icon loading interface in order to support
            asynchronous loading.
            https://bugs.webkit.org/show_bug.cgi?id=32054
    
            Add an empty implementation of ChromeClient::iconForFiles().
    
            * WebCoreSupport/ChromeClientQt.cpp:
            (WebCore::ChromeClientQt::iconForFiles):
            * WebCoreSupport/ChromeClientQt.h:
    
    2010-02-17  Kent Tamura  <tkent at chromium.org>
    
            Reviewed by Eric Seidel.
    
            Introduces new Icon loading interface in order to support
            asynchronous loading.
            https://bugs.webkit.org/show_bug.cgi?id=32054
    
            Add an empty implementation of ChromeClient::iconForFiles().
    
            * WebCoreSupport/WebChromeClient.cpp:
            (WebChromeClient::iconForFiles):
            * WebCoreSupport/WebChromeClient.h:
    
    2010-02-17  Kent Tamura  <tkent at chromium.org>
    
            Reviewed by Eric Seidel.
    
            Introduces new Icon loading interface in order to support
            asynchronous loading.
            https://bugs.webkit.org/show_bug.cgi?id=32054
    
            Add an empty implementation of ChromeClient::iconForFiles().
    
            * WebKitSupport/ChromeClientWx.cpp:
            (WebCore::ChromeClientWx::iconForFiles):
            * WebKitSupport/ChromeClientWx.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54923 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 648b550..8196d8b 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,51 @@
+2010-02-17  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Introduces new Icon loading interface in order to support
+        asynchronous loading.
+        https://bugs.webkit.org/show_bug.cgi?id=32054
+
+        It's hard for Chromium port to load an icon inside
+        Icon::createIconForFiles() because of sanbox and multi-process
+        architecture. So this change adds a method to request an icon to
+        Chrome class, and makes FileChooser receives an Icon instance
+        asynchronously.  Synchronous loading also works with the new interface.
+
+        Because all ports don't have implementations of Chrome::iconForFiles()
+        yet, FileChooser tries to load an Icon synchronously with
+        Icon::createIconForFiles(), then tries to load an Icon asynchronously
+        with Chrome::iconForFiles() if Icon::createIconForFiles() returns 0.
+
+        The existing Icon::createIconForFiles() implementations should be
+        moved to Chrome::iconForFiles(). We're going to remove
+        Icon::createIconForFiles().
+
+        * loader/EmptyClients.h:
+        (WebCore::EmptyChromeClient::iconForFiles): Add an empty implementation.
+        * page/Chrome.cpp:
+        (WebCore::Chrome::iconForFiles): Delegate to ChromeClient::iconForFiles().
+        * page/Chrome.h:
+        * page/ChromeClient.h:
+        (WebCore::ChromeClient::iconForFiles): Add a declaration as a pure virtual method.
+        * platform/FileChooser.cpp:
+        (WebCore::FileChooser::FileChooser): Use loadIcon().
+        (WebCore::FileChooser::chooseFiles): ditto.
+        (WebCore::FileChooser::loadIcon): Added.
+        (WebCore::FileChooser::iconLoaded): Added.
+        * platform/FileChooser.h: Add two methods to FileChooserClient; repaint() and iconForFiles().
+        * platform/graphics/Icon.h: Add a FIXME comment.
+        * platform/graphics/gtk/IconGtk.cpp: ditto.
+        * platform/graphics/mac/IconMac.mm: ditto.
+        * platform/graphics/qt/IconQt.cpp: ditto.
+        * platform/graphics/win/IconWin.cpp: ditto.
+        * rendering/RenderFileUploadControl.cpp:
+        (WebCore::RenderFileUploadControl::iconForFiles): Delegate to Chrome::iconForFiles().
+        (WebCore::RenderFileUploadControl::click): Use chrome().
+        (WebCore::RenderFileUploadControl::chrome):
+        * rendering/RenderFileUploadControl.h:
+        (WebCore::RenderFileUploadControl::repaint):
+
 2010-02-17  Mark Rowe  <mrowe at apple.com>
 
         Reviewed by Darin Adler.
diff --git a/WebCore/loader/EmptyClients.h b/WebCore/loader/EmptyClients.h
index c0b06d5..268b711 100644
--- a/WebCore/loader/EmptyClients.h
+++ b/WebCore/loader/EmptyClients.h
@@ -146,6 +146,7 @@ public:
 #endif
 
     virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) { }
+    virtual void iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>) { }
 
     virtual void formStateDidChange(const Node*) { }
 
diff --git a/WebCore/page/Chrome.cpp b/WebCore/page/Chrome.cpp
index d79b417..974a39f 100644
--- a/WebCore/page/Chrome.cpp
+++ b/WebCore/page/Chrome.cpp
@@ -415,6 +415,11 @@ void Chrome::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileChooser)
     m_client->runOpenPanel(frame, fileChooser);
 }
 
+void Chrome::iconForFiles(const Vector<String>& filenames, PassRefPtr<FileChooser> fileChooser)
+{
+    m_client->iconForFiles(filenames, fileChooser);
+}
+
 bool Chrome::setCursor(PlatformCursorHandle cursor)
 {
     return m_client->setCursor(cursor);
diff --git a/WebCore/page/Chrome.h b/WebCore/page/Chrome.h
index 542526b..b37e7eb 100644
--- a/WebCore/page/Chrome.h
+++ b/WebCore/page/Chrome.h
@@ -131,6 +131,7 @@ namespace WebCore {
         void requestGeolocationPermissionForFrame(Frame*, Geolocation*);
 
         void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
+        void iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>);
 
         bool setCursor(PlatformCursorHandle);
 
diff --git a/WebCore/page/ChromeClient.h b/WebCore/page/ChromeClient.h
index db52c9d..1421631 100644
--- a/WebCore/page/ChromeClient.h
+++ b/WebCore/page/ChromeClient.h
@@ -185,6 +185,9 @@ namespace WebCore {
         virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*) = 0;
             
         virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) = 0;
+        // Asynchronous request to load an icon for specified filenames.
+        // This is called only if Icon::createIconForFiles() returns 0.
+        virtual void iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>) = 0;
 
         virtual bool setCursor(PlatformCursorHandle) = 0;
 
diff --git a/WebCore/platform/FileChooser.cpp b/WebCore/platform/FileChooser.cpp
index 9fad392..a2d4770 100644
--- a/WebCore/platform/FileChooser.cpp
+++ b/WebCore/platform/FileChooser.cpp
@@ -39,9 +39,9 @@ FileChooserClient::~FileChooserClient()
 
 inline FileChooser::FileChooser(FileChooserClient* client, const Vector<String>& initialFilenames)
     : m_client(client)
-    , m_icon(Icon::createIconForFiles(initialFilenames))
 {
     m_filenames = initialFilenames;
+    loadIcon();
 }
 
 PassRefPtr<FileChooser> FileChooser::create(FileChooserClient* client, const Vector<String>& initialFilenames)
@@ -71,9 +71,24 @@ void FileChooser::chooseFiles(const Vector<String>& filenames)
     if (m_filenames == filenames)
         return;
     m_filenames = filenames;
-    m_icon = Icon::createIconForFiles(filenames);
+    loadIcon();
     if (m_client)
         m_client->valueChanged();
 }
 
+void FileChooser::loadIcon()
+{
+    m_icon = Icon::createIconForFiles(m_filenames);
+    // If synchronous icon loading failed, try asynchronous loading.
+    if (!m_icon && m_filenames.size() && m_client)
+        m_client->iconForFiles(m_filenames);
+}
+
+void FileChooser::iconLoaded(PassRefPtr<Icon> icon)
+{
+    m_icon = icon;
+    if (m_icon && m_client)
+        m_client->repaint();
+}
+
 }
diff --git a/WebCore/platform/FileChooser.h b/WebCore/platform/FileChooser.h
index 0764a6a..e7feb3e 100644
--- a/WebCore/platform/FileChooser.h
+++ b/WebCore/platform/FileChooser.h
@@ -41,8 +41,10 @@ class Icon;
 class FileChooserClient {
 public:
     virtual void valueChanged() = 0;
+    virtual void repaint() = 0;
     virtual bool allowsMultipleFiles() = 0;
     virtual String acceptTypes() = 0;
+    virtual void iconForFiles(const Vector<String>&) = 0;
     virtual ~FileChooserClient();
 };
 
@@ -63,13 +65,16 @@ public:
 
     void chooseFile(const String& path);
     void chooseFiles(const Vector<String>& paths);
-    
+    // Called when FileChooserClient finishes to load an icon requested by iconForFiles().
+    void iconLoaded(PassRefPtr<Icon>);
+
     bool allowsMultipleFiles() const { return m_client ? m_client->allowsMultipleFiles() : false; }
     // Acceptable MIME types.  It's an 'accept' attribute value of the corresponding INPUT element.
     String acceptTypes() const { return m_client ? m_client->acceptTypes() : String(); }
 
 private:
     FileChooser(FileChooserClient*, const Vector<String>& initialFilenames);
+    void loadIcon();
 
     FileChooserClient* m_client;
     Vector<String> m_filenames;
diff --git a/WebCore/platform/graphics/Icon.h b/WebCore/platform/graphics/Icon.h
index d7d694a..e9f2dc7 100644
--- a/WebCore/platform/graphics/Icon.h
+++ b/WebCore/platform/graphics/Icon.h
@@ -51,6 +51,8 @@ class String;
     
 class Icon : public RefCounted<Icon> {
 public:
+    // Deprecated.  This function will be removed.
+    // FIXME: Remove it when all implementations are moved to ChromeClient::iconForFiles().
     static PassRefPtr<Icon> createIconForFiles(const Vector<String>& filenames);
 
     ~Icon();
diff --git a/WebCore/platform/graphics/gtk/IconGtk.cpp b/WebCore/platform/graphics/gtk/IconGtk.cpp
index 3563a59..71b897e 100644
--- a/WebCore/platform/graphics/gtk/IconGtk.cpp
+++ b/WebCore/platform/graphics/gtk/IconGtk.cpp
@@ -87,6 +87,7 @@ static String lookupIconName(String MIMEType)
     return GTK_STOCK_FILE;
 }
 
+// FIXME: Move the code to ChromeClient::iconForFiles().
 PassRefPtr<Icon> Icon::createIconForFiles(const Vector<String>& filenames)
 {
     if (filenames.isEmpty())
diff --git a/WebCore/platform/graphics/mac/IconMac.mm b/WebCore/platform/graphics/mac/IconMac.mm
index aee7234..bc8c312 100644
--- a/WebCore/platform/graphics/mac/IconMac.mm
+++ b/WebCore/platform/graphics/mac/IconMac.mm
@@ -39,6 +39,7 @@ Icon::~Icon()
 {
 }
 
+// FIXME: Move the code to ChromeClient::iconForFiles().
 PassRefPtr<Icon> Icon::createIconForFiles(const Vector<String>& filenames)
 {
     if (filenames.isEmpty())
diff --git a/WebCore/platform/graphics/qt/IconQt.cpp b/WebCore/platform/graphics/qt/IconQt.cpp
index a9870fc..eb09eda 100644
--- a/WebCore/platform/graphics/qt/IconQt.cpp
+++ b/WebCore/platform/graphics/qt/IconQt.cpp
@@ -40,6 +40,7 @@ Icon::~Icon()
 {
 }
 
+// FIXME: Move the code to ChromeClient::iconForFiles().
 PassRefPtr<Icon> Icon::createIconForFiles(const Vector<String>& filenames)
 {
     if (filenames.isEmpty())
diff --git a/WebCore/platform/graphics/win/IconWin.cpp b/WebCore/platform/graphics/win/IconWin.cpp
index 56b46de..cc9343a 100644
--- a/WebCore/platform/graphics/win/IconWin.cpp
+++ b/WebCore/platform/graphics/win/IconWin.cpp
@@ -47,6 +47,7 @@ Icon::~Icon()
     DestroyIcon(m_hIcon);
 }
 
+// FIXME: Move the code to ChromeClient::iconForFiles().
 PassRefPtr<Icon> Icon::createIconForFiles(const Vector<String>& filenames)
 {
     if (filenames.isEmpty())
diff --git a/WebCore/rendering/RenderFileUploadControl.cpp b/WebCore/rendering/RenderFileUploadControl.cpp
index 59cbacf..a31442a 100644
--- a/WebCore/rendering/RenderFileUploadControl.cpp
+++ b/WebCore/rendering/RenderFileUploadControl.cpp
@@ -114,15 +114,27 @@ String RenderFileUploadControl::acceptTypes()
     return static_cast<HTMLInputElement*>(node())->accept();
 }
 
+void RenderFileUploadControl::iconForFiles(const Vector<String>& filenames)
+{
+    if (Chrome* chromePointer = chrome())
+        chromePointer->iconForFiles(filenames, m_fileChooser);
+}
+
 void RenderFileUploadControl::click()
 {
+    if (Chrome* chromePointer = chrome())
+        chromePointer->runOpenPanel(node()->document()->frame(), m_fileChooser);
+}
+
+Chrome* RenderFileUploadControl::chrome() const
+{
     Frame* frame = node()->document()->frame();
     if (!frame)
-        return;
+        return 0;
     Page* page = frame->page();
     if (!page)
-        return;
-    page->chrome()->runOpenPanel(frame, m_fileChooser);
+        return 0;
+    return page->chrome();
 }
 
 void RenderFileUploadControl::updateFromElement()
diff --git a/WebCore/rendering/RenderFileUploadControl.h b/WebCore/rendering/RenderFileUploadControl.h
index dcdce4d..454041a 100644
--- a/WebCore/rendering/RenderFileUploadControl.h
+++ b/WebCore/rendering/RenderFileUploadControl.h
@@ -26,6 +26,7 @@
 
 namespace WebCore {
 
+class Chrome;
 class HTMLInputElement;
     
 // Each RenderFileUploadControl contains a RenderButton (for opening the file chooser), and
@@ -41,16 +42,11 @@ public:
 
     void click();
 
-    void valueChanged();
-    
     void receiveDroppedFiles(const Vector<String>&);
 
     String buttonValue();
     String fileTextValue() const;
     
-    bool allowsMultipleFiles();
-    String acceptTypes();
-
 private:
     virtual const char* renderName() const { return "RenderFileUploadControl"; }
 
@@ -60,6 +56,14 @@ private:
 
     virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
 
+    // FileChooserClient methods.
+    void valueChanged();
+    void repaint() { RenderBlock::repaint(); }
+    bool allowsMultipleFiles();
+    String acceptTypes();
+    void iconForFiles(const Vector<String>&);
+
+    Chrome* chrome() const;
     int maxFilenameWidth() const;
     PassRefPtr<RenderStyle> createButtonStyle(const RenderStyle* parentStyle) const;
 
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 6954369..586c492 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-17  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Introduces new Icon loading interface in order to support
+        asynchronous loading.
+        https://bugs.webkit.org/show_bug.cgi?id=32054
+
+        Add an empty implementation of ChromeClient::iconForFiles().
+
+        * src/ChromeClientImpl.cpp:
+        (WebKit::ChromeClientImpl::iconForFiles):
+        * src/ChromeClientImpl.h:
+
 2010-02-17  Kenneth Russell  <kbr at google.com>
 
         Reviewed by Oliver Hunt.
diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp
index 5d58934..6e5bfc2 100644
--- a/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -580,6 +580,11 @@ void ChromeClientImpl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileCh
     chooserCompletion->didChooseFile(WebVector<WebString>());
 }
 
+void ChromeClientImpl::iconForFiles(const Vector<WebCore::String>&, PassRefPtr<WebCore::FileChooser>)
+{
+    notImplemented();
+}
+
 void ChromeClientImpl::popupOpened(PopupContainer* popupContainer,
                                    const IntRect& bounds,
                                    bool activatable,
diff --git a/WebKit/chromium/src/ChromeClientImpl.h b/WebKit/chromium/src/ChromeClientImpl.h
index ad57203..3a4035b 100644
--- a/WebKit/chromium/src/ChromeClientImpl.h
+++ b/WebKit/chromium/src/ChromeClientImpl.h
@@ -123,6 +123,7 @@ public:
 #endif
     virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*);
     virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
+    virtual void iconForFiles(const Vector<WebCore::String>&, PassRefPtr<WebCore::FileChooser>);
     virtual bool setCursor(WebCore::PlatformCursorHandle) { return false; }
     virtual void formStateDidChange(const WebCore::Node*);
     virtual PassOwnPtr<WebCore::HTMLParserQuirks> createHTMLParserQuirks() { return 0; }
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index 417a10a..842587d 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-17  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Introduces new Icon loading interface in order to support
+        asynchronous loading.
+        https://bugs.webkit.org/show_bug.cgi?id=32054
+
+        Add an empty implementation of ChromeClient::iconForFiles().
+
+        * WebCoreSupport/ChromeClientGtk.cpp:
+        (WebKit::ChromeClient::iconForFiles):
+        * WebCoreSupport/ChromeClientGtk.h:
+
 2010-02-17  Xan Lopez  <xlopez at igalia.com>
 
         Reviewed by Gustavo Noronha.
diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
index feffadb..74f5e07 100644
--- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
@@ -563,6 +563,12 @@ void ChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChooser)
     gtk_widget_destroy(dialog);
 }
 
+void ChromeClient::iconForFiles(const Vector<WebCore::String>&, PassRefPtr<WebCore::FileChooser>)
+{
+    // FIXME: Move the code in Icon::createIconForFiles() here.
+    notImplemented();
+}
+
 bool ChromeClient::setCursor(PlatformCursorHandle)
 {
     notImplemented();
diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
index beb7a08..7e407d3 100644
--- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
@@ -107,6 +107,7 @@ namespace WebKit {
         virtual void reachedMaxAppCacheSize(int64_t spaceNeeded);
 #endif
         virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
+        virtual void iconForFiles(const Vector<WebCore::String>&, PassRefPtr<WebCore::FileChooser>);
 
         virtual void formStateDidChange(const WebCore::Node*) { }
 
diff --git a/WebKit/haiku/ChangeLog b/WebKit/haiku/ChangeLog
index 2aa4ad7..03fa61b 100644
--- a/WebKit/haiku/ChangeLog
+++ b/WebKit/haiku/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-17  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Introduces new Icon loading interface in order to support
+        asynchronous loading.
+        https://bugs.webkit.org/show_bug.cgi?id=32054
+
+        Add an empty implementation of ChromeClient::iconForFiles().
+
+        * WebCoreSupport/ChromeClientHaiku.cpp:
+        (WebCore::ChromeClientHaiku::iconForFiles):
+        * WebCoreSupport/ChromeClientHaiku.h:
+
 2009-12-06  Maxime Simon  <simon.maxime at gmail.com>
 
         Reviewed by Adam Barth.
diff --git a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp
index 24f0b52..a7f1145 100644
--- a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp
+++ b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp
@@ -346,6 +346,11 @@ void ChromeClientHaiku::runOpenPanel(Frame*, PassRefPtr<FileChooser>)
     notImplemented();
 }
 
+void ChromeClientHaiku::iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>)
+{
+    notImplemented();
+}
+
 bool ChromeClientHaiku::setCursor(PlatformCursorHandle)
 {
     notImplemented();
diff --git a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h
index ecd66de..3b0841b 100644
--- a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h
+++ b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h
@@ -134,6 +134,7 @@ namespace WebCore {
         void requestGeolocationPermissionForFrame(Frame*, Geolocation*);
 
         void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
+        void iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>);
 
         bool setCursor(PlatformCursorHandle);
 
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index e77f5c2..1b4ba65 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-17  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Introduces new Icon loading interface in order to support
+        asynchronous loading.
+        https://bugs.webkit.org/show_bug.cgi?id=32054
+
+        Add an empty implementation of ChromeClient::iconForFiles().
+
+        * WebCoreSupport/WebChromeClient.h:
+        * WebCoreSupport/WebChromeClient.mm:
+        (WebChromeClient::iconForFiles):
+
 2010-02-17  Timothy Hatcher  <timothy at apple.com>
 
         Add a way for WebView and its dependancies to be selectively included
diff --git a/WebKit/mac/WebCoreSupport/WebChromeClient.h b/WebKit/mac/WebCoreSupport/WebChromeClient.h
index 66381a4..25bacdf 100644
--- a/WebKit/mac/WebCoreSupport/WebChromeClient.h
+++ b/WebKit/mac/WebCoreSupport/WebChromeClient.h
@@ -120,6 +120,7 @@ public:
 #endif
 
     virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
+    virtual void iconForFiles(const Vector<WebCore::String>&, PassRefPtr<WebCore::FileChooser>);
 
     virtual bool setCursor(WebCore::PlatformCursorHandle) { return false; }
 
diff --git a/WebKit/mac/WebCoreSupport/WebChromeClient.mm b/WebKit/mac/WebCoreSupport/WebChromeClient.mm
index c4e9671..b2240d9 100644
--- a/WebKit/mac/WebCoreSupport/WebChromeClient.mm
+++ b/WebKit/mac/WebCoreSupport/WebChromeClient.mm
@@ -631,6 +631,11 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> chooser)
     END_BLOCK_OBJC_EXCEPTIONS;
 }
 
+void WebChromeClient::iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>)
+{
+    // FIXME: Move the code of Icon::createIconForFiles() here.
+}
+
 KeyboardUIMode WebChromeClient::keyboardUIMode()
 {
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index b3ece42..cee97f9 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-17  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Introduces new Icon loading interface in order to support
+        asynchronous loading.
+        https://bugs.webkit.org/show_bug.cgi?id=32054
+
+        Add an empty implementation of ChromeClient::iconForFiles().
+
+        * WebCoreSupport/ChromeClientQt.cpp:
+        (WebCore::ChromeClientQt::iconForFiles):
+        * WebCoreSupport/ChromeClientQt.h:
+
 2010-02-17  Diego Gonzalez  <diego.gonzalez at openbossa.org>
 
         Reviewed by Ariya Hidayat.
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
index 893a1b7..ecbabe4 100644
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
@@ -463,6 +463,12 @@ void ChromeClientQt::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> prpFileC
     }
 }
 
+void ChromeClientQt::iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>)
+{
+    // FIXME: Move the code of Icon::createIconForFiles() here.
+    notImplemented();
+}
+
 bool ChromeClientQt::setCursor(PlatformCursorHandle)
 {
     notImplemented();
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/WebKit/qt/WebCoreSupport/ChromeClientQt.h
index 6b3017d..3d5cbe9 100644
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.h
+++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.h
@@ -138,6 +138,7 @@ namespace WebCore {
 #endif
 
         virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
+        virtual void iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>);
 
         virtual void formStateDidChange(const Node*) { }
 
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index 82d8863..f2133aa 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-17  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Introduces new Icon loading interface in order to support
+        asynchronous loading.
+        https://bugs.webkit.org/show_bug.cgi?id=32054
+
+        Add an empty implementation of ChromeClient::iconForFiles().
+
+        * WebCoreSupport/WebChromeClient.cpp:
+        (WebChromeClient::iconForFiles):
+        * WebCoreSupport/WebChromeClient.h:
+
 2010-02-17  Shinichiro Hamaji  <hamaji at chromium.org>
 
         Unreviewed. Touch WebKit.idl to fix the build.
diff --git a/WebKit/win/WebCoreSupport/WebChromeClient.cpp b/WebKit/win/WebCoreSupport/WebChromeClient.cpp
index a1bb3a8..45f7662 100644
--- a/WebKit/win/WebCoreSupport/WebChromeClient.cpp
+++ b/WebKit/win/WebCoreSupport/WebChromeClient.cpp
@@ -734,6 +734,12 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose
     // FIXME: Show some sort of error if too many files are selected and the buffer is too small.  For now, this will fail silently.
 }
 
+void WebChromeClient::iconForFiles(const Vector<WebCore::String>&, PassRefPtr<WebCore::FileChooser>)
+{
+    // FIXME: Move the code of Icon::createIconForFiles() here.
+    notImplemented();
+}
+
 bool WebChromeClient::setCursor(PlatformCursorHandle cursor)
 {
     if (!cursor)
diff --git a/WebKit/win/WebCoreSupport/WebChromeClient.h b/WebKit/win/WebCoreSupport/WebChromeClient.h
index 5198e7c..0958cf7 100644
--- a/WebKit/win/WebCoreSupport/WebChromeClient.h
+++ b/WebKit/win/WebCoreSupport/WebChromeClient.h
@@ -123,6 +123,7 @@ public:
     virtual bool paintCustomScrollCorner(WebCore::GraphicsContext*, const WebCore::FloatRect&);
 
     virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
+    virtual void iconForFiles(const Vector<WebCore::String>&, PassRefPtr<WebCore::FileChooser>);
 
     virtual bool setCursor(WebCore::PlatformCursorHandle cursor);
 
diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog
index 05efbd2..158d620 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,3 +1,17 @@
+2010-02-17  Kent Tamura  <tkent at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Introduces new Icon loading interface in order to support
+        asynchronous loading.
+        https://bugs.webkit.org/show_bug.cgi?id=32054
+
+        Add an empty implementation of ChromeClient::iconForFiles().
+
+        * WebKitSupport/ChromeClientWx.cpp:
+        (WebCore::ChromeClientWx::iconForFiles):
+        * WebKitSupport/ChromeClientWx.h:
+
 2010-02-04  Kevin Ollivier  <kevino at theolliviers.com>
 
         Build fix after changes in r54345.
diff --git a/WebKit/wx/WebKitSupport/ChromeClientWx.cpp b/WebKit/wx/WebKitSupport/ChromeClientWx.cpp
index 4d524bc..ac25daf 100644
--- a/WebKit/wx/WebKitSupport/ChromeClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/ChromeClientWx.cpp
@@ -431,6 +431,11 @@ void ChromeClientWx::runOpenPanel(Frame*, PassRefPtr<FileChooser>)
     notImplemented();
 }
 
+void ChromeClientWx::iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>)
+{
+    notImplemented();
+}
+
 bool ChromeClientWx::setCursor(PlatformCursorHandle)
 {
     notImplemented();
diff --git a/WebKit/wx/WebKitSupport/ChromeClientWx.h b/WebKit/wx/WebKitSupport/ChromeClientWx.h
index bd4f1ec..71ae48d 100644
--- a/WebKit/wx/WebKitSupport/ChromeClientWx.h
+++ b/WebKit/wx/WebKitSupport/ChromeClientWx.h
@@ -125,6 +125,7 @@ public:
 #endif
 
     virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
+    virtual void iconForFiles(const Vector<String>&, PassRefPtr<FileChooser>);
 
     virtual void formStateDidChange(const Node*) { }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list