OLD | NEW |
1 /* | 1 /* |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
3 * Copyright (C) 2006-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2015 Eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 return false; | 318 return false; |
319 } | 319 } |
320 | 320 |
321 STDMETHODIMP WBPassthruSink::BeginningTransaction(LPCWSTR szURL, LPCWSTR szHeade
rs, DWORD dwReserved, LPWSTR* pszAdditionalHeaders) | 321 STDMETHODIMP WBPassthruSink::BeginningTransaction(LPCWSTR szURL, LPCWSTR szHeade
rs, DWORD dwReserved, LPWSTR* pszAdditionalHeaders) |
322 { | 322 { |
323 if (!szURL) | 323 if (!szURL) |
324 { | 324 { |
325 return E_POINTER; | 325 return E_POINTER; |
326 } | 326 } |
327 std::wstring src = szURL; | 327 std::wstring src = szURL; |
328 UnescapeUrl(src); | |
329 DEBUG_GENERAL(src); | 328 DEBUG_GENERAL(src); |
330 | 329 |
331 std::string acceptHeader = ExtractHttpAcceptHeader(m_spTargetProtocol); | 330 std::string acceptHeader = ExtractHttpAcceptHeader(m_spTargetProtocol); |
332 | 331 |
333 if (pszAdditionalHeaders) | 332 if (pszAdditionalHeaders) |
334 { | 333 { |
335 *pszAdditionalHeaders = nullptr; | 334 *pszAdditionalHeaders = nullptr; |
336 } | 335 } |
337 | 336 |
338 CComPtr<IHttpNegotiate> httpNegotiate; | 337 CComPtr<IHttpNegotiate> httpNegotiate; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
371 if (IsFlashRequest(pszAdditionalHeaders)) | 370 if (IsFlashRequest(pszAdditionalHeaders)) |
372 { | 371 { |
373 m_contentType = ContentType::CONTENT_TYPE_OBJECT_SUBREQUEST; | 372 m_contentType = ContentType::CONTENT_TYPE_OBJECT_SUBREQUEST; |
374 } | 373 } |
375 | 374 |
376 if (pszAdditionalHeaders && *pszAdditionalHeaders && IsXmlHttpRequest(*pszAddi
tionalHeaders)) | 375 if (pszAdditionalHeaders && *pszAdditionalHeaders && IsXmlHttpRequest(*pszAddi
tionalHeaders)) |
377 { | 376 { |
378 m_contentType = ContentType::CONTENT_TYPE_XMLHTTPREQUEST; | 377 m_contentType = ContentType::CONTENT_TYPE_XMLHTTPREQUEST; |
379 } | 378 } |
380 | 379 |
381 if (client->ShouldBlock(szURL, m_contentType, m_boundDomain, /*debug flag but
must be set*/true)) | 380 if (client->ShouldBlock(src, m_contentType, m_boundDomain, /*debug flag but mu
st be set*/true)) |
382 { | 381 { |
383 // NOTE: Feeding custom HTML to Flash, instead of original object subrequest | 382 // NOTE: Feeding custom HTML to Flash, instead of original object subrequest |
384 // doesn't have much sense. It also can manifest in unwanted result | 383 // doesn't have much sense. It also can manifest in unwanted result |
385 // like video being blocked (See https://issues.adblockplus.org/ticket/1669) | 384 // like video being blocked (See https://issues.adblockplus.org/ticket/1669) |
386 // So we report blocked object subrequests as failed, not just empty HTML. | 385 // So we report blocked object subrequests as failed, not just empty HTML. |
387 m_isCustomResponse = m_contentType != ContentType::CONTENT_TYPE_OBJECT_SUBRE
QUEST; | 386 m_isCustomResponse = m_contentType != ContentType::CONTENT_TYPE_OBJECT_SUBRE
QUEST; |
388 return E_ABORT; | 387 return E_ABORT; |
389 } | 388 } |
390 return nativeHr; | 389 return nativeHr; |
391 } | 390 } |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 } | 435 } |
437 | 436 |
438 return OnStart(szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved, m_spInterne
tProtocol); | 437 return OnStart(szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved, m_spInterne
tProtocol); |
439 } | 438 } |
440 | 439 |
441 STDMETHODIMP WBPassthru::Read(/* [in, out] */ void *pv,/* [in] */ ULONG cb,/* [o
ut] */ ULONG *pcbRead) | 440 STDMETHODIMP WBPassthru::Read(/* [in, out] */ void *pv,/* [in] */ ULONG cb,/* [o
ut] */ ULONG *pcbRead) |
442 { | 441 { |
443 WBPassthruSink* pSink = GetSink(); | 442 WBPassthruSink* pSink = GetSink(); |
444 return pSink->OnRead(pv, cb, pcbRead); | 443 return pSink->OnRead(pv, cb, pcbRead); |
445 } | 444 } |
OLD | NEW |