Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: src/plugin/PluginWbPassThrough.cpp

Issue 29330709: Issue #3343 - Eliminate unescaping of URL (Closed)
Patch Set: Reverted unrelated defect introduction Created Nov. 25, 2015, 4:17 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/plugin/PluginUtil.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 if (pszAdditionalHeaders) 330 if (pszAdditionalHeaders)
332 { 331 {
333 *pszAdditionalHeaders = nullptr; 332 *pszAdditionalHeaders = nullptr;
334 } 333 }
335 334
336 CComPtr<IHttpNegotiate> httpNegotiate; 335 CComPtr<IHttpNegotiate> httpNegotiate;
337 QueryServiceFromClient(&httpNegotiate); 336 QueryServiceFromClient(&httpNegotiate);
338 // This fills the pszAdditionalHeaders with more headers. One of which is the Referer header, which we need. 337 // This fills the pszAdditionalHeaders with more headers. One of which is the Referer header, which we need.
(...skipping 30 matching lines...) Expand all
369 if (IsFlashRequest(pszAdditionalHeaders)) 368 if (IsFlashRequest(pszAdditionalHeaders))
370 { 369 {
371 m_contentType = ContentType::CONTENT_TYPE_OBJECT_SUBREQUEST; 370 m_contentType = ContentType::CONTENT_TYPE_OBJECT_SUBREQUEST;
372 } 371 }
373 372
374 if (pszAdditionalHeaders && *pszAdditionalHeaders && IsXmlHttpRequest(*pszAddi tionalHeaders)) 373 if (pszAdditionalHeaders && *pszAdditionalHeaders && IsXmlHttpRequest(*pszAddi tionalHeaders))
375 { 374 {
376 m_contentType = ContentType::CONTENT_TYPE_XMLHTTPREQUEST; 375 m_contentType = ContentType::CONTENT_TYPE_XMLHTTPREQUEST;
377 } 376 }
378 377
379 if (client->ShouldBlock(szURL, m_contentType, m_boundDomain, /*debug flag but must be set*/true)) 378 if (client->ShouldBlock(src, m_contentType, m_boundDomain, /*debug flag but mu st be set*/true))
380 { 379 {
381 // NOTE: Feeding custom HTML to Flash, instead of original object subrequest 380 // NOTE: Feeding custom HTML to Flash, instead of original object subrequest
382 // doesn't have much sense. It also can manifest in unwanted result 381 // doesn't have much sense. It also can manifest in unwanted result
383 // like video being blocked (See https://issues.adblockplus.org/ticket/1669) 382 // like video being blocked (See https://issues.adblockplus.org/ticket/1669)
384 // So we report blocked object subrequests as failed, not just empty HTML. 383 // So we report blocked object subrequests as failed, not just empty HTML.
385 m_isCustomResponse = m_contentType != ContentType::CONTENT_TYPE_OBJECT_SUBRE QUEST; 384 m_isCustomResponse = m_contentType != ContentType::CONTENT_TYPE_OBJECT_SUBRE QUEST;
386 return E_ABORT; 385 return E_ABORT;
387 } 386 }
388 return nativeHr; 387 return nativeHr;
389 } 388 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 } 433 }
435 434
436 return OnStart(szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved, m_spInterne tProtocol); 435 return OnStart(szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved, m_spInterne tProtocol);
437 } 436 }
438 437
439 STDMETHODIMP WBPassthru::Read(/* [in, out] */ void *pv,/* [in] */ ULONG cb,/* [o ut] */ ULONG *pcbRead) 438 STDMETHODIMP WBPassthru::Read(/* [in, out] */ void *pv,/* [in] */ ULONG cb,/* [o ut] */ ULONG *pcbRead)
440 { 439 {
441 WBPassthruSink* pSink = GetSink(); 440 WBPassthruSink* pSink = GetSink();
442 return pSink->OnRead(pv, cb, pcbRead); 441 return pSink->OnRead(pv, cb, pcbRead);
443 } 442 }
OLDNEW
« no previous file with comments | « src/plugin/PluginUtil.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld