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
- RequestTimeoutManager.cs
- DataGridViewColumnCollectionEditor.cs
- DnsPermission.cs
- HostSecurityManager.cs
- DataSetFieldSchema.cs
- CompiledQueryCacheEntry.cs
- RelationshipFixer.cs
- TextLineResult.cs
- BufferBuilder.cs
- XmlText.cs
- ContentPresenter.cs
- PointUtil.cs
- QuaternionRotation3D.cs
- ReservationNotFoundException.cs
- OrCondition.cs
- milrender.cs
- Color.cs
- TabPage.cs
- SID.cs
- TextEndOfParagraph.cs
- SqlTransaction.cs
- MenuItemBinding.cs
- DataServiceQueryProvider.cs
- XmlSchema.cs
- BaseCodePageEncoding.cs
- ProviderConnectionPointCollection.cs
- OptimalTextSource.cs
- COM2IDispatchConverter.cs
- EventListenerClientSide.cs
- BrowsableAttribute.cs
- FullTrustAssembly.cs
- WorkflowNamespace.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- ProcessModule.cs
- Color.cs
- assertwrapper.cs
- XmlNodeChangedEventArgs.cs
- Point.cs
- Model3DCollection.cs
- PropertyCondition.cs
- uribuilder.cs
- RoutedEventHandlerInfo.cs
- PolyLineSegmentFigureLogic.cs
- WebConfigurationFileMap.cs
- SafeHandles.cs
- MetadataWorkspace.cs
- WebPartChrome.cs
- MimeReturn.cs
- DataGridViewSelectedRowCollection.cs
- TableLayoutRowStyleCollection.cs
- StateValidator.cs
- WindowsGraphicsCacheManager.cs
- AppDomainFactory.cs
- MatrixTransform.cs
- AjaxFrameworkAssemblyAttribute.cs
- XmlReaderSettings.cs
- QueryHandler.cs
- MissingMethodException.cs
- TableLayoutCellPaintEventArgs.cs
- TypeDescriptor.cs
- TargetInvocationException.cs
- SystemUnicastIPAddressInformation.cs
- WorkflowTraceTransfer.cs
- DataGridViewDataConnection.cs
- CapabilitiesAssignment.cs
- HttpRawResponse.cs
- PropertyValueEditor.cs
- WorkflowEventArgs.cs
- BitmapFrameDecode.cs
- ServiceRouteHandler.cs
- UrlMappingCollection.cs
- ImportCatalogPart.cs
- SByteConverter.cs
- RangeBaseAutomationPeer.cs
- RegionData.cs
- AspNetHostingPermission.cs
- SelectionItemPattern.cs
- AggregateNode.cs
- serverconfig.cs
- DocumentViewerBase.cs
- AudioFormatConverter.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- AdapterUtil.cs
- FixedPage.cs
- SharedRuntimeState.cs
- ExpressionBuilder.cs
- Sequence.cs
- XmlBinaryWriter.cs
- SqlProvider.cs
- SignalGate.cs
- FixedSOMPageElement.cs
- ParserHooks.cs
- SchemaComplexType.cs
- SqlTypeSystemProvider.cs
- DataSourceCache.cs
- RectAnimationClockResource.cs
- SessionSwitchEventArgs.cs
- FloaterParagraph.cs
- EntityContainer.cs
- ConfigXmlText.cs