| Left: | ||
| Right: |
| OLD | NEW |
|---|---|
| 1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" |
| 2 | 2 |
| 3 #include "PluginWbPassThrough.h" | 3 #include "PluginWbPassThrough.h" |
| 4 #include "PluginClient.h" | 4 #include "PluginClient.h" |
| 5 #include "PluginClientFactory.h" | 5 #include "PluginClientFactory.h" |
| 6 #ifdef SUPPORT_FILTER | 6 #ifdef SUPPORT_FILTER |
| 7 #include "PluginFilter.h" | 7 #include "PluginFilter.h" |
| 8 #endif | 8 #endif |
| 9 #include "PluginSettings.h" | 9 #include "PluginSettings.h" |
| 10 #include "PluginClass.h" | 10 #include "PluginClass.h" |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 145 pOIBindInfo->GetBindString(BINDSTRING_ACCEPT_MIMES, mime, 10, &resLen); | 145 pOIBindInfo->GetBindString(BINDSTRING_ACCEPT_MIMES, mime, 10, &resLen); |
| 146 if (mime && resLen > 0) | 146 if (mime && resLen > 0) |
| 147 { | 147 { |
| 148 mimeType.SetString(mime[0]); | 148 mimeType.SetString(mime[0]); |
| 149 } | 149 } |
| 150 LPOLESTR bindToObject = 0; | 150 LPOLESTR bindToObject = 0; |
| 151 pOIBindInfo->GetBindString(BINDSTRING_FLAG_BIND_TO_OBJECT, &bindToObject, 1, &resLen); | 151 pOIBindInfo->GetBindString(BINDSTRING_FLAG_BIND_TO_OBJECT, &bindToObject, 1, &resLen); |
| 152 LPOLESTR domainRetrieved = 0; | 152 LPOLESTR domainRetrieved = 0; |
| 153 if (resLen == 0 || wcscmp(bindToObject, L"FALSE") == 0) | 153 if (resLen == 0 || wcscmp(bindToObject, L"FALSE") == 0) |
| 154 { | 154 { |
| 155 HRESULT hr = pOIBindInfo->GetBindString(BINDSTRING_XDR_ORIGIN, &domainRetr ieved, 1, &resLen); | 155 HRESULT hr = S_OK; |
| 156 if (CPluginClient::GetInstance()->GetIEVersion() > 8) | |
| 157 { | |
| 158 hr = pOIBindInfo->GetBindString(BINDSTRING_ROOTDOC_URL, &domainRetrieved , 1, &resLen); | |
| 159 } | |
| 160 else | |
| 161 { | |
| 162 hr = pOIBindInfo->GetBindString(BINDSTRING_XDR_ORIGIN, &domainRetrieved, 1, &resLen); | |
| 163 } | |
| 156 | 164 |
| 157 if ((hr == S_OK) && domainRetrieved && (resLen > 0)) | 165 if ((hr == S_OK) && domainRetrieved && (resLen > 0)) |
| 158 { | 166 { |
| 159 boundDomain.SetString(domainRetrieved); | 167 boundDomain.SetString(domainRetrieved); |
| 160 } | 168 } |
| 161 } | 169 } |
| 162 } | 170 } |
| 163 | 171 |
| 164 CString cookie; | 172 CString cookie; |
| 165 ULONG len1 = 2048; | 173 ULONG len1 = 2048; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 200 | 208 |
| 201 DEBUG_BLOCKER("Blocker::Blocking Http-request:" + src); | 209 DEBUG_BLOCKER("Blocker::Blocking Http-request:" + src); |
| 202 } | 210 } |
| 203 } | 211 } |
| 204 if (!isBlocked) | 212 if (!isBlocked) |
| 205 { | 213 { |
| 206 DEBUG_BLOCKER("Blocker::Ignoring Http-request:" + src) | 214 DEBUG_BLOCKER("Blocker::Ignoring Http-request:" + src) |
| 207 } | 215 } |
| 208 } | 216 } |
| 209 | 217 |
| 210 | 218 // Request from unknown thread, so we don't know the tab |
| 211 if (tab == NULL) | 219 if (tab == NULL) |
| 212 { | 220 { |
| 213 contentType = GetContentType(mimeType, boundDomain, src); | 221 contentType = GetContentType(mimeType, boundDomain, src); |
| 222 | |
| 223 if (CPluginClient::GetInstance()->GetIEVersion() > 8) | |
| 224 { | |
| 225 // Find tab based on document URL | |
| 226 tab = CPluginClass::GetTab(boundDomain.GetString()); | |
| 227 if ((tab != 0) && (tab->IsFrameCached(src))) | |
|
Eric
2014/10/08 17:37:54
Prefer nullptr to 0, but the idiom we're using (as
| |
| 228 { | |
| 229 contentType = CFilter::contentTypeSubdocument; | |
|
sergei
2014/10/09 13:46:22
I would leave the comment somewhere
- that it's on
| |
| 230 // add frame to a referrer chain | |
| 231 if (client->ShouldBlock(boundDomain, contentType, tab->GetDocumentUrl(), true)) | |
|
sergei
2014/10/09 13:46:22
Instead of `boundDomain` there should be `src`
| |
| 232 { | |
| 233 isBlocked = true; | |
| 234 } | |
| 235 } | |
| 236 } | |
| 214 if (client->ShouldBlock(src, contentType, boundDomain, true)) | 237 if (client->ShouldBlock(src, contentType, boundDomain, true)) |
| 215 { | 238 { |
| 216 isBlocked = true; | 239 isBlocked = true; |
| 217 } | 240 } |
| 218 } | 241 } |
| 219 | 242 |
| 220 #ifdef _DEBUG | 243 #ifdef _DEBUG |
| 221 CString type; | 244 CString type; |
| 222 | 245 |
| 223 if (contentType == CFilter::contentTypeDocument) type = "DOCUMENT"; | 246 if (contentType == CFilter::contentTypeDocument) type = "DOCUMENT"; |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 413 } | 436 } |
| 414 | 437 |
| 415 STDMETHODIMP WBPassthru::UnlockRequest() | 438 STDMETHODIMP WBPassthru::UnlockRequest() |
| 416 { | 439 { |
| 417 if (m_shouldSupplyCustomContent) | 440 if (m_shouldSupplyCustomContent) |
| 418 { | 441 { |
| 419 return S_OK; | 442 return S_OK; |
| 420 } | 443 } |
| 421 return PassthroughAPP::CInternetProtocol<WBStartPolicy>::UnlockRequest(); | 444 return PassthroughAPP::CInternetProtocol<WBStartPolicy>::UnlockRequest(); |
| 422 } | 445 } |
| OLD | NEW |