Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 90 | 90 |
| 91 void didFail(const ResourceError& error) | 91 void didFail(const ResourceError& error) |
| 92 { | 92 { |
| 93 m_done = true; | 93 m_done = true; |
| 94 if (m_client) | 94 if (m_client) |
| 95 m_client->didFail(error); | 95 m_client->didFail(error); |
| 96 } | 96 } |
| 97 | 97 |
| 98 void didFailAccessControlCheck(const ResourceError& error) | 98 void didFailAccessControlCheck(const ResourceError& error) |
| 99 { | 99 { |
| 100 m_done = true; | 100 // Let the client first handle the failure by possibly issuing |
| 101 // a didFail() with a cancellation error before marking this | |
| 102 // wrapper as 'done'. | |
| 101 if (m_client) | 103 if (m_client) |
| 102 m_client->didFailAccessControlCheck(error); | 104 m_client->didFailAccessControlCheck(error); |
| 105 m_done = true; | |
|
abarth-chromium
2014/06/22 14:48:26
Is the client allowed to destroy |this| during the
sof
2014/06/22 15:49:14
I don't think it will be able to accomplish that p
| |
| 103 } | 106 } |
| 104 | 107 |
| 105 void didFailRedirectCheck() | 108 void didFailRedirectCheck() |
| 106 { | 109 { |
| 107 m_done = true; | |
| 108 if (m_client) | 110 if (m_client) |
| 109 m_client->didFailRedirectCheck(); | 111 m_client->didFailRedirectCheck(); |
| 112 m_done = true; | |
| 110 } | 113 } |
| 111 | 114 |
| 112 void didReceiveAuthenticationCancellation(unsigned long identifier, const Re sourceResponse& response) | 115 void didReceiveAuthenticationCancellation(unsigned long identifier, const Re sourceResponse& response) |
| 113 { | 116 { |
| 114 if (m_client) | 117 if (m_client) |
| 115 m_client->didReceiveResponse(identifier, response); | 118 m_client->didReceiveResponse(identifier, response); |
| 116 } | 119 } |
| 117 | 120 |
| 118 void didDownloadData(int dataLength) | 121 void didDownloadData(int dataLength) |
| 119 { | 122 { |
| 120 if (m_client) | 123 if (m_client) |
| 121 m_client->didDownloadData(dataLength); | 124 m_client->didDownloadData(dataLength); |
| 122 } | 125 } |
| 123 | 126 |
| 124 protected: | 127 protected: |
| 125 explicit ThreadableLoaderClientWrapper(ThreadableLoaderClient* client) | 128 explicit ThreadableLoaderClientWrapper(ThreadableLoaderClient* client) |
| 126 : m_client(client) | 129 : m_client(client) |
| 127 , m_done(false) | 130 , m_done(false) |
| 128 { | 131 { |
| 129 } | 132 } |
| 130 | 133 |
| 131 ThreadableLoaderClient* m_client; | 134 ThreadableLoaderClient* m_client; |
| 132 bool m_done; | 135 bool m_done; |
| 133 }; | 136 }; |
| 134 | 137 |
| 135 } // namespace WebCore | 138 } // namespace WebCore |
| 136 | 139 |
| 137 #endif // ThreadableLoaderClientWrapper_h | 140 #endif // ThreadableLoaderClientWrapper_h |
| OLD | NEW |