| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009 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 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * | 9 * |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 m_callback.clear(); | 126 m_callback.clear(); |
| 127 } | 127 } |
| 128 | 128 |
| 129 void PolicyChecker::stopCheck() | 129 void PolicyChecker::stopCheck() |
| 130 { | 130 { |
| 131 PolicyCallback callback = m_callback; | 131 PolicyCallback callback = m_callback; |
| 132 m_callback.clear(); | 132 m_callback.clear(); |
| 133 callback.cancel(); | 133 callback.cancel(); |
| 134 } | 134 } |
| 135 | 135 |
| 136 void PolicyChecker::cannotShowMIMEType(const ResourceResponse& response) | |
| 137 { | |
| 138 handleUnimplementablePolicy(m_frame->loader()->client()->cannotShowMIMETypeE
rror(response)); | |
| 139 } | |
| 140 | |
| 141 void PolicyChecker::continueLoadAfterWillSubmitForm(PolicyAction) | 136 void PolicyChecker::continueLoadAfterWillSubmitForm(PolicyAction) |
| 142 { | 137 { |
| 143 // See header file for an explaination of why this function | 138 // See header file for an explaination of why this function |
| 144 // isn't like the others. | 139 // isn't like the others. |
| 145 m_frame->loader()->continueLoadAfterWillSubmitForm(); | 140 m_frame->loader()->continueLoadAfterWillSubmitForm(); |
| 146 } | 141 } |
| 147 | 142 |
| 148 void PolicyChecker::continueAfterNavigationPolicy(PolicyAction policy) | 143 void PolicyChecker::continueAfterNavigationPolicy(PolicyAction policy) |
| 149 { | 144 { |
| 150 PolicyCallback callback = m_callback; | 145 PolicyCallback callback = m_callback; |
| 151 m_callback.clear(); | 146 m_callback.clear(); |
| 152 | 147 |
| 153 bool shouldContinue = policy == PolicyUse; | 148 bool shouldContinue = policy == PolicyUse; |
| 154 | 149 |
| 155 switch (policy) { | 150 switch (policy) { |
| 156 case PolicyIgnore: | 151 case PolicyIgnore: |
| 157 callback.clearRequest(); | 152 callback.clearRequest(); |
| 158 break; | 153 break; |
| 159 case PolicyDownload: { | 154 case PolicyDownload: { |
| 160 ResourceRequest request = callback.request(); | 155 ResourceRequest request = callback.request(); |
| 161 m_frame->loader()->setOriginalURLForDownloadRequest(request); | 156 m_frame->loader()->setOriginalURLForDownloadRequest(request); |
| 162 m_frame->loader()->client()->startDownload(request); | 157 m_frame->loader()->client()->startDownload(request); |
| 163 callback.clearRequest(); | 158 callback.clearRequest(); |
| 164 break; | 159 break; |
| 165 } | 160 } |
| 166 case PolicyUse: { | 161 case PolicyUse: |
| 167 ResourceRequest request(callback.request()); | |
| 168 | |
| 169 if (!m_frame->loader()->client()->canHandleRequest(request)) { | |
| 170 handleUnimplementablePolicy(m_frame->loader()->client()->cannotS
howURLError(callback.request())); | |
| 171 callback.clearRequest(); | |
| 172 shouldContinue = false; | |
| 173 } | |
| 174 break; | 162 break; |
| 175 } | |
| 176 } | 163 } |
| 177 | 164 |
| 178 callback.call(shouldContinue); | 165 callback.call(shouldContinue); |
| 179 } | 166 } |
| 180 | 167 |
| 181 void PolicyChecker::continueAfterNewWindowPolicy(PolicyAction policy) | 168 void PolicyChecker::continueAfterNewWindowPolicy(PolicyAction policy) |
| 182 { | 169 { |
| 183 PolicyCallback callback = m_callback; | 170 PolicyCallback callback = m_callback; |
| 184 m_callback.clear(); | 171 m_callback.clear(); |
| 185 | 172 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 198 callback.call(policy == PolicyUse); | 185 callback.call(policy == PolicyUse); |
| 199 } | 186 } |
| 200 | 187 |
| 201 void PolicyChecker::continueAfterContentPolicy(PolicyAction policy) | 188 void PolicyChecker::continueAfterContentPolicy(PolicyAction policy) |
| 202 { | 189 { |
| 203 PolicyCallback callback = m_callback; | 190 PolicyCallback callback = m_callback; |
| 204 m_callback.clear(); | 191 m_callback.clear(); |
| 205 callback.call(policy); | 192 callback.call(policy); |
| 206 } | 193 } |
| 207 | 194 |
| 208 void PolicyChecker::handleUnimplementablePolicy(const ResourceError& error) | |
| 209 { | |
| 210 m_delegateIsHandlingUnimplementablePolicy = true; | |
| 211 m_frame->loader()->client()->dispatchUnableToImplementPolicy(error); | |
| 212 m_delegateIsHandlingUnimplementablePolicy = false; | |
| 213 } | |
| 214 | |
| 215 } // namespace WebCore | 195 } // namespace WebCore |
| OLD | NEW |