| OLD | NEW |
| 1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" |
| 2 | 2 |
| 3 #include "PluginSettings.h" | 3 #include "PluginSettings.h" |
| 4 #include "PluginSystem.h" | 4 #include "PluginSystem.h" |
| 5 #include "PluginFilter.h" | 5 #include "PluginFilter.h" |
| 6 #include "PluginClientFactory.h" | 6 #include "PluginClientFactory.h" |
| 7 #include "PluginDictionary.h" | 7 #include "PluginDictionary.h" |
| 8 #include "PluginHttpRequest.h" | 8 #include "PluginHttpRequest.h" |
| 9 #include "PluginMutex.h" | 9 #include "PluginMutex.h" |
| 10 #include "PluginClass.h" | 10 #include "PluginClass.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 while ((pipe = OpenPipe(Communication::pipeName)) == INVALID_HANDLE_VALU
E) | 59 while ((pipe = OpenPipe(Communication::pipeName)) == INVALID_HANDLE_VALU
E) |
| 60 { | 60 { |
| 61 const int step = 10; | 61 const int step = 10; |
| 62 Sleep(step); | 62 Sleep(step); |
| 63 timeout -= step; | 63 timeout -= step; |
| 64 if (timeout <= 0) | 64 if (timeout <= 0) |
| 65 throw std::runtime_error("Unable to open Adblock Plus Engine pipe"); | 65 throw std::runtime_error("Unable to open Adblock Plus Engine pipe"); |
| 66 } | 66 } |
| 67 } | 67 } |
| 68 | 68 |
| 69 DWORD mode = PIPE_READMODE_MESSAGE; | 69 DWORD mode = PIPE_READMODE_MESSAGE; |
| 70 if (!SetNamedPipeHandleState(pipe, &mode, 0, 0)) | 70 if (!SetNamedPipeHandleState(pipe, &mode, 0, 0)) |
| 71 throw std::runtime_error("SetNamedPipeHandleState failed"); | 71 throw std::runtime_error("SetNamedPipeHandleState failed"); |
| 72 | 72 |
| 73 return pipe; | 73 return pipe; |
| 74 } | 74 } |
| 75 catch(std::exception e) | 75 catch(std::exception e) |
| 76 { | 76 { |
| 77 DEBUG_GENERAL(e.what()); | 77 DEBUG_GENERAL(e.what()); |
| 78 return INVALID_HANDLE_VALUE; | 78 return INVALID_HANDLE_VALUE; |
| 79 } | 79 } |
| 80 } | 80 } |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 cbData = 50; | 203 cbData = 50; |
| 204 status = RegQueryValueEx(hKey, L"Version", NULL, &type, (BYTE*)version, &cbDat
a); | 204 status = RegQueryValueEx(hKey, L"Version", NULL, &type, (BYTE*)version, &cbDat
a); |
| 205 if (status != 0) | 205 if (status != 0) |
| 206 { | 206 { |
| 207 return 0; | 207 return 0; |
| 208 } | 208 } |
| 209 RegCloseKey(hKey); | 209 RegCloseKey(hKey); |
| 210 return (int)(version[0] - 48); | 210 return (int)(version[0] - 48); |
| 211 } | 211 } |
| 212 | 212 |
| 213 std::string CallAdblockPlusEngineProcedure(const std::vector<std::string>& args) | 213 Communication::InputBuffer CallAdblockPlusEngineProcedure(Communication::OutputB
uffer& message) |
| 214 { | 214 { |
| 215 AutoHandle pipe(OpenAdblockPlusEnginePipe()); | 215 AutoHandle pipe(OpenAdblockPlusEnginePipe()); |
| 216 Communication::WriteMessage(pipe.get(), Communication::MarshalStrings(args)); | 216 Communication::WriteMessage(pipe.get(), message); |
| 217 return Communication::ReadMessage(pipe.get()); | 217 return Communication::ReadMessage(pipe.get()); |
| 218 } | 218 } |
| 219 | 219 |
| 220 bool CAdblockPlusClient::Matches(const std::string& url, const std::string& cont
entType, const std::string& domain) | 220 bool CAdblockPlusClient::Matches(const std::string& url, const std::string& cont
entType, const std::string& domain) |
| 221 { | 221 { |
| 222 std::vector<std::string> args; | 222 Communication::OutputBuffer request; |
| 223 args.push_back("Matches"); | 223 request << std::string("Matches") << url << contentType << domain; |
| 224 args.push_back(url); | |
| 225 args.push_back(contentType); | |
| 226 args.push_back(domain); | |
| 227 | 224 |
| 228 try | 225 try |
| 229 { | 226 { |
| 230 std::string response = CallAdblockPlusEngineProcedure(args); | 227 Communication::InputBuffer response = CallAdblockPlusEngineProcedure(request
); |
| 231 return response == "1"; | 228 |
| 229 bool match; |
| 230 response >> match; |
| 231 return match; |
| 232 } | 232 } |
| 233 catch (const std::exception& e) | 233 catch (const std::exception& e) |
| 234 { | 234 { |
| 235 DEBUG_GENERAL(e.what()); | 235 DEBUG_GENERAL(e.what()); |
| 236 return false; | 236 return false; |
| 237 } | 237 } |
| 238 } | 238 } |
| 239 | 239 |
| 240 std::vector<std::string> CAdblockPlusClient::GetElementHidingSelectors(std::stri
ng domain) | 240 std::vector<std::string> CAdblockPlusClient::GetElementHidingSelectors(const std
::string& domain) |
| 241 { | 241 { |
| 242 std::vector<std::string> args; | 242 Communication::OutputBuffer request; |
| 243 args.push_back("GetElementHidingSelectors"); | 243 request << std::string("GetElementHidingSelectors") << domain; |
| 244 args.push_back(domain); | |
| 245 | 244 |
| 246 try | 245 try |
| 247 { | 246 { |
| 248 std::string response = CallAdblockPlusEngineProcedure(args); | 247 Communication::InputBuffer response = CallAdblockPlusEngineProcedure(request
); |
| 249 return Communication::UnmarshalStrings(response); | 248 |
| 249 std::vector<std::string> selectors; |
| 250 int32_t length; |
| 251 response >> length; |
| 252 for (int32_t i = 0; i < length; i++) |
| 253 { |
| 254 std::string selector; |
| 255 response >> selector; |
| 256 selectors.push_back(selector); |
| 257 } |
| 258 return selectors; |
| 250 } | 259 } |
| 251 catch (const std::exception& e) | 260 catch (const std::exception& e) |
| 252 { | 261 { |
| 253 DEBUG_GENERAL(e.what()); | 262 DEBUG_GENERAL(e.what()); |
| 254 return std::vector<std::string>(); | 263 return std::vector<std::string>(); |
| 255 } | 264 } |
| 256 } | 265 } |
| 257 | 266 |
| 258 std::vector<AdblockPlus::SubscriptionPtr> CAdblockPlusClient::FetchAvailableSubs
criptions() | 267 std::vector<AdblockPlus::SubscriptionPtr> CAdblockPlusClient::FetchAvailableSubs
criptions() |
| 259 { | 268 { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 277 { | 286 { |
| 278 //TODO: implement this | 287 //TODO: implement this |
| 279 return std::vector<AdblockPlus::SubscriptionPtr>(); | 288 return std::vector<AdblockPlus::SubscriptionPtr>(); |
| 280 } | 289 } |
| 281 | 290 |
| 282 AdblockPlus::SubscriptionPtr CAdblockPlusClient::GetSubscription(std::string url
) | 291 AdblockPlus::SubscriptionPtr CAdblockPlusClient::GetSubscription(std::string url
) |
| 283 { | 292 { |
| 284 //TODO: imlement this | 293 //TODO: imlement this |
| 285 return AdblockPlus::SubscriptionPtr(); | 294 return AdblockPlus::SubscriptionPtr(); |
| 286 } | 295 } |
| OLD | NEW |