| Index: Source/core/dom/DOMURLUtils.h
|
| diff --git a/Source/core/dom/DOMURLUtils.h b/Source/core/dom/DOMURLUtils.h
|
| index 1987ecd72054e349d44a522bd9b4a50143f0e906..55abfc5f55a2e9573b7aa2778f162df111fc5857 100644
|
| --- a/Source/core/dom/DOMURLUtils.h
|
| +++ b/Source/core/dom/DOMURLUtils.h
|
| @@ -27,12 +27,15 @@
|
| #ifndef DOMURLUtils_h
|
| #define DOMURLUtils_h
|
|
|
| +#include "core/dom/DOMURLSearchParams.h"
|
| #include "core/dom/DOMURLUtilsReadOnly.h"
|
| #include "wtf/Forward.h"
|
| +#include "wtf/OwnPtr.h"
|
| #include "wtf/text/WTFString.h"
|
|
|
| namespace WebCore {
|
|
|
| +class ExceptionState;
|
| class KURL;
|
|
|
| class DOMURLUtils : public DOMURLUtilsReadOnly {
|
| @@ -52,6 +55,38 @@ public:
|
| static void setPathname(DOMURLUtils*, const String&);
|
| static void setSearch(DOMURLUtils*, const String&);
|
| static void setHash(DOMURLUtils*, const String&);
|
| +
|
| + static DOMURLSearchParams* searchParams(DOMURLUtils*);
|
| + static void setSearchParams(DOMURLUtils*, DOMURLSearchParams*, ExceptionState&);
|
| +
|
| + static void update(DOMURLUtils*);
|
| +
|
| + // To correctly record object dependencies during GCs, we have to
|
| + // map from a URLSearchParams' url object (a DOMURLUtils pointer)
|
| + // to its corresponding wrapper object - the wrapper object for
|
| + // the concrete type implementing the URLUtils interface.
|
| + //
|
| + // Indirectly (and pragmatically) express such type discovery via
|
| + // an enum. If the URLUtils interface is implemented by another
|
| + // object, and it doesn't fit with one of the below, the type will
|
| + // have to be extended. (Along with the custom wrapper function
|
| + // that considers its value.)
|
| + enum ImplementedBy {
|
| + Anchor, // derives from HTMLAnchorElement
|
| + DomURL
|
| + };
|
| +
|
| + virtual ImplementedBy implementedBy() const = 0;
|
| +
|
| +protected:
|
| + static void createSearchParams(DOMURLUtils*, const String&);
|
| + static void updateSearchParams(DOMURLUtils*, const String&);
|
| +
|
| + friend class DOMURLSearchParams;
|
| + virtual void refURLUtils() = 0;
|
| + virtual void derefURLUtils() = 0;
|
| +
|
| + OwnPtr<DOMURLSearchParams> m_searchParams;
|
| };
|
|
|
| } // namespace WebCore
|
|
|