Title: [150165] trunk/Source/WebCore
Revision
150165
Author
[email protected]
Date
2013-05-15 18:17:58 -0700 (Wed, 15 May 2013)

Log Message

Stop using the factory pattern in FileIconLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=116197

Reviewed by Andreas Kling.

Move the FileIconLoader member out of FileIconLoaderClient and into FileInputType and remove the factory gunk.

* html/FileInputType.cpp:
(WebCore::FileInputType::~FileInputType):
(WebCore::FileInputType::requestIcon):
* html/FileInputType.h:
(FileInputType):
* platform/FileIconLoader.cpp:
(WebCore::FileIconLoader::invalidate):
* platform/FileIconLoader.h:
(WebCore::FileIconLoaderClient::~FileIconLoaderClient):
(FileIconLoader):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (150164 => 150165)


--- trunk/Source/WebCore/ChangeLog	2013-05-16 01:06:37 UTC (rev 150164)
+++ trunk/Source/WebCore/ChangeLog	2013-05-16 01:17:58 UTC (rev 150165)
@@ -1,5 +1,25 @@
 2013-05-15  Anders Carlsson  <[email protected]>
 
+        Stop using the factory pattern in FileIconLoaderClient
+        https://bugs.webkit.org/show_bug.cgi?id=116197
+
+        Reviewed by Andreas Kling.
+
+        Move the FileIconLoader member out of FileIconLoaderClient and into FileInputType and remove the factory gunk.
+
+        * html/FileInputType.cpp:
+        (WebCore::FileInputType::~FileInputType):
+        (WebCore::FileInputType::requestIcon):
+        * html/FileInputType.h:
+        (FileInputType):
+        * platform/FileIconLoader.cpp:
+        (WebCore::FileIconLoader::invalidate):
+        * platform/FileIconLoader.h:
+        (WebCore::FileIconLoaderClient::~FileIconLoaderClient):
+        (FileIconLoader):
+
+2013-05-15  Anders Carlsson  <[email protected]>
+
         Fix FileChooserClient design
         https://bugs.webkit.org/show_bug.cgi?id=116195
 

Modified: trunk/Source/WebCore/html/FileInputType.cpp (150164 => 150165)


--- trunk/Source/WebCore/html/FileInputType.cpp	2013-05-16 01:06:37 UTC (rev 150164)
+++ trunk/Source/WebCore/html/FileInputType.cpp	2013-05-16 01:17:58 UTC (rev 150165)
@@ -101,6 +101,9 @@
 {
     if (m_fileChooser)
         m_fileChooser->invalidate();
+
+    if (m_fileIconLoader)
+        m_fileIconLoader->invalidate();
 }
 
 Vector<FileChooserFileInfo> FileInputType::filesFromFormControlState(const FormControlState& state)
@@ -335,8 +338,14 @@
     if (!paths.size())
         return;
 
-    if (Chrome* chrome = this->chrome())
-        chrome->loadIconForFiles(paths, newFileIconLoader());
+    Chrome* chrome = this->chrome();
+    if (!chrome)
+        return;
+
+    if (m_fileIconLoader)
+        m_fileIconLoader = FileIconLoader::create(this);
+
+    chrome->loadIconForFiles(paths, m_fileIconLoader.get());
 }
 
 void FileInputType::applyFileChooserSettings(const FileChooserSettings& settings)

Modified: trunk/Source/WebCore/html/FileInputType.h (150164 => 150165)


--- trunk/Source/WebCore/html/FileInputType.h	2013-05-16 01:06:37 UTC (rev 150164)
+++ trunk/Source/WebCore/html/FileInputType.h	2013-05-16 01:17:58 UTC (rev 150165)
@@ -93,6 +93,7 @@
     void applyFileChooserSettings(const FileChooserSettings&);
 
     RefPtr<FileChooser> m_fileChooser;
+    RefPtr<FileIconLoader> m_fileIconLoader;
 
     RefPtr<FileList> m_fileList;
     RefPtr<Icon> m_icon;

Modified: trunk/Source/WebCore/platform/FileIconLoader.cpp (150164 => 150165)


--- trunk/Source/WebCore/platform/FileIconLoader.cpp	2013-05-16 01:06:37 UTC (rev 150164)
+++ trunk/Source/WebCore/platform/FileIconLoader.cpp	2013-05-16 01:17:58 UTC (rev 150165)
@@ -34,32 +34,15 @@
 
 namespace WebCore {
 
-FileIconLoaderClient::~FileIconLoaderClient()
-{
-    discardLoader();
-}
-
-FileIconLoader* FileIconLoaderClient::newFileIconLoader()
-{
-    discardLoader();
-
-    m_loader = FileIconLoader::create(this);
-    return m_loader.get();
-}
-
-void FileIconLoaderClient::discardLoader()
-{
-    if (m_loader)
-        m_loader->disconnectClient();
-}
-
 PassRefPtr<FileIconLoader> FileIconLoader::create(FileIconLoaderClient* client)
 {
     return adoptRef(new FileIconLoader(client));
 }
 
-void FileIconLoader::disconnectClient()
+void FileIconLoader::invalidate()
 {
+    ASSERT(m_client);
+
     m_client = 0;
 }
 

Modified: trunk/Source/WebCore/platform/FileIconLoader.h (150164 => 150165)


--- trunk/Source/WebCore/platform/FileIconLoader.h	2013-05-16 01:06:37 UTC (rev 150164)
+++ trunk/Source/WebCore/platform/FileIconLoader.h	2013-05-16 01:17:58 UTC (rev 150165)
@@ -41,23 +41,16 @@
 
 class FileIconLoaderClient {
 public:
+    virtual ~FileIconLoaderClient() { }
     virtual void updateRendering(PassRefPtr<Icon>) = 0;
-    virtual ~FileIconLoaderClient();
-
-protected:
-    FileIconLoader* newFileIconLoader();
-
-private:
-    void discardLoader();
-
-    RefPtr<FileIconLoader> m_loader;
 };
 
 class FileIconLoader : public RefCounted<FileIconLoader> {
 public:
     static PassRefPtr<FileIconLoader> create(FileIconLoaderClient*);
 
-    void disconnectClient();
+    void invalidate();
+
     void notifyFinished(PassRefPtr<Icon>);
 
 private:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to