diff options
author | raymes <raymes@chromium.org> | 2014-11-20 17:02:42 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-21 01:03:06 +0000 |
commit | 9325d7ca3d712a1fcc58d4066984206da6b9e612 (patch) | |
tree | 85e5d1ca1e57229299029465bcdea17f6082bc80 /extensions | |
parent | 991568bbf333913fe20b760b49ea02d53b806354 (diff) | |
download | chromium_src-9325d7ca3d712a1fcc58d4066984206da6b9e612.zip chromium_src-9325d7ca3d712a1fcc58d4066984206da6b9e612.tar.gz chromium_src-9325d7ca3d712a1fcc58d4066984206da6b9e612.tar.bz2 |
Allow URL requests for object/embed tags to be intercepted as streams.
BrowserPlugins make URL requests on behalf of object tags. Requests on behalf of
object tags should be treated in a similar way to requests in behalf of frames
in that they are allowed to be intercepted as a stream request, however unlike frames they should never be downloaded. This CL allows
these requests to be intercepted in that way.
BUG=416310
TBR=mkosiba@chromium.org,benwells@chromium.org
Review URL: https://codereview.chromium.org/694773003
Cr-Commit-Position: refs/heads/master@{#305130}
Diffstat (limited to 'extensions')
3 files changed, 9 insertions, 4 deletions
diff --git a/extensions/browser/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc b/extensions/browser/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc index def29dc..13b7298 100644 --- a/extensions/browser/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc +++ b/extensions/browser/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc @@ -108,6 +108,7 @@ TEST(WebRequestConditionAttributeTest, ResourceType) { -1, // render_frame_id false, // is_main_frame false, // parent_is_main_frame + true, // allow_download false); // is_async EXPECT_TRUE(attribute->IsFulfilled(WebRequestData(url_request_ok.get(), ON_BEFORE_REQUEST))); @@ -123,6 +124,7 @@ TEST(WebRequestConditionAttributeTest, ResourceType) { -1, // render_frame_id true, // is_main_frame false, // parent_is_main_frame + true, // allow_download false); // is_async EXPECT_FALSE(attribute->IsFulfilled(WebRequestData(url_request_fail.get(), ON_BEFORE_REQUEST))); diff --git a/extensions/browser/api/declarative_webrequest/webrequest_condition_unittest.cc b/extensions/browser/api/declarative_webrequest/webrequest_condition_unittest.cc index 12d14bd..06e5c5b 100644 --- a/extensions/browser/api/declarative_webrequest/webrequest_condition_unittest.cc +++ b/extensions/browser/api/declarative_webrequest/webrequest_condition_unittest.cc @@ -95,6 +95,7 @@ TEST(WebRequestConditionTest, CreateCondition) { -1, // render_frame_id true, // is_main_frame false, // parent_is_main_frame + true, // allow_download false); // is_async EXPECT_TRUE(result->IsFulfilled(request_data)); @@ -114,6 +115,7 @@ TEST(WebRequestConditionTest, CreateCondition) { -1, // render_frame_id false, // is_main_frame false, // parent_is_main_frame + true, // allow_download false); // is_async EXPECT_FALSE(result->IsFulfilled(request_data)); } @@ -162,6 +164,7 @@ TEST(WebRequestConditionTest, CreateConditionFirstPartyForCookies) { -1, // render_frame_id true, // is_main_frame false, // parent_is_main_frame + true, // allow_download false); // is_async EXPECT_TRUE(result->IsFulfilled(request_data)); } diff --git a/extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.cc b/extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.cc index b3b7d36..420b3df 100644 --- a/extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.cc +++ b/extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.cc @@ -45,11 +45,11 @@ void MimeHandlerViewContainer::Ready() { options.crossOriginRequestPolicy = blink::WebURLLoaderOptions::CrossOriginRequestPolicyAllow; DCHECK(!loader_); - loader_.reset(frame->createAssociatedURLLoader()); + loader_.reset(frame->createAssociatedURLLoader(options)); - // TODO(raymes): Currently this URL request won't be correctly intercepted as - // a stream. - loader_->loadAsynchronously(blink::WebURLRequest(original_url_), this); + blink::WebURLRequest request(original_url_); + request.setRequestContext(blink::WebURLRequest::RequestContextObject); + loader_->loadAsynchronously(request, this); } bool MimeHandlerViewContainer::HandlesMessage(const IPC::Message& message) { |