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

Side by Side Diff: chrome/browser/extensions/api/streams_private/streams_private_api.cc

Issue 519533002: Initial PlzNavigate RDH-side logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
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/extensions/api/streams_private/streams_private_api.h" 5 #include "chrome/browser/extensions/api/streams_private/streams_private_api.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/extensions/extension_tab_util.h" 9 #include "chrome/browser/extensions/extension_tab_util.h"
10 #include "chrome/common/extensions/api/streams_private.h" 10 #include "chrome/common/extensions/api/streams_private.h"
11 #include "content/public/browser/stream_handle.h" 11 #include "content/public/browser/stream_handle.h"
12 #include "content/public/browser/stream_info.h"
13 #include "content/public/common/resource_response.h"
12 #include "extensions/browser/event_router.h" 14 #include "extensions/browser/event_router.h"
13 #include "extensions/browser/extension_function_registry.h" 15 #include "extensions/browser/extension_function_registry.h"
14 #include "extensions/browser/extension_registry.h" 16 #include "extensions/browser/extension_registry.h"
15 #include "net/http/http_response_headers.h" 17 #include "net/http/http_response_headers.h"
16 18
17 namespace { 19 namespace {
18 20
19 void CreateResponseHeadersDictionary(const net::HttpResponseHeaders* headers, 21 void CreateResponseHeadersDictionary(const net::HttpResponseHeaders* headers,
20 base::DictionaryValue* result) { 22 base::DictionaryValue* result) {
21 if (!headers) 23 if (!headers)
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 extension_registry_observer_(this) { 55 extension_registry_observer_(this) {
54 extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_)); 56 extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_));
55 } 57 }
56 58
57 StreamsPrivateAPI::~StreamsPrivateAPI() { 59 StreamsPrivateAPI::~StreamsPrivateAPI() {
58 } 60 }
59 61
60 void StreamsPrivateAPI::ExecuteMimeTypeHandler( 62 void StreamsPrivateAPI::ExecuteMimeTypeHandler(
61 const std::string& extension_id, 63 const std::string& extension_id,
62 content::WebContents* web_contents, 64 content::WebContents* web_contents,
63 scoped_ptr<content::StreamHandle> stream, 65 scoped_ptr<content::StreamInfo> stream,
64 const std::string& view_id, 66 const std::string& view_id,
65 int64 expected_content_size) { 67 int64 expected_content_size) {
66 // Create the event's arguments value. 68 // Create the event's arguments value.
67 streams_private::StreamInfo info; 69 streams_private::StreamInfo info;
68 info.mime_type = stream->GetMimeType(); 70 info.mime_type = stream->response->head.mime_type;
69 info.original_url = stream->GetOriginalURL().spec(); 71 info.original_url = stream->original_url.spec();
70 info.stream_url = stream->GetURL().spec(); 72 info.stream_url = stream->handle->GetURL().spec();
71 info.tab_id = ExtensionTabUtil::GetTabId(web_contents); 73 info.tab_id = ExtensionTabUtil::GetTabId(web_contents);
72 74
73 if (!view_id.empty()) { 75 if (!view_id.empty()) {
74 info.view_id.reset(new std::string(view_id)); 76 info.view_id.reset(new std::string(view_id));
75 } 77 }
76 78
77 int size = -1; 79 int size = -1;
78 if (expected_content_size <= INT_MAX) 80 if (expected_content_size <= INT_MAX)
79 size = expected_content_size; 81 size = expected_content_size;
80 info.expected_content_size = size; 82 info.expected_content_size = size;
81 83
82 CreateResponseHeadersDictionary(stream->GetResponseHeaders().get(), 84 CreateResponseHeadersDictionary(stream->response->head.headers.get(),
83 &info.response_headers.additional_properties); 85 &info.response_headers.additional_properties);
84 86
85 scoped_ptr<Event> event( 87 scoped_ptr<Event> event(
86 new Event(streams_private::OnExecuteMimeTypeHandler::kEventName, 88 new Event(streams_private::OnExecuteMimeTypeHandler::kEventName,
87 streams_private::OnExecuteMimeTypeHandler::Create(info))); 89 streams_private::OnExecuteMimeTypeHandler::Create(info)));
88 90
89 EventRouter::Get(browser_context_) 91 EventRouter::Get(browser_context_)
90 ->DispatchEventToExtension(extension_id, event.Pass()); 92 ->DispatchEventToExtension(extension_id, event.Pass());
91 93
92 GURL url = stream->GetURL(); 94 GURL url = stream->handle->GetURL();
93 streams_[extension_id][url] = make_linked_ptr(stream.release()); 95 streams_[extension_id][url] = make_linked_ptr(stream->handle.release());
94 } 96 }
95 97
96 void StreamsPrivateAPI::AbortStream(const std::string& extension_id, 98 void StreamsPrivateAPI::AbortStream(const std::string& extension_id,
97 const GURL& stream_url, 99 const GURL& stream_url,
98 const base::Closure& callback) { 100 const base::Closure& callback) {
99 StreamMap::iterator extension_it = streams_.find(extension_id); 101 StreamMap::iterator extension_it = streams_.find(extension_id);
100 if (extension_it == streams_.end()) { 102 if (extension_it == streams_.end()) {
101 callback.Run(); 103 callback.Run();
102 return; 104 return;
103 } 105 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 static base::LazyInstance<BrowserContextKeyedAPIFactory<StreamsPrivateAPI> > 142 static base::LazyInstance<BrowserContextKeyedAPIFactory<StreamsPrivateAPI> >
141 g_factory = LAZY_INSTANCE_INITIALIZER; 143 g_factory = LAZY_INSTANCE_INITIALIZER;
142 144
143 // static 145 // static
144 BrowserContextKeyedAPIFactory<StreamsPrivateAPI>* 146 BrowserContextKeyedAPIFactory<StreamsPrivateAPI>*
145 StreamsPrivateAPI::GetFactoryInstance() { 147 StreamsPrivateAPI::GetFactoryInstance() {
146 return g_factory.Pointer(); 148 return g_factory.Pointer();
147 } 149 }
148 150
149 } // namespace extensions 151 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698