Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs
diff options
context:
space:
mode:
authorMarek Habersack <grendel@twistedcode.net>2010-04-12 23:38:28 +0400
committerMarek Habersack <grendel@twistedcode.net>2010-04-12 23:38:28 +0400
commit78849b6501e175091a9320c011c3c1c79d1c2a69 (patch)
treef2f97b4f50b28d1b04460b32cb5b112f5e513caf /mcs
parent36d58d231a5cb91317cfbc3a74eb565cec8c4acd (diff)
Backport of r155262
svn path=/branches/mono-2-6/mcs/; revision=155263
Diffstat (limited to 'mcs')
-rw-r--r--mcs/class/System.Web/System.Web.Compilation/ChangeLog5
-rw-r--r--mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs8
-rw-r--r--mcs/class/System.Web/System.Web.UI/ChangeLog8
-rw-r--r--mcs/class/System.Web/System.Web.UI/Page.cs5
-rw-r--r--mcs/class/System.Web/System.Web.UI/PageParser.cs13
5 files changed, 34 insertions, 5 deletions
diff --git a/mcs/class/System.Web/System.Web.Compilation/ChangeLog b/mcs/class/System.Web/System.Web.Compilation/ChangeLog
index eb590e08b61..cc0aad400f7 100644
--- a/mcs/class/System.Web/System.Web.Compilation/ChangeLog
+++ b/mcs/class/System.Web/System.Web.Compilation/ChangeLog
@@ -1,3 +1,8 @@
+2010-04-12 Marek Habersack <mhabersack@novell.com>
+
+ * PageCompiler.cs: if EnableViewStateMac is set in the page
+ source, generate relevant code.
+
2010-03-06 Marek Habersack <mhabersack@novell.com>
* TemplateControlCompiler.cs: AssignPropertyForResources localizes
diff --git a/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs b/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs
index 5c3fdc24c56..aa5ce1aeb36 100644
--- a/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs
+++ b/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs
@@ -339,11 +339,13 @@ namespace System.Web.Compilation
protected override void AddStatementsToInitMethod (CodeMemberMethod method)
{
-#if NET_2_0
- AddStatementsFromDirective (method);
ILocation directiveLocation = pageParser.DirectiveLocation;
-
CodeArgumentReferenceExpression ctrlVar = new CodeArgumentReferenceExpression("__ctrl");
+
+ if (pageParser.EnableViewStateMacSet)
+ method.Statements.Add (AddLinePragma (CreatePropertyAssign (ctrlVar, "EnableViewStateMac", pageParser.EnableViewStateMac), directiveLocation));
+#if NET_2_0
+ AddStatementsFromDirective (method);
if (pageParser.Title != null)
method.Statements.Add (AddLinePragma (CreatePropertyAssign (ctrlVar, "Title", pageParser.Title), directiveLocation));
diff --git a/mcs/class/System.Web/System.Web.UI/ChangeLog b/mcs/class/System.Web/System.Web.UI/ChangeLog
index ec528b7081c..97b4cacb7d3 100644
--- a/mcs/class/System.Web/System.Web.UI/ChangeLog
+++ b/mcs/class/System.Web/System.Web.UI/ChangeLog
@@ -1,3 +1,11 @@
+2010-04-12 Marek Habersack <mhabersack@novell.com>
+
+ * PageParser.cs: if EnableViewStateMac option is present in the
+ directive, remember it for later use by the compiler.
+
+ * Page.cs: initialize EnableViewStateMac with the default read
+ from the config.
+
2010-04-07 Marek Habersack <mhabersack@novell.com>
* Control.cs: control cache must be filled using the local
diff --git a/mcs/class/System.Web/System.Web.UI/Page.cs b/mcs/class/System.Web/System.Web.UI/Page.cs
index 2148abd64db..ad13eaff3bd 100644
--- a/mcs/class/System.Web/System.Web.UI/Page.cs
+++ b/mcs/class/System.Web/System.Web.UI/Page.cs
@@ -194,11 +194,16 @@ public partial class Page : TemplateControl, IHttpHandler
asyncTimeout = ps.AsyncTimeout;
viewStateEncryptionMode = ps.ViewStateEncryptionMode;
_viewState = ps.EnableViewState;
+ _viewStateMac = ps.EnableViewStateMac;
} else {
asyncTimeout = TimeSpan.FromSeconds (DefaultAsyncTimeout);
viewStateEncryptionMode = ViewStateEncryptionMode.Auto;
_viewState = true;
}
+#else
+ PagesConfiguration ps = PagesConfiguration.GetInstance (HttpContext.Current);
+ if (ps != null)
+ _viewStateMac = ps.EnableViewStateMac;
#endif
}
diff --git a/mcs/class/System.Web/System.Web.UI/PageParser.cs b/mcs/class/System.Web/System.Web.UI/PageParser.cs
index ea6b10ed24f..b6f557dbb14 100644
--- a/mcs/class/System.Web/System.Web.UI/PageParser.cs
+++ b/mcs/class/System.Web/System.Web.UI/PageParser.cs
@@ -45,7 +45,8 @@ namespace System.Web.UI
public sealed class PageParser : TemplateControlParser
{
PagesEnableSessionState enableSessionState = PagesEnableSessionState.True;
- bool enableViewStateMac = true;
+ bool enableViewStateMac;
+ bool enableViewStateMacSet;
bool smartNavigation;
bool haveTrace;
bool trace;
@@ -383,8 +384,12 @@ namespace System.Web.UI
enable_event_validation = GetBool (atts, "EnableEventValidation", enable_event_validation);
maintainScrollPositionOnPostBack = GetBool (atts, "MaintainScrollPositionOnPostBack", maintainScrollPositionOnPostBack);
#endif
+ if (atts.ContainsKey ("EnableViewStateMac")) {
+ enableViewStateMac = GetBool (atts, "EnableViewStateMac", enableViewStateMac);
+ enableViewStateMacSet = true;
+ }
+
// Ignored by now
- GetString (atts, "EnableViewStateMac", null);
GetString (atts, "SmartNavigation", null);
base.ProcessMainAttributes (atts);
@@ -475,6 +480,10 @@ namespace System.Web.UI
internal bool EnableViewStateMac {
get { return enableViewStateMac; }
}
+
+ internal bool EnableViewStateMacSet {
+ get { return enableViewStateMacSet; }
+ }
internal bool SmartNavigation {
get { return smartNavigation; }