OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/local_discovery/privetv3_session.h" | 5 #include "chrome/browser/local_discovery/privetv3_session.h" |
6 | 6 |
7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "chrome/browser/local_discovery/privet_http.h" | 10 #include "chrome/browser/local_discovery/privet_http.h" |
11 #include "chrome/common/cloud_print/cloud_print_constants.h" | 11 #include "chrome/common/cloud_print/cloud_print_constants.h" |
12 | 12 |
13 namespace local_discovery { | 13 namespace local_discovery { |
14 | 14 |
15 namespace { | 15 namespace { |
16 | 16 |
17 const char kUrlPlaceHolder[] = "http://host/"; | 17 const char kUrlPlaceHolder[] = "http://host/"; |
18 | 18 |
| 19 const char kStubPrivetCode[] = "01234"; |
| 20 |
19 GURL CreatePrivetURL(const std::string& path) { | 21 GURL CreatePrivetURL(const std::string& path) { |
20 GURL url(kUrlPlaceHolder); | 22 GURL url(kUrlPlaceHolder); |
21 GURL::Replacements replacements; | 23 GURL::Replacements replacements; |
22 replacements.SetPathStr(path); | 24 replacements.SetPathStr(path); |
23 return url.ReplaceComponents(replacements); | 25 return url.ReplaceComponents(replacements); |
24 } | 26 } |
25 | 27 |
26 } // namespace | 28 } // namespace |
27 | 29 |
28 class PrivetV3Session::FetcherDelegate : public PrivetURLFetcher::Delegate { | 30 class PrivetV3Session::FetcherDelegate : public PrivetURLFetcher::Delegate { |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 } | 100 } |
99 | 101 |
100 void PrivetV3Session::Start() { | 102 void PrivetV3Session::Start() { |
101 base::MessageLoop::current()->PostDelayedTask( | 103 base::MessageLoop::current()->PostDelayedTask( |
102 FROM_HERE, | 104 FROM_HERE, |
103 base::Bind(&PrivetV3Session::ConfirmFakeCode, | 105 base::Bind(&PrivetV3Session::ConfirmFakeCode, |
104 weak_ptr_factory_.GetWeakPtr()), | 106 weak_ptr_factory_.GetWeakPtr()), |
105 base::TimeDelta::FromSeconds(1)); | 107 base::TimeDelta::FromSeconds(1)); |
106 } | 108 } |
107 | 109 |
108 void PrivetV3Session::ConfirmCode() { | 110 void PrivetV3Session::ConfirmCode(const std::string& code) { |
109 code_confirmed_ = true; | 111 if (code == kStubPrivetCode) { |
110 delegate_->OnSessionEstablished(); | 112 code_confirmed_ = true; |
| 113 delegate_->OnSessionStatus(extensions::api::gcd_private::STATUS_SUCCESS); |
| 114 } else { |
| 115 delegate_->OnSessionStatus( |
| 116 extensions::api::gcd_private::STATUS_BADCONFIRMATIONCODEERROR); |
| 117 } |
111 } | 118 } |
112 | 119 |
113 void PrivetV3Session::StartRequest(Request* request) { | 120 void PrivetV3Session::StartRequest(Request* request) { |
114 CHECK(code_confirmed_); | 121 CHECK(code_confirmed_); |
115 | 122 |
116 request->fetcher_delegate_.reset( | 123 request->fetcher_delegate_.reset( |
117 new FetcherDelegate(weak_ptr_factory_.GetWeakPtr(), request)); | 124 new FetcherDelegate(weak_ptr_factory_.GetWeakPtr(), request)); |
118 | 125 |
119 scoped_ptr<PrivetURLFetcher> url_fetcher = | 126 scoped_ptr<PrivetURLFetcher> url_fetcher = |
120 client_->CreateURLFetcher(CreatePrivetURL(request->GetName()), | 127 client_->CreateURLFetcher(CreatePrivetURL(request->GetName()), |
121 net::URLFetcher::POST, | 128 net::URLFetcher::POST, |
122 request->fetcher_delegate_.get()); | 129 request->fetcher_delegate_.get()); |
123 std::string json; | 130 std::string json; |
124 base::JSONWriter::WriteWithOptions( | 131 base::JSONWriter::WriteWithOptions( |
125 &request->GetInput(), base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); | 132 &request->GetInput(), base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); |
126 url_fetcher->SetUploadData(cloud_print::kContentTypeJSON, json); | 133 url_fetcher->SetUploadData(cloud_print::kContentTypeJSON, json); |
127 | 134 |
128 request->fetcher_delegate_->url_fetcher_ = url_fetcher.Pass(); | 135 request->fetcher_delegate_->url_fetcher_ = url_fetcher.Pass(); |
129 request->fetcher_delegate_->url_fetcher_->Start(); | 136 request->fetcher_delegate_->url_fetcher_->Start(); |
130 } | 137 } |
131 | 138 |
132 void PrivetV3Session::ConfirmFakeCode() { | 139 void PrivetV3Session::ConfirmFakeCode() { |
133 delegate_->OnSetupConfirmationNeeded("01234"); | 140 delegate_->OnSetupConfirmationNeeded( |
| 141 kStubPrivetCode, |
| 142 extensions::api::gcd_private::CONFIRMATION_TYPE_DISPLAYCODE); |
134 } | 143 } |
135 | 144 |
136 } // namespace local_discovery | 145 } // namespace local_discovery |
OLD | NEW |