Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(331)

Unified Diff: third_party/WebKit/Source/core/html/HTMLLinkElement.h

Issue 2426513003: Refactor LinkStyle out of HTMLLinkElement (Closed)
Patch Set: Review comment Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/html/HTMLLinkElement.h
diff --git a/third_party/WebKit/Source/core/html/HTMLLinkElement.h b/third_party/WebKit/Source/core/html/HTMLLinkElement.h
index 09e0327155360d2ad0846d0eaff9bacc85fc1bb1..5883a2e018a0e91bef445e0a32bb075694233e29 100644
--- a/third_party/WebKit/Source/core/html/HTMLLinkElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLLinkElement.h
@@ -25,17 +25,12 @@
#define HTMLLinkElement_h
#include "core/CoreExport.h"
-#include "core/css/CSSStyleSheet.h"
#include "core/dom/DOMTokenList.h"
-#include "core/dom/IconURL.h"
#include "core/dom/IncrementLoadEventDelayCount.h"
-#include "core/dom/StyleEngine.h"
-#include "core/fetch/ResourceOwner.h"
-#include "core/fetch/StyleSheetResource.h"
-#include "core/fetch/StyleSheetResourceClient.h"
#include "core/html/HTMLElement.h"
#include "core/html/LinkRelAttribute.h"
#include "core/html/LinkResource.h"
+#include "core/html/LinkStyle.h"
#include "core/html/RelList.h"
#include "core/loader/LinkLoader.h"
#include "core/loader/LinkLoaderClient.h"
@@ -43,88 +38,9 @@
namespace blink {
-class HTMLLinkElement;
class KURL;
class LinkImport;
-//
-// LinkStyle handles dynamically change-able link resources, which is
-// typically @rel="stylesheet".
-//
-// It could be @rel="shortcut icon" or something else though. Each of
-// types might better be handled by a separate class, but dynamically
-// changing @rel makes it harder to move such a design so we are
-// sticking current way so far.
-//
-class LinkStyle final : public LinkResource, ResourceOwner<StyleSheetResource> {
- USING_GARBAGE_COLLECTED_MIXIN(LinkStyle);
-
- public:
- static LinkStyle* create(HTMLLinkElement* owner);
-
- explicit LinkStyle(HTMLLinkElement* owner);
- ~LinkStyle() override;
-
- LinkResourceType type() const override { return Style; }
- void process() override;
- void ownerRemoved() override;
- bool hasLoaded() const override { return m_loadedSheet; }
- DECLARE_VIRTUAL_TRACE();
-
- void startLoadingDynamicSheet();
- void notifyLoadedSheetAndAllCriticalSubresources(
- Node::LoadedSheetErrorStatus);
- bool sheetLoaded();
-
- void setDisabledState(bool);
- void setSheetTitle(
- const String&,
- StyleEngine::ActiveSheetsUpdate = StyleEngine::DontUpdateActiveSheets);
-
- bool styleSheetIsLoading() const;
- bool hasSheet() const { return m_sheet; }
- bool isDisabled() const { return m_disabledState == Disabled; }
- bool isEnabledViaScript() const {
- return m_disabledState == EnabledViaScript;
- }
- bool isUnset() const { return m_disabledState == Unset; }
-
- CSSStyleSheet* sheet() const { return m_sheet.get(); }
-
- private:
- // From StyleSheetResourceClient
- void setCSSStyleSheet(const String& href,
- const KURL& baseURL,
- const String& charset,
- const CSSStyleSheetResource*) override;
- String debugName() const override { return "LinkStyle"; }
-
- enum DisabledState { Unset, EnabledViaScript, Disabled };
-
- enum PendingSheetType { None, NonBlocking, Blocking };
-
- void clearSheet();
- void addPendingSheet(PendingSheetType);
- void removePendingSheet();
- Document& document();
-
- void setCrossOriginStylesheetStatus(CSSStyleSheet*);
- void setFetchFollowingCORS() {
- DCHECK(!m_fetchFollowingCORS);
- m_fetchFollowingCORS = true;
- }
- void clearFetchFollowingCORS() { m_fetchFollowingCORS = false; }
-
- Member<CSSStyleSheet> m_sheet;
- DisabledState m_disabledState;
- PendingSheetType m_pendingSheetType;
- StyleEngineContext m_styleEngineContext;
- bool m_loading;
- bool m_firedLoad;
- bool m_loadedSheet;
- bool m_fetchFollowingCORS;
-};
-
class CORE_EXPORT HTMLLinkElement final : public HTMLElement,
public LinkLoaderClient,
private DOMTokenListObserver {
« no previous file with comments | « third_party/WebKit/Source/core/html/BUILD.gn ('k') | third_party/WebKit/Source/core/html/HTMLLinkElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698