| Index: third_party/WebKit/Source/core/html/LinkStyle.cpp
|
| diff --git a/third_party/WebKit/Source/core/html/LinkStyle.cpp b/third_party/WebKit/Source/core/html/LinkStyle.cpp
|
| index 4a3297d1c4fea51b953efa142e0df9dac0edd0a3..c9c542849811bd9969d2136de8510203b9ec8519 100644
|
| --- a/third_party/WebKit/Source/core/html/LinkStyle.cpp
|
| +++ b/third_party/WebKit/Source/core/html/LinkStyle.cpp
|
| @@ -236,40 +236,41 @@ void LinkStyle::removePendingSheet() {
|
| void LinkStyle::setDisabledState(bool disabled) {
|
| LinkStyle::DisabledState oldDisabledState = m_disabledState;
|
| m_disabledState = disabled ? Disabled : EnabledViaScript;
|
| - if (oldDisabledState != m_disabledState) {
|
| - // If we change the disabled state while the sheet is still loading, then we
|
| - // have to perform three checks:
|
| - if (styleSheetIsLoading()) {
|
| - // Check #1: The sheet becomes disabled while loading.
|
| - if (m_disabledState == Disabled)
|
| - removePendingSheet();
|
| -
|
| - // Check #2: An alternate sheet becomes enabled while it is still loading.
|
| - if (m_owner->relAttribute().isAlternate() &&
|
| - m_disabledState == EnabledViaScript)
|
| - addPendingSheet(Blocking);
|
| -
|
| - // Check #3: A main sheet becomes enabled while it was still loading and
|
| - // after it was disabled via script. It takes really terrible code to make
|
| - // this happen (a double toggle for no reason essentially). This happens
|
| - // on virtualplastic.net, which manages to do about 12 enable/disables on
|
| - // only 3 sheets. :)
|
| - if (!m_owner->relAttribute().isAlternate() &&
|
| - m_disabledState == EnabledViaScript && oldDisabledState == Disabled)
|
| - addPendingSheet(Blocking);
|
| -
|
| - // If the sheet is already loading just bail.
|
| - return;
|
| - }
|
| + if (oldDisabledState == m_disabledState)
|
| + return;
|
|
|
| - if (m_sheet) {
|
| - m_sheet->setDisabled(disabled);
|
| - return;
|
| - }
|
| + // If we change the disabled state while the sheet is still loading, then we
|
| + // have to perform three checks:
|
| + if (styleSheetIsLoading()) {
|
| + // Check #1: The sheet becomes disabled while loading.
|
| + if (m_disabledState == Disabled)
|
| + removePendingSheet();
|
|
|
| - if (m_disabledState == EnabledViaScript && m_owner->shouldProcessStyle())
|
| - process();
|
| + // Check #2: An alternate sheet becomes enabled while it is still loading.
|
| + if (m_owner->relAttribute().isAlternate() &&
|
| + m_disabledState == EnabledViaScript)
|
| + addPendingSheet(Blocking);
|
| +
|
| + // Check #3: A main sheet becomes enabled while it was still loading and
|
| + // after it was disabled via script. It takes really terrible code to make
|
| + // this happen (a double toggle for no reason essentially). This happens
|
| + // on virtualplastic.net, which manages to do about 12 enable/disables on
|
| + // only 3 sheets. :)
|
| + if (!m_owner->relAttribute().isAlternate() &&
|
| + m_disabledState == EnabledViaScript && oldDisabledState == Disabled)
|
| + addPendingSheet(Blocking);
|
| +
|
| + // If the sheet is already loading just bail.
|
| + return;
|
| }
|
| +
|
| + if (m_sheet) {
|
| + m_sheet->setDisabled(disabled);
|
| + return;
|
| + }
|
| +
|
| + if (m_disabledState == EnabledViaScript && m_owner->shouldProcessStyle())
|
| + process();
|
| }
|
|
|
| void LinkStyle::setCrossOriginStylesheetStatus(CSSStyleSheet* sheet) {
|
| @@ -406,7 +407,7 @@ void LinkStyle::setSheetTitle(
|
| if (title.isEmpty() || !isUnset() || m_owner->isAlternate())
|
| return;
|
|
|
| - KURL href = m_owner->getNonEmptyURLAttribute(hrefAttr);
|
| + const KURL& href = m_owner->getNonEmptyURLAttribute(hrefAttr);
|
| if (href.isValid() && !href.isEmpty()) {
|
| document().styleEngine().setPreferredStylesheetSetNameIfNotSet(
|
| title, updateActiveSheets);
|
|
|