OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/api/web_request/web_request_api.h" | 5 #include "chrome/browser/extensions/api/web_request/web_request_api.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 base::StringValue* GetStatusLine(net::HttpResponseHeaders* headers) { | 338 base::StringValue* GetStatusLine(net::HttpResponseHeaders* headers) { |
339 return new base::StringValue( | 339 return new base::StringValue( |
340 headers ? headers->GetStatusLine() : std::string()); | 340 headers ? headers->GetStatusLine() : std::string()); |
341 } | 341 } |
342 | 342 |
343 void RemoveEventListenerOnUI( | 343 void RemoveEventListenerOnUI( |
344 void* profile_id, | 344 void* profile_id, |
345 const std::string& event_name, | 345 const std::string& event_name, |
346 int process_id, | 346 int process_id, |
347 const std::string& extension_id) { | 347 const std::string& extension_id) { |
348 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 348 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
349 | 349 |
350 Profile* profile = reinterpret_cast<Profile*>(profile_id); | 350 Profile* profile = reinterpret_cast<Profile*>(profile_id); |
351 if (!g_browser_process->profile_manager()->IsValidProfile(profile)) | 351 if (!g_browser_process->profile_manager()->IsValidProfile(profile)) |
352 return; | 352 return; |
353 | 353 |
354 extensions::EventRouter* event_router = | 354 extensions::EventRouter* event_router = |
355 extensions::ExtensionSystem::Get(profile)->event_router(); | 355 extensions::ExtensionSystem::Get(profile)->event_router(); |
356 if (!event_router) | 356 if (!event_router) |
357 return; | 357 return; |
358 | 358 |
359 content::RenderProcessHost* process = | 359 content::RenderProcessHost* process = |
360 content::RenderProcessHost::FromID(process_id); | 360 content::RenderProcessHost::FromID(process_id); |
361 if (!process) | 361 if (!process) |
362 return; | 362 return; |
363 | 363 |
364 event_router->RemoveEventListener(event_name, process, extension_id); | 364 event_router->RemoveEventListener(event_name, process, extension_id); |
365 } | 365 } |
366 | 366 |
367 // Sends an event to subscribers of chrome.declarativeWebRequest.onMessage. | 367 // Sends an event to subscribers of chrome.declarativeWebRequest.onMessage. |
368 // |extension_id| identifies the extension that sends and receives the event. | 368 // |extension_id| identifies the extension that sends and receives the event. |
369 // |event_argument| is passed to the event listener. | 369 // |event_argument| is passed to the event listener. |
370 void SendOnMessageEventOnUI( | 370 void SendOnMessageEventOnUI( |
371 void* profile_id, | 371 void* profile_id, |
372 const std::string& extension_id, | 372 const std::string& extension_id, |
373 scoped_ptr<base::DictionaryValue> event_argument) { | 373 scoped_ptr<base::DictionaryValue> event_argument) { |
374 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 374 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
375 | 375 |
376 Profile* profile = reinterpret_cast<Profile*>(profile_id); | 376 Profile* profile = reinterpret_cast<Profile*>(profile_id); |
377 if (!g_browser_process->profile_manager()->IsValidProfile(profile)) | 377 if (!g_browser_process->profile_manager()->IsValidProfile(profile)) |
378 return; | 378 return; |
379 | 379 |
380 scoped_ptr<base::ListValue> event_args(new base::ListValue); | 380 scoped_ptr<base::ListValue> event_args(new base::ListValue); |
381 event_args->Append(event_argument.release()); | 381 event_args->Append(event_argument.release()); |
382 | 382 |
383 extensions::EventRouter* event_router = | 383 extensions::EventRouter* event_router = |
384 extensions::ExtensionSystem::Get(profile)->event_router(); | 384 extensions::ExtensionSystem::Get(profile)->event_router(); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 static base::LazyInstance<BrowserContextKeyedAPIFactory<WebRequestAPI> > | 426 static base::LazyInstance<BrowserContextKeyedAPIFactory<WebRequestAPI> > |
427 g_factory = LAZY_INSTANCE_INITIALIZER; | 427 g_factory = LAZY_INSTANCE_INITIALIZER; |
428 | 428 |
429 // static | 429 // static |
430 BrowserContextKeyedAPIFactory<WebRequestAPI>* | 430 BrowserContextKeyedAPIFactory<WebRequestAPI>* |
431 WebRequestAPI::GetFactoryInstance() { | 431 WebRequestAPI::GetFactoryInstance() { |
432 return g_factory.Pointer(); | 432 return g_factory.Pointer(); |
433 } | 433 } |
434 | 434 |
435 void WebRequestAPI::OnListenerRemoved(const EventListenerInfo& details) { | 435 void WebRequestAPI::OnListenerRemoved(const EventListenerInfo& details) { |
436 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 436 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
437 // Note that details.event_name includes the sub-event details (e.g. "/123"). | 437 // Note that details.event_name includes the sub-event details (e.g. "/123"). |
438 BrowserThread::PostTask(BrowserThread::IO, | 438 BrowserThread::PostTask(BrowserThread::IO, |
439 FROM_HERE, | 439 FROM_HERE, |
440 base::Bind(&RemoveEventListenerOnIOThread, | 440 base::Bind(&RemoveEventListenerOnIOThread, |
441 details.browser_context, | 441 details.browser_context, |
442 details.extension_id, | 442 details.extension_id, |
443 details.event_name)); | 443 details.event_name)); |
444 } | 444 } |
445 | 445 |
446 } // namespace extensions | 446 } // namespace extensions |
(...skipping 2003 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2450 } else if ((*it)->name().find("AdBlock") != std::string::npos) { | 2450 } else if ((*it)->name().find("AdBlock") != std::string::npos) { |
2451 adblock = true; | 2451 adblock = true; |
2452 } else { | 2452 } else { |
2453 other = true; | 2453 other = true; |
2454 } | 2454 } |
2455 } | 2455 } |
2456 } | 2456 } |
2457 | 2457 |
2458 host->Send(new ExtensionMsg_UsingWebRequestAPI(adblock, adblock_plus, other)); | 2458 host->Send(new ExtensionMsg_UsingWebRequestAPI(adblock, adblock_plus, other)); |
2459 } | 2459 } |
OLD | NEW |