| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 | 70 |
| 71 SerializedScriptValue* History::state() { | 71 SerializedScriptValue* History::state() { |
| 72 m_lastStateObjectRequested = stateInternal(); | 72 m_lastStateObjectRequested = stateInternal(); |
| 73 return m_lastStateObjectRequested.get(); | 73 return m_lastStateObjectRequested.get(); |
| 74 } | 74 } |
| 75 | 75 |
| 76 SerializedScriptValue* History::stateInternal() const { | 76 SerializedScriptValue* History::stateInternal() const { |
| 77 if (!frame()) | 77 if (!frame()) |
| 78 return 0; | 78 return 0; |
| 79 | 79 |
| 80 if (HistoryItem* historyItem = frame()->loader().currentItem()) | 80 if (HistoryItem* historyItem = |
| 81 frame()->loader().documentLoader()->historyItem()) { |
| 81 return historyItem->stateObject(); | 82 return historyItem->stateObject(); |
| 83 } |
| 82 | 84 |
| 83 return 0; | 85 return 0; |
| 84 } | 86 } |
| 85 | 87 |
| 86 void History::setScrollRestoration(const String& value) { | 88 void History::setScrollRestoration(const String& value) { |
| 87 DCHECK(value == "manual" || value == "auto"); | 89 DCHECK(value == "manual" || value == "auto"); |
| 88 if (!frame() || !frame()->loader().client()) | 90 if (!frame() || !frame()->loader().client()) |
| 89 return; | 91 return; |
| 90 | 92 |
| 91 HistoryScrollRestorationType scrollRestoration = | 93 HistoryScrollRestorationType scrollRestoration = |
| 92 value == "manual" ? ScrollRestorationManual : ScrollRestorationAuto; | 94 value == "manual" ? ScrollRestorationManual : ScrollRestorationAuto; |
| 93 if (scrollRestoration == scrollRestorationInternal()) | 95 if (scrollRestoration == scrollRestorationInternal()) |
| 94 return; | 96 return; |
| 95 | 97 |
| 96 if (HistoryItem* historyItem = frame()->loader().currentItem()) { | 98 if (HistoryItem* historyItem = |
| 99 frame()->loader().documentLoader()->historyItem()) { |
| 97 historyItem->setScrollRestorationType(scrollRestoration); | 100 historyItem->setScrollRestorationType(scrollRestoration); |
| 98 frame()->loader().client()->didUpdateCurrentHistoryItem(); | 101 frame()->loader().client()->didUpdateCurrentHistoryItem(); |
| 99 } | 102 } |
| 100 } | 103 } |
| 101 | 104 |
| 102 String History::scrollRestoration() { | 105 String History::scrollRestoration() { |
| 103 return scrollRestorationInternal() == ScrollRestorationManual ? "manual" | 106 return scrollRestorationInternal() == ScrollRestorationManual ? "manual" |
| 104 : "auto"; | 107 : "auto"; |
| 105 } | 108 } |
| 106 | 109 |
| 107 HistoryScrollRestorationType History::scrollRestorationInternal() const { | 110 HistoryScrollRestorationType History::scrollRestorationInternal() const { |
| 108 if (frame()) { | 111 HistoryItem* historyItem = |
| 109 if (HistoryItem* historyItem = frame()->loader().currentItem()) | 112 frame() ? frame()->loader().documentLoader()->historyItem() : nullptr; |
| 110 return historyItem->scrollRestorationType(); | 113 return historyItem ? historyItem->scrollRestorationType() |
| 111 } | 114 : ScrollRestorationAuto; |
| 112 | |
| 113 return ScrollRestorationAuto; | |
| 114 } | 115 } |
| 115 | 116 |
| 116 bool History::stateChanged() const { | 117 bool History::stateChanged() const { |
| 117 return m_lastStateObjectRequested != stateInternal(); | 118 return m_lastStateObjectRequested != stateInternal(); |
| 118 } | 119 } |
| 119 | 120 |
| 120 bool History::isSameAsCurrentState(SerializedScriptValue* state) const { | 121 bool History::isSameAsCurrentState(SerializedScriptValue* state) const { |
| 121 return state == stateInternal(); | 122 return state == stateInternal(); |
| 122 } | 123 } |
| 123 | 124 |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 frame()->document()->url().elidedString() + "'."); | 225 frame()->document()->url().elidedString() + "'."); |
| 225 return; | 226 return; |
| 226 } | 227 } |
| 227 | 228 |
| 228 frame()->loader().updateForSameDocumentNavigation( | 229 frame()->loader().updateForSameDocumentNavigation( |
| 229 fullURL, SameDocumentNavigationHistoryApi, std::move(data), | 230 fullURL, SameDocumentNavigationHistoryApi, std::move(data), |
| 230 restorationType, type, frame()->document()); | 231 restorationType, type, frame()->document()); |
| 231 } | 232 } |
| 232 | 233 |
| 233 } // namespace blink | 234 } // namespace blink |
| OLD | NEW |