Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(252)

Side by Side Diff: chrome/browser/ui/intents/web_intent_picker_controller.cc

Issue 10834188: [Web Intents] Small refactor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/ui/intents/web_intent_picker_controller.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/ui/intents/web_intent_picker_controller.h" 5 #include "chrome/browser/ui/intents/web_intent_picker_controller.h"
6 6
7 #include <vector> 7 #include <vector>
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 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 GetIndexOfTabContents(tab_contents_); 458 GetIndexOfTabContents(tab_contents_);
459 chrome::ActivateTabAt(source_browser, source_index, false); 459 chrome::ActivateTabAt(source_browser, source_index, false);
460 } 460 }
461 } 461 }
462 service_tab_ = NULL; 462 service_tab_ = NULL;
463 } 463 }
464 464
465 intents_dispatcher_ = NULL; 465 intents_dispatcher_ = NULL;
466 } 466 }
467 467
468 void WebIntentPickerController::AddServiceToModel(
469 const webkit_glue::WebIntentServiceData& service) {
470 FaviconService* favicon_service = GetFaviconService(tab_contents_);
471
472 picker_model_->AddInstalledService(
473 service.title,
474 service.service_url,
475 ConvertDisposition(service.disposition));
476
477 pending_async_count_++;
478 FaviconService::Handle handle = favicon_service->GetFaviconForURL(
479 service.service_url,
480 history::FAVICON,
481 &favicon_consumer_,
482 base::Bind(
483 &WebIntentPickerController::OnFaviconDataAvailable,
484 weak_ptr_factory_.GetWeakPtr()));
485 favicon_consumer_.SetClientData(
486 favicon_service, handle, picker_model_->GetInstalledServiceCount() - 1);
487 }
488
468 void WebIntentPickerController::OnWebIntentServicesAvailable( 489 void WebIntentPickerController::OnWebIntentServicesAvailable(
469 const std::vector<webkit_glue::WebIntentServiceData>& services) { 490 const std::vector<webkit_glue::WebIntentServiceData>& services) {
470 FaviconService* favicon_service = GetFaviconService(tab_contents_); 491 for (size_t i = 0; i < services.size(); ++i)
471 for (size_t i = 0; i < services.size(); ++i) { 492 AddServiceToModel(services[i]);
472 picker_model_->AddInstalledService(
473 services[i].title,
474 services[i].service_url,
475 ConvertDisposition(services[i].disposition));
476
477 pending_async_count_++;
478 FaviconService::Handle handle = favicon_service->GetFaviconForURL(
479 services[i].service_url,
480 history::FAVICON,
481 &favicon_consumer_,
482 base::Bind(
483 &WebIntentPickerController::OnFaviconDataAvailable,
484 weak_ptr_factory_.GetWeakPtr()));
485 favicon_consumer_.SetClientData(favicon_service, handle, i);
486 }
487 493
488 RegistryCallsCompleted(); 494 RegistryCallsCompleted();
489 AsyncOperationFinished(); 495 AsyncOperationFinished();
490 } 496 }
491 497
492 void WebIntentPickerController::WebIntentServicesForExplicitIntent( 498 void WebIntentPickerController::WebIntentServicesForExplicitIntent(
493 const std::vector<webkit_glue::WebIntentServiceData>& services) { 499 const std::vector<webkit_glue::WebIntentServiceData>& services) {
494 DCHECK(intents_dispatcher_); 500 DCHECK(intents_dispatcher_);
495 DCHECK(intents_dispatcher_->GetIntent().service.is_valid()); 501 DCHECK(intents_dispatcher_->GetIntent().service.is_valid());
496 for (size_t i = 0; i < services.size(); ++i) { 502 for (size_t i = 0; i < services.size(); ++i) {
497 if (services[i].service_url != intents_dispatcher_->GetIntent().service) 503 if (services[i].service_url != intents_dispatcher_->GetIntent().service)
498 continue; 504 continue;
499 505
500 picker_model_->AddInstalledService( 506 AddServiceToModel(services[i]);
501 services[i].title,
502 services[i].service_url,
503 ConvertDisposition(services[i].disposition));
504
505 pending_async_count_++;
506 FaviconService* favicon_service = GetFaviconService(tab_contents_);
507 FaviconService::Handle handle = favicon_service->GetFaviconForURL(
508 services[i].service_url,
509 history::FAVICON,
510 &favicon_consumer_,
511 base::Bind(
512 &WebIntentPickerController::OnFaviconDataAvailable,
513 weak_ptr_factory_.GetWeakPtr()));
514 favicon_consumer_.SetClientData(
515 favicon_service, handle,
516 picker_model_->GetInstalledServiceCount() - 1);
517 507
518 if (services[i].disposition == 508 if (services[i].disposition ==
519 webkit_glue::WebIntentServiceData::DISPOSITION_INLINE) 509 webkit_glue::WebIntentServiceData::DISPOSITION_INLINE)
520 CreatePicker(); 510 CreatePicker();
521 OnServiceChosen(services[i].service_url, 511 OnServiceChosen(services[i].service_url,
522 ConvertDisposition(services[i].disposition)); 512 ConvertDisposition(services[i].disposition));
523 AsyncOperationFinished(); 513 AsyncOperationFinished();
524 return; 514 return;
525 } 515 }
526 516
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
768 // If picker is non-NULL, it was set by a test. 758 // If picker is non-NULL, it was set by a test.
769 if (picker_ == NULL) 759 if (picker_ == NULL)
770 picker_ = WebIntentPicker::Create(tab_contents_, this, picker_model_.get()); 760 picker_ = WebIntentPicker::Create(tab_contents_, this, picker_model_.get());
771 picker_shown_ = true; 761 picker_shown_ = true;
772 } 762 }
773 763
774 void WebIntentPickerController::ClosePicker() { 764 void WebIntentPickerController::ClosePicker() {
775 if (picker_) 765 if (picker_)
776 picker_->Close(); 766 picker_->Close();
777 } 767 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/intents/web_intent_picker_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698