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