| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. |
| 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) 2009 Adam Barth. All rights reserved. | 5 * Copyright (C) 2009 Adam Barth. All rights reserved. |
| 6 * | 6 * |
| 7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
| 8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
| 9 * are met: | 9 * are met: |
| 10 * | 10 * |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 protected: | 116 protected: |
| 117 ScheduledURLNavigation(double delay, Document* originDocument, const String&
url, bool lockBackForwardList, bool isLocationChange) | 117 ScheduledURLNavigation(double delay, Document* originDocument, const String&
url, bool lockBackForwardList, bool isLocationChange) |
| 118 : ScheduledNavigation(delay, originDocument, lockBackForwardList, isLoca
tionChange) | 118 : ScheduledNavigation(delay, originDocument, lockBackForwardList, isLoca
tionChange) |
| 119 , m_url(url) | 119 , m_url(url) |
| 120 , m_shouldCheckMainWorldContentSecurityPolicy(CheckContentSecurityPolicy
) | 120 , m_shouldCheckMainWorldContentSecurityPolicy(CheckContentSecurityPolicy
) |
| 121 { | 121 { |
| 122 if (ContentSecurityPolicy::shouldBypassMainWorld(originDocument)) | 122 if (ContentSecurityPolicy::shouldBypassMainWorld(originDocument)) |
| 123 m_shouldCheckMainWorldContentSecurityPolicy = DoNotCheckContentSecur
ityPolicy; | 123 m_shouldCheckMainWorldContentSecurityPolicy = DoNotCheckContentSecur
ityPolicy; |
| 124 } | 124 } |
| 125 | 125 |
| 126 virtual void fire(LocalFrame* frame) override | 126 void fire(LocalFrame* frame) override |
| 127 { | 127 { |
| 128 OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicat
or(); | 128 OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicat
or(); |
| 129 FrameLoadRequest request(originDocument(), m_url, "_self", m_shouldCheck
MainWorldContentSecurityPolicy); | 129 FrameLoadRequest request(originDocument(), m_url, "_self", m_shouldCheck
MainWorldContentSecurityPolicy); |
| 130 request.setLockBackForwardList(lockBackForwardList()); | 130 request.setLockBackForwardList(lockBackForwardList()); |
| 131 request.setClientRedirect(ClientRedirect); | 131 request.setClientRedirect(ClientRedirect); |
| 132 frame->loader().load(request); | 132 frame->loader().load(request); |
| 133 } | 133 } |
| 134 | 134 |
| 135 String url() const { return m_url; } | 135 String url() const { return m_url; } |
| 136 | 136 |
| 137 private: | 137 private: |
| 138 String m_url; | 138 String m_url; |
| 139 ContentSecurityPolicyDisposition m_shouldCheckMainWorldContentSecurityPolicy
; | 139 ContentSecurityPolicyDisposition m_shouldCheckMainWorldContentSecurityPolicy
; |
| 140 }; | 140 }; |
| 141 | 141 |
| 142 class ScheduledRedirect final : public ScheduledURLNavigation { | 142 class ScheduledRedirect final : public ScheduledURLNavigation { |
| 143 public: | 143 public: |
| 144 static PassOwnPtrWillBeRawPtr<ScheduledRedirect> create(double delay, Docume
nt* originDocument, const String& url, bool lockBackForwardList) | 144 static PassOwnPtrWillBeRawPtr<ScheduledRedirect> create(double delay, Docume
nt* originDocument, const String& url, bool lockBackForwardList) |
| 145 { | 145 { |
| 146 return adoptPtrWillBeNoop(new ScheduledRedirect(delay, originDocument, u
rl, lockBackForwardList)); | 146 return adoptPtrWillBeNoop(new ScheduledRedirect(delay, originDocument, u
rl, lockBackForwardList)); |
| 147 } | 147 } |
| 148 | 148 |
| 149 virtual bool shouldStartTimer(LocalFrame* frame) override { return frame->do
cument()->loadEventFinished(); } | 149 bool shouldStartTimer(LocalFrame* frame) override { return frame->document()
->loadEventFinished(); } |
| 150 | 150 |
| 151 virtual void fire(LocalFrame* frame) override | 151 void fire(LocalFrame* frame) override |
| 152 { | 152 { |
| 153 OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicat
or(); | 153 OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicat
or(); |
| 154 FrameLoadRequest request(originDocument(), url(), "_self"); | 154 FrameLoadRequest request(originDocument(), url(), "_self"); |
| 155 request.setLockBackForwardList(lockBackForwardList()); | 155 request.setLockBackForwardList(lockBackForwardList()); |
| 156 if (equalIgnoringFragmentIdentifier(frame->document()->url(), request.re
sourceRequest().url())) | 156 if (equalIgnoringFragmentIdentifier(frame->document()->url(), request.re
sourceRequest().url())) |
| 157 request.resourceRequest().setCachePolicy(ReloadIgnoringCacheData); | 157 request.resourceRequest().setCachePolicy(ReloadIgnoringCacheData); |
| 158 request.setClientRedirect(ClientRedirect); | 158 request.setClientRedirect(ClientRedirect); |
| 159 frame->loader().load(request); | 159 frame->loader().load(request); |
| 160 } | 160 } |
| 161 private: | 161 private: |
| (...skipping 16 matching lines...) Expand all Loading... |
| 178 : ScheduledURLNavigation(0.0, originDocument, url, lockBackForwardList,
!protocolIsJavaScript(url)) { } | 178 : ScheduledURLNavigation(0.0, originDocument, url, lockBackForwardList,
!protocolIsJavaScript(url)) { } |
| 179 }; | 179 }; |
| 180 | 180 |
| 181 class ScheduledReload final : public ScheduledNavigation { | 181 class ScheduledReload final : public ScheduledNavigation { |
| 182 public: | 182 public: |
| 183 static PassOwnPtrWillBeRawPtr<ScheduledReload> create() | 183 static PassOwnPtrWillBeRawPtr<ScheduledReload> create() |
| 184 { | 184 { |
| 185 return adoptPtrWillBeNoop(new ScheduledReload); | 185 return adoptPtrWillBeNoop(new ScheduledReload); |
| 186 } | 186 } |
| 187 | 187 |
| 188 virtual void fire(LocalFrame* frame) override | 188 void fire(LocalFrame* frame) override |
| 189 { | 189 { |
| 190 OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicat
or(); | 190 OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicat
or(); |
| 191 ResourceRequest resourceRequest = | 191 ResourceRequest resourceRequest = |
| 192 frame->loader().resourceRequestForReload(FrameLoadTypeReload, KURL()
, ClientRedirect); | 192 frame->loader().resourceRequestForReload(FrameLoadTypeReload, KURL()
, ClientRedirect); |
| 193 if (resourceRequest.isNull()) | 193 if (resourceRequest.isNull()) |
| 194 return; | 194 return; |
| 195 FrameLoadRequest request = FrameLoadRequest(nullptr, resourceRequest); | 195 FrameLoadRequest request = FrameLoadRequest(nullptr, resourceRequest); |
| 196 request.setClientRedirect(ClientRedirect); | 196 request.setClientRedirect(ClientRedirect); |
| 197 frame->loader().load(request, FrameLoadTypeReload); | 197 frame->loader().load(request, FrameLoadTypeReload); |
| 198 } | 198 } |
| 199 | 199 |
| 200 private: | 200 private: |
| 201 ScheduledReload() | 201 ScheduledReload() |
| 202 : ScheduledNavigation(0.0, nullptr, true, true) | 202 : ScheduledNavigation(0.0, nullptr, true, true) |
| 203 { | 203 { |
| 204 } | 204 } |
| 205 }; | 205 }; |
| 206 | 206 |
| 207 class ScheduledPageBlock final : public ScheduledURLNavigation { | 207 class ScheduledPageBlock final : public ScheduledURLNavigation { |
| 208 public: | 208 public: |
| 209 static PassOwnPtrWillBeRawPtr<ScheduledPageBlock> create(Document* originDoc
ument, const String& url) | 209 static PassOwnPtrWillBeRawPtr<ScheduledPageBlock> create(Document* originDoc
ument, const String& url) |
| 210 { | 210 { |
| 211 return adoptPtrWillBeNoop(new ScheduledPageBlock(originDocument, url)); | 211 return adoptPtrWillBeNoop(new ScheduledPageBlock(originDocument, url)); |
| 212 } | 212 } |
| 213 | 213 |
| 214 virtual void fire(LocalFrame* frame) override | 214 void fire(LocalFrame* frame) override |
| 215 { | 215 { |
| 216 OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicat
or(); | 216 OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicat
or(); |
| 217 SubstituteData substituteData(SharedBuffer::create(), "text/plain", "UTF
-8", KURL(), ForceSynchronousLoad); | 217 SubstituteData substituteData(SharedBuffer::create(), "text/plain", "UTF
-8", KURL(), ForceSynchronousLoad); |
| 218 FrameLoadRequest request(originDocument(), url(), substituteData); | 218 FrameLoadRequest request(originDocument(), url(), substituteData); |
| 219 request.setLockBackForwardList(true); | 219 request.setLockBackForwardList(true); |
| 220 request.setClientRedirect(ClientRedirect); | 220 request.setClientRedirect(ClientRedirect); |
| 221 frame->loader().load(request); | 221 frame->loader().load(request); |
| 222 } | 222 } |
| 223 private: | 223 private: |
| 224 ScheduledPageBlock(Document* originDocument, const String& url) | 224 ScheduledPageBlock(Document* originDocument, const String& url) |
| 225 : ScheduledURLNavigation(0.0, originDocument, url, true, true) | 225 : ScheduledURLNavigation(0.0, originDocument, url, true, true) |
| 226 { | 226 { |
| 227 } | 227 } |
| 228 | 228 |
| 229 }; | 229 }; |
| 230 | 230 |
| 231 class ScheduledFormSubmission final : public ScheduledNavigation { | 231 class ScheduledFormSubmission final : public ScheduledNavigation { |
| 232 public: | 232 public: |
| 233 static PassOwnPtrWillBeRawPtr<ScheduledFormSubmission> create(Document* docu
ment, PassRefPtrWillBeRawPtr<FormSubmission> submission, bool lockBackForwardLis
t) | 233 static PassOwnPtrWillBeRawPtr<ScheduledFormSubmission> create(Document* docu
ment, PassRefPtrWillBeRawPtr<FormSubmission> submission, bool lockBackForwardLis
t) |
| 234 { | 234 { |
| 235 return adoptPtrWillBeNoop(new ScheduledFormSubmission(document, submissi
on, lockBackForwardList)); | 235 return adoptPtrWillBeNoop(new ScheduledFormSubmission(document, submissi
on, lockBackForwardList)); |
| 236 } | 236 } |
| 237 | 237 |
| 238 virtual void fire(LocalFrame* frame) override | 238 void fire(LocalFrame* frame) override |
| 239 { | 239 { |
| 240 OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicat
or(); | 240 OwnPtr<UserGestureIndicator> gestureIndicator = createUserGestureIndicat
or(); |
| 241 FrameLoadRequest frameRequest(originDocument()); | 241 FrameLoadRequest frameRequest(originDocument()); |
| 242 m_submission->populateFrameLoadRequest(frameRequest); | 242 m_submission->populateFrameLoadRequest(frameRequest); |
| 243 frameRequest.setLockBackForwardList(lockBackForwardList()); | 243 frameRequest.setLockBackForwardList(lockBackForwardList()); |
| 244 frameRequest.setTriggeringEvent(m_submission->event()); | 244 frameRequest.setTriggeringEvent(m_submission->event()); |
| 245 frameRequest.setForm(m_submission->form()); | 245 frameRequest.setForm(m_submission->form()); |
| 246 frame->loader().load(frameRequest); | 246 frame->loader().load(frameRequest); |
| 247 } | 247 } |
| 248 | 248 |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 m_redirect.clear(); | 426 m_redirect.clear(); |
| 427 } | 427 } |
| 428 | 428 |
| 429 DEFINE_TRACE(NavigationScheduler) | 429 DEFINE_TRACE(NavigationScheduler) |
| 430 { | 430 { |
| 431 visitor->trace(m_frame); | 431 visitor->trace(m_frame); |
| 432 visitor->trace(m_redirect); | 432 visitor->trace(m_redirect); |
| 433 } | 433 } |
| 434 | 434 |
| 435 } // namespace blink | 435 } // namespace blink |
| OLD | NEW |