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
- FileLogRecord.cs
- SafeRegistryHandle.cs
- ArraySegment.cs
- SweepDirectionValidation.cs
- MethodToken.cs
- ApplicationContext.cs
- ValueOfAction.cs
- FormViewUpdatedEventArgs.cs
- KeyTime.cs
- LostFocusEventManager.cs
- MobileControlBuilder.cs
- InlineUIContainer.cs
- ConfigurationManagerInternalFactory.cs
- JoinGraph.cs
- MimeXmlImporter.cs
- BufferedWebEventProvider.cs
- TdsParameterSetter.cs
- ResizeGrip.cs
- AccessText.cs
- PassportAuthenticationEventArgs.cs
- GridViewHeaderRowPresenter.cs
- PrefixQName.cs
- AnnouncementInnerClient11.cs
- WebResourceAttribute.cs
- SecurityState.cs
- DiagnosticEventProvider.cs
- SmtpException.cs
- PtsHelper.cs
- ToolStripDropTargetManager.cs
- SoapRpcServiceAttribute.cs
- metadatamappinghashervisitor.cs
- IsolationInterop.cs
- ToolboxItem.cs
- ToolStripPanelRow.cs
- SHA1Managed.cs
- COAUTHIDENTITY.cs
- XmlSchemaSimpleContentExtension.cs
- OuterGlowBitmapEffect.cs
- InitializationEventAttribute.cs
- PreviewPrintController.cs
- RoutedUICommand.cs
- DockProviderWrapper.cs
- Model3D.cs
- LocalFileSettingsProvider.cs
- FixedSOMLineRanges.cs
- CodeMemberField.cs
- Block.cs
- MenuItemBindingCollection.cs
- CodePageEncoding.cs
- DbProviderFactories.cs
- MsmqDiagnostics.cs
- RuntimeEnvironment.cs
- XmlAtomicValue.cs
- ZoneLinkButton.cs
- DataSvcMapFile.cs
- DataError.cs
- XPathMessageFilterElementCollection.cs
- AndCondition.cs
- SecurityPolicySection.cs
- Viewport3DVisual.cs
- NativeMethods.cs
- Reference.cs
- TextEmbeddedObject.cs
- ListDictionaryInternal.cs
- ServiceBuildProvider.cs
- MobileControlsSectionHelper.cs
- TabControlAutomationPeer.cs
- BindingWorker.cs
- TranslateTransform.cs
- DataGridViewHeaderCell.cs
- KeyInstance.cs
- ValueOfAction.cs
- RightsManagementPermission.cs
- TimersDescriptionAttribute.cs
- EntityDataSource.cs
- SyncMethodInvoker.cs
- VectorCollectionValueSerializer.cs
- ToolZoneDesigner.cs
- StringUtil.cs
- ImageAutomationPeer.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- CellQuery.cs
- AtomParser.cs
- AutomationElementCollection.cs
- CompModSwitches.cs
- UnaryNode.cs
- WindowsPrincipal.cs
- GridViewRowCollection.cs
- XmlSchemaCollection.cs
- LockCookie.cs
- AlternateViewCollection.cs
- TreeBuilderXamlTranslator.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- XamlNamespaceHelper.cs
- SqlComparer.cs
- EpmCustomContentSerializer.cs
- ControlParameter.cs
- BuildProvidersCompiler.cs
- WindowsGrip.cs
- HttpContextWrapper.cs