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 |