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

Delta Between Two Patch Sets: src/engine/main.cpp

Issue 11043057: First run page triggering (Closed)
Left Patch Set: Comments addressed Created July 20, 2013, 8:11 p.m.
Right Patch Set: Minor refactoring. Renaming and a small cleanup. Created July 26, 2013, 12:05 p.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 | « html/static/js/IESettings.js ('k') | src/plugin/AdblockPlusClient.h » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 #include <AdblockPlus.h> 1 #include <AdblockPlus.h>
2 #include <functional> 2 #include <functional>
3 #include <vector> 3 #include <vector>
4 #include <Windows.h> 4 #include <Windows.h>
5 5
6 #include "../shared/AutoHandle.h" 6 #include "../shared/AutoHandle.h"
7 #include "../shared/Communication.h" 7 #include "../shared/Communication.h"
8 #include "../shared/Dictionary.h" 8 #include "../shared/Dictionary.h"
9 #include "../shared/Utils.h" 9 #include "../shared/Utils.h"
10 #include "../shared/Version.h" 10 #include "../shared/Version.h"
(...skipping 23 matching lines...) Expand all
34 { 34 {
35 AdblockPlus::SubscriptionPtr subscription = subscriptions[i]; 35 AdblockPlus::SubscriptionPtr subscription = subscriptions[i];
36 response << subscription->GetProperty("url")->AsString() 36 response << subscription->GetProperty("url")->AsString()
37 << subscription->GetProperty("title")->AsString() 37 << subscription->GetProperty("title")->AsString()
38 << subscription->GetProperty("specialization")->AsString() 38 << subscription->GetProperty("specialization")->AsString()
39 << subscription->IsListed(); 39 << subscription->IsListed();
40 } 40 }
41 } 41 }
42 42
43 CriticalSection firstRunLock; 43 CriticalSection firstRunLock;
44 bool firstRunActionTaken = false; 44 bool firstRunActionExecuted = false;
45 45
46 Communication::OutputBuffer HandleRequest(Communication::InputBuffer& request) 46 Communication::OutputBuffer HandleRequest(Communication::InputBuffer& request)
47 { 47 {
48 Communication::OutputBuffer response; 48 Communication::OutputBuffer response;
49 49
50 Communication::ProcType procedure; 50 Communication::ProcType procedure;
51 request >> procedure; 51 request >> procedure;
52 switch (procedure) 52 switch (procedure)
53 { 53 {
54 case Communication::PROC_MATCHES: 54 case Communication::PROC_MATCHES:
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 } 142 }
143 case Communication::PROC_REMOVE_FILTER: 143 case Communication::PROC_REMOVE_FILTER:
144 { 144 {
145 std::string text; 145 std::string text;
146 request >> text; 146 request >> text;
147 filterEngine->GetFilter(text)->RemoveFromList(); 147 filterEngine->GetFilter(text)->RemoveFromList();
148 break; 148 break;
149 } 149 }
150 case Communication::PROC_SET_PREF: 150 case Communication::PROC_SET_PREF:
151 { 151 {
152 std::string prefName = ""; 152 std::string prefName;
153 std::string prefValue = "";
154 request >> prefName; 153 request >> prefName;
155 request >> prefValue; 154
156 filterEngine->SetPref(prefName, filterEngine->GetJsEngine()->NewValue(pr efValue)); 155 Communication::ValueType valueType = request.GetType();
156 switch (valueType)
157 {
158 case Communication::TYPE_STRING:
159 {
160 std::string prefValue;
161 request >> prefValue;
162 filterEngine->SetPref(prefName, filterEngine->GetJsEngine()->NewValu e(prefValue));
163 break;
164 }
165 case Communication::TYPE_INT64:
166 {
167 int64_t prefValue;
168 request >> prefValue;
169 filterEngine->SetPref(prefName, filterEngine->GetJsEngine()->NewValu e(prefValue));
170 break;
171 }
172 case Communication::TYPE_INT32:
173 {
174 int prefValue;
175 request >> prefValue;
176 filterEngine->SetPref(prefName, filterEngine->GetJsEngine()->NewValu e(prefValue));
177 break;
178 }
179 case Communication::TYPE_BOOL:
180 {
181 bool prefValue;
182 request >> prefValue;
183 filterEngine->SetPref(prefName, filterEngine->GetJsEngine()->NewValu e(prefValue));
184 break;
185 }
186 default:
187 break;
188 }
157 break; 189 break;
158 } 190 }
159 case Communication::PROC_GET_PREF: 191 case Communication::PROC_GET_PREF:
160 { 192 {
161 std::string name; 193 std::string name;
162 request >> name; 194 request >> name;
163 195
164 AdblockPlus::JsValuePtr valuePtr = filterEngine->GetPref(name); 196 AdblockPlus::JsValuePtr valuePtr = filterEngine->GetPref(name);
165 if ((valuePtr->IsNull()) || (!valuePtr->IsString())) 197 if (valuePtr->IsNull() || valuePtr->IsUndefined())
166 response << 0; 198 {
199 // Report no success
200 response << false;
201 break;
202 }
203
204 // Report success
205 response << true;
206
207 if (valuePtr->IsBool())
208 {
209 response << valuePtr->AsBool();
210 }
211 else if (valuePtr->IsNumber())
212 {
213 response << valuePtr->AsInt();
214 }
215 else if (valuePtr->IsString())
216 {
217 response << valuePtr->AsString();
218 }
219 break;
220 }
221 case Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED:
222 {
223 CriticalSection::Lock lock(firstRunLock);
224 if (!firstRunActionExecuted && filterEngine->IsFirstRun())
225 {
226 response << true;
227 firstRunActionExecuted = true;
228 }
167 else 229 else
168 { 230 {
169 response << 1; 231 response << false;
170 response << valuePtr->AsString();
171 }
172 break;
173 }
174 case Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED:
175 {
176 CriticalSection::Lock lock(firstRunLock);
177 if (!firstRunActionTaken && filterEngine->IsFirstRun())
178 {
179 response << !firstRunActionTaken;
Wladimir Palant 2013/07/21 11:53:45 How about just response << true? No point obscurin
180 firstRunActionTaken = true;
181 } 232 }
Wladimir Palant 2013/07/21 11:53:45 What about: else response << false; Shouldn't
182 break; 233 break;
183 } 234 }
184 235
185 } 236 }
186 return response; 237 return response;
187 } 238 }
188 239
189 DWORD WINAPI ClientThread(LPVOID param) 240 DWORD WINAPI ClientThread(LPVOID param)
190 { 241 {
191 std::auto_ptr<Communication::Pipe> pipe(static_cast<Communication::Pipe*>(pa ram)); 242 std::auto_ptr<Communication::Pipe> pipe(static_cast<Communication::Pipe*>(pa ram));
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 } 337 }
287 catch (std::runtime_error e) 338 catch (std::runtime_error e)
288 { 339 {
289 DebugException(e); 340 DebugException(e);
290 return 1; 341 return 1;
291 } 342 }
292 } 343 }
293 344
294 return 0; 345 return 0;
295 } 346 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld