OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. |
3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
4 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) | 4 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) |
5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> | 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> |
6 * Copyright (C) Research In Motion Limited 2009. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2009. All rights reserved. |
7 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> | 7 * Copyright (C) 2011 Kris Jordan <krisjordan@gmail.com> |
8 * Copyright (C) 2011 Google Inc. All rights reserved. | 8 * Copyright (C) 2011 Google Inc. All rights reserved. |
9 * | 9 * |
10 * Redistribution and use in source and binary forms, with or without | 10 * Redistribution and use in source and binary forms, with or without |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
115 | 115 |
116 bool isReloadLoadType(FrameLoadType type) | 116 bool isReloadLoadType(FrameLoadType type) |
117 { | 117 { |
118 return type == FrameLoadTypeReload | 118 return type == FrameLoadTypeReload |
119 || type == FrameLoadTypeReloadMainResource | 119 || type == FrameLoadTypeReloadMainResource |
120 || type == FrameLoadTypeReloadBypassingCache; | 120 || type == FrameLoadTypeReloadBypassingCache; |
121 } | 121 } |
122 | 122 |
123 static bool needsHistoryItemRestore(FrameLoadType type) | 123 static bool needsHistoryItemRestore(FrameLoadType type) |
124 { | 124 { |
125 // TODO(toyoshim): Check if this should return true for | 125 // TODO(toyoshim): Shall we return true for FrameLoadTypeInitialHistoryLoad too? |
126 // FrameLoadTypeReloadMainResource. | 126 return type == FrameLoadTypeBackForward || isReloadLoadType(type); |
127 return type == FrameLoadTypeBackForward | |
128 || type == FrameLoadTypeReload | |
129 || type == FrameLoadTypeReloadBypassingCache; | |
130 } | 127 } |
131 | 128 |
132 // static | 129 // static |
133 ResourceRequest FrameLoader::resourceRequestFromHistoryItem(HistoryItem* item, W ebCachePolicy cachePolicy) | 130 ResourceRequest FrameLoader::resourceRequestFromHistoryItem(HistoryItem* item, W ebCachePolicy cachePolicy) |
134 { | 131 { |
135 RefPtr<EncodedFormData> formData = item->formData(); | 132 RefPtr<EncodedFormData> formData = item->formData(); |
136 ResourceRequest request(item->url()); | 133 ResourceRequest request(item->url()); |
137 request.setHTTPReferrer(item->referrer()); | 134 request.setHTTPReferrer(item->referrer()); |
138 request.setCachePolicy(cachePolicy); | 135 request.setCachePolicy(cachePolicy); |
139 if (formData) { | 136 if (formData) { |
(...skipping 1053 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1193 || !m_currentItem | 1190 || !m_currentItem |
1194 || !m_stateMachine.committedFirstRealDocumentLoad() | 1191 || !m_stateMachine.committedFirstRealDocumentLoad() |
1195 || !documentLoader()) { | 1192 || !documentLoader()) { |
1196 return; | 1193 return; |
1197 } | 1194 } |
1198 | 1195 |
1199 if (!needsHistoryItemRestore(m_loadType)) | 1196 if (!needsHistoryItemRestore(m_loadType)) |
1200 return; | 1197 return; |
1201 | 1198 |
1202 bool shouldRestoreScroll = m_currentItem->scrollRestorationType() != ScrollR estorationManual; | 1199 bool shouldRestoreScroll = m_currentItem->scrollRestorationType() != ScrollR estorationManual; |
1203 bool shouldRestoreScale = m_currentItem->pageScaleFactor(); | 1200 bool shouldRestoreScale = m_currentItem->pageScaleFactor() && !(m_frame->pag e()->settings().loadWithOverviewMode() && isReloadLoadType(m_loadType)); |
Takashi Toyoshima
2016/08/29 06:42:04
In terms of UI design policy to handle scroll posi
| |
1204 | 1201 |
1205 // This tries to balance: | 1202 // This tries to balance: |
1206 // 1. restoring as soon as possible | 1203 // 1. restoring as soon as possible |
1207 // 2. not overriding user scroll (TODO(majidvp): also respect user scale) | 1204 // 2. not overriding user scroll (TODO(majidvp): also respect user scale) |
1208 // 3. detecting clamping to avoid repeatedly popping the scroll position | 1205 // 3. detecting clamping to avoid repeatedly popping the scroll position |
1209 // down as the page height increases | 1206 // down as the page height increases |
1210 // 4. ignore clamp detection if we are not restoring scroll or after load | 1207 // 4. ignore clamp detection if we are not restoring scroll or after load |
1211 // completes because that may be because the page will never reach its | 1208 // completes because that may be because the page will never reach its |
1212 // previous height | 1209 // previous height |
1213 bool canRestoreWithoutClamping = view->layoutViewportScrollableArea()->clamp ScrollPosition(m_currentItem->scrollPoint()) == m_currentItem->scrollPoint(); | 1210 bool canRestoreWithoutClamping = view->layoutViewportScrollableArea()->clamp ScrollPosition(m_currentItem->scrollPoint()) == m_currentItem->scrollPoint(); |
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1619 tracedValue->setString("documentLoaderURL", m_documentLoader ? m_documentLoa der->url() : String()); | 1616 tracedValue->setString("documentLoaderURL", m_documentLoader ? m_documentLoa der->url() : String()); |
1620 return tracedValue; | 1617 return tracedValue; |
1621 } | 1618 } |
1622 | 1619 |
1623 inline void FrameLoader::takeObjectSnapshot() const | 1620 inline void FrameLoader::takeObjectSnapshot() const |
1624 { | 1621 { |
1625 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, toTraced Value()); | 1622 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, toTraced Value()); |
1626 } | 1623 } |
1627 | 1624 |
1628 } // namespace blink | 1625 } // namespace blink |
OLD | NEW |