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

Side by Side Diff: chrome_frame/chrome_frame_npapi.cc

Issue 545093: Refactor host network (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 10 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/chrome_frame_npapi.h ('k') | chrome_frame/chrome_frame_npapi_entrypoints.cc » ('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/chrome_frame_npapi.h" 5 #include "chrome_frame/chrome_frame_npapi.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 onprivatemessage_handler_ = JavascriptToNPObject(onprivatemessage_arg); 262 onprivatemessage_handler_ = JavascriptToNPObject(onprivatemessage_arg);
263 263
264 if (chrome_extra_arguments_arg) 264 if (chrome_extra_arguments_arg)
265 extra_arguments = UTF8ToWide(chrome_extra_arguments_arg); 265 extra_arguments = UTF8ToWide(chrome_extra_arguments_arg);
266 266
267 if (chrome_profile_name_arg) 267 if (chrome_profile_name_arg)
268 profile_name = UTF8ToWide(chrome_profile_name_arg); 268 profile_name = UTF8ToWide(chrome_profile_name_arg);
269 269
270 if (chrome_network_arg_set) 270 if (chrome_network_arg_set)
271 automation_client_->set_use_chrome_network(chrome_network_arg); 271 automation_client_->set_use_chrome_network(chrome_network_arg);
272 }
272 273
273 } 274 // Setup Url fetcher.
275 url_fetcher_.set_NPPInstance(instance_);
276 url_fetcher_.set_frame_busting(!is_privileged_);
277 automation_client_->SetUrlFetcher(&url_fetcher_);
274 278
275 // TODO(joshia): Initialize navigation here and send proxy config as 279 // TODO(joshia): Initialize navigation here and send proxy config as
276 // part of LaunchSettings 280 // part of LaunchSettings
277 /* 281 /*
278 if (!src_.empty()) 282 if (!src_.empty())
279 automation_client_->InitiateNavigation(src_, is_privileged_); 283 automation_client_->InitiateNavigation(src_, is_privileged_);
280 284
281 std::string proxy_settings; 285 std::string proxy_settings;
282 bool has_prefs = pref_service_->Initialize(instance_, 286 bool has_prefs = pref_service_->Initialize(instance_,
283 automation_client_.get()); 287 automation_client_.get());
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 } 431 }
428 432
429 void ChromeFrameNPAPI::UrlNotify(const char* url, NPReason reason, 433 void ChromeFrameNPAPI::UrlNotify(const char* url, NPReason reason,
430 void* notify_data) { 434 void* notify_data) {
431 if (enabled_popups_) { 435 if (enabled_popups_) {
432 // We have opened the URL so tell the browser to restore popup settings 436 // We have opened the URL so tell the browser to restore popup settings
433 enabled_popups_ = false; 437 enabled_popups_ = false;
434 npapi::PopPopupsEnabledState(instance_); 438 npapi::PopPopupsEnabledState(instance_);
435 } 439 }
436 440
437 // It is now safe to release the additional reference on the request 441 url_fetcher_.UrlNotify(url, reason, notify_data);
438 NPAPIUrlRequest* request = RequestFromNotifyData(notify_data);
439 if (request) {
440 request->Stop();
441 request->Release();
442 }
443 } 442 }
444 443
445 void ChromeFrameNPAPI::OnAcceleratorPressed(int tab_handle, 444 void ChromeFrameNPAPI::OnAcceleratorPressed(int tab_handle,
446 const MSG& accel_message) { 445 const MSG& accel_message) {
447 DLOG(INFO) << __FUNCTION__ << " msg:" 446 DLOG(INFO) << __FUNCTION__ << " msg:"
448 << StringPrintf("0x%04X", accel_message.message) << " key:" 447 << StringPrintf("0x%04X", accel_message.message) << " key:"
449 << accel_message.wParam; 448 << accel_message.wParam;
450 449
451 // The host browser does call TranslateMessage on messages like WM_KEYDOWN 450 // The host browser does call TranslateMessage on messages like WM_KEYDOWN
452 // WM_KEYUP, etc, which will result in messages like WM_CHAR, WM_SYSCHAR, etc 451 // WM_KEYUP, etc, which will result in messages like WM_CHAR, WM_SYSCHAR, etc
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 default: 504 default:
506 break; 505 break;
507 } 506 }
508 507
509 // Tell the browser to temporarily allow popups 508 // Tell the browser to temporarily allow popups
510 enabled_popups_ = true; 509 enabled_popups_ = true;
511 npapi::PushPopupsEnabledState(instance_, TRUE); 510 npapi::PushPopupsEnabledState(instance_, TRUE);
512 npapi::GetURLNotify(instance_, url.spec().c_str(), target.c_str(), NULL); 511 npapi::GetURLNotify(instance_, url.spec().c_str(), target.c_str(), NULL);
513 } 512 }
514 513
515 void ChromeFrameNPAPI::OnRequestStart(int tab_handle, int request_id,
516 const IPC::AutomationURLRequest& request) {
517 scoped_refptr<NPAPIUrlRequest> new_request(new NPAPIUrlRequest(instance_));
518 DCHECK(new_request);
519 if (new_request->Initialize(automation_client_.get(), tab_handle,
520 request_id, request.url, request.method,
521 request.referrer, request.extra_request_headers,
522 request.upload_data.get(), !is_privileged_)) {
523 if (new_request->Start()) {
524 // Keep additional reference on request for NPSTREAM
525 // This will be released in NPP_UrlNotify
526 new_request->AddRef();
527 }
528 }
529 }
530
531 void ChromeFrameNPAPI::OnRequestRead(int tab_handle, int request_id,
532 int bytes_to_read) {
533 automation_client_->ReadRequest(request_id, bytes_to_read);
534 }
535
536 void ChromeFrameNPAPI::OnRequestEnd(int tab_handle, int request_id,
537 const URLRequestStatus& status) {
538 automation_client_->RemoveRequest(request_id, true);
539 }
540
541 void ChromeFrameNPAPI::OnSetCookieAsync(int tab_handle, const GURL& url, 514 void ChromeFrameNPAPI::OnSetCookieAsync(int tab_handle, const GURL& url,
542 const std::string& cookie) { 515 const std::string& cookie) {
543 // Use the newer NPAPI way if available 516 // Use the newer NPAPI way if available
544 if (npapi::VersionMinor() >= NPVERS_HAS_URL_AND_AUTH_INFO) { 517 if (npapi::VersionMinor() >= NPVERS_HAS_URL_AND_AUTH_INFO) {
545 npapi::SetValueForURL(instance_, NPNURLVCookie, url.spec().c_str(), 518 npapi::SetValueForURL(instance_, NPNURLVCookie, url.spec().c_str(),
546 cookie.c_str(), cookie.length()); 519 cookie.c_str(), cookie.length());
547 } else if (url == GURL(document_url_)) { 520 } else if (url == GURL(document_url_)) {
548 std::string script = "javascript:document.cookie="; 521 std::string script = "javascript:document.cookie=";
549 script.append(cookie); 522 script.append(cookie);
550 script.append(1, ';'); 523 script.append(1, ';');
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after
1430 if (err == NPERR_NO_ERROR && private_mode) { 1403 if (err == NPERR_NO_ERROR && private_mode) {
1431 incognito_mode = true; 1404 incognito_mode = true;
1432 } 1405 }
1433 } else { 1406 } else {
1434 DLOG(WARNING) << "Not checking for private mode in Opera"; 1407 DLOG(WARNING) << "Not checking for private mode in Opera";
1435 } 1408 }
1436 1409
1437 return incognito_mode; 1410 return incognito_mode;
1438 } 1411 }
1439 1412
1440 NPAPIUrlRequest* ChromeFrameNPAPI::ValidateRequest(
1441 NPP instance, void* notify_data) {
1442 ChromeFrameNPAPI* plugin_instance =
1443 ChromeFrameNPAPI::ChromeFrameInstanceFromPluginInstance(instance);
1444 if (plugin_instance) {
1445 return plugin_instance->RequestFromNotifyData(notify_data);
1446 }
1447
1448 return NULL;
1449 }
1450
1451 NPAPIUrlRequest* ChromeFrameNPAPI::RequestFromNotifyData(
1452 void* notify_data) const {
1453 NPAPIUrlRequest* request = reinterpret_cast<NPAPIUrlRequest*>(notify_data);
1454 DCHECK(request ? automation_client_->IsValidRequest(request) : 1);
1455 return request;
1456 }
1457
1458 bool ChromeFrameNPAPI::HandleContextMenuCommand(UINT cmd, 1413 bool ChromeFrameNPAPI::HandleContextMenuCommand(UINT cmd,
1459 const IPC::ContextMenuParams& params) { 1414 const IPC::ContextMenuParams& params) {
1460 if (cmd == IDC_ABOUT_CHROME_FRAME) { 1415 if (cmd == IDC_ABOUT_CHROME_FRAME) {
1461 // TODO: implement "About Chrome Frame" 1416 // TODO: implement "About Chrome Frame"
1462 } 1417 }
1463 return false; 1418 return false;
1464 } 1419 }
1420
1421 bool ChromeFrameNPAPI::NewStream(NPMIMEType type, NPStream* stream,
1422 NPBool seekable, uint16* stream_type) {
1423 return url_fetcher_.NewStream(type, stream, seekable, stream_type);
1424 }
1425
1426 int32 ChromeFrameNPAPI::WriteReady(NPStream* stream) {
1427 return url_fetcher_.WriteReady(stream);
1428 }
1429
1430 int32 ChromeFrameNPAPI::Write(NPStream* stream, int32 offset, int32 len,
1431 void* buffer) {
1432 return url_fetcher_.Write(stream, offset, len, buffer);
1433 }
1434
1435 NPError ChromeFrameNPAPI::DestroyStream(NPStream* stream, NPReason reason) {
1436 return url_fetcher_.DestroyStream(stream, reason);
1437 }
OLDNEW
« no previous file with comments | « chrome_frame/chrome_frame_npapi.h ('k') | chrome_frame/chrome_frame_npapi_entrypoints.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698