Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / TrustUi / MS / Internal / documents / Application / NavigationHelper.cs / 1 / NavigationHelper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description:
// NavigationHelper is an internal utility class for Mongoose to deal
// with Uri navigations.
//
// History:
// 11/10/05 - [....] created
//
//---------------------------------------------------------------------------
using System;
using System.Security;
using System.Windows.Interop;
using System.Windows.TrustUI;
using MS.Internal;
using MS.Internal.PresentationUI;
namespace MS.Internal.Documents.Application
{
///
/// Helper class for handling browser navigations.
///
internal static class NavigationHelper
{
/////
///// Invokes a navigation to a new document
/////
///
/// Critical:
/// - uses delegate from framework
/// - uses Document.Uri
///
[SecurityCritical]
internal static void NavigateToDocument(Document document)
{
Trace.SafeWrite(
Trace.File,
"Attempting to navigate to new document {0}.",
document.Uri);
Invariant.Assert(
_navigate != null,
"Navigation object has not been instantiated.");
Invariant.Assert(
_navigate.Value != null,
"Navigation delegate has not been assigned.");
Invariant.Assert(
document != null,
"Target document has not been assigned.");
_navigate.Value(new SecurityCriticalData(document.Uri));
}
/////
///// Invokes a top-level browserNavigation action to the specified Uri.
/////
/////
///// Critical:
///// - causes a navigation action to occur to an external uri
///// - passes the Uri to another method
/////
[SecurityCritical]
internal static void NavigateToExternalUri(Uri uri)
{
Trace.SafeWrite(
Trace.File,
"Attempting to navigate to external Uri {0}.",
uri);
Invariant.Assert(
_navigate != null,
"Navigation object has not been instantiated.");
Invariant.Assert(
_navigate.Value != null,
"Navigation delegate has not been assigned.");
Invariant.Assert(
uri != null,
"Target uri has not been assigned.");
_navigate.Value(new SecurityCriticalData(uri));
}
///
/// A delegate that will navigate the root browser window.
///
///
/// Critical:
/// - sets _navigate which should only be BrowserInteropHelper.Navigate
///
///
/// If we are going to add more functionality a IBrowserService interface
/// of some type should be defined and set vs many delegates.
///
[FriendAccessAllowed]
internal static NavigateDelegate Navigate
{
[SecurityCritical]
get
{
if (_navigate != null)
{
return _navigate.Value;
}
return null;
}
[SecurityCritical]
set
{
_navigate = new SecurityCriticalDataClass(value);
}
}
internal delegate void NavigateDelegate(SecurityCriticalData uri);
private static SecurityCriticalDataClass _navigate;
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeGenerator.cs
- Symbol.cs
- KeyToListMap.cs
- DataColumnMapping.cs
- AutomationPeer.cs
- OdbcConnectionPoolProviderInfo.cs
- TemplateColumn.cs
- NextPreviousPagerField.cs
- HostProtectionPermission.cs
- CommandManager.cs
- _StreamFramer.cs
- DependencyObjectProvider.cs
- ToolStripDropDownClosedEventArgs.cs
- CalendarTable.cs
- XamlStyleSerializer.cs
- XmlSerializerFactory.cs
- CloseCollectionAsyncResult.cs
- SqlConnectionHelper.cs
- SecurityTokenProvider.cs
- StandardOleMarshalObject.cs
- ComponentDispatcher.cs
- JoinQueryOperator.cs
- DataGridViewColumnHeaderCell.cs
- TextTreeFixupNode.cs
- QueryableDataSourceHelper.cs
- StrongNamePublicKeyBlob.cs
- Thumb.cs
- ConfigXmlAttribute.cs
- Span.cs
- SchemaTypeEmitter.cs
- WinHttpWebProxyFinder.cs
- XmlElementAttributes.cs
- StoryFragments.cs
- RootNamespaceAttribute.cs
- PersonalizationStateQuery.cs
- ResourceContainer.cs
- SqlCrossApplyToCrossJoin.cs
- AnnotationHighlightLayer.cs
- GridViewCellAutomationPeer.cs
- DesignerEventService.cs
- HandleScope.cs
- MD5CryptoServiceProvider.cs
- SpnEndpointIdentityExtension.cs
- HtmlContainerControl.cs
- errorpatternmatcher.cs
- SystemNetworkInterface.cs
- ConsoleTraceListener.cs
- ConfigurationManagerInternal.cs
- EnumMember.cs
- XhtmlBasicListAdapter.cs
- OutputCacheSettings.cs
- JsonByteArrayDataContract.cs
- MessageQueueKey.cs
- ValidationSummary.cs
- ProtocolInformationReader.cs
- OverflowException.cs
- ToolStripHighContrastRenderer.cs
- ColumnClickEvent.cs
- HMACRIPEMD160.cs
- EpmCustomContentSerializer.cs
- RootNamespaceAttribute.cs
- DataGridPagerStyle.cs
- DependencyProperty.cs
- Registry.cs
- DuplicateWaitObjectException.cs
- PolicyManager.cs
- SqlConnectionString.cs
- ContainerSelectorGlyph.cs
- EnumType.cs
- PnrpPeerResolverBindingElement.cs
- Guid.cs
- DoubleAnimationClockResource.cs
- GPPOINT.cs
- XmlNamespaceManager.cs
- DataGridSortingEventArgs.cs
- UrlMappingCollection.cs
- DataGridPagerStyle.cs
- MetadataItemSerializer.cs
- DelegatingTypeDescriptionProvider.cs
- DiagnosticTraceSource.cs
- SelectionProcessor.cs
- Guid.cs
- Decimal.cs
- DBCSCodePageEncoding.cs
- ParameterReplacerVisitor.cs
- CodeAttributeDeclarationCollection.cs
- NumericExpr.cs
- CommandConverter.cs
- ListCollectionView.cs
- AttributeCollection.cs
- ApplicationException.cs
- smtpconnection.cs
- ModelTreeEnumerator.cs
- EdmComplexTypeAttribute.cs
- PeerInvitationResponse.cs
- WebPartHelpVerb.cs
- ComAdminInterfaces.cs
- InkPresenter.cs
- EntityEntry.cs
- PropertyInformationCollection.cs