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

Delta Between Two Patch Sets: src/plugin/AdblockPlusClient.cpp

Issue 4882650246414336: Issue 2005 - Refactor working with strings in InputBuffer and OutputBuffer
Left Patch Set: address some comments Created Feb. 19, 2015, 5:21 p.m.
Right Patch Set: rebase Created April 2, 2015, 11:09 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | src/shared/Communication.h » ('j') | test/CommunicationTest.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
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 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 message >> description.title; 138 message >> description.title;
139 message >> description.specialization; 139 message >> description.specialization;
140 message >> description.listed; 140 message >> description.listed;
141 result.push_back(description); 141 result.push_back(description);
142 } 142 }
143 return result; 143 return result;
144 } 144 }
145 } 145 }
146 146
147 CAdblockPlusClient* CAdblockPlusClient::s_instance = NULL; 147 CAdblockPlusClient* CAdblockPlusClient::s_instance = NULL;
148 148 CComAutoCriticalSection CAdblockPlusClient::s_criticalSectionLocal;
149 CAdblockPlusClient::CAdblockPlusClient() : CPluginClientBase() 149
150 CAdblockPlusClient::CAdblockPlusClient()
150 { 151 {
151 m_filter = std::auto_ptr<CPluginFilter>(new CPluginFilter()); 152 m_filter = std::auto_ptr<CPluginFilter>(new CPluginFilter());
152 } 153 }
153 154
154 bool CAdblockPlusClient::CallEngine(Communication::OutputBuffer& message, Commun ication::InputBuffer& inputBuffer) 155 bool CAdblockPlusClient::CallEngine(Communication::OutputBuffer& message, Commun ication::InputBuffer& inputBuffer)
155 { 156 {
156 DEBUG_GENERAL("CallEngine start"); 157 DEBUG_GENERAL("CallEngine start");
157 CriticalSection::Lock lock(enginePipeLock); 158 CriticalSection::Lock lock(enginePipeLock);
158 try 159 try
159 { 160 {
160 if (!enginePipe) 161 if (!enginePipe)
161 enginePipe.reset(OpenEnginePipe()); 162 enginePipe.reset(OpenEnginePipe());
162 enginePipe->WriteMessage(message); 163 enginePipe->WriteMessage(message);
163 inputBuffer = enginePipe->ReadMessage(); 164 inputBuffer = enginePipe->ReadMessage();
164 } 165 }
165 catch (const std::exception& e) 166 catch (const std::exception& ex)
166 { 167 {
167 DEBUG_GENERAL(e.what()); 168 DEBUG_EXCEPTION(ex);
168 return false; 169 return false;
169 } 170 }
170 DEBUG_GENERAL("CallEngine end"); 171 DEBUG_GENERAL("CallEngine end");
171 return true; 172 return true;
172 } 173 }
173 174
174 bool CAdblockPlusClient::CallEngine(Communication::ProcType proc, Communication: :InputBuffer& inputBuffer) 175 bool CAdblockPlusClient::CallEngine(Communication::ProcType proc, Communication: :InputBuffer& inputBuffer)
175 { 176 {
176 Communication::OutputBuffer message; 177 Communication::OutputBuffer message;
177 message << proc; 178 message << proc;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 m_criticalSectionFilter.Lock(); 248 m_criticalSectionFilter.Lock();
248 { 249 {
249 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); 250 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent);
250 } 251 }
251 m_criticalSectionFilter.Unlock(); 252 m_criticalSectionFilter.Unlock();
252 return isHidden; 253 return isHidden;
253 } 254 }
254 255
255 bool CAdblockPlusClient::IsWhitelistedUrl(const std::wstring& url) 256 bool CAdblockPlusClient::IsWhitelistedUrl(const std::wstring& url)
256 { 257 {
257 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" start").c_str()); 258 return !GetWhitelistingFilter(url).empty();
258 Communication::OutputBuffer request; 259 }
259 request << Communication::PROC_IS_WHITELISTED_URL << url; 260
260 261 std::string CAdblockPlusClient::GetWhitelistingFilter(const std::wstring& url)
261 Communication::InputBuffer response; 262 {
262 if (!CallEngine(request, response)) 263 DEBUG_GENERAL((L"GetWhitelistingFilter: " + url + L" start").c_str());
263 return false; 264 Communication::OutputBuffer request;
264 265 request << Communication::PROC_GET_WHITELISTING_FITER << url;
265 bool isWhitelisted; 266
266 response >> isWhitelisted; 267 Communication::InputBuffer response;
267 268 if (!CallEngine(request, response))
268 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" end").c_str()); 269 return "";
269 return isWhitelisted; 270
271 std::string filterText;
272 response >> filterText;
273
274 DEBUG_GENERAL((L"GetWhitelistingFilter: " + url + L" end").c_str());
275 return filterText;
270 } 276 }
271 277
272 bool CAdblockPlusClient::IsElemhideWhitelistedOnDomain(const std::wstring& url) 278 bool CAdblockPlusClient::IsElemhideWhitelistedOnDomain(const std::wstring& url)
273 { 279 {
274 Communication::OutputBuffer request; 280 Communication::OutputBuffer request;
275 request << Communication::PROC_IS_ELEMHIDE_WHITELISTED_ON_URL << url; 281 request << Communication::PROC_IS_ELEMHIDE_WHITELISTED_ON_URL << url;
276 282
277 Communication::InputBuffer response; 283 Communication::InputBuffer response;
278 if (!CallEngine(request, response)) 284 if (!CallEngine(request, response))
279 return false; 285 return false;
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 } 397 }
392 398
393 void CAdblockPlusClient::AddFilter(const std::wstring& text) 399 void CAdblockPlusClient::AddFilter(const std::wstring& text)
394 { 400 {
395 Communication::OutputBuffer request; 401 Communication::OutputBuffer request;
396 request << Communication::PROC_ADD_FILTER << text; 402 request << Communication::PROC_ADD_FILTER << text;
397 CallEngine(request); 403 CallEngine(request);
398 } 404 }
399 405
400 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) 406 void CAdblockPlusClient::RemoveFilter(const std::wstring& text)
407 {
408 RemoveFilter(ToUtf8String(text));
409 }
410
411 void CAdblockPlusClient::RemoveFilter(const std::string& text)
401 { 412 {
402 Communication::OutputBuffer request; 413 Communication::OutputBuffer request;
403 request << Communication::PROC_REMOVE_FILTER << text; 414 request << Communication::PROC_REMOVE_FILTER << text;
404 CallEngine(request); 415 CallEngine(request);
405 } 416 }
406 417
407 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v alue) 418 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v alue)
408 { 419 {
409 Communication::OutputBuffer request; 420 Communication::OutputBuffer request;
410 request << Communication::PROC_SET_PREF << name << value; 421 request << Communication::PROC_SET_PREF << name << value;
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 DEBUG_GENERAL("CompareVersions"); 562 DEBUG_GENERAL("CompareVersions");
552 Communication::OutputBuffer request; 563 Communication::OutputBuffer request;
553 request << Communication::PROC_COMPARE_VERSIONS << v1 << v2; 564 request << Communication::PROC_COMPARE_VERSIONS << v1 << v2;
554 Communication::InputBuffer response; 565 Communication::InputBuffer response;
555 if (!CallEngine(request, response)) 566 if (!CallEngine(request, response))
556 return 0; 567 return 0;
557 int result; 568 int result;
558 response >> result; 569 response >> result;
559 return result; 570 return result;
560 } 571 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld