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
- TreeNodeClickEventArgs.cs
- ConfigurationSectionGroupCollection.cs
- DesignerMetadata.cs
- WrapPanel.cs
- safex509handles.cs
- ToolStripDropDownItem.cs
- ProfilePropertySettings.cs
- IPipelineRuntime.cs
- Guid.cs
- ResXDataNode.cs
- EventlogProvider.cs
- FixedSOMPageConstructor.cs
- PrintPreviewDialog.cs
- WebControl.cs
- DeclaredTypeElementCollection.cs
- RefreshPropertiesAttribute.cs
- Message.cs
- HelpInfo.cs
- XmlSerializer.cs
- HtmlElementEventArgs.cs
- ProviderConnectionPoint.cs
- RtfNavigator.cs
- InternalControlCollection.cs
- FileUtil.cs
- PtsPage.cs
- AsymmetricKeyExchangeFormatter.cs
- ProfileModule.cs
- LineVisual.cs
- WebProxyScriptElement.cs
- BadImageFormatException.cs
- BuiltInPermissionSets.cs
- ClientUtils.cs
- UserControlCodeDomTreeGenerator.cs
- WindowsListViewItem.cs
- DbMetaDataColumnNames.cs
- SocketPermission.cs
- RemoteWebConfigurationHost.cs
- TransformCryptoHandle.cs
- WebPartDisplayModeCollection.cs
- EtwTrace.cs
- DataKey.cs
- BinaryNode.cs
- MembershipUser.cs
- TransformPattern.cs
- StreamUpgradeBindingElement.cs
- Span.cs
- UnsafeNativeMethodsPenimc.cs
- MsmqInputChannel.cs
- ProgressBarHighlightConverter.cs
- WebSysDescriptionAttribute.cs
- basecomparevalidator.cs
- DispatcherFrame.cs
- CommandBindingCollection.cs
- UIElementIsland.cs
- Stylus.cs
- TableRow.cs
- DBSchemaRow.cs
- ModelPropertyCollectionImpl.cs
- SqlNodeTypeOperators.cs
- DemultiplexingDispatchMessageFormatter.cs
- PreservationFileWriter.cs
- MarkupWriter.cs
- HostedTcpTransportManager.cs
- TextElementCollection.cs
- SafeNativeMethodsMilCoreApi.cs
- WriterOutput.cs
- PrincipalPermission.cs
- WebColorConverter.cs
- ResourceExpressionEditor.cs
- MasterPageParser.cs
- ExpressionPrinter.cs
- BindingsCollection.cs
- Connector.cs
- iisPickupDirectory.cs
- IgnoreSection.cs
- ListDictionary.cs
- DLinqAssociationProvider.cs
- DropShadowBitmapEffect.cs
- RecordBuilder.cs
- Ipv6Element.cs
- ThicknessKeyFrameCollection.cs
- XPathDocumentNavigator.cs
- HostingEnvironmentException.cs
- HMACRIPEMD160.cs
- ListControlBuilder.cs
- TdsParserHelperClasses.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- QilLoop.cs
- QuaternionAnimation.cs
- Monitor.cs
- UrlMappingsModule.cs
- ReferenceConverter.cs
- MimeParameter.cs
- ImportCatalogPart.cs
- SafeReversePInvokeHandle.cs
- SessionEndedEventArgs.cs
- PolyQuadraticBezierSegment.cs
- ClonableStack.cs
- XPathMultyIterator.cs
- StubHelpers.cs