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

Side by Side Diff: chrome_frame/urlmon_url_request.cc

Issue 1153006: When ChromeFrame is running in privileged mode, we should fail the IAuthentic... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 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_frame/urlmon_url_request.h ('k') | chrome_frame/urlmon_url_request_private.h » ('j') | 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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_frame/urlmon_url_request.h" 5 #include "chrome_frame/urlmon_url_request.h"
6 6
7 #include <wininet.h> 7 #include <wininet.h>
8 #include <urlmon.h> 8 #include <urlmon.h>
9 9
10 #include "base/scoped_ptr.h" 10 #include "base/scoped_ptr.h"
(...skipping 21 matching lines...) Expand all
32 size_to_write); 32 size_to_write);
33 if (size_written) 33 if (size_written)
34 *size_written = size_to_write; 34 *size_written = size_to_write;
35 return S_OK; 35 return S_OK;
36 } 36 }
37 37
38 UrlmonUrlRequest::UrlmonUrlRequest() 38 UrlmonUrlRequest::UrlmonUrlRequest()
39 : pending_read_size_(0), 39 : pending_read_size_(0),
40 headers_received_(false), 40 headers_received_(false),
41 thread_(NULL), 41 thread_(NULL),
42 parent_window_(NULL) { 42 parent_window_(NULL),
43 privileged_mode_(false) {
43 DLOG(INFO) << StringPrintf("Created request. Obj: %X", this); 44 DLOG(INFO) << StringPrintf("Created request. Obj: %X", this);
44 } 45 }
45 46
46 UrlmonUrlRequest::~UrlmonUrlRequest() { 47 UrlmonUrlRequest::~UrlmonUrlRequest() {
47 DLOG(INFO) << StringPrintf("Deleted request. Obj: %X", this); 48 DLOG(INFO) << StringPrintf("Deleted request. Obj: %X", this);
48 } 49 }
49 50
50 bool UrlmonUrlRequest::Start() { 51 bool UrlmonUrlRequest::Start() {
51 thread_ = PlatformThread::CurrentId(); 52 thread_ = PlatformThread::CurrentId();
52 status_.Start(); 53 status_.Start();
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 // TODO(iyengar): This hits when running the URL request tests. 540 // TODO(iyengar): This hits when running the URL request tests.
540 DLOG_IF(ERROR, !::IsWindow(parent_window_)) 541 DLOG_IF(ERROR, !::IsWindow(parent_window_))
541 << "UrlmonUrlRequest::GetWindow - no window!"; 542 << "UrlmonUrlRequest::GetWindow - no window!";
542 *parent_window = parent_window_; 543 *parent_window = parent_window_;
543 return S_OK; 544 return S_OK;
544 } 545 }
545 546
546 STDMETHODIMP UrlmonUrlRequest::Authenticate(HWND* parent_window, 547 STDMETHODIMP UrlmonUrlRequest::Authenticate(HWND* parent_window,
547 LPWSTR* user_name, 548 LPWSTR* user_name,
548 LPWSTR* password) { 549 LPWSTR* password) {
549 if (!parent_window) { 550 if (!parent_window)
550 return E_INVALIDARG; 551 return E_INVALIDARG;
551 } 552
553 if (privileged_mode_)
554 return E_FAIL;
552 555
553 DCHECK(::IsWindow(parent_window_)); 556 DCHECK(::IsWindow(parent_window_));
554 *parent_window = parent_window_; 557 *parent_window = parent_window_;
555 return S_OK; 558 return S_OK;
556 } 559 }
557 560
558 STDMETHODIMP UrlmonUrlRequest::OnSecurityProblem(DWORD problem) { 561 STDMETHODIMP UrlmonUrlRequest::OnSecurityProblem(DWORD problem) {
559 // Urlmon notifies the client of authentication problems, certificate 562 // Urlmon notifies the client of authentication problems, certificate
560 // errors, etc by querying the object implementing the IBindStatusCallback 563 // errors, etc by querying the object implementing the IBindStatusCallback
561 // interface for the IHttpSecurity interface. If this interface is not 564 // interface for the IHttpSecurity interface. If this interface is not
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 893
891 new_request->Initialize(static_cast<PluginUrlRequestDelegate*>(this), 894 new_request->Initialize(static_cast<PluginUrlRequestDelegate*>(this),
892 request_id, 895 request_id,
893 request_info.url, 896 request_info.url,
894 request_info.method, 897 request_info.method,
895 request_info.referrer, 898 request_info.referrer,
896 request_info.extra_request_headers, 899 request_info.extra_request_headers,
897 request_info.upload_data, 900 request_info.upload_data,
898 enable_frame_busting_); 901 enable_frame_busting_);
899 new_request->set_parent_window(notification_window_); 902 new_request->set_parent_window(notification_window_);
903 new_request->set_privileged_mode(privileged_mode_);
900 904
901 // Shall we use previously fetched data? 905 // Shall we use previously fetched data?
902 if (request_for_url.get()) { 906 if (request_for_url.get()) {
903 new_request->SetRequestData(request_for_url->request_data()); 907 new_request->SetRequestData(request_for_url->request_data());
904 } 908 }
905 909
906 DCHECK(LookupRequest(request_id).get() == NULL); 910 DCHECK(LookupRequest(request_id).get() == NULL);
907 request_map_[request_id] = new_request; 911 request_map_[request_id] = new_request;
908 map_empty_.Reset(); 912 map_empty_.Reset();
909 new_request->Start(); 913 new_request->Start();
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 scoped_refptr<UrlmonUrlRequest> UrlmonUrlRequestManager::LookupRequest( 1036 scoped_refptr<UrlmonUrlRequest> UrlmonUrlRequestManager::LookupRequest(
1033 int request_id) { 1037 int request_id) {
1034 RequestMap::iterator it = request_map_.find(request_id); 1038 RequestMap::iterator it = request_map_.find(request_id);
1035 if (request_map_.end() != it) 1039 if (request_map_.end() != it)
1036 return it->second; 1040 return it->second;
1037 return NULL; 1041 return NULL;
1038 } 1042 }
1039 1043
1040 UrlmonUrlRequestManager::UrlmonUrlRequestManager() 1044 UrlmonUrlRequestManager::UrlmonUrlRequestManager()
1041 : stopping_(false), worker_thread_("UrlMon fetch thread"), 1045 : stopping_(false), worker_thread_("UrlMon fetch thread"),
1042 map_empty_(true, true), notification_window_(NULL) { 1046 map_empty_(true, true), notification_window_(NULL),
1047 privileged_mode_(false) {
1043 } 1048 }
1044 1049
1045 UrlmonUrlRequestManager::~UrlmonUrlRequestManager() { 1050 UrlmonUrlRequestManager::~UrlmonUrlRequestManager() {
1046 StopAll(); 1051 StopAll();
1047 } 1052 }
1048 1053
1049 // Called from UI thread. 1054 // Called from UI thread.
1050 void UrlmonUrlRequestManager::StealMonikerFromRequest(int request_id, 1055 void UrlmonUrlRequestManager::StealMonikerFromRequest(int request_id,
1051 IMoniker** moniker) { 1056 IMoniker** moniker) {
1052 base::WaitableEvent done(true, false); 1057 base::WaitableEvent done(true, false);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 privacy_entry.flags |= flags; 1116 privacy_entry.flags |= flags;
1112 privacy_entry.policy_ref = UTF8ToWide(policy_ref); 1117 privacy_entry.policy_ref = UTF8ToWide(policy_ref);
1113 } 1118 }
1114 1119
1115 if (fire_privacy_event && IsWindow(notification_window_)) { 1120 if (fire_privacy_event && IsWindow(notification_window_)) {
1116 PostMessage(notification_window_, WM_FIRE_PRIVACY_CHANGE_NOTIFICATION, 1, 1121 PostMessage(notification_window_, WM_FIRE_PRIVACY_CHANGE_NOTIFICATION, 1,
1117 0); 1122 0);
1118 } 1123 }
1119 } 1124 }
1120 1125
OLDNEW
« no previous file with comments | « chrome_frame/urlmon_url_request.h ('k') | chrome_frame/urlmon_url_request_private.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698