OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #import "ios/web/web_state/web_state_impl.h" | 5 #import "ios/web/web_state/web_state_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 bool WebStateImpl::ShouldAllowResponse(NSURLResponse* response) { | 558 bool WebStateImpl::ShouldAllowResponse(NSURLResponse* response) { |
559 for (auto& policy_decider : policy_deciders_) { | 559 for (auto& policy_decider : policy_deciders_) { |
560 if (!policy_decider.ShouldAllowResponse(response)) | 560 if (!policy_decider.ShouldAllowResponse(response)) |
561 return false; | 561 return false; |
562 } | 562 } |
563 return true; | 563 return true; |
564 } | 564 } |
565 | 565 |
566 #pragma mark - RequestTracker management | 566 #pragma mark - RequestTracker management |
567 | 567 |
568 int WebStateImpl::DownloadImage( | |
569 const GURL& url, | |
570 bool is_favicon, | |
571 uint32_t max_bitmap_size, | |
572 bool bypass_cache, | |
573 const ImageDownloadCallback& callback) { | |
574 // |is_favicon| specifies whether the download of the image occurs with | |
575 // cookies or not. Currently, only downloads without cookies are supported. | |
576 // |bypass_cache| is ignored since the downloads never go through a cache. | |
577 DCHECK(is_favicon); | |
578 | |
579 static int downloaded_image_count = 0; | |
580 int local_download_id = ++downloaded_image_count; | |
581 __block web::WebState::ImageDownloadCallback local_image_callback = callback; | |
582 __block GURL local_url(url); | |
583 ImageFetchedCallback local_callback = | |
584 ^(const GURL&, const int response_code, NSData* data) { | |
585 std::vector<SkBitmap> frames; | |
586 std::vector<gfx::Size> sizes; | |
587 if (data) { | |
588 frames = skia::ImageDataToSkBitmaps(data); | |
589 for (auto& frame : frames) { | |
590 sizes.push_back(gfx::Size(frame.width(), frame.height())); | |
591 } | |
592 } | |
593 if (response_code != net::URLFetcher::RESPONSE_CODE_INVALID) { | |
594 local_image_callback.Run(local_download_id, response_code, local_url, | |
595 frames, sizes); | |
596 } | |
597 }; | |
598 image_fetcher_->StartDownload(url, local_callback); | |
599 return downloaded_image_count; | |
600 } | |
601 | |
602 service_manager::InterfaceRegistry* WebStateImpl::GetMojoInterfaceRegistry() { | 568 service_manager::InterfaceRegistry* WebStateImpl::GetMojoInterfaceRegistry() { |
603 if (!mojo_interface_registry_) { | 569 if (!mojo_interface_registry_) { |
604 mojo_interface_registry_ = | 570 mojo_interface_registry_ = |
605 base::MakeUnique<service_manager::InterfaceRegistry>(std::string()); | 571 base::MakeUnique<service_manager::InterfaceRegistry>(std::string()); |
606 } | 572 } |
607 return mojo_interface_registry_.get(); | 573 return mojo_interface_registry_.get(); |
608 } | 574 } |
609 | 575 |
610 base::WeakPtr<WebState> WebStateImpl::AsWeakPtr() { | 576 base::WeakPtr<WebState> WebStateImpl::AsWeakPtr() { |
611 return weak_factory_.GetWeakPtr(); | 577 return weak_factory_.GetWeakPtr(); |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
767 const LoadCommittedDetails& load_details) { | 733 const LoadCommittedDetails& load_details) { |
768 for (auto& observer : observers_) | 734 for (auto& observer : observers_) |
769 observer.NavigationItemCommitted(load_details); | 735 observer.NavigationItemCommitted(load_details); |
770 } | 736 } |
771 | 737 |
772 WebState* WebStateImpl::GetWebState() { | 738 WebState* WebStateImpl::GetWebState() { |
773 return this; | 739 return this; |
774 } | 740 } |
775 | 741 |
776 } // namespace web | 742 } // namespace web |
OLD | NEW |