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

Side by Side Diff: chrome_frame/chrome_active_document.cc

Issue 5698005: Add support for gcf:about:plugins in chrome frame full tab mode. The URL vali... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 // Implementation of ChromeActiveDocument 5 // Implementation of ChromeActiveDocument
6 #include "chrome_frame/chrome_active_document.h" 6 #include "chrome_frame/chrome_active_document.h"
7 7
8 #include <hlink.h> 8 #include <hlink.h>
9 #include <htiface.h> 9 #include <htiface.h>
10 #include <initguid.h> 10 #include <initguid.h>
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 if (NULL == url) 457 if (NULL == url)
458 return E_POINTER; 458 return E_POINTER;
459 *url = ::SysAllocString(url_); 459 *url = ::SysAllocString(url_);
460 return S_OK; 460 return S_OK;
461 } 461 }
462 462
463 STDMETHODIMP ChromeActiveDocument::GetAddressBarUrl(BSTR* url) { 463 STDMETHODIMP ChromeActiveDocument::GetAddressBarUrl(BSTR* url) {
464 return GetUrlForEvents(url); 464 return GetUrlForEvents(url);
465 } 465 }
466 466
467 STDMETHODIMP ChromeActiveDocument::PutProperty(
468 MONIKERPROPERTY moniker_prop, LPCWSTR value) {
469 return S_OK;
470 }
471
472
467 STDMETHODIMP ChromeActiveDocument::Reset() { 473 STDMETHODIMP ChromeActiveDocument::Reset() {
468 next_privacy_record_ = privacy_info_.privacy_records.begin(); 474 next_privacy_record_ = privacy_info_.privacy_records.begin();
469 return S_OK; 475 return S_OK;
470 } 476 }
471 477
472 STDMETHODIMP ChromeActiveDocument::GetSize(DWORD* size) { 478 STDMETHODIMP ChromeActiveDocument::GetSize(DWORD* size) {
473 if (!size) 479 if (!size)
474 return E_POINTER; 480 return E_POINTER;
475 481
476 *size = privacy_info_.privacy_records.size(); 482 *size = privacy_info_.privacy_records.size();
(...skipping 17 matching lines...) Expand all
494 return HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS); 500 return HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS);
495 501
496 *url = SysAllocString(next_privacy_record_->first.c_str()); 502 *url = SysAllocString(next_privacy_record_->first.c_str());
497 *policy = SysAllocString(next_privacy_record_->second.policy_ref.c_str()); 503 *policy = SysAllocString(next_privacy_record_->second.policy_ref.c_str());
498 *flags = next_privacy_record_->second.flags; 504 *flags = next_privacy_record_->second.flags;
499 505
500 next_privacy_record_++; 506 next_privacy_record_++;
501 return S_OK; 507 return S_OK;
502 } 508 }
503 509
510 bool ChromeActiveDocument::IsSchemeAllowed(const GURL& url) {
511 bool allowed = BaseActiveX::IsSchemeAllowed(url);
512 if (allowed)
513 return true;
514
515 if (url.SchemeIs(chrome::kAboutScheme)) {
516 if (LowerCaseEqualsASCII(url.spec(), chrome::kAboutPluginsURL))
517 return true;
518 }
519 return false;
520 }
521
504 HRESULT ChromeActiveDocument::GetInPlaceFrame( 522 HRESULT ChromeActiveDocument::GetInPlaceFrame(
505 IOleInPlaceFrame** in_place_frame) { 523 IOleInPlaceFrame** in_place_frame) {
506 DCHECK(in_place_frame); 524 DCHECK(in_place_frame);
507 if (in_place_frame_) { 525 if (in_place_frame_) {
508 *in_place_frame = in_place_frame_.get(); 526 *in_place_frame = in_place_frame_.get();
509 (*in_place_frame)->AddRef(); 527 (*in_place_frame)->AddRef();
510 return S_OK; 528 return S_OK;
511 } else { 529 } else {
512 return S_FALSE; 530 return S_FALSE;
513 } 531 }
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
1025 } 1043 }
1026 } 1044 }
1027 1045
1028 url_.Allocate(UTF8ToWide(cf_url.gurl().spec()).c_str()); 1046 url_.Allocate(UTF8ToWide(cf_url.gurl().spec()).c_str());
1029 if (cf_url.attach_to_external_tab()) { 1047 if (cf_url.attach_to_external_tab()) {
1030 dimensions_ = cf_url.dimensions(); 1048 dimensions_ = cf_url.dimensions();
1031 automation_client_->AttachExternalTab(cf_url.cookie()); 1049 automation_client_->AttachExternalTab(cf_url.cookie());
1032 SetWindowDimensions(); 1050 SetWindowDimensions();
1033 } else if (!automation_client_->InitiateNavigation(cf_url.gurl().spec(), 1051 } else if (!automation_client_->InitiateNavigation(cf_url.gurl().spec(),
1034 referrer, 1052 referrer,
1035 is_privileged_)) { 1053 this)) {
1036 DLOG(ERROR) << "Invalid URL: " << url_; 1054 DLOG(ERROR) << "Invalid URL: " << url_;
1037 Error(L"Invalid URL"); 1055 Error(L"Invalid URL");
1038 url_.Reset(); 1056 url_.Reset();
1039 return false; 1057 return false;
1040 } 1058 }
1041 1059
1042 if (is_automation_client_reused_) 1060 if (is_automation_client_reused_)
1043 return true; 1061 return true;
1044 1062
1045 automation_client_->SetUrlFetcher(url_fetcher_.get()); 1063 automation_client_->SetUrlFetcher(url_fetcher_.get());
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
1374 return true; 1392 return true;
1375 1393
1376 if (new_navigation_info.url != navigation_info_.url) 1394 if (new_navigation_info.url != navigation_info_.url)
1377 return true; 1395 return true;
1378 1396
1379 if (new_navigation_info.referrer != navigation_info_.referrer) 1397 if (new_navigation_info.referrer != navigation_info_.referrer)
1380 return true; 1398 return true;
1381 1399
1382 return false; 1400 return false;
1383 } 1401 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698