summaryrefslogtreecommitdiff
path: root/Source/WebCore/loader/icon/IconDatabaseBase.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/loader/icon/IconDatabaseBase.h')
-rw-r--r--Source/WebCore/loader/icon/IconDatabaseBase.h76
1 files changed, 33 insertions, 43 deletions
diff --git a/Source/WebCore/loader/icon/IconDatabaseBase.h b/Source/WebCore/loader/icon/IconDatabaseBase.h
index e1f63af94..d4051b936 100644
--- a/Source/WebCore/loader/icon/IconDatabaseBase.h
+++ b/Source/WebCore/loader/icon/IconDatabaseBase.h
@@ -10,10 +10,10 @@
* 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 COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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 COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* 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
@@ -23,15 +23,12 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef IconDatabaseBase_h
-#define IconDatabaseBase_h
-
-#include "ImageSource.h"
-#include "SharedBuffer.h"
+#pragma once
+#include "NativeImage.h"
#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
-#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
namespace WebCore {
@@ -39,12 +36,9 @@ class DocumentLoader;
class IconDatabaseClient;
class Image;
class IntSize;
+class SharedBuffer;
-enum IconLoadDecision {
- IconLoadYes,
- IconLoadNo,
- IconLoadUnknown
-};
+enum IconLoadDecision { IconLoadYes, IconLoadNo, IconLoadUnknown };
class CallbackBase : public RefCounted<CallbackBase> {
public:
@@ -79,9 +73,9 @@ class EnumCallback : public CallbackBase {
public:
typedef void (*CallbackFunction)(EnumType, void*);
- static PassRefPtr<EnumCallback> create(void* context, CallbackFunction callback)
+ static Ref<EnumCallback> create(void* context, CallbackFunction callback)
{
- return adoptRef(new EnumCallback(context, callback));
+ return adoptRef(*new EnumCallback(context, callback));
}
virtual ~EnumCallback()
@@ -94,12 +88,12 @@ public:
if (!m_callback)
return;
m_callback(result, context());
- m_callback = 0;
+ m_callback = nullptr;
}
void invalidate()
{
- m_callback = 0;
+ m_callback = nullptr;
}
private:
@@ -118,9 +112,9 @@ class ObjectCallback : public CallbackBase {
public:
typedef void (*CallbackFunction)(ObjectType, void*);
- static PassRefPtr<ObjectCallback> create(void* context, CallbackFunction callback)
+ static Ref<ObjectCallback> create(void* context, CallbackFunction callback)
{
- return adoptRef(new ObjectCallback(context, callback));
+ return adoptRef(*new ObjectCallback(context, callback));
}
virtual ~ObjectCallback()
@@ -133,12 +127,12 @@ public:
if (!m_callback)
return;
m_callback(result, context());
- m_callback = 0;
+ m_callback = nullptr;
}
-
+
void invalidate()
{
- m_callback = 0;
+ m_callback = nullptr;
}
private:
@@ -152,46 +146,42 @@ private:
CallbackFunction m_callback;
};
-typedef EnumCallback<IconLoadDecision> IconLoadDecisionCallback;
-typedef ObjectCallback<SharedBuffer*> IconDataCallback;
+using IconLoadDecisionCallback = EnumCallback<IconLoadDecision>;
+using IconDataCallback = ObjectCallback<SharedBuffer*>;
-class IconDatabaseBase {
+class WEBCORE_EXPORT IconDatabaseBase {
WTF_MAKE_NONCOPYABLE(IconDatabaseBase);
-protected:
- IconDatabaseBase() { }
-
public:
virtual ~IconDatabaseBase() { }
- // Used internally by WebCore
virtual bool isEnabled() const { return false; }
-
+
virtual void retainIconForPageURL(const String&) { }
virtual void releaseIconForPageURL(const String&) { }
- virtual void setIconURLForPageURL(const String&, const String&) { }
- virtual void setIconDataForIconURL(PassRefPtr<SharedBuffer>, const String&) { }
+ virtual void setIconURLForPageURL(const String& /*iconURL*/, const String& /*pageURL*/) { }
+ virtual void setIconDataForIconURL(SharedBuffer*, const String& /*iconURL*/) { }
// Synchronous calls used internally by WebCore.
// Usage should be replaced by asynchronous calls.
virtual String synchronousIconURLForPageURL(const String&);
virtual bool synchronousIconDataKnownForIconURL(const String&) { return false; }
virtual IconLoadDecision synchronousLoadDecisionForIconURL(const String&, DocumentLoader*) { return IconLoadNo; }
- virtual Image* synchronousIconForPageURL(const String&, const IntSize&) { return 0; }
- virtual PassNativeImagePtr synchronousNativeIconForPageURL(const String&, const IntSize&) { return 0; }
+ virtual Image* synchronousIconForPageURL(const String&, const IntSize&) { return nullptr; }
+ virtual NativeImagePtr synchronousNativeIconForPageURL(const String&, const IntSize&) { return nullptr; }
// Asynchronous calls we should use to replace the above when supported.
virtual bool supportsAsynchronousMode() { return false; }
- virtual void loadDecisionForIconURL(const String&, PassRefPtr<IconLoadDecisionCallback>) { }
- virtual void iconDataForIconURL(const String&, PassRefPtr<IconDataCallback>) { }
-
+ virtual void loadDecisionForIconURL(const String&, IconLoadDecisionCallback&) { }
+ virtual void iconDataForIconURL(const String&, IconDataCallback&) { }
// Used within one or more WebKit ports.
// We should try to remove these dependencies from the IconDatabaseBase class.
+
virtual void setEnabled(bool) { }
- virtual Image* defaultIcon(const IntSize&) { return 0; }
+ virtual Image* defaultIcon(const IntSize&) { return nullptr; }
virtual size_t pageURLMappingCount() { return 0; }
virtual size_t retainedPageURLCount() { return 0; }
@@ -206,17 +196,17 @@ public:
virtual void setPrivateBrowsingEnabled(bool) { }
virtual void setClient(IconDatabaseClient*) { }
-
+
virtual bool isOpen() const { return false; }
virtual String databasePath() const;
+protected:
+ IconDatabaseBase() = default;
};
// Functions to get/set the global icon database.
-IconDatabaseBase& iconDatabase();
-void setGlobalIconDatabase(IconDatabaseBase*);
+WEBCORE_EXPORT IconDatabaseBase& iconDatabase();
+WEBCORE_EXPORT void setGlobalIconDatabase(IconDatabaseBase*);
bool documentCanHaveIcon(const String&);
} // namespace WebCore
-
-#endif // IconDatabaseBase_h