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))) |
| 228 { |
| 229 contentType = CFilter::contentTypeSubdocument; |
| 230 // add frame to a referrer chain |
| 231 if (client->ShouldBlock(boundDomain, contentType, tab->GetDocumentUrl(),
true)) |
| 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 |