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

Side by Side Diff: chrome/browser/custom_handlers/protocol_handler_registry.cc

Issue 16295003: Update chrome/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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
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/custom_handlers/protocol_handler_registry.h" 5 #include "chrome/browser/custom_handlers/protocol_handler_registry.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 156
157 // JobInterceptorFactory ------------------------------------------------------- 157 // JobInterceptorFactory -------------------------------------------------------
158 158
159 // Instances of JobInterceptorFactory are produced for ownership by the IO 159 // Instances of JobInterceptorFactory are produced for ownership by the IO
160 // thread where it handler URL requests. We should never hold 160 // thread where it handler URL requests. We should never hold
161 // any pointers on this class, only produce them in response to 161 // any pointers on this class, only produce them in response to
162 // requests via |ProtocolHandlerRegistry::CreateJobInterceptorFactory|. 162 // requests via |ProtocolHandlerRegistry::CreateJobInterceptorFactory|.
163 ProtocolHandlerRegistry::JobInterceptorFactory::JobInterceptorFactory( 163 ProtocolHandlerRegistry::JobInterceptorFactory::JobInterceptorFactory(
164 IOThreadDelegate* io_thread_delegate) 164 IOThreadDelegate* io_thread_delegate)
165 : io_thread_delegate_(io_thread_delegate) { 165 : io_thread_delegate_(io_thread_delegate) {
166 DCHECK(io_thread_delegate_); 166 DCHECK(io_thread_delegate_.get());
167 DetachFromThread(); 167 DetachFromThread();
168 } 168 }
169 169
170 ProtocolHandlerRegistry::JobInterceptorFactory::~JobInterceptorFactory() { 170 ProtocolHandlerRegistry::JobInterceptorFactory::~JobInterceptorFactory() {
171 } 171 }
172 172
173 void ProtocolHandlerRegistry::JobInterceptorFactory::Chain( 173 void ProtocolHandlerRegistry::JobInterceptorFactory::Chain(
174 scoped_ptr<net::URLRequestJobFactory> job_factory) { 174 scoped_ptr<net::URLRequestJobFactory> job_factory) {
175 job_factory_ = job_factory.Pass(); 175 job_factory_ = job_factory.Pass();
176 } 176 }
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 } 294 }
295 295
296 void ProtocolHandlerRegistry::Delegate::RegisterWithOSAsDefaultClient( 296 void ProtocolHandlerRegistry::Delegate::RegisterWithOSAsDefaultClient(
297 const std::string& protocol, ProtocolHandlerRegistry* registry) { 297 const std::string& protocol, ProtocolHandlerRegistry* registry) {
298 DefaultClientObserver* observer = CreateShellObserver(registry); 298 DefaultClientObserver* observer = CreateShellObserver(registry);
299 // The worker pointer is reference counted. While it is running the 299 // The worker pointer is reference counted. While it is running the
300 // message loops of the FILE and UI thread will hold references to it 300 // message loops of the FILE and UI thread will hold references to it
301 // and it will be automatically freed once all its tasks have finished. 301 // and it will be automatically freed once all its tasks have finished.
302 scoped_refptr<ShellIntegration::DefaultProtocolClientWorker> worker; 302 scoped_refptr<ShellIntegration::DefaultProtocolClientWorker> worker;
303 worker = CreateShellWorker(observer, protocol); 303 worker = CreateShellWorker(observer, protocol);
304 observer->SetWorker(worker); 304 observer->SetWorker(worker.get());
305 registry->default_client_observers_.push_back(observer); 305 registry->default_client_observers_.push_back(observer);
306 worker->StartSetAsDefault(); 306 worker->StartSetAsDefault();
307 } 307 }
308 308
309 // ProtocolHandlerRegistry ----------------------------------------------------- 309 // ProtocolHandlerRegistry -----------------------------------------------------
310 310
311 ProtocolHandlerRegistry::ProtocolHandlerRegistry(Profile* profile, 311 ProtocolHandlerRegistry::ProtocolHandlerRegistry(Profile* profile,
312 Delegate* delegate) 312 Delegate* delegate)
313 : profile_(profile), 313 : profile_(profile),
314 delegate_(delegate), 314 delegate_(delegate),
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 467
468 // For each default protocol handler, check that we are still registered 468 // For each default protocol handler, check that we are still registered
469 // with the OS as the default application. 469 // with the OS as the default application.
470 if (ShouldRemoveHandlersNotInOS()) { 470 if (ShouldRemoveHandlersNotInOS()) {
471 for (ProtocolHandlerMap::const_iterator p = default_handlers_.begin(); 471 for (ProtocolHandlerMap::const_iterator p = default_handlers_.begin();
472 p != default_handlers_.end(); ++p) { 472 p != default_handlers_.end(); ++p) {
473 ProtocolHandler handler = p->second; 473 ProtocolHandler handler = p->second;
474 DefaultClientObserver* observer = delegate_->CreateShellObserver(this); 474 DefaultClientObserver* observer = delegate_->CreateShellObserver(this);
475 scoped_refptr<ShellIntegration::DefaultProtocolClientWorker> worker; 475 scoped_refptr<ShellIntegration::DefaultProtocolClientWorker> worker;
476 worker = delegate_->CreateShellWorker(observer, handler.protocol()); 476 worker = delegate_->CreateShellWorker(observer, handler.protocol());
477 observer->SetWorker(worker); 477 observer->SetWorker(worker.get());
478 default_client_observers_.push_back(observer); 478 default_client_observers_.push_back(observer);
479 worker->StartCheckIsDefault(); 479 worker->StartCheckIsDefault();
480 } 480 }
481 } 481 }
482 } 482 }
483 483
484 int ProtocolHandlerRegistry::GetHandlerIndex(const std::string& scheme) const { 484 int ProtocolHandlerRegistry::GetHandlerIndex(const std::string& scheme) const {
485 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 485 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
486 const ProtocolHandler& handler = GetHandlerFor(scheme); 486 const ProtocolHandler& handler = GetHandlerFor(scheme);
487 if (handler.IsEmpty()) 487 if (handler.IsEmpty())
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 RegisterProtocolHandler(handler); 875 RegisterProtocolHandler(handler);
876 SetDefault(handler); 876 SetDefault(handler);
877 } 877 }
878 878
879 scoped_ptr<ProtocolHandlerRegistry::JobInterceptorFactory> 879 scoped_ptr<ProtocolHandlerRegistry::JobInterceptorFactory>
880 ProtocolHandlerRegistry::CreateJobInterceptorFactory() { 880 ProtocolHandlerRegistry::CreateJobInterceptorFactory() {
881 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 881 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
882 // this is always created on the UI thread (in profile_io's 882 // this is always created on the UI thread (in profile_io's
883 // InitializeOnUIThread. Any method calls must be done 883 // InitializeOnUIThread. Any method calls must be done
884 // on the IO thread (this is checked). 884 // on the IO thread (this is checked).
885 return scoped_ptr<JobInterceptorFactory>(new JobInterceptorFactory( 885 return scoped_ptr<JobInterceptorFactory>(
886 io_thread_delegate_)); 886 new JobInterceptorFactory(io_thread_delegate_.get()));
887 } 887 }
OLDNEW
« no previous file with comments | « chrome/browser/content_settings/local_shared_objects_container.h ('k') | chrome/browser/devtools/adb_client_socket.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698